- 締切済み
fortarn 二分法
プログラミング全くの初心者です fortarnを用いて二分法でf=x^2-2 の解を求めるプログラミングを作りたいのですがエラーがたくさんでます 学校の先生に聞いたりして途中まではできたのですが、結局よくわかりませんでした いろいろ間違っているところがあると思いますが、特によくわからないのは、f1*f2が0以上になるときどうすればよいか、範囲の再設定をどうすればよいか、です。 以下、途中までのプログラムです。 このプログラムが完成したものを知りたいです。 少し説明も付けてくださると助かります。 program main parameter(errmax=1.0d-10) parameter(nmax=100) real*8 x0,x1,x2 real*8 f0,f1,f2 real*8 err integer n,i *initial range x0:x1 x0=0.0D0 x1=2.0D0 f0=(x0)^2-2 f1=(x1)^2-2 if(f0*f1>0)then endif err=abs(x1-x0) do n-1,nmax x2=(x0+x1)/2 f2=x2^2-2 if(f0*f2<0)then x1=x2*2-x0 else if(f1*f2<0)then x0=x2*2-x1 else if(f2=0) write(*) x2 err=abs(x1-x0) if(err>f0)then stop'Ended with success' end if end do write(*,*)x0,f0 write(*,*)x1,f1 write(*,*)'Error: not converged' end
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- f272
- ベストアンサー率46% (8469/18131)
> 特によくわからないのは、f1*f2が0以上になるときどうすればよいか 0になるのなら,解がわかったということです。 0よりも大きくなるのなら,初期範囲が悪いと表示して終わればよいでしょう。 > 範囲の再設定をどうすればよいか あなたのような初級者に,再設定を自動的に行うことまでは求められていないと思う。 > このプログラムが完成したものを知りたいです。 これを見て考えてね。 http://ja.wikipedia.org/wiki/%E4%BA%8C%E5%88%86%E6%B3%95
- Hayashi_Trek
- ベストアンサー率44% (366/818)
で、肝心のエラーメッセージはなんでしょう? ひょっとして、実行時のエラーではなく、コンパイル時のエラーですか?