バグですか? 小谷 2003/02/25 10:19:08 └桁落ちが原因だと思います。 白石和夫 2003/02/25 21:06:31 └お返事ありがとうございます。 おだに 2003/02/26 00:32:36
バグですか? 小谷 2003/02/25 10:19:08 ツリーへ
バグですか? |
返事を書く |
小谷 2003/02/25 10:19:08 | |
今まで 十進BASIC Ver.4.22 を使っていたのですが, 今日,十進BASIC Ver5.04 をダウンロードして使ったところ, Ver.4.22 では正しく表示されていたグラフィックが Ver.5.04 では正しく表示されませんでした。 これはバグでしょうか? 参考のために,プログラムを貼りつけます。 N=? と訊かれたら,4の倍数を入力してください。 N+1 次多項式で,与えられた三角関数を近似します。 4.22 では正しいグラフが表示されますが,5.04 だと 変な線が現れてしまいます。 ==プログラム== DECLARE EXTERNAL FUNCTION FACTI LET A=-PI/2 LET XSIZE=10 LET YSIZE=2 SET WINDOW -XSIZE,XSIZE,-YSIZE,YSIZE SET LINE COLOR 1 PLOT LINES : -XSIZE,0;XSIZE,0 PLOT LINES : 0,-YSIZE;0,YSIZE SET LINE COLOR 4 LET C=1.07405854429267 LET ALPHA=0.639092926771878 SET LINE COLOR 4 FOR X=-XSIZE TO XSIZE STEP 0.02 LET Y=C*SIN(A*(X-ALPHA)) PLOT LINES : X,Y; NEXT X PLOT LINES SET LINE COLOR 2 DO INPUT PROMPT"N=":N IF N<0 THEN EXIT DO FOR X=-XSIZE TO XSIZE STEP 0.02 LET Y=0 FOR I=0 TO N+1 LET Y=Y+FACTI(I)*A^I*(X-I+N+1)^I NEXT I PLOT LINES : X,Y; NEXT X PLOT LINES LOOP END EXTERNAL FUNCTION FACTI(N) LET K=1 IF N>0 THEN FOR I=1 TO N LET K=K/I NEXT I END IF LET FACTI=K END FUNCTION |
└桁落ちが原因だと思います。 白石和夫 2003/02/25 21:06:31 ツリーへ
Re: バグですか? |
返事を書く |
白石和夫 2003/02/25 21:06:31 | |
桁落ちが原因だと思います。 次のプログラムを実行してみると,途中でどういう計算をしているかわかると思います。有限桁の小数しか扱えない計算機を用いて,この計算方法で正しい値を求めるのは無理です。 DECLARE EXTERNAL FUNCTION FACTI LET A=-PI/2 LET N=40 LET X=10 LET Y=0 FOR I=0 TO N+1 LET t=FACTI(I)*A^I*(X-I+N+1)^I LET Y=Y+t PRINT t,Y NEXT I END EXTERNAL FUNCTION FACTI(N) LET K=1 IF N>0 THEN FOR I=1 TO N LET K=K/I NEXT I END IF LET FACTI=K END FUNCTION PIの近似値を有理数で与えて有理数モードで計算してみるときれいな線になるのでは? |
└お返事ありがとうございます。 おだに 2003/02/26 00:32:36 ツリーへ
Re: 桁落ちが原因だと思います。 |
返事を書く |
おだに 2003/02/26 00:32:36 | |
お返事ありがとうございます。 ご指摘もっともですが,私が疑問に思っているのは,まったく同じ プログラムを動かしたときに描かれるグラフが,Ver4.22 と Ver5.04 では異なることなのです。 これは,Ver5.04 に問題があるとしか思えません。 もう少しわかりやすい例を考えて,改めて投稿します。 |