【发布时间】:2021-11-19 03:01:15
【问题描述】:
我的递归程序在 python 中使用错误位置方法时遇到了一些问题。出于某种原因,当我启动程序时,没有任何内容输出到控制台。它运行,但随后它停止而不做任何事情。想知道你是否能在我的程序中看到任何漏洞。
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
import sys
sys.setrecursionlimit(10000);
def function(x):
return float((1/x) - (np.log(x)) + (np.log(2)))
def checkroot(a, b):
if(function(a) * function(b) < 0):
falsepositionmethod(a, b)
def processinterval(a, b):
c = float(((a * function(a)) - (b * function(a)))/(function(b) - function(a)))
return c
def falsepositionmethod(a, b):
midpoint = processinterval(a, b)
if((function(a) * function(midpoint)) < 0):
return falsepositionmethod(a, midpoint)
if((function(a) * function(midpoint)) > 0):
return falsepositionmethod(midpoint, b)
elif(np.abs(function(midpoint)) < 0.0005):
return midpoint
return print(midpoint)
def main():
a = 0.1
b = 20.0
checkroot(a, b)
print(falsepositionmethod(a, b))
main()
【问题讨论】:
-
这段代码有什么作用?请给我们一些背景信息。
-
它只是运行控制台(红色按钮亮起),然后结束说重新启动内核。
-
考虑添加一些日志来帮助您调试。像这样的算法中最常见的失败情况是值不收敛。
-
控制台?红色按钮?核心?我不知道这些是什么。这段代码的目的是什么?向我们描述它,就像我们不知道您正在从事什么项目或您要解决的问题一样(因为我们不知道)。
标签: python pandas numpy matplotlib