matlab中的定点迭代

fixed point iteration in matlab

所以我打算写一个 Matlab 函数,它有一个起始猜测 p 和公差 e 作为输入和输出迭代次数 n 和最终不动点近似 pn 满足 abs(pn-pn-1) <= e对于给定的函数 g。这是我目前拥有的:

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 语句?我还会在这样的声明中包括什么?

试试这个:

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