【发布时间】:2019-05-16 09:10:25
【问题描述】:
这是我的代码(应该使用牛顿法求多项式根):
function z = newton(n, m ,z(0), a)
b(1)=a(0);
c(1)=a(0);
for k=1:1:m
for j=2:1:n+1
b(j)=z(k)*b(b-1)+a(j);
end
for s=2:1:n
c(s)=z(k)*c(s-1)+b(s);
end
h(k)=-b(n)/c(n-1);
z(k+1)=z(k)+h(k);
end
end
我不能调用这个函数,因为 Matlab 在z(0) 输入参数上给了我一个错误。 a 是一个向量,n 是向量的大小,m 是迭代次数,z(0) 是第一个 x,从它开始迭代。你能帮我吗,也许还有另一种方法来声明第一个x?
我试过写:
function z = newton(n, m ,z, a)
z(0)=z ;
但它不起作用。
【问题讨论】:
-
在你的函数中,你永远不会分配
z(1),因为z(k+1)=...是k=1,...。另一方面,您在b(j)=z(k)*...中使用z(1)来表示k=1,...。所以,我猜z(1)=z应该没问题!?
标签: matlab function input methods