プログラム(Python)
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 | # -*- coding: utf-8 -*- import math import numpy as np import matplotlib.pyplot as plt # 処理対象関数 def f(x):     return x*x - 4.0 # 導関数 def df(x):     return 2.0*x # ニュートン法 def newton_method(a,eps):     xxx = np.array([a,a])     yyy = np.array([0,f(a)])     for i in range(1000):         # 漸化式         ah = a - f(a)/df(a)         # 変化が十分小さければ終了         if abs(ah - a) < eps:break         # 近似解の更新         a = ah               xxx = np.append(xxx,a)         yyy = np.append(yyy,0)         xxx = np.append(xxx,a)         yyy = np.append(yyy,f(a))     plt.plot(xxx,yyy)     return a # f(x)を描画する xx1 = np.linspace(1, 10,100) yy1 = f(xx1) plt.plot(xx1,yy1) # 解をもとめる a = newton_method(10.0, 0.0001) # 実行結果 print(a) # グラフを表示  plt.grid(True) plt.xlabel('X') plt.ylabel('Y') plt.show() | 
実行結果
| 1 | 2.00000927130158 | 


 
        