• ベストアンサー

3次式「aX^3+bX^2+cX+d=0」の一般解(実数で)を誘導したいのですが,どうすればよいのでしょうか?

alice_38の回答

  • ベストアンサー
  • alice_38
  • ベストアンサー率43% (75/172)
回答No.3

双曲線関数を使ったアルゴリズム: a X^3 + b X^2 + c X + d = 0 を Y = X + b/(3a) で置換すると、 4 Y^3 + p Y + q = 0 (p,q は定数) という形に変形できる。 更に Y = R sinh Z で置換すると、三倍角公式を使って sinh(3Z) + q/R^3 = { 3 - p/R^2 }(sinh Z) と変形される。 3 - p/R^2 = 0 となるように R を定めれば、 sinh(3Z) = -q/R^3 となる。 ここで、sinh の逆関数を使って 3Z を求め、 sinh Z から X へとたどるのでは、超越的な計算になってしまう。 sinh z = (e^z - e^-z)/2 により、sinh(3Z) = -q/R^3 を e^(3Z) に関する二次方程式と考えると、代数的計算だけで e^(3Z) が求まる。実数の三乗根をとれば e^Z が得られるので、 sinh Z も計算できる。 途中、平方根と三乗根を使うから、計算機の上では やはり収束計算が必要になってしまうけれども。

diyondiyon
質問者

お礼

ご回答,ありがとうございました. 試してみようと思います.

関連するQ&A

  • xについての方程式x^3+ax^2+bx+8=0が3つの実数解α,β,

    xについての方程式x^3+ax^2+bx+8=0が3つの実数解α,β,γ(α<β<γ)を持ち、それらがある順序で等比数列をなし、また、ある順序で等差数列をなす。このとき、定数a,bおよびα,β,γの値を求めよ。 解答には、α<β<γよりα,β,γの順に並んでいる。      等差数列だから2β=αγ,等比数列だからb^2=acとなる。      等差数列の考えはこれで良いが、等比の場合b^2=acとa^2=bcとc^2=abという3通りを考えなけ     ればならないみたいです。      これと、解と係数の関係よりα+β+γ=-a                   αβ+βγ+γα=b                    αβγ=-8を使って解くみたいなんですが、こっから代入しまくるら     しいんですが、どうに始めて最後まで解けばいいかわかりません。      わかる方いましたら、ぜひ教えてください!!お願いします!! 

  • 実数解

    3つの2次方程式は少なくとも1つは実数解を持つことを示す問題です。 だたし、a,b,cは実数とします。 (x^2)+3ax+2b-1=0 …(1) (x^2)+2bx+2c-1=0 …(2) (x^2)+2cx+2a-1=0 …(3) (1)の判別式は D/4=(a^2)-2b+1 (2)の判別式は D/4=(b^2)-2c+1 (3)の判別式は D/4=(c^2)-2a+1 となりましたがどのようにして少なくとも1つは実数解ということを探すのでしょうか?

  • ax^2+bx+c=0の解を求めたいのですが・・(初歩的です)

    タイトル通り、a、b、cを入力させて、ax^2+bx+c=0の解xを求めたいのですが、結果をどう求めればいいのか、実解・虚数解・重解の場合をどうしたらいいのか、の2点がよくわかりません。 #include<math.h> #include<stdio.h> double sqrt(double a,double b,double c) { return (b*b-4*a*c); } main(void) { double a,b,c,sqrt,ans; do{ printf("ax^2 + bx +c = 0 の解 x を求めます。\n a,b,cを入力してください。\n"); printf("a : "); scanf("%lf",&a); printf("\nb : "); scanf("%lf",&b); printf("\nc : "); scanf("%lf",&c); if(a = 0){ printf("a は0以外を入力してください。\n"); } }while(a = 0); ans = (-b+dist(a,b,c))/(2*a); printf("%lf", ans); printf("\n"); return(0); } 他にも多々ダメな部分があると思いますがご指摘・アドバイス等いただけたらと思います。よろしくお願いします。

  • 2次方程式の実数解の符号

    2次方程式a+x2(←二乗)+bx+c=0の2つの解α,βと判別式Dについて、 α,βは異なる2つの正の解⇔D>0でα+β>0かつαβ>0 α,βは異なる2つの負の解⇔D>0でα+β<0かつαβ>0 α,βは符号の異なる解⇔αβ<0 となるとき、なぜ2つともD>0となるのか分かりません。 あと、α,βは符号の異なる解の時D>0を書かないのはなぜですか?分かる方、宜しくお願いします(;_;)

  • D<0とax^2+bx+c=0について

    , y=ax^2+bx+cの頂点が(-b/2a,-D/4a)よりD<0の場合ax^2+bx+c=0(a≠0)にはなりませんが x=(-b±√D)/2aがD<0となるとxが虚数となるので、ax^2+bx+c=0にならないという解釈でもよいでしょうか?後、x軸、y軸上に取るものはすべて実数で虚数ということはx軸上に存在しないということですよね?

  • 3次方程式の実数解の個数のプログラムについて…

    C++で、3次方程式の実数解の個数を調べるプログラムを作ってみた(↓)のですが、実行したときに問題点があって困っています。 #include<stdio.h> #include<math.h> void main(void) /*3次方程式の実数解の個数*/ { double a,b,c,d,D,A,B; printf("f(x)=a*pow(x,3)+b*pow(x,2)+c*x+d=0 に対して、a,b,c,dの値を定めると、\n"); scanf("%lf %lf %lf %lf",&a,&b,&c,&d); D=4*pow(b,2)-12*a*c; A=(-b+sqrt(b*b-3*a*c))/(3*a); B=(-b-sqrt(b*b-3*a*c))/(3*a); if(a>0) if(D<=0 || (D>0 && A>0) || (D>0 && B<0)) printf("実数解の個数は1個\n"); else if(A<0 && B>0) printf("実数解の個数は3個\n"); else printf("実数解の個数は2個\n"); else a=-a; b=-b; c=-c; d=-d; if(D<=0 || (D>0 && A>0) || (D>0 && B<0)) printf("実数解の個数は1個\n"); else if(A<0 && B>0) printf("実数解の個数は3個\n"); else printf("実数解の個数は2個\n"); その問題点というのは、実数解の個数が2個と3個のときは、実行したときの結果として、 実数解の個数は2個 Press any key to continue あるいは 実数解の個数は3個 Press any key to continue と正しく表示されるのですが、実数解の個数が1個のときは、 実数解の個数は1個 実数解の個数は1個 Press any key to continue と「実数解の個数は1個」が2回表示されてしまうのです。 なぜ、2回表示されるのか分かりません。 初心者なので、できるだけ詳しい解決法などよろしくお願い致します。

  • 実数解を持つ条件

    a,bはa≠bを満たす実数である。 x^2-(a+b)x+ab-a+b=0 が2つの実数解を持つ条件をab平面上に図示せよ。 判別式Dを使って、式を整理すると D=(a-b)(a-b+4)>0 となったのですが、その後がわかりません。 これらをどのようにab平面に図示すればいいのでしょうか? アドバイスをください。お願いします。

  • 四次方程式 解の公式 一般解

    こんにちは。 弱塩基と強酸の中和滴定をシミュレートをして[OH-]の濃度と滴定量のグラフを書かせたいと思っています。そのためには4次方程式の解を求めなければならないらしいのです。HP等で検索するといろいろ解法(四次方程式の)が載っているのですが私には難しすぎてなかなか理解できません。たれか助けてください。欲しい回答は 四次方程式 X^4+a*X^3+b*X^2+c*X+d=0の一般解です。 できれば二次方程式の解の公式のような明解な一般解の形で示していただけるとありがたいです。上式に使っているa,b,c,dだけであらわした一般解がいいです。 以上どなたか答えてください。

  • 微分方程式の一般解

    微分方程式の一般解を求める問題なのですが、どうしてもよく分かりません。 y'6+4y'2=40x^3  (ここで'○は微分の回数を示すとします。また、以下ではD=d/dxのことです) 同時方程式(D^6+4D^2)y=D^2(D^4+4)y=D^2{(D^2+2)^2-4D^2}y=D^2(D^2+2+2D)(D^2+2-2D)y=D^2{(D+1)^2+1}{(D-1)^2+1}y=0 の基本解は{1、x、e^(-x)cosx、e^(-x)sinx、e^xcosx、e^xsinx} 次に特殊解Y(x)を求める。 非同次項R(x)=40x^3は同時方程式40D^4y=0の解だから、 特殊解Y(x)の式Yは同時方程式 40D^4・D^2{(D+1)^2+1}{(D-1)^2+1}y=0の解である。 この基本解{1、x、x^2、x^3、x^4、x^5、e^(-x)cosx、e^(-x)sinx、e^xcosx、e^xsinx}から与式の基本解を除いたx^2、x^3、x^4、x^5の一次結合として Y(x)=Ax^2+Bx^+Cx^4+Dx^5とおく。 与式の左辺に代入… と続いていくのですが、どうにもしっくりきません。 答えも y=(20/3)x^3+c1+c2x+e^(x/√2){c3cos(x/√2)+c4sin(x/√2)}+e^(-x/√2){c5cos(x/√2)+c6sin(x/√2)} となり、私の解からでは到底結びつくとは思えないです。 気になるのが 「非同次項R(x)=40x^3は同時方程式40D^4y=0の解だから」 としていますが、本当にこれで良いのか自信もありません。 もし間違えていたら解説をお願いします。 また、他に違うというようなところがあったら指摘してください。 回答、よろしくお願いします。

  • 虚数、実数、ax^2+bx+c=0について

    実数とは有理数と無理数をあわせた数であるから x軸、y軸上に取るものはすべて実数で虚数ということはx、y軸上に存在しませんよね? 後、ax^2+bx+c=0(a≠0)において x=(-b±√D)/2aがD<0となるとxが虚数となるので,虚数はx軸に存在しないので、x軸との共有点がなくax^2+bx+c=0となるxはないという解釈でだいじょうぶでしょうか?