数学建模社区-数学中国
标题:
初学matlab编程出现了问题,望高手指点一下
[打印本页]
作者:
采桑子
时间:
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);
[f, f0] = 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 [f,f0] = 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
额。。。
欢迎光临 数学建模社区-数学中国 (http://www.madio.net/)
Powered by Discuz! X2.5