如何解决在Matlab上的每次迭代中存储错误的问题-“无法识别的变量”
我已经编写了经过修改的牛顿方法代码,并且希望在每次迭代与迭代之间绘制误差,但是在我的代码运行之后,Matlab无法识别我的误差函数或迭代。
function[x,k,e] = mynewton(x0,tol)
f = @(x) (x-1).^5*exp(x);
df = @(x) 5*(x-1).^4*exp(x)+(x-1).^5*exp(x);
kMax = 200;
format long
x=x0;
y=f(x);
e = [];
k = 0;
disp(' k x error')
while abs(y) > tol && k < kMax
k=k+1;
x = x - f(x)/df(x);
y = f(x);
e_k = abs(x-1);
e(k) = e_k;
disp([k x e_k])
end
end
输出将是3列,每一步分别显示k,x和e_k,但不会将这些值正确存储到向量中。而是显示
>> k
Unrecognized function or variable 'k'.
我在做什么错了?
任何建议都非常感谢!
解决方法
您需要以以下方式调用函数
:[x,k,e] = mynewton( x0,tol);
此调用之后,您可以在命令窗口中输入k并查看其值。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。