函数的最佳平方逼近

在这里插入图片描述
1、 试修改参考程序,使用正交多项式作为基底
考虑使用勒让德多项式,修改程序如下:

function S=square(a,b,n) %定义逼近函
global i j
if nargin<3
    n=1;
end
X=zeros(n+1);
for i=0:n
    for j=0:n
        X(i+1,j+1)=quad(@rho_phi,a,b); %求rho_phi积分
    end
end
Y=zeros(n+1,1);
for i=0:n
    Y(i+1)=quad(@fun_phi,a,b); %求fun_phi积分
end
S=X\Y;
function y=rho_phi(x)
global i j
y=(rho(x).*phi_k(x,i)).*phi_k(x,j);
function y=fun_phi(x)
global i;
y=(rho(x).*phi_k(x,i)).*obj(x);
function y=rho(x) %权函数
y=1;
function y=phi_k(x,k); %多项式函数
if k==0
    y=ones(size(x));
elseif k==1  %勒让德多项式
    y=x;
elseif k==2
    y=(3.*x.^2-1)/2;
elseif k==3
    y=1/2.*(5.*x.^3-3*x);
end
function y=obj(x) %被逼近函数
y=exp(x);

主函数:

fplot(@(x)exp(x),[-1,5]);
hold on
c2=square(-1,5,2);
x=-1:0.1:5;
y2=polyval(flipud(c2),x);
c3=square(-1,5,3);
y3=polyval(c3,x);
plot(x,y2,x,y3);
legend('原函数','2次最佳平方逼近','3次最佳平方逼近');
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值