初学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);运行的结果明显不符合实际,但小弟我不知道哪错了,望指点,谢谢 牛顿插值函数应该没问题,其他程序调用都没出错,就是不知道脚本代码哪里错了。。。 牛顿插值函数应该没问题,其他程序调用都没出错,就是不知道脚本代码哪错了。。。 亲们,能帮帮忙么? 额。。。{:3_60:}
页:
[1]