采桑子 发表于 2013-3-23 11:24

初学matlab编程出现了问题,望高手指点一下

在做切比雪夫节点的牛顿插值实验时,出现了问题,望高手指点
脚本代码:a = -1;
b = 1;
for n = 3:11;
  for k = 1:n+1
  xx(k)=(b+a)/2+((b-a)/2)*cos((2*k+1)*pi/(2*(n+1)));
  end
      x0 = linspace(-1,1,100);
      y = 1./(1+25*xx.^2);
      = Newton(xx,y,x0);
     subplot(3,3,n-2);
     fplot('1/(1+25*x^2)',[-1,1]),axis([-1,1,-0.5,1.5]);
     hold on
     plot(x0,f0,'r--'),axis([-1,1,-0.5,1.5]);
end牛顿插值函数代码:function = Newton(x,y,x0)
syms t;
if length(x)==length(y)
    n = length(x);
    c(1:n) = 0.0;
else
    disp('x的维度和y的维度不同!');
    return;
end
f = y(1);
y(1) = 0;
l = 1;
for i = 1:n-1
    for j = i + 1:n
        y1(j) = (y(j)-y(i))/(x(j) - x(i));
    end
    c(i) = y1(i + 1);
    l = l*(t - x(i));
    f = f + c(i)*l;
    simplify(f);
    y = y1;
end
f0 = subs(f,'t',x0);运行的结果明显不符合实际,但小弟我不知道哪错了,望指点,谢谢

采桑子 发表于 2013-3-23 12:43

牛顿插值函数应该没问题,其他程序调用都没出错,就是不知道脚本代码哪里错了。。。

采桑子 发表于 2013-3-23 12:48

牛顿插值函数应该没问题,其他程序调用都没出错,就是不知道脚本代码哪错了。。。

采桑子 发表于 2013-3-23 15:38

亲们,能帮帮忙么?

采桑子 发表于 2013-3-24 15:13

额。。。{:3_60:}
页: [1]
查看完整版本: 初学matlab编程出现了问题,望高手指点一下