资源描述:
《实验二数据建模实验报告.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、1.编写一个函数实现Lagrangian插值。在下面的函数中选择两个,在n个结点上(n不要太大,如5~11)分别用Lagrangian、分段线性、三次样条插值三种插值方法,计算m个插值点的函数值(m要适中,如50~100)。通过数值和图形输出,将三种插值结果与精确值进行比较。适当增加n,再做比较,由此做初步分析。(1)>>x=[0pi/2pi3*pi/22*pi];>>y=[010-10];>>xi=0:0.05:2*pi;>>yi=lagrange(x,y,xi)>>subplot(2,2,1
2、)>>plot(x,y,'o',xi,yi,'k')>>title('lagrange插值')>>yi=interp1(x,y,xi)>>subplot(2,2,2)>>plot(x,y,'o',xi,yi,'k')>>title('分段线性插值')>>yi=interp1(x,y,xi,'spline')>>subplot(2,2,3)>>plot(x,y,'o',xi,yi,'k')>>title('三次样条插值')>>subplot(2,2,4);>>fplot(inline('sin(x
3、)'),[02*pi])(2)>>x=[-1-0.500.51];>>y=[0sqrt(3)/21sqrt(3)/20];>>xi=-1:0.04:1;>>yi=lagrange(x,y,xi)>>subplot(2,2,1)>>plot(x,y,'o',xi,yi,'k')>>title('lagrange插值')>>yi=interp1(x,y,xi)>>subplot(2,2,2)>>plot(x,y,'o',xi,yi,'k')>>title('分段线性插值')>>yi=interp1(
4、x,y,xi,'spline')>>subplot(2,2,3)>>plot(x,y,'o',xi,yi,'k')>>title('三次样条插值')>>subplot(2,2,4);>>fplot(inline('(1-x^2)^0.5'),[-11])>>title('准确解')(3)>>x=[-pi/2-pi/30pi/3pi/2];>>y=[0(0.5^10)1(0.5)^100];>>xi=[-2:0.05:2];>>yi=lagrange(x,y,xi)>>subplot(2,2,1)
5、>>plot(x,y,'o',xi,yi,'k')>>title('lagrange插值')>>yi=interp1(x,y,xi)>>subplot(2,2,2)>>plot(x,y,'o',xi,yi,'k')>>title('分段线性插值')>>yi=interp1(x,y,xi,'spline')>>subplot(2,2,3)>>plot(x,y,'o',xi,yi,'k')>>title('三次样条插值')>>subplot(2,2,4);>>fplot(inline('(cos(x
6、))^10'),[-22])>>title('准确解')(4)>>x=[-2-1012];>>y=[exp(-4)exp(-1)1exp(-1)exp(-4)];>>xi=-2:0.08:2;>>yi=lagrange(x,y,xi)>>subplot(2,2,1)>>plot(x,y,'o',xi,yi,'k')>>title('lagrange插值')>>yi=interp1(x,y,xi)>>subplot(2,2,2)>>plot(x,y,'o',xi,yi,'k')>>title('分
7、段线性插值')>>yi=interp1(x,y,xi,'spline')>>subplot(2,2,3)>>plot(x,y,'o',xi,yi,'k')>>title('三次样条插值')>>subplot(2,2,4);>>fplot(inline('exp(-x^2)'),[-22])>>title('准确解')3.某天的气温变化如第3题数据表,试用最小二乘法找出这一天的气温变化规律。第3题数据表(工作表:气温变化)时刻t(h)0123456789101112温度T(℃)1514141414
8、1516182022232528时刻t(h)131415161718192021222324 温度T(℃)313231292725242220181716 >>data=xlsread('实验二数据建模实验实验报告数据')data=012345678910111215141414141516182022232528131415161718192021222324NaN313231292725242220181716NaN>>fun2=inline('c(1)*x.^2+c(2)*x+c(3)',