ニュートン法による非線型方程式を解くプログラムを作れ。と言う問題で、
#include <stdio.h>
#include <math.h>
float f( float x, float v);
float fd( float x, float v);
main()
{
float x0, v, max_calc, accuracy, x, n, error, newton;
x0 = 1.4;
v = 1.5;
max_calc = 0.;
accuracy = 0.;
error = newton( x0, v, accuracy, max_calc, &x, &n);
if(error == 1)
{
printf("x=%f,n=%f\n", x, n);
}
else
{
printf("正常終了しなかった\n");
}
}
int newton( float x0, float v, float accuracy, int max_calc, float *x, int *n)
{
float error, x1, y1, yd1, x2, dx;
*n = 1;
error = 0;
x1 = x0;
while(!error)
{
y1 = f(x1, v);
yd1 = fd(x1, v);
x2 = x1 - y1 / yd1;
dx = fabs(x1 - x2);
if(dx < accuracy)
{
*x = x2;
printf("error=1\n");
}
else if(0 < x1 < v)
{
*x = x2;
printf("error=2\n");
}
else if(*n > max_calc)
{
*x = x2;
printf("error=3\n");
}
else{
printf("x2=%f,*n=%f,dx=%f\n", x2, *n, dx);
x1 = x2;
*n = *n + 1;
}
}
return error;
}
で、gcc ??????.c -lm
コンパイルにかけてみると、
14: error: called object ‘newton’ is not a function
とでてきて、できません。
色々と試してみましたが、分かりません。
また、
上で作った関数を用いて、f(x)=0を満たすxのv依存性を精度accuracy=1x10-6で求め図に示せ。ただし0<v<π/2とする。
gnuplotを使ってすると思うのですが
精度の示し方と範囲の表示の仕方が分かりません。
分かる方、ぜひ、教えてください!!!
No.1ベストアンサー
- 回答日時:
main の中で
float x0, v, max_calc, accuracy, x, n, error, newton;
って書いてるじゃん. これで「newton」を関数と思ってくれというのは, いくらなんでも無茶が過ぎるというものだ.
No.2
- 回答日時:
float f( float x, float v); ← 実体がありません
float fd( float x, float v); ← 実体がありません
main()
{
float x0, v, max_calc, accuracy, x, n, error, newton; ← newtonは関数名に使用されています。max_calc, n は int型であるべきです。
これ以上、書くのが面倒なぐらいデタラメなコードです。
よく見直しましょう。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# C言語: ポインタ 5 2022/06/01 08:33
- C言語・C++・C# c言語の問題の説明、各所ごとに 5 2023/07/26 11:03
- その他(プログラミング・Web制作) Pythonでのかんたんな物理シミュレーションについての書籍 5 2023/06/02 07:37
- その他(プログラミング・Web制作) Pythonにおける物理のシミュレーションでの単位変換について 2 2023/06/02 17:11
- C言語・C++・C# プログラミングの授業の課題です 1 2023/01/17 22:15
- その他(プログラミング・Web制作) Pythonによる物理の斜方投射の位置座標表示について 2 2023/06/05 12:46
- C言語・C++・C# C言語 共用体について コマンドライン引数で値を2つ入力したときに、argv[2]の値をUNI u1 4 2022/04/25 20:34
- その他(プログラミング・Web制作) ボールの動きがスムーズに動いてかつ目盛り線描画を維持するためには 4 2023/05/31 10:01
- C言語・C++・C# C言語のエラーについて 2 2022/07/11 13:56
- その他(プログラミング・Web制作) 物理の斜方投射のシミュレーションにおける位置や速度の単位について 4 2023/05/31 09:50
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
10個出力で改行したいのですが...
-
C言語に関する質問です
-
万年カレンダーのC言語プログラ...
-
【C言語教えてください】sin波...
-
文字を動かしたい
-
球の体積と表面積を表示するプ...
-
ホームページをC言語で作りたい...
-
c言語でAからZまでを表示する...
-
コマンドラインに出力した文字...
-
CTRL+Dでループを抜けるには
-
4の倍数を論理演算で表す。。
-
printf で二進表示を行いたい。
-
C言語
-
%P と %X の違い
-
改行について 1行に何個かづ...
-
円の面積を求めるプログラミン...
-
C言語で入力した変数の値から三...
-
unsigned int型について
-
c言語で2000年以降カレンダーを...
-
C言語 文字列の比較 compare
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
C言語について
-
printf で二進表示を行いたい。
-
cshの文字列操作(0埋め)
-
10個出力で改行したいのですが...
-
コンパイルエラーについて
-
テキストカーソル位置の取得
-
strcmp
-
unsigned int型について
-
c言語でAからZまでを表示する...
-
printf( " %2d", p * q );
-
コマンドラインに出力した文字...
-
printfの出力内の文字をdefine...
-
ホームページをC言語で作りたい...
-
コマンドプロンプトがすぐ消える
-
小数点切捨て表示
-
【C言語教えてください】sin波...
-
switch分のケースを範囲数?に...
-
二つの整数値の大小比較
-
4の倍数を論理演算で表す。。
-
defineで定数が置き換えられな...
おすすめ情報