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

时光怂恿深爱的人放手 提交于 2019-12-23 02:43:03

目录

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

1、最小二乘法概述

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

2、MATLAB源代码展示

		% x:自变量;y:因变量;n:拟合曲线的方程的阶数;m:自变量的数量 
function lstsqu(x,y,n,m);
xx=x;
        % 最小二乘法拟合曲线
p=polyfit(xx,y,n);          
x1=xx(1):0.1:xx(m)+0.1;
y1=polyval(p,x1);
plot(xx,y,'*r',x1,y1,'-b','Color',[1,0,0]);grid on;
xlabel('x');ylabel('y');
title('最小二乘法拟合曲线');

        % plot函数直接绘制曲线
figure;
plot(xx,y,'Color',[0,0,1]);grid on;
xlabel('x');ylabel('y');
title('plot函数直接绘制曲线');

        % 同时显示两条曲线
figure;
plot(xx,y,'*r',x1,y1,'-b','Color',[1,0,0]);grid on;
hold on;
plot(xx,y,'Color',[0,0,1]);grid on;
xlabel('x');ylabel('y');
title('同时显示两条曲线');

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

3、应用结果展示

程序:

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

结果:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

4、更新日志

2019.12.22
更新至V1.0.0

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!