No.2
- 回答日時:
2分法にしても、ニュートン法にしても、初期値の選び方を間違えると失敗するという、ちょっと手強い関数ですね。
ただ、「こんな場合にはうまくいきません」ということで、必ずテキストに説明があるケースなのでそこを復習するという感じかと。
ちなみに、f(x) = ((a*a)+(x*x))(1-x)-bx のグラフは添付した形になります。
難しさがわかっていただけるといいかなと。
No.3ベストアンサー
- 回答日時:
これは GnuPlot との併設が必要な引っかけ問題ですね。
http://t16web.lanl.gov/Kawano/gnuplot/
答えは、一見、3次方程式から3つあるように見えますが、実は一つなんですね。
x->+0 の箇所は、 y=0 であるかのように見えますが交わっておらず、y=0 に近似しており、そのxの値を得ようと精度を上げてやると無限ループに落ちてしまう、いやはや、やっかいな問題です。
出題者も良くおわかりのようで。まあ、 GOSA の精度をあげてお試しください。
/* 二分法:
result x= 0.879862 count= 9 gosa= 1.000000e-02
*/
#include <stdio.h>
#include <math.h>//sin(),cos()等用
#define GOSA1e-2 //←「1e-3」以上にすると無限ループに落ちる
#define BEGIN0.5 //0.0
#define END1.0 //0.2
#define F(x) (0.07*0.07+(x*x))*(1.0-x)-0.1*x
int main(void) {
int count = 0;
double x0, x1, x, f0, f1, tx, temp_fx = 1.0;
x0 = BEGIN;
x1 = END;
while (fabs(temp_fx) > GOSA) {
count += 1;
f0 = F(x0);
f1 = F(x1);
x = (x0 * f1 - x1 * f0) / (f1 - f0);
temp_fx=F(x);
fprintf(stderr, "%3d: \tx0= %f \tx1= %f\t x= %f \t fx= %f\n", count, x0, x1, x, temp_fx);
tx = x;
if (f0 * temp_fx < 0.0)
x0 = x;
else
x1 = x;
}
printf("result x= %f count= %d gosa= %e\n", x, count, GOSA);
return 0;
}
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 数学 3次方程式の解で実部が正のものが存在する条件の調べ方 0 2023/03/23 15:07
- 数学 微分方程式の非線形2階微分方程式が解けないので教えてください!特殊解とその見つけ方だけでもお願いしま 4 2022/11/21 23:35
- 数学 微分方程式 二階非線形 の問題で質問です。 ① y''-4y'+5y=e^(2x)/sinx ②y" 2 2022/11/07 23:57
- 数学 数学の問題で法線ベクトルについて 5 2022/11/13 12:45
- 数学 球面と接する直線の軌跡が表す領域 4 2023/07/30 12:37
- 物理学 量子力学 球面調和関数 導出 方位角成分 微分方程式の解 2 2022/07/02 13:40
- 物理学 至急お願いします。高1力学です。 添付写真の問題で、(d)まで解きすすめたのですが最後方程式を解くだ 1 2022/08/01 23:07
- 高校 対数方程式につきまして 4 2022/05/05 07:55
- 数学 2階非線形微分方程式の右辺が{e^(-x)}√xになってしまったのですが特殊解はどのように見つけたら 1 2022/11/14 22:04
- 中学校 数学の問題について教えてください。 10 2022/12/04 16:28
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
こうもりの撃退法
-
2次元配列を返す関数について
-
C#を勉強していて、指定したフ...
-
sublimit textっていうエディタ...
-
演奏記号の・・・・
-
三項でたとえば交換って
-
他のフォームから別のフォーム...
-
C言語のOpenGLで複数のテクスチ...
-
VB.NETでのイベントの途中終了
-
VS CodeでTEXファイルにPDF形式...
-
VBAでcallで呼び出したsubを終...
-
再帰呼び出し
-
エクセルVBAでテキストボッ...
-
タイムアウトする仕組みを作りたい
-
Excel ユーザーフォームで計算 ...
-
【VB6.0】 あるフォームから他...
-
C#のループでtextboxに値を入れ...
-
C言語のサフィックスについて
-
【VBS】クリップボード操作につ...
-
VB.NETのテキストボックスで、...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
二点の座標から距離や角度を求...
-
エクセル・VBAでテキストボック...
-
複数条件のオートフィルタ(VBA)
-
VC++ (byte)(col & 0xFF) の意味
-
VB.NET)コンボボックスの連動に...
-
エクセルのVBAでの7×7の魔方陣...
-
検索結果の指定列をリストボッ...
-
for文の質問です。
-
VBAにおけるニュートン法
-
テキストファイルの読み込みと...
-
カラーの16進表記の足し算
-
2次元配列を返す関数について
-
一行飛ばしで合計
-
どいつもこいつもbot3かよ
-
小数点以下五桁一致の判定
-
こうもりの撃退法
-
4変数の非線形方程式のときかた
-
ドラゴン曲線を再帰で書く
-
三項でたとえば交換って
-
VBA public変数はどのようなこ...
おすすめ情報