实验二 第二类边界条件三次样条差值多项式
一、 实验目的
通过本实验可以是同学们更深入的理解三次样条插值多项式的基本原理,并
通过数值算例使同学们更好地领会三次样条差值多项式具有较高的准确性。
二.实验内容
程序:
for i=1:n-1
h(i)=x(i+1)-x(i);
end
a2(1)=1;
g(1)=3*(y(2)-y(1))/h(1)-p1*h(1)/2;
for k=2:n-1
a1(k-1)=h(k)/(h(k)+h(k-1));
a2(k)=h(k-1)/(h(k)+h(k-1));
g(k)=3*a2(k)*(y(k+1)-y(k))/h(k)+3*a1(k-1)*(y(k)-y(k-1))/h(k-1);
end
a1(n-1)=1;
g(n)=3*(y(n)-y(n-1))/h(n-1)-pn*h(n-1)/2;
b1(1)=2;
m(1)=g(1)/2;
b2(1)=a2(1)/b1(1);
for i=2:n
b1(i)=2-a1(i-1)*b2(i-1);
if(i~=n)
b2(i)=a2(i)/b1(i);
end
m(i)=(g(i)-a1(i-1)*m(i-1))/b1(i);
end
for i=n-1:-1:1
m(i)=m(i)-b2(i)*m(i+1);
end
for j=1:p
for i=1:n
if((u(j)>=x(i))&(u(j)
s(j)=s(j)+(u(j)-x(k))*(u(j)-x(k+1))^2*m(k)/(h(k))^2;
s(j)=s(j)+(u(j)-x(k+1))*(u(j)-x(k))^2*m(k+1)/(h(k))^2;
end
s
三、实验任务
(1)将上述程序录入计算机,并进行调试。
(2)用调试好的程序解决如下问题;
已知正弦函数表
ix 0.5
0.7
0.9
1.1
1.3
1.5
1.7
1.9
0.4794 0.6442 0.7833 0.8912 0.9636 0.9775 0.9917 0.9463
if
以及边界条件 S’’(0.5)=-0.4794,S”(1.9)=0.9463,用三次样条差值多
项式 S(x)计算诸节点中点处的函数值,并将计算结果与sin x 在
相应点的数值相比较。
计算结果
iu
0.6
0.8
1.0
1.2
1.4
1.6
1.8
)iS u
(
sin iu
0.56562 0.71733 0.84144 0.93206 0.98547 0.99959 0.97386
0.56464 0.71736 0.84147 0.93204 0.98545 0.99957 0.97385
(3)根据 Lagrange 插值多项式基本原理,编制程序,并计算下
面的数值算例。
给定的函数 ( )
f x =
1
1 x
2
,(-5x5),取等距节点 kx =-5+kh,其
中 h=10/n,n=10,20,40。边界条件为 S”( 0x )=f”( 0x ),S”( nx )=f”( nx )。
f x 以 及 10 次
S
用 上 述 算 法 计 算 10
Lagrange 插值多项式 10( )xL 在给定点处的函数值进行比较。
( )
x
S
20
( )
x
S , 并 于 函 数 ( )
( )
x
40
计算结果如书 274 页图