|
はじめまして、プログラミング初心者です。
是非皆さんにご教授願いたいと思います。
n88互換Basic For Windowsにて、二次方程式の数値計算を行っています。
①
X^2+PX+Q=0 という簡単な二次方程式をN88で解くのですが、
ニュートンラフソン法との反復回数などの比較を行いたいため、
上記の式の項を移項し左辺をXだけにし、
X=-(X^2+Q)/P
という反復公式にしました。
試行値とPとQを変化させ、上記の式を反復法で解くプログラミングはどのようになりますでしょうか?
②
また①とは別に、下記のような演算時間を計測するプログラムを組みました。
ですがこれでは1秒未満で計算が終わってしまうプログラムでは全て「0ビョウ」になってしまうため
160行目から300行目までの計算を1000回行って秒数を計測したいと考えたのですが
1000回行うためにはどのようにFOR NEXT文を入れればよろしいでしょうか?
100 REM Ex2 Newton Raphson
110 T$=TIME$
120 HH=VAL(MID$(T$,1,2))
130 MM=VAL(MID$(T$,4,2))
140 SS=VAL(MID$(T$,7,2))
150 SEC1=(HH*60+MM)*60+SS
160 K=1:Ep=.00001
170 CLOSE #1:OPEN "I:Ex2_OUT.TXT" FOR OUTPUT AS #1
180 INPUT "X0=";X:PRINT X
190 IF X=0 THEN 270
200 E=(SQR(183)-X)/SQR(183)*100
210 R=(X^2+183)/(2*X)
220 PRINT #1,K;",";R;",";X;",";E
230 PRINT K;,",";R;",";X;",";E
240 IF ABS(R-X)<Ep THEN 300
250 X=R:K=K+1
260 GOTO 190
270 PRINT #1,"ERROR"
280 PRINT "ERROR"
290 GOTO 370
300 PRINT R
310 T$=TIME$
320 HH=VAL(MID$(T$,1,2))
330 MM=VAL(MID$(T$,4,2))
340 SS=VAL(MID$(T$,7,2))
350 SEC2=(HH*60+MM)*60+SS
360 SEC=SEC2-SEC1
350 PRINT SEC;"ビョウ"
360 PRINT #1,SEC;"ビョウ"
370 CLOSE #1
380 END
ご回答よろしくお願い申し上げます。
|
|