📄 lspoly.m
字号:
function [M,C,de_error]=lspoly(X,Y,e)
% 调用形式:
% [M,C]=lspoly(X,Y,e)
% 功能:
% 用最小二乘法多项式拟合非线性数据
% 输入:
% -- X 行向量,包含拟合数据点的横坐标
% -- Y 行向量,包含拟合数据点的纵坐标
% -- e 标量,误差精度
% 输出:
% -- M 标量,多项式的阶数
% --C 列向量,从低阶到高阶排列多项式的系数
% 其中调用子函数:[C,F]=sublspoly(X,Y,M)
% 袁怡圃 2003/04/28
n=length(X);
Y=Y';
M=1;
de_error = 0;
while M<10
[C,F]=sublspoly(X,Y,M);
P=F*C;
k=M;
for i=1:n
if abs((P(i)-Y(i))/P(i))>e
M=M+1;
break
end
end
if k==M
break
de_error = 1;
end
end
% min=min(X);
% max=max(X);
% u=min:0.01:max;
% n=length(u);
% f=zeros(n,M+1);
% for i=1:M+1
% f(:,i)=u'.^(i-1);
% end
% p=f*C;
% plot(X,Y','*b',u,p,'r')
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -