我需要编写一个定点迭代算法,它主要是编码的,但我遇到了这个错误:
未定义的函数或变量“g”。
我想将 g 定义为 g(x) = 1/2*(1+5/x)。但是,我是 matlab n00b 并且不确定如何执行此操作。任何帮助将不胜感激,谢谢。
function [y,k] = fixedpoint(g,p0,tol,max1)
for k=1:max1
p = g(p0);
err = abs(p-p0);
abserr = abs(sqrt(5)-p);
ratioerr = abserr/(abs(sqrt(5)-p0));
if (err<tol)
break
end
p0 = p;
end
if (k==max1)
disp('The algorithm did not converge')
end
y = p;