• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ニュートン法を使って解を求めるC言語プログラム)

ニュートン法を使って解を求めるC言語プログラム

このQ&Aのポイント
  • C言語を使ってy=x^2-4xのyの解をニュートン法を使って求めるプログラムを作成しました。しかし、ニュートン法がよくわからず、微分についても理解がないため、プログラムの動作が正しくありません。
  • このプログラムはコンパイルはできますが、ニュートン法の原理や微分の概念について理解がないため、正しい結果を返しません。
  • ニュートン法についてできるだけ分かりやすく解説してほしいです。工業系の学校で数学の授業がなく、微分について知識がないため、具体的な説明が必要です。

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

  • ベストアンサー
  • fatbowler
  • ベストアンサー率48% (26/54)
回答No.1

ニュートン法を理解するには、せめて微分の初歩の初歩は理解して下さい。 とりあえず、必要なところだけ。 y=x^2-4x の解をもとめるには、次のようにします。 計算途中の近似解をa(n)とすると、それを元に得られる、より精度の良い近似解a(n+1)は、 a(n+1)=(a(n)*a(n))/(2*a(n)-4) として求められます。(ニュートン法の理論から) これを繰り返していって、 |a(n+1)-a(n)| < 0.0001 となったときに、十分精度の良い解が得られたと判断し、計算を終了します。 (計算終了の閾値0.0001は提示されたプログラムから取りました。) プログラムの間違いは、下記の2点。 誤:scanf("%ld",&an); 正:scanf("%lf",&an); 誤:f=2*an-4; 正:f=g-an; an=g; 上記を修正し、初期値が2より大きい場合は4.000000が、初期値が2未満のときは 0.000000が求められることを確かめて下さい。

fon4203
質問者

お礼

できました。 ありがとうございます。

その他の回答 (1)

回答No.2

下記URL参照。

参考URL:
http://blogs.wankuma.com/episteme/archive/2007/06/29/82963.aspx

関連するQ&A