上机作业5
7-2 实验目的 观察Lagrange插值的Runge现象, 了解若能采用合适的节点分布,则可以避免Runge现象,熟悉三次样条插值。 实验内容:对于函数f(X)=
1(-1≦x≦1)进行Lagrange插值。
1?25x^2k?,n取不同的等分数n=5,10,将区间[-1,1]等分,取等距节点。把f(x)和5,10次插值多项式的曲线画在同一张图上进行比较。再取Chebyshev节点xk=-cos
k=0,1,...,10进行Lagerange,把f(x)和Chebyshev节点的10次插值多项式的曲线画在同一张图上。 (1)原理
5.1 Lagrange插值多项式 Lagrange插值多项式的表达式:
L(x)??yili(x),i?1n?1li(x)??j?1j?in?1(x?xj)(xi?xj),i?1,2,?,n?1。
其中li(x)被称为插值基函数
(2)程序代码:
function f =Language(x,y,x0) syms t;
if(length(x) == length(y)) n = length(x); else
disp('x和y的维数不相等'); return; end
f = 0.0; for(i = 1:n) l = y(i); for(j = 1:i-1)
l = l*(t-x(j))/(x(i)-x(j));
end;
for(j = i+1:n)
l = l*(t-x(j))/(x(i)-x(j)); end;
f = f + l; simplify(f); if(i==n)
if(nargin == 3)
f = subs(f,'t',x0); else
f = collect(f);
f = vpa(f,6); end end End
(3)运行结果
(1)五等分区间
>> x=[-1 -0.6 -0.2 0.2 0.6 1];
>> y=[0.0384 0.1 0.5 0.5 0.1 0.0384]; >> f=Language(x,y)
f =1.20182*t^4 - 1.73073*t^2 + 0.567306
(2)十等分区间
>> x=[-1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1];
>> y=[0.0384 0.05882 0.1 0.2 0.5 1 0.5 0.2 0.1 0.05882 0.0384]; >> f=language(x,y)
f =- 220.942*t^10 + 494.91*t^8 - 381.434*t^6 + 123.36*t^4 - 16.8552*t^2 + 1.0
(3)Chebyshev结点
>> x=[-1.0000 -0.9511 -0.8090 -0.5878 -0.3090 0 0.3090 0.5878 0.8090 0.9511 1.0000];
>> y=[0.0385 0.0424 0.0576 0.1038 0.2952 1.0000 0.2952 0.1038 0.0576 0.0424 0.0385 ];
>> f=Language(x,y)
f =- 28.076*t^10 + 85.3475*t^8 - 96.4067*t^6 + 49.4719*t^4 - 11.2983*t^2 + 1.0
函数图像:
(1)f(x)和5,10次插值多项式曲线图像
>> t=-1:0.01:1;
>> z1=1.20182*t.^4 - 1.73073*t.^2 + 0.567306;
>> z2=- 220.942*t.^10 + 494.91*t.^8 - 381.434*t.^6 + 123.36*t.^4 - 16.8552*t.^2 + 1.0;
>> z3=(1+25*t.^2).^(-1); >> plot(t,z1,t,z2,t,z3);grid
(1) 并不是插值节点越多,插值多项式逼近函数效果就越好。 (2) 误差较大地方,是在插值区间两端点附近出现。
(2)F(x)和Chebyshev结点十次插值
>> t=-1:0.01:1;
>> z1=(1+25*t.^2).^(-1);
>> z2=- 28.076*t.^10 + 85.3475*t.^8 - 96.4067*t.^6 + 49.4719*t.^4 - 11.2983*t.^2 + 1.0; >> plot(t,z1,t,z2)
结论
利用插值多项式逼近函数,随着插值点个数的增加,其次数不断增加,由于高次多项式具有震荡特性,盲目增加节点效果反而不好。高次插值收敛没有保证,当插值区间较长时,我们宜采用分段低次插值。
上机作业6
9-1 实验目的 熟悉数值积分公式,掌握数值计算定积分的方法 实验内容:采用不同方法数值计算积分
?ln(1?x)/xdx
01(1)编写复化梯形公式和复化Simpson公式通用子程序,分别采用4,8.16,32,64等分区间计算。 (2)使用Romberg求积公式。
(3)使用高斯-勒让德求积公式(n=2,4,8)
1、试验原理:
把积分区间[a,b]分成n个子区间[xi,xi+1],i=0,1,2,…,n,其中x0=a,xn+1=b。这样求定积分问题就分解为求和问题:
S??f(x)dx???ai?1bnxixi?1f(x)dx
当这n+1个结点为等距结点时,即xi?a?ih,其中h?(b?a)/n,i=0,1,2,…,n,复化梯形公式的形式是
hnSn??[f(xi?1)?f(xi)]
2i?1如果n还是一个偶数,则复合Simpson积分的形式是
hn/2Sn??[f(x2i?2)?4f(x2i?1)?f(x2i)]
3i?1
在区间[-1,1]上取权函数 ρ(x)=1,那么相应的正交多项式为Legendre多项式。以Legendre多项式的零点为Gauss点的求积公式为

