• 締切済み

c言語

#include<stdio.h> #define N 5 int main(){ double x[] = {1, 3, 4, 5.5, 7}; double y[] = {3, 5, 6, 8, 11}; double a = 0.028; double eta = 0.001; double dEda; int ite, i ; for (ite = 1; ite <= 1000; ++ite){ dEda = 0; for(i = 0; i < N; i++){ dEda = dEda + (a * x[i] - y[i]) * x[i]; } a = if (ite == 1 || ite == 10 || ite == 100) printf("%4d: a = %.8lf\n", ite, a); } printf("%4d: a = %.8lf\n", 1000, a); return 0; } このプログラムの a = の部分にa-(dE/da)*((d^2)E/d(a^2))^-1を代入したいのですがうまくいきません。((d^2)E/d(a^2))の値を格納する変数を用意してちゃんと計算できるようにするにはどうすればよいでしょうか? 補足 dE/da = Σ(ax-y)*x (d^2)E/d(a^2) = Σx^2 という計算になります。

みんなの回答

noname#252332
noname#252332
回答No.1

 掛け算の演算子*を忘れているんじゃないですか。

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

関連するQ&A