数值分析实验报告07158

  • 格式:doc
  • 大小:113.50 KB
  • 文档页数:19

下载文档原格式

  / 19
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验 多项式插值的振荡现象 实验目的:

在一个固定的区间上用插值逼近一个函数,显然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;为基的多项式最小二乘拟合程序。

实验内容:

对表中的数据作三次多项式最小二乘拟合。