• ベストアンサー

6乗式(近似式)からXの値を求めるには?

エクセルグラフより下記例のような近似式を求めましたが、 yが判っている場合のxの求め方がわかりません。 どなたか、計算手順を含めてご教示ください。 例) y = -ax^6 + bx^5 - cx^4 + dx^3 - ex^2 + fx + g ※a,b,c,d,e,f,gにはそれぞれ小数点以下15桁程度の数字がわかっています。

質問者が選んだベストアンサー

  • ベストアンサー
  • KEIS050162
  • ベストアンサー率47% (890/1879)
回答No.3

#2です。 さすがにサルでは分かりませんが… 近似式の概念が分からないと難しいですが、様は答えに近いところの候補を出して、本当の答えとの差をだんだん縮めながら、答えに限りなく近づけていく、 というやり方です。 先の回答のURLに詳しく載っていますが、高次方程式f(x)の初期値x0を適当なところにとって、 f(x)のx0における接線とx軸の交点をx1を算出して、 f(x1)を計算する。 f(x1)が0でないならば、次のポイントをx1に移動して次にx2を求める。 これをf(x1)が0(もしくは限りなく0に近い値)になるまで繰り返していく方法です。 (プログラムを組む時は、限りなく0に近い値を予め決めておかないと、無限ループに状態になる場合があります。) エクセルでの計算方法も同じURLの下の方に出ていますので、試してみてください。 例題で3次式が出ていますが、要はこれを質問者殿の6次式に置き換えればよいだけです。(理論的には何次でもいけるはず。昔作ったプログラムは50次までやりました。収束が早いので数回で答えが出ると思います。) ご参考に。

water0523
質問者

お礼

ありがとうございます。 数式ばかり眺めていて手も足も出ない状態でしたが 補足のご説明でさらにピンときました。 言われたとおりの方法でとりあえず検算をしてみました。 ビンゴです! 本当にありがとうございました。

その他の回答 (2)

  • KEIS050162
  • ベストアンサー率47% (890/1879)
回答No.2

ニュートンラプソン法を応用してみてください。 ずい分前ですが、この近似計算で高次方程式の解法プログラムを組んだ(確か、xxx年前 CP/M上でアセンブラで組んだ記憶が…) 下記は参考: http://homepage1.nifty.com/gfk/excel_newton.htm その他にもニュートンラプソン法 というワードで検索すると解法のヒントになるサイトが出て来ます。 ご参考に。

water0523
質問者

お礼

回答ありがとうございます。 他の人へのお礼にも書きましたが、まだピンときていません。 さらに何か(サルでもわかる)あれば教えてください。

  • ninoue
  • ベストアンサー率52% (1288/2437)
回答No.1

二分法で f(x)=0 の近くで f(x1)<0, f(x2)>0 の条件を満たす2点を先ず求めます。 その後、x3=(x1+x2)/2 の点でニュートン法を適用して近似度を上げていきます。 ニュートン法のf'(x)には次の展開形が使えます。 f'(x)=-6ax^5 +5bx^4 -4cx^3 +3dx^2 -2ex +f 二分法やニュートン法についてはネットやWikipedia等で調べて下さい。 二分法やニュートン法のサブルーチンもネット上でよく見かけますのでサーチしてみて下さい。

water0523
質問者

お礼

早速回答ありがとうございました。 まだピンときていませんが二分法やニュートン法といった キーワードが出ただけでも前進かなと・・・。

関連するQ&A

  • Excelの近似曲線

    Excelでy=ax^3+bx^2+cx+dではなく、y=ax^3+bx^2のみで近似することはできますか? また、aとbが正になる近似を行うことはできますか?

  • 6次関数のグラフから各係数の符号を知る方法

    6次関数y=f(x)=ax^6+bx^5+cx^4+dx^3+ex^2+fx+g のグラフがxy平面に描かれているとします。そのグラフから各係数の符号を、計算しないで視覚的に知る方法を考えたいのです。 x≒0のとき、y≒ex^2+fx+gなので、(0,f(0))の近傍でのグラフの様子から視覚的にe,f,gの符号を知ることができます。 つまり、y軸との交点がy>0なら、g>0。 グラフが右上がりなら、f>0。 グラフが下に凸なら、e>0。 |x|が十分大きいとき、y≒ax^6+bx^5≒a(x+b/6a)^6なので、グラフの大域的な様子から視覚的にa,bの符号を知ることができます。 つまり、大域的に「U字型」の形なら、a>0。 大域的に、いわゆるグラフの「軸」がy軸より左にあれば、b/6a>0。 c,dの符号を視覚的に知るようなアイデアがありましたら教えてください。

  • EXCEL グラフ 指数近似式からxの値を求める

    EXCELのグラフ機能で得られる指数近似式 y=ae^bx で y=Aのときxを求める式はどうしたらよいでしょうか?

  • エクセルで1次近似式の傾きについて

    1次近似で、y=ax+bの近似式を求める場合、 傾きaは、SLOPE(yのデータ,xのデータ) y切片bは、INTERCEPT(yのデータ,xのデータ) で求めています。 そこでグラフを描いて近似式を表示する際に、グラフオプションでy切片=0にするとSLOPEで求めた傾きと違う値になってしまい悩んでいます。 y切片=0にした場合のy=aXのaを出す関数があるのでしょうか?どなたか教えて下さい。宜しくお願い致します。

  • エクセルの近似式について

    どの分野で質問していいかわからなかったので、違う分野でしたらすみません。エクセルでグラフを作り、近似式を導きたいのですが、y=ax1/2 (xの1/2乗)という近似式はできますか。オプションのところで近似式の追加、累乗根の近似をしましが、「何乗」のところが指定できません。よろしくお願いします。

  • EXCELの近似曲線の対数近似の式

    EXCELのグラフを作る機能で対数近似を選択して引くことが出来る近似曲線の式 について教えてほしいのです。 対数近似の式y=aln(x)+bの係数aとbを算出して、曲線と実際のデータとの 乖離している差をエクセルの関数を使って算出したいのです。 おかしな条件かもしれませんが、yの値は(-)負の値もとりますし、バラバラ です。 なんとなく、わかる範囲で計算したのですが、yが負の値だとエラーがでて 計算してくれなくて・・EXCELのグラフの機能であれば、問題なくグラフ化される ので、私の計算式が間違っているはずです。 例えば以下の数値だとy = -0.81387583Ln(x) + 1.05061096 です。 *小数点以下2桁以下は四捨五入になっていますので細かくはあわないかも しれませんが・・・。 X={1,2,3,・・・・10} y={1.21,2.07,-1.10,-1.55,-0.58,-0.01,-0.73,-0.67,-0.30,-0.12} yが毎回変わるため、グラフからカット&ペーストするのは手間がかかります のでしたくありません。m(__)m 算数も数学も良くわからないものですが、どなたかご教授いただければ幸いです。

  • ルートの中が4次のグラフは2次方程式の形になる?

    y=(ax^4+bx^3+cx^2+dx+e)^(1/2)という式があったとします。 このときの描かれるグラフは2次方程式のグラフになるのでしょうか? エクセルで適当な値を入れて描いてみたら、2次方程式のグラフのような 形になったので・・・。 その理由もお答えいただけると、助かります。

  • 2つの関数f(x)=x^4 -x、

    g(x)=ax^3 +bx^2 +cx +dがf(1)=g(1)とf(-1)=g(-1)をみたすとき、積分∫[-1~1]{f(x)-g(x)}^2 dxを最小にするa、b、c、dの値を求めよ f(1)=g(1)とf(-1)=g(-1)からa+c=-1、b+d=1 f(x)-g(x)=x^4 -ax^3 -bx^2 +ax +b -1 なのは分かりますが、これを二乗して積分しようとすると非常に長い式になり、また、解くことも出来ません 解き方を教えてください

  • Excelでのグラフの近似

    Excelでのグラフの近似についての質問です。 実験での結果についてfittingしたグラフを書きたいのですが、fittingの関数として f=A*exp(ax)+B*exp(bx)の形のグラフを自動で書けるようにはならないのでしょうか? 通常の近似の場合はf=A*exp(ax)の形になりますよね?この式を自分で定義したものに替えたいんです。 VBAなどを使っても構いませんので、どうかお知恵をお貸しください。

  • 二つの放物線の接点について

    二つの放物線 y=ax^2+bx+c と y=dx^2+ex+f がx=αとなる点で接するとき x=αとなる点で接することより、 二次方程式 (ax^2+bx+c)-(dx^2+ex+f)=0 は、x=αを重解にもつから (ax^2+bx+c)-(dx^2+ex+f)=(a-d)(x-α)^2 と因数分解できるようなのですが、 (a-d)(x-α)^2 のうち、 何故(a-d)が出てくるのかよくわかりませんのでお教えお願いします。