南京信息工程大学数值分析实验报告(一)
实验名称数值分析 实验日期 2016.5.13得分指导教师
专业 数学与应用数学 年级 大二 班级 应用数学1班 姓名 丁晨 学号 20141323001
一、 实验目的
(1) 了解插值的基本原理
(2) 了解拉格朗日插值,牛顿差值和样条差值的基本思想; 二、实验内容
1.已知函数在下列各点的值为 xi f(xi) 0.2 0.98 0.4 0.92 0.6 0.81 0.8 0.64 1.0 0.38 试用4次牛顿插值多项式P4(x)及三次样条函数S(x)对数据进行插值。用图给出{(xi,yi),xi=0.2+0.08i,i=0,1,11,10}P4(x)及S(x)
2.在区间[1,1]上,取n=10,20用两组等距节点对龙格函数f(x)=
1作三次样条差值,21?25x对每个n分别画出差值函数和f(x)的图形。 3.
三、实验求解 1.程序代码: clc;
x1=[0.2 0.4 0.6 0.8 1.0];
y1=[0.98 0.92 0.81 0.64 0.38]; n=length(y1); c=y1(:);
for j=2:n %求差商 for i=n:-1:j
c(i)=(c(i)-c(i-1))/(x1(i)-x1(i-j+1)); end end
syms x df d;
df(1)=1;d(1)=y1(1);
for i=2:n %求牛顿差值多项式 df(i)=df(i-1)*(x-x1(i-1)); d(i)=c(i-1)*df(i); end
P4=vpa(sum(d),5) %P4即为4次牛顿插值多项式,并保留小数点后5位数 pp=csape(x1,y1, 'variational');%调用三次样条函数 q=pp.coefs;
q1=q(1,:)*[(x-.2)^3;(x-.2)^2;(x-.2);1]; q1=vpa(collect(q1),5)
q2=q(1,:)*[(x-.4)^3;(x-.4)^2;(x-.4);1]; q2=vpa(collect(q2),5)
q3=q(1,:)*[(x-.6)^3;(x-.6)^2;(x-.6);1]; q3=vpa(collect(q3),5)
q4=q(1,:)*[(x-.8)^3;(x-.8)^2;(x-.8);1]; q4=vpa(collect(q4),5)%求解并化简多项式
运行matlab程序结果如下:
P4 =0.98*x - 0.3*(x - 0.2)*(x - 0.4) - 0.625*(x - 0.2)*(x - 0.4)*(x - 0.6) - 0.20833*(x - 0.2)*(x - 0.4)*(x - 0.8)*(x - 0.6) + 0.784
q1 =- 1.3393*x^3 + 0.80357*x^2 - 0.40714*x + 1.04
q2 =- 1.3393*x^3 + 1.6071*x^2 - 0.88929*x + 1.1643
q3 =- 1.3393*x^3 + 2.4107*x^2 - 1.6929*x + 1.4171
q4 =- 1.3393*x^3 + 3.2143*x^2 - 2.8179*x + 1.8629
1.110.90.80.70.60.50.4 0已知的点牛顿插值多项式三次样条函数 0.10.20.30.40.50.60.70.80.91
所以
4次牛顿差值多项式P4(x)=0.98*x - 0.3*(x - 0.2)*(x - 0.4) - 0.625*(x - 0.2)*(x
- 0.4)*(x - 0.6) - 0.20833*(x - 0.2)*(x - 0.4)*(x - 0.8)*(x - 0.6) + 0.784
三次样条差值多项式Q(x)?
???1.3393x3?0.80357x2?0.40714x?1.04,x?[0.2,0.4]???1.3393x3?1.6071x2?0.88929x?1.1643,x?[0.4,0.6]??1.3393x3?2.4107x2?1.6929x?1.4171,x?[0.6,0.8]???1.3393x3?3.2143x2?2.8179x?1.8629,x?[0.8,1.0]
2.三次样条差值: 1.M文件: x=-1:0.0001:1; y=1./(1+25*x.^2); x1=-1:0.2:1;
y1=interp1(x,y,x1,'spline'); plot(x1,y1,'o',x,y) grid on xlabel('x') ylabel('y') y1
matlab运行结果如下: y1 =
0.0385 0.0588 0.1000 0.2000 0.5000 1.0000 0.1000 0.0588 0.0385
0.5000 0.2000

