-3

反復が十分に行われると停止するように、while ループを matlab コードに追加したいと考えています。ある種の許容範囲で、例えば。1e-6。

これが今の私のコードです。だから私はある種の停止基準を追加する必要があります、私は今何度か試しましたが、うまくいきません...私はすべてのあなたの助けに感謝します!

x(1)=1;
iterations = 0;
tolerance = 1e-6;

% ここにあるはず....

for i=1:N     
    x(i+1)=x(i);        
    for j=1:N              
        x(i+1)=F(x(i),x(i+1)); 
    end
end
iter= iter + 1;
4

1 に答える 1

1

まあ、どういうわけか、各反復で行っている「エラー」を計算する必要があります。あなたの場合、次のようになります。

iter = 0;
tolerance = 1e-6;
error=1;
x=F(x);

while(error>tolerance)    
    x2=x;        
    x=F(x);
    error = x-x2;
    iter= iter + 1; 
end

最初にエラーが1に設定されていることに注意してください。これにより、エラーがループ内に確実に収まるようになります。xループ外の最初のインスタンスも計算します。F(x) は評価する関数になり、必要に応じて変更します。

ループ内でxtoの古い値を代入しx2、新しい値を計算しx、最後に誤差を計算します。ここでは次のように誤差x-x2を計算しますが、別の方法でこの誤差を計算する必要があるかもしれません。

エラーが許容範囲を下回ると、ループは終了します。

于 2014-11-17T23:52:14.050 に答える