MATLAB实现二维离散点的最小二乘法拟合

目录

  1. 最小二乘法概述
  2. MATLAB源代码展示
  3. 应用结果展示
  4. 更新日志

1、最小二乘法概述

最小二乘法(又称最小平方法)是一种数学优化技术。它通过最小化误差的平方和寻找数据的最佳函数匹配。利用最小二乘法可以简便地求得未知的数据,并使得这些求得的数据与实际数据之间误差的平方和为最小。最小二乘法还可用于曲线拟合。其他一些优化问题也可通过最小化能量或最大化熵用最小二乘法来表达。

2、MATLAB源代码展示

完整代码下载:添加链接描述

% x:自变量;y:因变量;n:要输出的拟合曲线的方程的最大阶数;m:自变量的数量 

function lstsqu(x,y,n,m);
xx=x;
nn=n;
for k=1:nn;
        % 最小二乘法拟合曲线
p=polyfit(xx,y,k);          
x1=xx(1):0.1:xx(m)+0.1;
y1=polyval(p,x1);
figure;
plot(xx,y,'*r',x1,y1,'-b','Color',[1,0,0]);grid on;
xlabel('x');ylabel('y');
title(['n=' num2str(k)]);

        % 输出曲线函数表达式
syms ft
syms x;
syms n;
ft0=p(1);
for i=1:k
    ft0=ft0+p(i+1)*x^i;
end
n=k
f=ft0
end

3、应用结果展示

程序:

x=[0.05	 0.10	0.15	0.20];
y=[0.001	0.006	0.057	0.124];
n=3;
m=4;
lstsqu(x,y,n,m);

结果:

图像:在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
表达式:

n =

 1

f =

21/25 - (29*x)/500

n =

 2

f =

(39x^2)/2000 - (71x)/100 + 31/5

n =

 3

f =

(9x^3)/125 - (119x^2)/50 + (106*x)/5 - 40

4、更新日志

2019.12.22
首次上传

2020.5.31
修改

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值