重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

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を求めるにはどのようにしたらよいのでしょうか?
多分プログラムとか組まなくてはいけないと思いますが、考え方からよくわかりません。
大変困っております。よろしくご教授お願いします

もし、質問の内容に足りない部分がありましたらいってください。

A 回答 (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は虚数単位を表します。こういう記号を定数や変数に用いますと誤解を招きますよ。
    • good
    • 0

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


解は2次曲線などになると思います。
    • good
    • 0

To youhei715へ



> これって難しそうなプログラムになりますか?

 プログラムとしてはベーシックなものとなろうかと
思います。ただ、難しいか優しいかという問いに関しては
youhei715さんがVisualBasic(これで作ろうとして
るんですよね?の知識とプログラミングの知識に
よります。基本構文が理解していれば、後は、
考え方は難しくないので、優しい部類に入りますが、
まったく、プログラミングが理解できていなければ
かなり難しい問題に思えると思います。

 どの程度のレベル(知識や経験)をお持ちなのでしょうか?
    • good
    • 0

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 ←ここで最小値がわかる。

これでどうかな?
あくまで雰囲気だけと思って下さいね。
がんばってください。
    • good
    • 0
この回答へのお礼

ありがとうございます 
参考に考えて見ます

これって難しそうなプログラムになりますか?
参考までに聞いてみたりして
このようなプログラムを書くにあたって参考になるHPとかありませんか?

ついでにお世話してください すみません
あと お礼のpointをどう加えるかわからないんですが ゆるしてください

お礼日時:2003/04/26 20:42

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!