Chebyshev多项式最佳一致逼近,最佳平方逼近
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数学软件实验任务书
实验1 Chebyshev 多项式最佳一致逼近
1 实验原理
设()f x 是定义在区间[,]a b 上的函数,寻求另一个构造简单,计算量小的函数()x ϕ来近似的代替()f x 的问题就是函数逼近问题。通常我们会取一些线性无关的函数系来达到函数逼近的目的:
对于给定的函数{()}j x ϕ,寻求函数
0()()n
j j j x c x ϕϕ==∑ 使()()0max lim n a x b
f x x ϕ→∞<<-=的函数称为一致逼近。使
()()()0lim b p
a n f x x W x dx ϕ→∞-=⎰ 的函数称为关于权()W x 的p L 逼近。比较常用的p=2,称为平方逼近。
设()f x 是定义在区间[,]a b 上的函数,则任给定ε,存在一多项式P ε使不等式
()f x P εε-<
对所有[,]x a b ∈一致成立
()()max n a x b f x P x ≤≤-
则()n P x 称为()f x 的n 次最佳一致逼近多项式。
求最佳一次逼近多项式的一种方法是可以采用Chebyshev 节点插值,Chebyshev 节点为
1(21)[()cos _],0,1,2,,22(1)j j x b a b a j n n +=-++=+
2 实验数据
求函数()x
在区间[6,6]上的3,5和12次近似最佳逼近多
f x xe
项式(Chebyshev插值多项式)
3 实验程序
function g=cheby(f,n,a,b)
for j=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);
function s=lag(x,y,t)
syms p;
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);
for i=1:m
temp(i)=subs(s,'p',t(i));
end
s=temp;
end
f=inline('x.*exp(x)','x');
z1=cheby(f,3,-6,6)
z2=cheby(f,5,-6,6)
z3=cheby(f,12,-6,6)
%作出逼近函数图形
subplot(2,2,1),ezplot('x*exp(x)'),grid
subplot(2,2,2),ezplot(z1),grid
subplot(2,2,3),ezplot(z2),grid
subplot(2,2,4),ezplot(z3),grid
%改变背景为白色
set(gcf,'color','white')
4 实验结果
z1 =
-133.0+4.822*x^3+27.38*x^2-20.40*x
z2 =
.2001*x^5+1.359*x^4-2.020*x^3-18.56*x^2+6.126*x+40.25 z3 =
-.2405e-16+.5187e-7*x^12+.6439e-6*x^11+.1420e-5*x^10+.6201e-5*x^9+.2287e-3*x^8+.1
813e-2*x^7+.8007e-2*x^6+.3709e-1*x^5+.1682*x^4+.5209*x^3+.9981*x^2+.9729*x
实验2 Chebyshev 最佳平方逼近
1 实验数据
求函数()arccos ,(11)f x x x =-≤≤关于权函数
的 5 次最佳
平方逼近。
2 实验程序
程序1
function f=ping_che(n)
syms x pip
%计算系数
for i=2:n+1
a(i)=((-1)^i-1)*2/pip/i^2;
end
a=[pip,-4/pip,a(2:n)]
%调用chebyshev多项式
che=cheby_p(x,n);
f=a(1)/2;
for i=2:n+1
f=f+a(i)*che(i);
end
%化简
f=simplify(f);
程序2
function t=cheby_p(x,n)
t(1:n+1)=x;
t(1)=1;
t(2)=x;
%计算一般项
for i=3:n+1
t(i)=2*x*t(i-1)-t(i-2);
end;
t= simplify(t);
程序3
f=@(x) acos(x);
t=-1:0.01:1;
f1=f(t);
subplot(1,2,1)
plot(t,f1,'*')
hold on
%5次最佳平方逼近
%画出逼近图象
f5=ping_che(5);
f5=subs(f5,'pip',pi)
ezplot(f5),title('5 次最佳平方逼近'),grid subplot(1,2,2),
f7=ping_che(7);
f7=subs(f7,'pip',pi)
ezplot(f7),grid,title('7 次逼近')
3 实验结果
f5 =