すべてのカテゴリ » インターネット・パソコン » 技術・プログラミング

質問

終了

#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
という計算になります。

  • 質問者:あうり
  • 質問日時:2020-07-24 13:34:18
  • 0

関連する質問・相談

Sooda!からのお知らせ

一覧を見る