ニュートン近似とSympyの使用
Sympyhttp://www.ike-dyn.ritsumei.ac.jp/~uchida/scipy-lecture-notes/advanced/sympy.html#id13
を使うと代数の記号操作ができるようなので、ニュートン近似を行ってみた。
以下そのコード
(Newton.py)
#-*- coding:utf-8 -*- #ニュートン近似 from sympy import * if __name__=="__main__": #x^2-5=0の[2,3]でのニュートン近似を第四項まで調べてみる。 x=Symbol('x') print "関数を入力してください。" f=input() print "範囲を設定します。下限を入力してください" a=input() print "上限を入力してください" b=input() print "第何項まで計算しますか?" N=input() f_1=diff(f,x) #関数fを一回微分した。 c=b #初期値を設定する。 for i in range(N): c=c-limit(f,x,c)/limit(f_1,x,c) print i+1,"項: ",c
実行結果
関数を入力してください。 x**3+x+1 範囲を設定します。下限を入力してください -1 上限を入力してください 0 第何項まで計算しますか? 4 1 項: -1 2 項: -3/4 3 項: -59/86 4 項: -523407/767077