matlab最佳平方逼近程序
时间: 2023-12-10 15:04:46 浏览: 289
MATLAB最佳平方逼近程序可以使用Legendre多项式作为基函数,构造任意次数的最佳平方逼近多项式。以下是一个参考程序:
```matlab
function [c,s] = leastp(a,b,N)
% leastp.m: least-square fitting with Legendre polynomials
x = linspace(a,b,1000);
f = exp(x).*x;
P = zeros(N+1,length(x));
P(1,:) = ones(1,length(x));
P(2,:) = x;
for n = 2:N
P(n+1,:) = ((2*n-1)*x.*P(n,:)-(n-1)*P(n-1,:))/n;
end
for n = 1:N+1
c(n) = sum(f.*P(n,:))/sum(P(n,:).^2);
end
s = 0;
for n = 1:N+1
s = s + c(n)*P(n,:);
end
plot(x,f,'k',x,s,'r')
```
该程序使用Legendre多项式作为基函数,构造了任意次数的最佳平方逼近多项式。其中,a和b分别为拟合区间的左右端点,N为拟合多项式的阶数。程序首先生成1000个等间距的x值,并计算出对应的函数值f。然后,使用递推公式计算出N阶Legendre多项式,并将其存储在矩阵P中。接着,使用最小二乘法计算出拟合系数c,并根据拟合系数和Legendre多项式计算出拟合函数s。最后,将原函数f和拟合函数s绘制在同一张图上进行比较。
阅读全文