 
 
 
 
 
   
論より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 | 
 
 
 
 
