- ベストアンサー
数値計算??
f(x)=x-cosx=0 の解を求めるプログラムを教えて下さい。 ニュートン法と逐次代入法で 初期値は0.5、収束判定は10の-10乗 と先生が言ってたのですが 全くわかりません。 お願いします。
- みんなの回答 (2)
- 専門家の回答
関連するQ&A
- f(x)=0の近次解を求める数値計算について
方程式 f(x)=0 の近次解を求める数値計算に関する質問です。 代表的な計算方法には二分法、はさみうち法、ニュートン法、逐次代入法 などがあるようですが、 f(x)が以下のような関数であるときどのように近似解を求めたらよいでしょうか? (1) f(x)はどのxに対しても常にf(x)≧0となるような関数 (2) f(x)=0 となるxはただ一つだけである (2) f(x)は非常に複雑な関数でf(x)を微分するのは困難 趣味で行っている3Dのモデリングに関するプログラム中に必要になった関数で、 このような関数に対し、二分法をベースにしたプログラムをつくってみましたが、 非常にだらだらとしたアルゴリズムでなっとくできません。 この関数に適したよいを御存知の方おられましたら御回答くださいませ。 またもしf(x)が (4) f(x)= |2x+3| のように f(x)が0になるまでは単調減少で、0になってからは単調増加である という条件がさらに加わった場合どうなるかについてもご解答いただけると助かります。
- ベストアンサー
- 数学・算数
- ニュートン法で解が収束しない
こんにちは。 差分式で表した非線形方程式をニュートン法で解いています。が収束しな解あります。ニュートン法は初期値に依存しているため、初期値を可変的にしてみましたがダメでした。何かいい方法はないでしょうか? 参考になるか分かりませんが、使っているプログラムのニュートン法の計算の一部は以下のようです。 call g(x,f,df) h=f/df x=x-h if(dabs(h/x)<1.d-14) then return endif
- ベストアンサー
- その他(学問・教育)
- 数値計算 ニュートン法に関する問題です
この問題のやり方を教えてください 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つの初期値を使って普通にニュートン法で計算すれば解けますよね?? 数学が苦手で困っています。 回答お願いします。
- 締切済み
- 数学・算数
- 最小二乗法 ニュートン法
ニュートン法で最小二乗法を使うとき、x+Δxを近似解として、テイラー展開して f(x+Δx)=f(x)+f’(x)Δx この式から新しい近似解を得ると思います。 この時のfは何の関数なのでしょうか? 残差の二乗和でいいのでしょうか? わかる方お願いします。
- ベストアンサー
- 数学・算数
- ニュートン法
excelVBAを使っています。 ニュートン法を使って3次方程式を解こうとしています。 例題)x^3-6x^2+11x-6=0 x=1,2,3 初期値x0によって、解がx=1,2,3のどれかに収束します。 ここで、全ての実数解を求める考え方をご教授下さい。 f(x)=x^3-6x^2+11x-6=0の解x1が求まった後、 f(x)=(x-x1)g(x)なるg(x)を求めるといったことが、あるサイトに書かれてあったのですが、なぜそうなるのか理解できません・・・
- ベストアンサー
- その他(プログラミング・開発)
- C言語課題(数値計算)お願いします。
課題内容 ニュートン法を用いて√2の値を求められるプログラムを作る。 10ケタまで表示する。 書いてみたソースコード #include <stdio.h> #include <stdlib.h> #include <math.h> #define max 1000 //最大繰り返し回数 #define eps 1.0e-10 //収束条件 double f(double x); double df(double x); void newton(void); int main() { newton(); return 0; } void newton(void) { int count; double a,newa; count=0; printf("初期値を入力してください。\n"); scanf("%lf",&a); for(;;) { count++; newa=a-f(a)/df(a); if(fabs(newa-a)<eps) break; a=newa; if(count==max) { printf("収束しませんでした。\n"); exit(1); } } printf("解の値は %f\n収束するのに %d 回かかりました。\n", newa,count); } double f(double x) { return x*x-2; } double df(double x) { return 2x; } コンパイルできません。 間違いとどうすればよいかを教えていただけるとありがたいです!!!
- 締切済み
- C・C++・C#
- ドラム交換後、ドラムカウンターのリセットをすると、4つのランプが点灯状態で消えない
- 使用している製品はHL-L2320Dで、Windows8.1のパソコンにUSBケーブル接続しています
- 関連するソフト・アプリはなく、電話回線は特に指定していません
お礼
2通りの方法、両方教えて下さり有難うございました。 感動しました。