在Interetion方法中使用MATLAB函数时,如何在MATLAB函数中声明X0



这是我的代码(应该使用牛顿方法找到多项式根(:

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 ;

但是它不起作用。

我在这里没有指代代码的逻辑 - 牛顿方法的实现,我只是指matlab语言的语法和规则。

  1. 您不能在MATLAB中使用z(0),因为索引从1开始,而不是0(例如C,C 和其他编程语言(。您的z(0)需要是z(1)
  2. 您不能在函数声明中使用 z(index),只能放置变量名
  3. 如果n是向量a的大小,则您不需要作为参数,只需在功能主体中使用n = length(a)

最新更新