我正在用 python 编写一个程序,它将使用牛顿法求解零。我完成了它的粗略版本,然后意识到了一些不同的事情,并且想知道我是否需要实施/改变它。(对该主题的了解可能会有所帮助)
def main():
dir(sympy)
print ("NEWTONS METHOD")
print ("Write your expression in terms of 'x' ")
e = sympy.sympify(raw_input("input expression here: "))
f = sympy.Symbol('x')
func1 = e
func1d = sympy.diff(e,f)
print ("the dirivative of your function = "), func1d
x = input("number to substitude for x: ")
func1sub = func1.subs({'x':x})
func1dsub = func1d.subs({'x':x})
n = x - float(func1sub/func1dsub)
while n != x:
func1sub = func1.subs({'x':x})
func1dsub = func1d.subs({'x':x})
n = x - float(func1sub/func1dsub)
print n
main()
1)首先我想知道,因为n
and的值x
可能并不总是完全相同,所以我必须使用 round 函数进行舍入。
2)看了这个之后,我觉得我的while循环没有解决它应该解决的问题,它应该解决x
你可以将它插入x
函数中的问题,输出将是x
。我可以通过将值附加到数组然后查看它们是一个数字的多个实例的位置来做到这一点吗?