ニュートン法を使用してゼロを解くプログラムを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
とは限らないため、疑問に思いました。x
2)これを見た後、私のwhileループは、それが解決すべきものを解決していないと感じます。x
それは、関数にプラグインできるものを解決しているはずでx
あり、出力はになりますx
。配列に値を追加し、それらが1つの数値の複数のインスタンスである場所を確認することでこれを行うことができますか?