2016-10-16 18 views
1

私は入力推測pと許容誤差eを持つMatlab関数を記述し、abs(pn-pn-1)を満たす反復回数nと最終固定点約pnを出力することを意図しています。 < = e与えられた関数g。ここに私が現在持っているものがあります:matlabの固定小数点の反復

function f = fixed(p,e) 
i=1; 
pn=g(p); 
while (abs(pn - p) <= e) 
    pn = g(p) 
    i=i+1; 
    p=pn 
end 
end 

しかし私はどこが間違っているのか分かりません。絶対差が> eの場合、別のif文を含める必要がありますか?そのような声明にはほかに何を含めるべきですか?

+0

私はあなたのコードに微妙なバグがあると思います。私の答えを見てください。 – ja72

答えて

1

これを試してみてください:

function f = fixed(p,e) 
i=1; 
pn=g(p); 
while (abs(pn - p) <= e) 
    p = pn 
    pn=g(p) 
    i=i+1; 
end 
f = pn 
end 

私はあなたが早期終了を引き起こしp=pn文の後ppnを比較したと思います。

+0

これは問題を修正しました。ありがとうございます! – Andi