-2

2 つの異なる開始点を使用してエラーを最小限に抑えるために、ニュートン アルゴリズムの次のコードを記述しました。それらは、誤差関数等高線の楕円の主軸上にあってはなりません。

R=[0.5 -0.25;-0.25 0.5];
P=[0;-0.866];
Pt=transpose(P);
Rinv=[2.67 1.33;1.33 2.67];
M=6;  %number of iterations
mu=1/2;  %step size
for k=1:M
    W(1)=1.16; %initial weight value
    W(2)=2.32;
    G(k)=2*R*W(k)-2*P;
end
for k=2:M
    W(1)=1.16;
    W(2)=2.32;
    W(k+1)=W(k)-mu*Rinv*G(k);
end
for k=1:M
    Wtrans(k)=trans(W(k));
    E(k)=Wtrans(k)*R*W(k)-2*Pt*W(k)+2;   % error function.
end
plot(E(k));

このコードのどこが間違っているのか教えてください。私はそれをプロットすることができません!

4

1 に答える 1

0

コードの最後の行に到達すると、k はあなたが考えるような 1:M ではなく、単なるスカラー値 M です。plot(E(k)) の代わりに plot(E) を実行してください。

于 2013-02-16T01:32:26.527 に答える