next up previous
Next: 3.7 参考: Newton 法の原理 Up: 3 方程式の数値解法 Previous: 3.5 参考: 二分法 (bisection

3.6 Newton 法

論よりrunで行ってみましょう8

newton.BAS

REM newton.BAS --- Newtonˡ�� f(x)=0 �ζ��������
REM ��x=x+��x, ��x=-f(x)/f'(x) �Ȥ����������Ƕ���򹹿�
REM ���ա� 1000��⡼�ɤˤ��Ƥ�Ķ�۴ؿ���17��
REM Ķ�۴ؿ���Ȥ�ʤ���� 1000 ��⡼�ɤǹ����٤ζ���ͤ�������
REM ���ξ��� PRINT USING �ν�����Ŭ����ľ��
REM OPTION ARITHMETIC DECIMAL_HIGH
OPTION ARITHMETIC NATIVE
REM ---------------------------------------------------------------
REM �򤭤��������� f(x)=0 �κ��� f(x) �����
FUNCTION F(x)
   LET F=COS(X)-X
   REM LET F=x^2-2
END FUNCTION
REM f'(x)�����
FUNCTION dfdx(x)
   LET DFDX=-SIN(x)-1
   REM dfdx=2*x
END FUNCTION
REM ---------------------------------------------------------------
INPUT PROMPT "����͡��׵�����(1e-14�ʤ�)=": X,EPS
REM Newtonˡ��¹�
LET MAXITR=100
FOR i=1 TO MAXITR
   LET dx=-f(x)/dfdx(x)
   LET x=x+dx
   PRINT USING "f(--%.################)=---%.##^^^^": x, f(x)
   IF ABS(dx)<EPS THEN
      PRINT USING "��x=---%.##^^^^":dx
      STOP
   END IF
NEXT I
PRINT "������ |��x| �Ͻ�ʬ�������ʤ�ޤ���Ǥ�����" 
END

実行すると、「初期値と要求精度」を尋ねて来るので、 例えば 1,1e-14 と答えます。

newton.TXT

����͡��׵�����(1e-14�ʤ�)=1,1e-14
f(  0.7503638678402439)=  -1.89E-02
f(  0.7391128909113617)=  -4.65E-05
f(  0.7390851333852840)=  -2.85E-10
f(  0.7390851332151607)=   0.00E+00
f(  0.7390851332151607)=   0.00E+00
��x=   0.00E+00


next up previous
Next: 3.7 参考: Newton 法の原理 Up: 3 方程式の数値解法 Previous: 3.5 参考: 二分法 (bisection
桂田 祐史
2012-05-16