プロが教える店舗&オフィスのセキュリティ対策術

#include <stdio.h>

int main(){
double a = 0.014;
int i,j,k;double x[] = {1,3,4,5.5,7};
double y[] = {3,5,6,8,11};
double N = 0;
double M = 0;
for(j = 1;j <= 1000;j *= 10){
for(k = 0;k < j;k++){
for(i = 0;i < 5;i++){
N += ((a * x[i]) - y[i]) * x[i];
}
for (i = 0;i < 5;i++) {
M += x[i] * x[i];
}
a = a - (N * (1 / M));
N = 0;
M = 0;
}
printf("%d %.8lf\n",j,a);
}
return 0;
}

このプログラムは最急降下法で計算していますが、この計算する部分をニュートン法に変えたプログラムがわかる方教えていただきたいです。

A 回答 (1件)

このあたりを参考に修正をしていってはどうでしょうか。



<プログラム例>
最急降下法
https://www.sist.ac.jp/~suganuma/kougi/other_lec …
ニュートン法
https://www.sist.ac.jp/~suganuma/kougi/other_lec …

なお、ホームページはこちらです。
https://www.sist.ac.jp/~suganuma/kougi/other_lec …
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!