• 締切済み

Fortran90に関する質問です。

次の問題が分かりません。 「3次方程式x^3+x^2-5x-2の解で、-1と0の間にあるものを求めるプログラムを示せ。(二分法)。ただし、x^3+x^2-5x-2の値の絶対値が0.0001以下であれば、xが解であるとみなすこと。」 取り敢えず、次のように式を設定しました。これ以降、DO構文を使って進めることになっているのですが、どのようなプログラム文を作ったらよいか困ってます。。。どなたか教えてください。 REAL::a=-1.0,b=0.0,y1,y2,y3,x x=(a+b)/2.0 y1=a**3.0+a**2.0-5.0*a-2.0 y2=b**3.0+b**2.0-5.0*b-2.0 y3=x**3.0+x**2.0-5.0*x-2.0

みんなの回答

  • prophetok
  • ベストアンサー率44% (13/29)
回答No.2

二分法 って書いてあったね。 検索すれば、詳しい解説がいくらでも見つかる。 その通りプログラミングするだけでしょう。 参考書みながら、何をすればいいか全く分からないのであれば、致命的。 今後、プログラミングに一生関わらない生き方を選びましょう。 多少でも、自分で書いたコードを載せれば、コメントできるけど。

u260926i
質問者

お礼

参考書を見ればちゃんと分かりますよ!。時間がなかったから、質問してみただけです。以下のようにしたら上手くいきましたよ。 だいたいあなたの方こそね~グダグダと嫌味を言ってるだけで全く回答になっていませんよ。人を批判するだけならわざわざ回答しないでください。迷惑です! !---二分法--- REAL::a=-1.0,b=0.0,y1,y2,y3,x DO x=(a+b)/2.0 y1=a**3.0+a**2.0-5.0*a-2.0 y2=b**3.0+b**2.0-5.0*b-2.0 y3=x**3.0+x**2.0-5.0*x-2.0 IF(ABS(y3)<=0.0001)EXIT IF(y1*y3>0)THEN a=x ELSE b=x END IF END DO PRINT*,"答えは?",x END

全文を見る
すると、全ての回答が全文表示されます。
  • prophetok
  • ベストアンサー率44% (13/29)
回答No.1

はさみうち法 で検索すればどのようにすればいいかは詳しく解説してあるはず。 あとは普通にFortranでコードを書くだけ。 この程度のコードがかけないのなら、基本から勉強し直すか、あきらめる。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • fortran77教えてください

    fortran77の問題で次のプログラムの作成の仕方を教えてください 整数A,B,Cを読み込み、それを係数とする2次方程式Ax^2+Bx+C=0の解を計算して表示するプログラムを サブルーチン副プログラムを用いて作成せよ(複素数型を使うこと) メインプログラムでは整数A,B,Cの入力および解の出力および解の出力を行い解の計算はサブルーチン副プログラムで行うこと なお'keisan.txt'という名前のデータファイルに結果を出力するように 計算時は以下の3つの方程式を用いること x^2+3x+5=0 X^2+6x+4=0 x^2+x+1=0

  • 数Iの2次関数についてお願いします

    次の2次関数と直線について次の問いの答えよ y=x^2+2・・・(1) y=2x+k・・・(2) (1)と(2)がただ一つの共有点をもつときのKの値を求めよ この問題を解くときに(1)と(2)の式を合体させて2次方程式を作りますが これは「2次方程式の解であるxの値」と「(1)と(2)の共有点のxの値」が同じだからという考え方で合っているでしょうか? このあとに2次方程式の式をb^2-4ac=0という公式に当てはめる時も「2次方程式の解であるxの値」と「(1)と(2)の共有点のxの値」が同じだから、「2次方程式の式から作るD=0の公式で求めた解の個数」が「(1)と(2)の共有点の数」も表しているという考え方でいいのでしょうか?

  • 質問です

    数学の二次関数ですが。 文章問題が苦手なので、お願いします。 1.ボールを毎秒40mの速さで投げ上げると、t秒後には、初めの位置からおよそ(40t-5t²)mの高さにあるという。このとき、次の問いに答えなさい。 (1)ボールが初めの位置から、35m高くなるのは、投げてから何秒後ですか。 (2)ボールがはじめの位置に再びもどってくるのは、投げ上げてから何秒後ですか。 2.数学の授業で、先生が「解の一つが-2である二次方程式をつくってみよう。」と提案したので、A、B、Cの3人は、それぞれ下のように方程式をつくった。 ・Aさんは、x=-2の両辺にx-7をかけて、方程式をつくった。 ・Bさんは、他の解が5である方程式をつくった。 ・Cさんは、方程式を2つつくった。 このとき、次の問いに答えなさい。 (1)Aさんがつくった方程式の他の解を求めなさい。 (2)Bさんがつくった方程式を求めなさい。 (3)Cさんがつくった方程式の1つを、x²+ax+b=0・・・・・・(ア)と表わすと、もう1つは、x²+(2a+1)x+3b=0と表わされる。Cさんがつくった方程式(ア)を求めなさい。 3.二次方程式x²+ax-4=0の2つの解がもとに整数となるようなaの値の個数を求めなさい。 よろしくお願いいたします。

  • 連立方程式の質問です。

    連立方程式の質問です。 次の2 組の連立方程式の解が一致するときa, b の値を求めよ。 { ax + by = 2   { 2x - 3y = 8  5x + y = 3     2bx + ay = -5   いくらやり方をテキストなどで調べてみてもわからなくて(><) ヒントだけでも教えていただけませんか?(><)

  • FORTRAN 初心者です

    以下の連立一次方程式をSOR法で解く問題です。 初心者なりにガウスザイデル法を応用してプログラムしたつもりですが、やはり難しいです(答えは違います)。 どこをどうすれば良いのか分かりませんので、よろしければヒントや助言をいただきたいです。 PROGRAM SOR REAL A(10,10),B(10),X(10),X0(10) INTEGER N,I,J,K,Kmax,w N=3 A(1,1)=4 ;A(1,2)=1 ;A(1,3)=2 A(2,1)=1 ;A(2,2)=3 ;A(2,3)=1 A(3,1)=1 ;A(3,2)=2 ;A(3,3)=5 B(1)=16 B(2)=10 B(3)=12 X0(1)=1 ;X0(2)=1 ;X0(3)=2 w=1.2 Kmax=50 EPS=1.D-5 DO I=1,N D=A(I,I) S=B(I) B(I)=B(I)/D END DO DO K=1,Kmax DO I=1,N DO J=1,N if(J<I) X0(J)=X(J) S=S-A(I,J)*X0(J) END DO X(I)=(1-w)*X(I)+w*S END DO DO I=1,N S=S-(X(I)-X0(I))**2 END DO IF(S<EPS) GOTO 10 DO I=1,N X0(I)=X(I) END DO END DO 10 WRITE(*,*) K DO I=1,N WRITE(*,*) 'SOR法で求めた解は' WRITE(*,*) 'X(',I,')=',X(I) END DO END PROGRAM SOR !------------------------------------ ※wは緩和係数です

  • 2次方程式の問題です。

    2次方程式x^2-2x-4=0の二つの解をa,bとするとき,次の式の値を求めなさい。 (1)a+b (2)ab (3)a^2+b^2 お願いしますm(_ _)m

  • 次の等式を満たす次数A、Bを求めよ

    次の等式を満たす次数A、Bを求めよ a(2-2i)+b(1+4i)=3-6i 次の式がxについて恒等式になるようにa,b,cの値を定めよ a(x2+2)b(x+2)+c=x2+4x+8 kを定数とするとき 二次方程式x2-9x+k=0の1つの解が、他の解の2倍になるように kの値を定めよ 次の2数を解とする二次方程式を作れ (1)4 -2 (2)2+i,2-i これらの問題がどうやっも解けません  解くうえでポイント等ありましたら教えてもらえませんでしょうか? お願いします

  • C言語のプログラムの問題で質問です。

    C言語のプログラムの問題で質問です。 問題は、 与えられた実数(a,b,c,d)に対して、次の連立非線形方程式の解 を「ニュートン法」を用いて解く。 f1(x,y)=y+ax^2-b=0 f2(x,y)=y^2+cx^2-d=0 ただし初期値(a,b,c,d)を入力でき、上記の方程式の解が画面表示されること。 という問題です。 普通の連立方程式を解くプログラムならできるのですが、ニュートン法 で解くというのが分かりません。 プログラムを教えてください。参考にしたいです。

  • 2次方程式

    2次方程式x^2-(a+5)x-3bの2つの解は、2次方程式x^2+bx+a=0の2つの解をそれぞれ2倍したものである。a,bの値を求めよ。 どうやって解くかわかりません(>_<)

  • Fortranについて質問です。

    プログラムソースの中で ----------------------- Real*8 A(10,10) Do 30 i = 1, 5 Do 40 j = 1,5 A(i,j)=0.0D0 40 Continue 30 Continue ------------------------ というのは、 配列A(i,j)にどんな値を入れるのですか? すべて0が入るということですか? 教えてください><