こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

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

投稿日時 - 2020-07-24 13:32:01

QNo.9776798

すぐに回答ほしいです

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

ANo.1

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

投稿日時 - 2020-07-24 13:50:50

あなたにオススメの質問