第七章函数逼近与数据拟合上机实验.docx
- 文档编号:29294776
- 上传时间:2023-07-22
- 格式:DOCX
- 页数:12
- 大小:181.21KB
第七章函数逼近与数据拟合上机实验.docx
《第七章函数逼近与数据拟合上机实验.docx》由会员分享,可在线阅读,更多相关《第七章函数逼近与数据拟合上机实验.docx(12页珍藏版)》请在冰豆网上搜索。
第七章函数逼近与数据拟合上机实验
函数逼近与数据拟合上机实验
1问题提出
2问题分析
本题有三个问题要解决:
1.求出权函数为1的最佳平方逼近三次多项式;
2.用Chebyshev截断级数的办法给出近似最佳一致逼近三次多项式;
3.用插值余项极小化方法给出近似最佳一致逼近三次多项式。
最后,画图比较三种逼近方法。
3问题求解
3.1最佳平方逼近
一、逼近原理
由教材定义有:
对于给定的函数
,如果存在
使得
则称S*(x)是f(x)在集合
中的最佳平方逼近函数。
显然,求最佳平方逼近函数
的问题可归结为求它的系数
,使多元函数
取得极小值,也即点(
)是I(a0,…,an)的极点。
由于I(a0,a1,…,an)是关于a0,a1,…,an的二次函数,利用多元函数取得极值的必要条件,
(k=0,1,2,…,n)
即
得方程组
如采用函数内积记号
那么,方程组可以简写为
……………...
(1)
这是一个包含n+1个未知元a0,a1,…,an的n+1阶线性代数方程组,写成矩阵形式为
…………
(2)
此方程组叫做求aj(j=0,1,2,…,n)的法方程组。
显然,其系数行列式就是克莱姆行列式Gn=Gn(0,1,…,n)。
由于0,1,…,n线性无关,故Gn0,于是上述方程组存在唯一解
。
从而肯定了函数f(x)在
中如果存在最佳平方逼近函数,则必是
……………………………...(3)
二、实验方案
A、最佳平方逼近算法
(1)输入被逼近函数f(x)和对应的逼近区间[a,b]并选择逼近函数系{∮(x)}和权函数;
(2)解方程组
(1)或
(2),其中方程组的系数矩阵和右端的项由式(3)得到;
(3)由式(3)得到函数的最佳平方逼近。
B、将上述算法编写成MATLAB程序共需三个程序:
(1)第一个程序(函数名:
squar_approx.m)
计算最佳逼近函数的系数,源代码如下:
functionS=squar_approx(a,b,n)%定义逼近函数
globali;globalj;%全局变量
ifnargin<3n=1;end%判断
Phi2=zeros(n+1);%生成一个n+1*n+1大小的全0矩阵数组
fori=0:
n
forj=0:
n;
Phi2(i+1,j+1)=quad(@rho_phi,a,b);%求rho_phi积分
end
end
PhiF=zeros(n+1,1);%生成一个n+1*1大小的全0矩阵数组
fori=0:
n
PhiF(i+1,1)=quad(@fun_phi,a,b);%求fun_phi积分
end
s=Phi2\PhiF;
(2)第二个程序(函数名:
rho_phi.m)
代码如下:
functiony=rho_phi(x)
globali;globalj;
y=(rho(x).*phi_k(x,i)).*phi_k(x,j);
(3)第三个程序(函数名:
fun_phi.m)
functiony=fun_phi(x)
globali;
y=(rho(x).*phi_k(x,i)).*obj(x);
三、试验结果
在[-1,1]上的三次最佳平方逼近多项式。
(1)编写下面三个函数:
权函数;多项式函数;被逼近函数;
functiony=rho(x)%权函数
y=1;
functiony=phi_k(x,k)%多项式函数
ifk==0
y=ones(size(x));
else
y=x.^k;
end
functiony=obj(x)%被逼近函数
y=x.^2.*log(2+x);
(2)当求的是三次逼近时得到如下结果
>>clear
>>S=squar_approx(-1,1,3)
S=
0.0125
-0.0122
0.5730
0.5543
绘制两者的图形:
>>fun='x.^2.*log(2+x)';
>>fplot(fun,[-1,1]);
>>holdon
S1=’0.0125.-0.0122.*x.+0.5730.*x.^2.+0.5543.*x.^3’;
H=ezplot(s1,[-1,1]);
Set(H,’Color’,’g’)
得到如下结果:
Figure1最佳平方逼近曲线图
3.2Chebyshev多项式最佳一致逼近
1、逼近原理
当一个连续函数定义在区间[-1,1]上时,它可以展开成Chebyshev级数。
即
其中,Tn(x)为n次Chebyshev多项式,具体表达式子可通过递推推出:
它们之间满足关于权函数
的正交关系:
实际中根据所需精度来截取有限项数,本题要求做三次多项式逼近。
系数由下式决定:
求最佳一致逼近多项式的一种方法是可以采用Chebyshev节点插值,Chebyshev节点为
2、实验方案
算法:
1)推导Tn(x);
2)推导系数fi
3)求Chebyshev级数
程序:
functiong=cheby(f,n,a,b)
forj=0:
n
temp1=(j*2+1)*pi/2/(n+1);
temp2=(b-a)*cos(temp1)+b+a;
temp3(j+1)=temp2/2;
end
x=temp3;
y=f(x);
g=lag(x,y);
functions=lag(x,y,t)
symsp;
n=length(x);
s=0;
for(k=1:
n)
la=y(k);
%¹¹Ôì»ùº¯Êý
for(j=1:
k-1)
la=la*(p-x(j))/(x(k)-x(j));
end;
for(j=k+1:
n)
la=la*(p-x(j))/(x(k)-x(j));
end;
s=s+la;
simplify(s);
end
if(nargin==2)
s=subs(s,'p','x');
s=collect(s);
s=vpa(s,4);
else
m=length(t);
fori=1:
m
temp(i)=subs(s,'p',t(i));
end
s=temp;
end
3、试验结果
f=inline('x.^2.*log(2+x)','x');
z1=cheby(f,3,-1,1)
得到Chebyshev多项式拟合函数为:
z1=0.5481*x^3+0.5521*x^2-0.006136*x+0.01792
画出该拟合结果的图形:
Figure2Chebyshev多项式近似最佳逼近拟合结果
3.2插值余项极小化方法近似最佳一致逼近
1、给定函数
functiony=fun(x)
y=x.^2.*log(2+x);
2、对给定函数进行切比雪夫截断级数进行插值余项极小化方法近似最佳一致逼近
functiong=chebyshev_interp(f,n,a,b)
forj=0:
n
temp1=(j*2+1)*pi/(2*(n+1));
temp2(j+1)=(b-a)*cos(temp1)/2+(a+b)/2;
end
x=temp2;
y=feval(f,x);
g=lagrange_interp(x,y);
3、拉格朗日插值函数
functions=lagrange_interp(x0,y0)
symsx;
n=length(x0);
s=0;
fork=1:
n
la=y0(k);
forj=1:
n
ifj~=k
la=la*(x-x0(j))/(x0(k)-x0(j));
end
end
s=s+la;
end
s=simplify(s);
s=vpa(s,5);
4、主函数
a=-1;b=1;n=3;
y=chebyshev_interp('fun',n,a,b)
x=-1:
0.1:
1;
y1=feval('fun',x);
y2=subs(y);
plot(x,y1,'*',x,y2,'r')
保存为main_program.m
运行后的到结果:
y=
0.54814*x^3+0.55214*x^2-0.0061363*x+0.017918
函数图形为:
Figure3用Chebyshev级数插值做Lagrange插值逼近结果
4三种方法比较
三种方法的函数表达式为:
1、最佳平方逼近:
2、Chebyshev截断级数近似最佳一致逼近:
3、Chebyshev级数插值余项极小化逼近:
画出三种逼近方式的图形,并与原函数比较,如下图所示:
Figure4三种方法结果比较
从中可以看出三种方式结果都很好,其中,以Chebyshev截断级数的近似最佳一致逼近和Chebyshev级数插值方法更优。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第七 函数 逼近 数据 拟合 上机 实验