• 締切済み

C言語でニュートン法を使い2次方程式の解を求める

プログラミング初心者ですが、 今回ニュートン法で2次方程式の解を求めるプログラムを作成しようとしています。 しかしプログラムがよくわからないので、どなたかおしえていただけないでしょうか。 よろしくおねがいします。

みんなの回答

  • asuncion
  • ベストアンサー率33% (2126/6286)
回答No.6

>質問者さんの発言を見ているとそういう雰囲気でもないし…。 確かに。 >C言語でニュートン法を使い2次方程式の解を求める というタイトルが付いていますが、 C言語もニュートン法もおわかりではないようなので、 これらを使って2次方程式の解を求めることはできそうにないですね。

  • edomin7777
  • ベストアンサー率40% (711/1750)
回答No.5

> そりゃ、ニュートン法を習得するためでしょう。 そりゃ、そうなんでしょうが…。 質問者さんの発言を見ているとそういう雰囲気でもないし…。

  • asuncion
  • ベストアンサー率33% (2126/6286)
回答No.4

>なぜ2次方程式をニュートン法で解くのかが判りません。 そりゃ、ニュートン法を習得するためでしょう。 低次の方程式を使って。

  • tatsu99
  • ベストアンサー率52% (391/751)
回答No.3

おなじような質問がこちらの参考URLにも出ています。 そちらを参照すれば、解決すると思いますよ。

参考URL:
http://okwave.jp/qa/q3153876.html
  • edomin7777
  • ベストアンサー率40% (711/1750)
回答No.2

#1です。 自分で解き方が全く判らないものをプログラムするのは無理でしょう。w ・自分でやったらどうやるかを考える。 ・それをプログラムにする。 ・修正・改良して高速化や省メモリ化を計る。 のが一般的だと思うけどね…。 そもそも、なぜ2次方程式をニュートン法で解くのかが判りません。 (解の公式の方が簡単だろうに…。) http://www.sist.ac.jp/~suganuma/kougi/other_lecture/SE/num/num.htm http://www.tonami-h.tym.ed.jp/kadai/H17suu2.pdf とかで、まずは勉強でしょう。 ※ついでに、 http://d.hatena.ne.jp/okayan08/20081219/1229677932

  • edomin7777
  • ベストアンサー率40% (711/1750)
回答No.1

ニュートン法で2次方程式の解を求める数式を補足にどうぞ。

jdam500pd
質問者

補足

数式もわからないです。すみません。 プログラムの例を示してくれると大変助かります。

関連するQ&A

  • 3次方程式の求解プログラム(ニュートン法)について!

    初心者です! ニュートン法での3次方程式の求解プログラムを作成しようとしています。 ですがよく分かりません(-_-;) どなたか教えていただけないでしょうか。。。

  • Cプログラミングの問題です。ニュートン法を利用して3次方程式の解を求めるプログラミング作成。

    C言語のプログラミング問題です。 ニュートン法を利用して、3次方程式の解を求めるプログラムを作成しなさい。 とのことです。プログラムが得意ではないので、よろしくお願いします。 C言語のプログラミング問題で、ニュートン法を利用して次の3次方程式の解を求めるプログラミングを作成。というものなのですが、プログラミングが苦手でうまくできません。 y=ax^3+bx^2+cx+d (ただし、a>0とする) 任意の係数a,b,c,dを与え、y=0のときの解(実根のみ)を求めるプログラミングを作成せよ。 という問題です。プログラミングの内容を説明しなくてはいけないので、内容のほうも若干詳しく説明していただけると助かります。 どなたか教えてください、よろしくお願いします。

  • 3次方程式の実数解をニュートン法でプログラムしたいのですがどう手をつけ

    3次方程式の実数解をニュートン法でプログラムしたいのですがどう手をつけていいか分かりません・・・ √を求めたりする簡単な方法はプログラムはできました 式はx^3-7*x^2+18*x-18=0です まだまだ初心者lvを抜け出せません・・・よろしくお願いします

  • はさみうち法とニュートン法について

    はさみうち法とニュートン法のプログラムのついてのことなんですが、ひとつずつ解を求めるプログラムは作れました。例えば三次方程式だったら三つの解をすべて求めるプログラムをつくるにはどうすればいいんでしょうか?

  • 3連立非線型方程式の解法プログラム(ニュートン法)を教えてください

     未知数が3つで非常に難解な非線型方程式を3連立方程式にして解きたいと思っています。  ですが、手計算による代入法等の解法を行うと、とんでもなく式が長くなってしまいとても解けません。そこでc言語のプログラミングにて計算し、3連立方程式から3つ未知数の解を求めたいのですが、プログラミングはまったくの初心者であるため、いまいちよく分かりません。  解法プログラミングとしてはニュートン法が最も適切だとお聞きしました。ニュートン法にて例として下記のような式を解く場合、どのようにプログラムすれば良いか教えていただけたら幸いです。 例 2*x*x*x + 4*x*y + cos(z) = 0 x*x*y*z + logz + 2*y = 0 2*x*x + y*z +z*z*z +4 + e~(-xy) =0  この例は私が勝手に作成したので解は存在しているかわかりませんが、実際にこのような3連立非線型方程式を解く場合はどのようなプログラムになるか教えていただけたら幸いです。また、実際に私が解こうと思っている式はこの例より非常に長いものとなっています。あつかましいようですがそのことを考慮に入れてお教え頂けたら幸いです。何卒お願いいたしします。

  • ニュートン法

    ニュートン法 ニュートン法で「根」って出てくるんですが、これって方程式でいう「解」のことですか? いろいろネットで調べてみたのですが、あまりにも初歩的すぎるようで載ってないんです。 宜しくお願いします。

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

    C言語を使って y=x^2-4x のyの解をニュートン法を使って求める プログラムを作る課題を出されたんですが、ニュートン法が良く分かっていないので、いろいろ調べたり、人に聞いたりしたところ #include<stdio.h> #include<math.h> void main() { int counter=0; double an,g,f,sh=0.0001; printf("初期値を入力して下さい==>"); scanf("%ld",&an); do{ g=(an*an)/(2*an-4); f=2*an-4; counter++; }while(fabs(f)>sh); printf("反復回数 %d 回 y=%lf \n",counter,g); } でプログラムがこんな感じになったんですが、結局ニュートン法がどうなのかがわかりません。 なんか微分とかやるとか言われたんですが、工業系の学校で数学の授業が無いので微分についてがわかりません。 このプログラムは、コンパイルはできるんですが、動きません。 ニュートン法についてよくわからないのでどこが間違ってるかわかりません。 ニュートン法についてできるだけ分かりやすく解説してほしいです。

  • ニュートン法で解が収束しない

    こんにちは。 差分式で表した非線形方程式をニュートン法で解いています。が収束しな解あります。ニュートン法は初期値に依存しているため、初期値を可変的にしてみましたがダメでした。何かいい方法はないでしょうか? 参考になるか分かりませんが、使っているプログラムのニュートン法の計算の一部は以下のようです。 call g(x,f,df) h=f/df x=x-h if(dabs(h/x)<1.d-14) then  return endif

  • ニュートン法をC言語でプログラム

    方程式 cos^2x-0.5=0 (0<x<π) の解をニュートン法で求める という問題をC言語のプログラムを作り計算したいのですが分かりません。 自分で考えてみたプログラムは以下の通りです。 #include <stdio.h> #include <math.h> #define f1(x) cos(x)*cos(x)-0.5 #define f2(x) sin(2*x) /* ニュートン法による方程式の解 */ main() { double x0,x1,a,b,c,d,g,n; a=1; x0=0.7; n=0; while(a>0.0001){ b=x0; d=f1(b); g=f2(b); x1=x0-d/g; c=x1; a=f1(c); n=n+1; printf(" n= %f x1=%f x0=%f\n",n,x1,x0); printf(" a= %f → 解 x= %f \n", a,x1); x0=x1; } } 自分としてはこれが精一杯で、何故間違ってるのか、何をどうすればいいのか、さっぱり分かりません。どういったところが間違ってるのか可能性だけでも示して頂ければ幸いです。 参考として、ニュートン法によるプログラム例として書かれていたものを上げさせて頂きます。 例: e^x-3=0 の解をニュートン法により計算する。 #include <stdio.h> #include <math.h> #define f1(x) exp(x)-3 #define f2(x) exp(x) /* ニュートン法による方程式の解 */ main() { double x0,x1,e,a,b,c,d,g,n; a=1; x0=3; n=0; while(a>0.0001){ b=x0; d=f1(b); g=f2(b); x1=x0-d/g; c=x1; a=f1(c); n=n+1; printf(" n= %f x1=%f x0=%f\n",n,x1,x0); printf(" a= %f → 解  x= %f \n", a,x1); x0=x1; } }

  • C言語で非線形方程式を解くプログラム

    非線型方程式((a*a)+(x*x))(1-x)-bx=0 という式で a=0.07,b=0.10のときの解をすべて解きなさい(プログラムで2分法又はニュートン法を用いて解く)という問題を解きたいのですが色々なサイトを見てもわかりません もしよろしければどなたか教えていただけませんか? よろしくお願いします。

専門家に質問してみよう