数值分析实验报告07158
- 格式:doc
- 大小:113.50 KB
- 文档页数:19
实验 多项式插值的振荡现象 实验目的:
在一个固定的区间上用插值逼近一个函数,显然Lagrange 插值中使用的节点越多,插值多项式的次数就越高。我们自然关心插值多项式的次数增加时,Ln(x)是否也更加靠近被逼近的函数。Runge 给出的一个例子是极著名并富有启发性的。 实验内容:
设区间[-1,1]上函数 f(x)=1/(1+25x 2
)。
考虑区间[-1,1]的一个等距划分,分点为 x i = -1 + 2i/n ,i=0,1,2,…,n , 则拉格朗日插值多项式为
201
()()125n
n i
i i
L x l x x ==+∑
. 其中,l i (x),i=0,1,2,…,n 是n 次Lagrange 插值基函数。 实验步骤与结果分析: 实验源程序
function Chap2Interpolation
% 数值实验二:“实验:多项式插值的震荡现象” % 输入:函数式选择,插值结点数 % 输出:拟合函数及原函数的图形
promps = {'请选择实验函数,若选f(x),请输入f,若选h(x),请输入h,若选g(x),请输入g:'};
titles = 'charpt_2';
result = inputdlg(promps,'charpt 2',1,{'f'}); Nb_f = char(result);
if(Nb_f ~= 'f' & Nb_f ~= 'h' & Nb_f ~= 'g')errordlg('实验函数选择错误!');return;end result = inputdlg({'请输入插值结点数N:'},'charpt_2',1,{'10'}); Nd = str2num(char(result));
if(Nd <1)errordlg('结点输入错误!');return;end
switch Nb_f
case 'f'
f=inline('1./(1+25*x.^2)'); a = -1;b = 1;
case 'h'
f=inline('x./(1+x.^4)'); a = -5; b = 5;
case 'g'
f=inline('atan(x)'); a = -5; b= 5;
end
x0 = linspace(a, b, Nd+1); y0 = feval(f, x0);
x = a::b; y = Lagrange(x0, y0, x);
fplot(f, [a b], 'co');
hold on;
plot(x, y, 'b--');
xlabel('x'); ylabel('y = f(x) o and y = Ln(x)--');
%--------------------------------------------------------------------function y=Lagrange(x0, y0, x);
n= length(x0); m=length(x);
for i=1:m
z=x(i);
s=;
for k=1:n
p=;
for j=1:n
if(j ~= k)
p = p*(z - x0(j))/(x0(k) - x0(j));
end
end
s = s + p*y0(k);
end
y(i) = s;
end
实验结果分析
(1)增大分点n=2,3,…时,拉格朗日插值函数曲线如图所示。
n=6
n=7
n=8
n=9
n=10
从图中可以看出,随着n的增大,拉格朗日插值函数在x=0附近较好地逼近了原来的函数f(x),但是却在两端x= -1和x=1处出现了很大的振荡现象。
并且,仔细分析图形,可以看出,当n为奇数时,虽然有振荡,但振荡的幅度不算太大,n为偶数时,其振荡幅度变得很大。通过思考分析,我认为,可能的原因是f(x)本身是偶函数,如果n为奇数,那么Lagrange插值函数L n(x)的最高次项x n-1是偶次幂,比较符合f(x)本身是偶函数的性质;如果n为偶数,那么Lagrange插值函数L n(x)的最高次项x n-1是奇次幂,与f(x)本身是偶函数的性质相反,因此振荡可能更剧烈。
(2)将原来的f(x)换为其他函数如h(x)、g(x),结果如图所示。
其中h(x), g(x)均定义在[-5,5]区间上,h(x)=x/(1+x4),g(x)=arctan x。
h(x), n=7
h(x), n=8
h(x), n=9
h(x), n=10
g(x), n=7
g(x), n=8
g(x), n=9
g(x), n=10
分析两个函数的插值图形,可以看出:
随着n的增大,拉格朗日插值函数在x=0附近较好地逼近了原来的函数f(x),但是却在两端x= -5和x=5处出现了很大的振荡现象。
并且,仔细分析图形,可以看出,当n为偶数时,虽然有振荡,但振荡的幅度不算太大,n为奇数时,其振荡幅度变得很大。原因和上面f(x)的插值类似,h(x)、g(x)本身是奇函数,如果n为偶数,那么Lagrange插值函数L n(x)的最高次项x n-1是奇次幂,比较符合h(x)、g(x)本身是奇函数的性质;如果n为奇数,那么Lagrange插值函数L n(x)的最高次项x n-1是偶次幂,与h(x)、g(x)本身是奇函数的性质相反,因此振荡可能更剧烈。
实验多项式最小二乘拟合
实验目的:
编制以函数{xk}k=0,…,n;为基的多项式最小二乘拟合程序。
实验内容:
对表中的数据作三次多项式最小二乘拟合。