好文档 - 专业文书写作范文服务资料分享网站

数值分析计算实习题

天下 分享 时间: 加入收藏 我要投稿 点赞

插值法

1. 下列数据点的插值

x 0 1 4 9 16 25 36 49 64 y 0 1 2 3 4 5 6 7 8

可以得到平方根函数的近似,在区间[0,64]上作图. (1)用这9个点作8次多项式插值Ls(x). (2)用三次样条(第一边界条件)程序求S(x).

从得到结果看在[0,64]上,哪个插值更精确;在区间[0,1]上,两种插值哪个更精确

解:(1)拉格朗日插值多项式,求解程序如下

syms x l;

>

x1=[0 1 4 9 16 25 36 49 64]; y1=[0 1 2 3 4 5 6 7 8]; n=length(x1); Ls=sym(0); for i=1:n

l=sym(y1(i)); for k=1:i-1

l=l*(x-x1(k))/(x1(i)-x1(k)); end

for k=i+1:n

l=l*(x-x1(k))/(x1(i)-x1(k)); end Ls=Ls+l; end

Ls=simplify(Ls) %为所求插值多项式Ls(x).

输出结果为

Ls =

-/*x^2+95549/72072*x-1/00*x^8-2168879/0*x^4+19/0*x^7+657859/*x^3+33983/0*x^5-13003/00*x^6

(2)三次样条插值,程序如下

|

x1=[0 1 4 9 16 25 36 49 64]; y1=[0 1 2 3 4 5 6 7 8]; x2=[0:1:64];

y3=spline(x1,y1,x2);

p=polyfit(x2,y3,3); %得到三次样条拟合函数 S=p(1)+p(2)*x+p(3)*x^2+p(4)*x^3 %得到S(x) 输出结果为: S =

/6464-2399/88*x+/1984*x^2+2656867/624*x^3

(3)在区间[0,64]上,分别对这两种插值和标准函数作图,

\\

plot(x2,sqrt(x2),'b',x2,y2,'r',x2,y3,'y')

蓝色曲线为y=函数曲线,红色曲线为拉格朗日插值函数曲

线,黄色曲线为三次样条插值曲线

100806040200-20010203040506070

可以看到蓝色曲线与黄色曲线几乎重合,因此在区间[0,64]上三次样条插值更精确。

在[0,1]区间上由上图看不出差别,不妨代入几组数据进行比较 ,取x4=[0::1]

x4=[0::1];

sqrt(x4) %准确值 subs(Ls,'x',x4) %拉格朗日插值 spline(x1,y1,x4) %三次样条插值

运行结果为

ans =

0 ans =

0 ans =

0

从这几组数值上可以看出在[0,1]区间上,拉格朗日插值更精确。

数据拟合和最佳平方逼近 2. 有实验给出数据表

\

x y

试求3次、4次多项式的曲线拟合,再根据数据曲线形状,求一个另外函数的拟合曲线,用图示数据曲线及相应的三种拟合曲线。 解:(1)三次拟合,程序如下

sym x;

x0=[ ]; y0=[ ];

cc=polyfit(x0,y0,3);

S3=cc(1)+cc(2)*x+cc(3)*x^2+cc(4)*x^3 %三次拟合多项式 xx=x0(1)::x0(length(x0));

~

yy=polyval(cc,xx);

plot(xx,yy,'--'); hold on;

plot(x0,y0,'x'); xlabel('x'); ylabel('y');

运行结果

S3 =

-/624+437/28*x-0524945/28*x^2+409/*x^3

图像如下

2.521.5y10.5000.10.20.30.40.5x0.60.70.80.91

(2)4次多项式拟合

sym x;

x0=[ ]; y0=[ ];

cc=polyfit(x0,y0,4);

S3=cc(1)+cc(2)*x+cc(3)*x^2+cc(4)*x^3+cc(5)*x^4 xx=x0(1)::x0(length(x0)); yy=polyval(cc,xx); plot(xx,yy,'r');

'

hold on;

plot(x0,y0,'x'); xlabel('x'); ylabel('y');

运行结果

S3 =

00396215/624-347/28*x+/28*x^2-/624*x^3+849/9007*x^4

图像如下

2.521.5y10.5000.10.20.30.40.5x0.60.70.80.91

(3)另一个拟合曲线,

*

新建一个M-file程序如下:

function [C,L]=lagran(x,y) w=length(x); n=w-1;

L=zeros(w,w); for k=1:n+1 V=1;

for j=1:n+1 if k~=j

{

数值分析计算实习题

插值法1.下列数据点的插值x01491625364964y012345678可以得到平方根函数的近似,在区间[0,64]上作图.(1)用这9个点作8次多项式插值Ls(x).(2)用三次样条(第一边界条件)程序求S(x).从
推荐度:
点击下载文档文档为doc格式
3zt3g5e4gi4bptb11x4w7g2499iozz00mls
领取福利

微信扫码领取福利

微信扫码分享