前提・実現したいこと
C言語で、離散的に与えられた関数f(x)の1次微分の値をマクロを用いた数値計算で近似値として求め、それをcsvファイル出力したい。
ここでは、f(x)=7x^4-5x^3+3x,f'(x)=(f(x+h)-f(x-h))/2h としています。
xを1.99から2.01まで、0.01間隔で変化させます。
発生している問題・エラーメッセージ
f'(x)を計算する式の"dfdx0 = f((x0 + h)) - f((x0 - h)) / (2.0 * h)"の"/"の下に赤い波線が引かれ、「式が必要です」と出ます。
該当のソースコード
C
1# include<stdio.h> 2# define _USE_MATH_DEFINES 3# include<math.h> 4#define f(x0) (7.0 * pow(x0, 4.0) - 5.0 * pow(x0, 3.0) + 3.0 * x0); 5FILE* fp; 6int main(void) 7{ 8 fopen_s(&fp, "aiueo.csv", "w"); 9 double x0; 10 double h = 0.01; 11 double fx0; 12 double dfdx0; 13 14 for (x0 = 1.99; x0 <= 2.01; x0 += h) { 15 fx0 = f(x0); 16 17 dfdx0 = f((x0 + h)) - f((x0 - h)) / (2.0 * h);//この式の"/"に赤い波線が引かれエラーとなっています。 18 19 fprintf(fp, "%lf,%lf,%lf,%lf\n", x0, fx0, h, dfdx0); 20 } 21 22 fclose(fp); 23 24 return(0); 25}
試したこと
エラーが出ている式の形を変えたりしました。
補足情報(FW/ツールのバージョンなど)
visual studio 2019 を使用しています。
回答2件
あなたの回答
tips
プレビュー