(完整版)哈工大-数值分析上机实验报告(4)

2019-01-26 21:29

实验报告三

题目: Rung现象产生和克服

摘要:由于高次多项式插值不收敛,会产生Runge现象,本实验在给出具体的实例后,采用分段线性插值和三次样条插值的方法有效的克服了这一现象,而且还取的很好的插值效果。 前言:(目的和意义)

1. 深刻认识多项式插值的缺点。 2. 明确插值的不收敛性怎样克服。 3. 明确精度与节点和插值方法的关系。 数学原理:

在给定n+1个节点和相应的函数值以后构造n次的Lagrange插值多项式,实验结果表明(见后面的图)这种多项式并不是随着次数的升高对函数的逼近越来越好,这种现象就是Rung现象。

解决Rung现象的方法通常有分段线性插值、三次样条插值等方法。

分段线性插值:

设在区间[a, b]上,给定n+1个插值节点

a=x0

和相应的函数值y0,y1,…,yn,,求作一个插值函数,具有如下性质:

1) ,j=0,1,…,n。

2) 在每个区间[xi, xj]上是线性连续函数。则插值函数称为区间[a, b]上对应n个数据点的分段线性插值函数。

三次样条插值: 给定区间[a, b]一个分划 ⊿:a=x0

1) S(x)在每个区间[xi, xj]上是不高于3次的多项式。

2) S(x)及其2阶导数在[a, b]上连续。则称S(x)使关于分划⊿的三次样条函数。 程序设计:

本实验采用Matlab的M文件编写。其中待插值的方程写成function的方式,如下

function y=f(x); y=1/(1+25*x*x);

写成如上形式即可,下面给出主程序 Lagrange插值源程序:

n=input('将区间分为的等份数输入:\\n');

s=[-1+2/n*[0:n]];%%%给定的定点,Rf为给定的函数 x=-1:0.01:1;

f=0; for q=1:n+1;

l=1;%求插值基函数 for k=1:n+1; if k~=q;

l=l.*(x-s(k))./(s(q)-s(k)); else l=l; end end

f=f+Rf(s(q))*l;%求插值函数 end

plot(x,f,'r')%作出插值函数曲线 grid on hold on 分段线性插值源程序

clear

n=input('将区间分为的等份数输入:\\n');

s=[-1+2/n*[0:n]];%%%给定的定点,Rf为给定的函数 m=0;

hh=0.001; for x=-1:hh:1; ff=0;

for k=1:n+1;%%%求插值基函数 switch k case 1

if x<=s(2);

l=(x-s(2))./(s(1)-s(2)); else l=0; end case n+1 if x>s(n);

l=(x-s(n))./(s(n+1)-s(n)); else l=0; end otherwise

if x>=s(k-1)&x<=s(k); l=(x-s(k-1))./(s(k)-s(k-1));

else if x>=s(k)&x<=s(k+1); l=(x-s(k+1))./(s(k)-s(k+1)); else l=0; end end end

ff=ff+Rf(s(k))*l;%%求插值函数值 end m=m+1; f(m)=ff; end

%%%作出曲线 x=-1:hh:1; plot(x,f,'r'); grid on hold on

三次样条插值源程序:(采用第一边界条件)

clear

n=input('将区间分为的等份数输入:\\n');


(完整版)哈工大-数值分析上机实验报告(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:2014~2015学年度第二学期学情检测--九年级数学的试题

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: