(完整版)哈工大-数值分析上机实验报告 联系客服

发布时间 : 星期二 文章(完整版)哈工大-数值分析上机实验报告更新完毕开始阅读2007691d302b3169a45177232f60ddccdb38e645

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');