• ベストアンサー

大変困っています

y=Ax^2+Bx+Cという式があります ここで、BはB=dz+e、C はC=fz^2+gz+hとなっています。 A、d、e、f、gは定数、x、zは変数です このとき y=0(もしくは0に限りなく近い値)になるようなx、zを求めるにはどのようにしたらよいのでしょうか? 多分プログラムとか組まなくてはいけないと思いますが、考え方からよくわかりません。 大変困っております。よろしくご教授お願いします もし、質問の内容に足りない部分がありましたらいってください。

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

  • ベストアンサー
  • ruin
  • ベストアンサー率37% (3/8)
回答No.4

曲線の解を求める問題のプログラムのやり方ですが、ニュートン法が有名です。 この方法はx=aを始点とするとx=aの直線と曲線の交点(簡単に求まりますね)で曲線の接線を引き、接線がy=0の直線(x軸)と交わる点をx=bとします。これを繰り返していくと繰り返せば繰り返すほど精度良い解が求められます。 ただ弱点としては始点の設定を失敗すると発散してしまうことと、曲線が解の近傍で解析的である必要があります。つまり微分可能と言うことです。 しかし・・・ #3さんの言うように机上計算が最も速いです。 1分もあれば解けます。 解は無数に存在します。zを変数だと思うと難しくなります。 とりあえずzを定数と思ってください。 すると単なる二次方程式です。 二次方程式の解の公式はご存じですよね? この二次方程式をxについて解いてやります。 x=の中にzが含まれていますね。 これが解です。 解は点ではなくて曲線になります。 ただ・・・少し気になることがあります。 それは変数x、zの範囲です。 範囲は実数でしょうか?zを使うところから見て複素数でしょうか?整数や自然数なら定数の取り方によっては解無しとなります。 あと、細かいことかもしれませんが・・・ 定数や変数にd,e,iなどは使わない方がいいですよ。 dは微分の記号、eは自然対数の底、iは虚数単位を表します。こういう記号を定数や変数に用いますと誤解を招きますよ。

その他の回答 (3)

  • jmh
  • ベストアンサー率23% (71/304)
回答No.3

A,d,e,f,g、および、hが定数なら、y=0という(xとzの)方程式を数学的に解いたらよいと思います。 解は2次曲線などになると思います。

  • rara_sun
  • ベストアンサー率50% (271/539)
回答No.2

To youhei715へ > これって難しそうなプログラムになりますか?  プログラムとしてはベーシックなものとなろうかと 思います。ただ、難しいか優しいかという問いに関しては youhei715さんがVisualBasic(これで作ろうとして るんですよね?の知識とプログラミングの知識に よります。基本構文が理解していれば、後は、 考え方は難しくないので、優しい部類に入りますが、 まったく、プログラミングが理解できていなければ かなり難しい問題に思えると思います。  どの程度のレベル(知識や経験)をお持ちなのでしょうか?

  • rara_sun
  • ベストアンサー率50% (271/539)
回答No.1

xとzのとりうる値の範囲で、ループ文を 作成して、その中で常に最小値を求めて 上げて下さい。 言葉で書くと、結構ややこしい(というか 伝わりにくいかもしれない)ので、 プログラムの雰囲気だけ書いておきます。 (ただしいソースでないかもしれませんので ご了承ください) xとzが仮に 1から10までの整数値をとると仮定して 書きますね。 Ymin=99999 ←とりあえず、なんでもいいので大きい値を 入れる。 Xmin=0 ← Yが0に近い最小と思われる値を待避するための変数を初期化している。値はなんでもいい。 Zmin=0 ← ヽ for x=1 to 10 step 1 for z=1 to 10 step 1 B= ????? ← Bの計算 C= ????? ← Cの計算 y= ?????? ← yの計算 if y < Ymin and y >= 0 then Ymin = y Xmin = x Zmin = z end if next z next x print Ymin, Xmin, Zmin ←ここで最小値がわかる。 これでどうかな? あくまで雰囲気だけと思って下さいね。 がんばってください。

youhei715
質問者

お礼

ありがとうございます  参考に考えて見ます これって難しそうなプログラムになりますか? 参考までに聞いてみたりして このようなプログラムを書くにあたって参考になるHPとかありませんか? ついでにお世話してください すみません あと お礼のpointをどう加えるかわからないんですが ゆるしてください

関連するQ&A