当前位置:文档之家› 数值分析实验报告176453

数值分析实验报告176453

y=[0.98 0.92 0.81 0.64 0.38];
n=5
for j=1:1: n-1
h(j)=x(j+1)-x(j);
end
for j=2:1: n-1
丽h(j)/(h(j)+ha-1));
end
for j=1:1: n-1
u(j)=1-r(j);
end
for j=1:1: n-1
f(j)=(y(j+1)-y(j))/h(j);
-0.20833*(x(i)-0.2)*(x(i)-0.4)*(x (i)-0.6)-0.52083*(x(i)-0.2)*(x(i)-0.4)*(x(i)-0.6)*(x(i)-0.
8)
end
plot( xO,yO,'o',xO,yO )
hold on
y1=spli n e(x,y,xO)
plot(x0,y1,'o')
《数值分析》第二章“插值法”的相关内容,包括:牛顿多项式插值,三次样条插值,拉格朗日
插值的相应算法和相关性质。
【实验环境】(使用的软硬件)软件:
MATLAB 2012a
硬件: 电脑型号:联想Lenovo昭阳E46A笔记本电脑
操作系统:Win dows8专业版
处理器:
实验内容:
【实验方案设计】
第一步,将书上关于三种插值方法的内容转化成程序语言,用MATLAB现;
fx=[0.98 0.92 0.81 0.64 0.38];
n ewt on chzh(x,fx);
fun cti onn ewt on chzh(x,fx)
%由此函数可得差分表
for j=i:n
FF(j,i)=(FF(j,i-1)-FF(j-1,i-1))/(x(j)-x(j-i+1));
end
end for i=1: n
第二步,分别用牛顿多项式插值,三次样条插值,拉格朗日插值求解不同的问题。
【实验过程】(实验步骤、记录、数据、分析)
实验的主要步骤是:首先分析问题,根据分析设计MATLA程序,利用程序算出
问题答案,分析所得答案结果,再得出最后结论。
实验一:
已知函数在下列各点的值为
X
0.2
0.4
0.6
.0.8
1.0
f(xi)
-0.62500
0.80
0.640
-0.85000
-0.75000
-0.20833
1.00
0.380
-1.30000
-1.12500
-0.62500
-0.52083
所以有四次插值牛顿多项式为:
(x-0.2)(x-0.4)(x-0.6)(x-0.8)
(2)接下来我们求三次样条插值函数。
用三次样条插值函数由上题分析知,要求各点的M值:
实验报告
插值法
数学实验室
数值逼近
算法设计



实验概述
【实验目的及要求】
本次实验的目的是熟练《数值分析》第二章“插值法”的相关内容,掌握三种插 多项式插值,三次样条插值,拉格朗日插值,并比较三种插值方法的优劣。
本次试验要求编写牛顿多项式插值,三次样条插值,拉格朗日插值的程序编码,并 去实现。
【实验原理】
f=f(X0)+f[X0,X1](X-X0)+f[XO,X1,X2](X-X0)(X-X1)+???+f[xO,X1,???为](X-X
0)我们要知道牛顿插值多项式的系数,即均差表中得部分均差。
在MATLAB勺Editor中输入程序代码,计算牛顿插值中多项式系数的程序如下:
fun cti on varargout=n ewt on liu(vararg in) clear,clc x=[0.2 0.4 0.6 0.8 1.0];
d(j)=6*(f(j)-f(j-1))/(h(j-1)+h(j));
end
d(1)=0 d(n )=0 a=zeros( n,n);
for j=1:1: n
a(i,i)=2;
end
33
-1.33930.6 x)30.8929(x-0.4)—34.65360.6 x—)4.0857(x 0.4—),xS(x)=[0406
2
0
0
0
0
M
0
0.500
2
0.500
0
0
M
-3.7500
0
0.500
2
0.50
0
M
-4.5000
0
0
0.500
0 2
0.500
M
-6.7500
0
0
0
0
2
M
0
三次样条插值函数计算的程序如下
:
fus,t代表端点的一阶导。
x=[0.2 0.4 0.6 0.8 1.0];
0.98
0.92
0.81
0.64
0.38
试用4次牛顿插值多项式P4(x)及三次样条函数S(x)(自然边界条件)对数据进行插值。
用图给出{(Xi,yi),Xi=0.2+0.08i,i=0,1, 11, 10},P4(x)及S(x)。
(1)首先我们先求牛顿插值多项式,此处要用
已知n次牛顿插值多项式如下:
下面是画牛顿插值以及三次样条插值图形的程序:
x=[0.2 0.4 0.6 0.8 1.0];
y=[0.98 0.92 0.81 0.64 0.38];
Plot(x,y)
hold on
for i=1:1:5
y(i)=0.98-0.3*(x(i)-0.2)-0.62500*(x(i)-0.2)*(x (i)-0.4)
-0.20833*(x (i)-0.2)*(x (i)-0.4)*(x (i)-0.6)-0.52083*(x(i)-0.2)*(x(i)-0.4)*(x(i)-0.6)*(x(i)-0.
8)
end
k=[0 1 10 11]
x0=0.2+0.08*k
for i=1:1:4
y0(i)=0.98-0.3*(x(i)-0.2)-0.62500*(x(i)-0.2)*(x (i)-0.4)
hold on
s=csape(x,y,'variatio nal')
fprin tf('%4.2f,x(i));
for j=1:i
fprin tf('%10.5f,FF(i,j));
end fpri n tf('\n');
end
由MATLAB+算得:
X
f(Xi)
一阶差商
二阶差商
二阶差商
四阶差商
0.20
0.980
0.40
0.920
-0.30000
0.60
0.810
-0.55000
33
-0.89290.8X)-2.5893X-0.6) 4.08570.8 x)3.3036x 0.6),x]
-2.58931.0 x)3-0(x 0.8)33036(1.0 x)1.9(x 0.8),x [0.8,1.0][0.6,0.81
接着,在Comma nd Window里输入画图的程序代码,
相关主题