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
语句导致提前退出后比较 p
和 pn
。
所以我打算写一个 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
语句导致提前退出后比较 p
和 pn
。