山东师范大学数学科学学院实验报告
x 0.1 0.5 1 1.5 2 2.5 3
y 0.95 0.84 0.86 1.06 1.5 0.72 1.9
y' 1 1.5 2 2.5 3 3.5 4
求质点在时刻1.8时的速度,并画出插值多项式的图像。
1)运用Hermite插值法画出图像,如图4-1,并求质点在时刻1.8时的速度。
>>clear
>>clc
>>X=[0.1 0.5 1 1.5 2 2.5 3;0.95 0.84 0.86 1.06 1.5 0.72 1.9;1 1.5 2 2.5 3 3.5 4];
>> x=0.1:0.01:3;
>> H=Hermite1(X,x);
>> plot(x,H)
>> hold on
>> plot(X(1,:),X(2,:),'r*')
>> H1_8=Hermite(X,1.8);
>> plot(1.8,H1_8,'go')
>> legend('插值图像','原始点','目标点');
图4-1
二、验证高次插值的Runge现象
问题分析和算法设计
(一)Language插值代码
function [Ln] =Lagrange(X,x)
%请输入2*n+1矩阵X,X中第一行每个元素都是插值节点,X中第二行每个元素都是插值节点对应的函数值;
%第二章P24例一拉格朗日插值
n=size(X,2);d=0;
for m=1:1:n
if x==X(1,m);
d=m;
break
end
end
运行结果和总结 运行结果 例:
给定函数55,11
)(2
≤≤-+=
x x
x f ; (1) 验证表2-10的误差结果(高次插值的Runge 现象);
(2) 以0.1为步长分别进行Language 插值、分段线性插值、分段三次Hermite
插值,画出三种插值函数以及f(x)的图像,比较三种插值结果。
(1)验证表2-10的误差结果(高次插值的Runge 现象);
>>clear >>clc
>> x=-5:1:5;
>>X=1./(1+x.^2); >>X=[x;X]; >>x=-5:0.01:5;
>>a=Lagrange1(X,x); >>plot(x,a) >>hold on >>x=-5:0.1:5;
>>plot(x,(1./(1+x.^2)))
>>legend('Language 插值图像','原始图像');
画出如图4-2图像
图4-2
>>x=[5,4.8,4.5,4.3,4,3.8]; >>a=1./(1+x.^2);
>>b=Lagrange1(X,x); >>c=a-b;
>>A=[a',b',c'];
经整理得证表2-10,如表4-1
x f(x) L10(x) R10(x)
5 0.038462 0.038462 0
4.8 0.041597 1.804385 -1.76279
4.5 0.047059 1.578721 -1.53166
4.3 0.051308 0.888081 -0.83677
4 0.058824 0.058824 0
3.8 0.064767 -0.2013 0.266063
表4-1
(2)以0.1为步长分别进行Language插值、分段线性插值、分段三次Hermite 插值,画出三种插值函数以及f(x)的图像,比较三种插值结果。
>>clear
>>clc
>> x=-5:1:5;X=1./(1+x.^2); X=[x;X];
>> H=Liner1(X,x);
>> plot(H(1,:),H(2,:))
>> hold on
>> x=-5:1:5; X=1./(1+x.^2); X=[x;X];
>> X2=-(1+x.^2).^(-2).*2.*x;
>> X=[X;X2];
>> H=Hermite_31(X);
>> plot(H(1,:),H(2,:))
>> x=-5:1:5;
>> X=1./(1+x.^2);
>> X=[x;X];
>> x=-5:0.01:5;
>> a=Lagrange1(X,x);
>> plot(x,a)
>> x=-5:0.1:5;
>>plot(x,(1./(1+x.^2)))
>> legend('分段三次Hermite插值','分段线性插值','Language插值','原始图像');
得到Language插值、分段线性插值、分段三次Hermite插值,画出三种插值函数以及f(x)的图像,如图4-3
图4-3。