#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
という計算になります。
A 回答 (1件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
> dEda = 0;
のあたりに
ddEdada = 0;
> dEda = dEda + (a * x[i] - y[i]) * x[i];
のあたりに
ddEdada += x[i]^2;
としておいて
a -= dEda/ddEdada;
だな。
余計なお世話ながら、これは
y[i]=ax[i]+ε[i]
というモデルを最小二乗法で(x,y)にフィッティングして(E=Σ(ε[i]^2)を最小にする)係数aを決める計算をニュートン法でやろうということですよね。
しかしこの問題は線形最小二乗法ですから、1回だけaを計算すれば答に到達します。だから1000回繰り返すことには意味がありませんで、繰り返しの2回目以降は(浮動小数点数計算で生じる誤差を除いて)aは変化しません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・歩いた自慢大会
- ・許せない心理テスト
- ・字面がカッコいい英単語
- ・これ何て呼びますか Part2
- ・人生で一番思い出に残ってる靴
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・初めて自分の家と他人の家が違う、と意識した時
- ・単二電池
- ・チョコミントアイス
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
プログラムでの数字につく”f”の...
-
difftime()について
-
1円、2円、3円・・・と貯金...
-
c言語で、繰り返し文の中で、0....
-
浮動小数点の比較について
-
C言語を実行すると-infが出てき...
-
至急です! マクロ定義で #defi...
-
doubleの変数にintとintの割り...
-
math.h等について
-
複素数代入解(C言語)
-
C#のプログラミングについて(...
-
C言語(プログラミング)関連の質...
-
浮動小数点の定数
-
c言語のコンパイルエラー canno...
-
C言語のプログラムで#include<m...
-
C言語の型による処理速度の違い
-
C言語のpow関数の不具合
-
int とdoubleの比較
-
P値(統計学)を求めるプログラム
-
関数の積分を求めるプログラム...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
プログラムでの数字につく”f”の...
-
doubleの変数にintとintの割り...
-
c言語で、繰り返し文の中で、0....
-
C 開放してるのにエラー(doubl...
-
C言語を実行すると-infが出てき...
-
float型とdouble型の変数の違い...
-
至急です! マクロ定義で #defi...
-
C言語の型による処理速度の違い
-
関数におけるif文とreturn文に...
-
C言語 関数プロトタイプ宣言の...
-
浮動小数点の定数
-
int とdoubleの比較
-
doubleは常に%lfとするべきなのか
-
difftime()について
-
C言語でdouble型の小数点の引き...
-
たくさんの数の平均を求める方...
-
斜辺と角度て底辺と高さを出したい
-
C言語で台形公式を使った二重積...
-
float?数字の後にLがつくもの
-
listに構造体を格納
おすすめ情報