数值分析实验四(龙格函数)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验名称:龙格反例的数值实验
实验目的与要求:
1、了解切比雪夫多项式零点插值;
2、运用切比雪夫多项式零点插值法避免龙格现象。
3、与等距节点构造插值多项式比较。
实验内容:
龙格反例的数值实验
在区间[–5,5 ]上分别取11阶切比雪夫多项式的零点
22
)12(cos 5π+=k x k ( k = 0,1,2,……,10) 和等距节点作插值结点,计算函数211)(x
x f +=在结点处的值 y k = f (x k )。构造插值多项式L 10(x ),
∑==10
010)()(k k k y x l x L 其中,∏≠=--=n k j j j k j k x x x x x l 0)()()(。取自变量点 t k = – 5 + 0.05k ( k =0,1,…,201),分别计算切比雪夫零点、等距节点插值多项式L k (x )和被插值函数f (x )在离散点t k ( k =0,1,…,201)上的值,并绘出三条曲线比较。
实验环境与器材:
9#505机房、《数值分析》
实验过程(步骤)或程序代码:
function y=Lagrange(x,n,xx,yy)
sum=0; %初始化
for k=1:n+1
lk=1; %初始化
for i=1:n+1
if k~=i
lk=lk*(x-xx(i))/(xx(k)-xx(i));
end
end
sum=lk*yy(k)+sum;
end
y=sum;
clc
clear
for i=1:11 %下标只能从1开始
x1(i)=-5+10*(i-1)/10;
x2(i)=5*cos((2*i-1)*pi/22);
y1(i)=1/(1+x1(i)*x1(i));
y2(i)=1/(1+x2(i)*x2(i)); %y1,y2分别是在两种节点处得到的函数值
end
h=0.05;
for k=1:202
x3(k)=-5+(k-1)*h;
y11(k)=Lagrange(x3(k),10,x1,y1);
y22(k)=Lagrange(x3(k),10,x2,y2);
y(k)=1/(1+x3(k)*x3(k));
%y11,y22分别为利用切比雪夫零点和等距节点构造出的插值多项式在离散点处的值
end
plot(x3,y11,'r');
hold on
plot(x3,y22,'g');
hold on
plot(x3,y,'b')
%被插值函数在离散点处值的曲线图
hold on
xlabel('-5<=x<=5');
ylabel('y');
legend('f(x)=1/(1+x^2)','等距节点插值多项式','切比雪夫多项式零点插值多项式'); xlim([-5,5])
实验结果与分析:
分析:由高次插值的病态性质,我们知道次数n太高时会出现龙格现象,即L n(x)并不收敛于f(x),由上图我们也可以看到运用等距节点构造的插值多项式的确出现了龙格现象,因此并不适用。而利用切比雪夫多项式零点做插值,可使插值区间最大误差最小化,就可以避免龙格现象,保证在整个区间上都收敛。从图中可以看到,用切比雪夫多项式零点作为节点插值得到的多项式曲线图没有出现龙格现象。
成绩:
教师签名:
月日