数学建模社区-数学中国

标题: 初学matlab编程出现了问题,望高手指点一下 [打印本页]

作者: 采桑子    时间: 2013-3-23 11:24
标题: 初学matlab编程出现了问题,望高手指点一下
在做切比雪夫节点的牛顿插值实验时,出现了问题,望高手指点
脚本代码:
  1. a = -1;
  2. b = 1;
  3. for n = 3:11;
  4.   for k = 1:n+1
  5.   xx(k)=(b+a)/2+((b-a)/2)*cos((2*k+1)*pi/(2*(n+1)));
  6.   end
  7.       x0 = linspace(-1,1,100);
  8.       y = 1./(1+25*xx.^2);
  9.      [f, f0] = Newton(xx,y,x0);
  10.      subplot(3,3,n-2);
  11.      fplot('1/(1+25*x^2)',[-1,1]),axis([-1,1,-0.5,1.5]);
  12.      hold on
  13.      plot(x0,f0,'r--'),axis([-1,1,-0.5,1.5]);
  14. end
复制代码
牛顿插值函数代码:
  1. function [f,f0] = Newton(x,y,x0)
  2. syms t;
  3. if length(x)==length(y)
  4.     n = length(x);
  5.     c(1:n) = 0.0;
  6. else
  7.     disp('x的维度和y的维度不同!');
  8.     return;
  9. end
  10. f = y(1);
  11. y(1) = 0;
  12. l = 1;
  13. for i = 1:n-1
  14.     for j = i + 1:n
  15.         y1(j) = (y(j)-y(i))/(x(j) - x(i));
  16.     end
  17.     c(i) = y1(i + 1);
  18.     l = l*(t - x(i));
  19.     f = f + c(i)*l;
  20.     simplify(f);
  21.     y = y1;
  22. end
  23. 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
额。。。




欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) Powered by Discuz! X2.5