• 締切済み

数値計算法の二分法、ニュートン法のc言語プログラムについて

y=x^2-2x+8について二分法、ニュートン法より範囲[0, 1.5]でy=0となるxの値を求めるプログラムってどうやればいいですか?

みんなの回答

  • banakona
  • ベストアンサー率45% (222/489)
回答No.1

実数解がないのでどちらの方法でも無理。 式が間違っていると思います。

noname#122826
質問者

お礼

そうですか。 ありがとうございます。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • ニュートン法を使って解を求める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); } でプログラムがこんな感じになったんですが、結局ニュートン法がどうなのかがわかりません。 なんか微分とかやるとか言われたんですが、工業系の学校で数学の授業が無いので微分についてがわかりません。 このプログラムは、コンパイルはできるんですが、動きません。 ニュートン法についてよくわからないのでどこが間違ってるかわかりません。 ニュートン法についてできるだけ分かりやすく解説してほしいです。

  • ニュートン前進補完法のプログラムをC言語でしているのですが。プログラム

    ニュートン前進補完法のプログラムをC言語でしているのですが。プログラムが不得意なのでイマイチプログラムへの直し方がわかりません。誰かサンプルプログラムを作っていただけないでしょうか?? やりたいことは、xの値とそれに対してのfの値を何点かについて入力をすることでその点と点の間のxの値の時のfの値を出力するプログラムです。

  • C言語の二分法のプログラムについて

    二分法によりルート2の近似値を求めるプログラム、ってどうやって作ったらいいんですか? ちなみに初期値は2で、収束条件は10^-5です。 収束までの回数も求めなきゃいけません(ニュートン法と比較するため。ちなみにニュートン法はできました。) 似たような質問を見つけたのですが、どれも、難しいプログラムばかりで解読ができません。 関数とかif else文とかwhile文とかfor文とか、そういう簡単なのしか習ってないので、それで作れる範囲で教えてくださる方、 いらっしゃいましたら、よろしくお願いします。

  • ニュートン法を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; } }

  • ニュートン法

    ニュートン法の問題です。 全平面で正則な複素関数f(z)=u(x,y)+i*v(x,y)(z=x+iy) の零点を求めるニュートン法は z(k+1)=z(k)-f(z(k))/f'(z(k)) ですが、 これは2元連立方程式 u(x,y)=0 v(x,y)=0 を解くニュートン法と等価であることを示せ という問題です。 とっかかりからわからないのですが、複素関数の微分の表現の仕方がわからないのと、u(x,y)=0のように2変数でしかも、抽象的に書かれるとニュートン法がわかりにくくなっているという点で困っています。 分かる方、解説よろしくお願いします。

  • ニュートン法のプログラムの問題です。

    ニュートン法のプログラムを書き換える問題なのですが、考えたものを実行してみても上手く値が求められなかったので質問させてください。 ・問題 ニュートン法でbのn乗根を求めるプログラムです。 これを、bを与えたときx/(x^2+1)=bとなるxを求めるプログラムに書き換えなさい。 10 input "n,b";n,b 20 x=1 30 f=x^n-b 40 d1=n*x^(n-1) 50 x1=x-f/d1 60 e=1*10^(-6) 70 if abs(f)<e then goto 100 80 x=x1 85 print x 90 goto 30 100 end 考えたものとしては、 f(x) = x^n - b を f(x) = x/(x^2 + 1) - b に、 d1(x) = n*x^(n - 1) を d1(x) = 1/(x^2 + 1) - 2*x^2*/((x^2 + 1)^2)に 改変するという方法だったんですが… 考え方とどのように改変すればこの値が求められるのか、わかる方教えてください! ちょっと急ぎなのでできれば簡潔に書いていただけると助かります… よろしくお願いします!

  • ニュートンラフソン法について

    ニュートンラフソン法についての質問です。ニュートンラフソン法を利用するプログラム課題は理解できるのですが、別の問題の一つである次の問題をどう考えていけばよいのかわからないです。 「次の連立方程式f(x,y)=0、g(x,y)=0に対するニュートンラフソン法の反復公式を誘導せよ。」  参考書を調べますと一般のニュートンラフソン法はテーラー展開を用いて証明しているので、これも何らかの形でテーラー展開を利用するのではないかと思いますが、そこから先へ進めなくて困っています。よろしければどなたかコメントお願いいたします。

  • 数値計算 ニュートン法に関する問題です

    この問題のやり方を教えてください nの平方根をニュートン法で求める.n=1 √n が f(x)=(x^2)-n=0 の解であることを利用し、ニュートン法を用いて √n を求めるための漸化式を示せ. よろしくおねがいします 

  • ニュートン法の計算について

    3次方程式 X^3+3X^2-3X-4=0 は区間(-4,-3),(-1,0),(1,2)にそれぞれ1つの実数解をもつ。ニュートン法により、3つの実数解を小数点以下8桁まで正確に求めよ。 上の問題をニュートン法で解きたいのですが、初期値はどうすればいいのでしょうか? -4、-1、1 でいいのでしょうか? 初期値を決めれば、あとは3つの初期値を使って普通にニュートン法で計算すれば解けますよね?? 数学が苦手で困っています。 回答お願いします。

  • ニュートン法の収束性について

    http://maya.phys.kyushu-u.ac.jp/~knomura/education/numerical-physics/text1/node5.html ニュートン法は2次収束すると習ったのですが これはどんな関数でも2次収束すると言って 良いのでしょうか? 実際にプログラムを組んでみて y=X^4+7X^3-27X^2+29X-10 の収束性について調べてみました。 この関数は1で重解をもつので初期点を3にして 試してみた所1次収束性は確認できたのですが 2次収束性は確認できませんでした。 これはプログラム上のミスでしょうか? それともニュートン法の2次収束性は全ての関数には いえないものなのでしょうか?