我需要编写一个定点迭代算法,它主要是编码的,但我遇到了这个错误:
未定义的函数或变量“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;
最佳答案
你可以将g
定义为匿名函数
g = @(x)1/2*(1+5/x)
然后以通常的方式调用你的函数fixedpoint
关于matlab - 未定义函数或变量 Matlab,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18938200/