matlab非线性最小二乘拟合

简介: matlab非线性最小二乘拟合

在实际应用中常常会遇到利用非线性最小二乘进行拟合函数的系数情况。这可以通过MATLAB中内置的函数lsqcurvefit实现,对其进行简单介绍如下:

1.自定义函数

首先,新建一个函数文件,如下图所示:

设置文件名为myfun.m,填写下述内容:

function F = myfun(cof,xdata)
F = cof(1)*sin(xdata)+cof(2);

这个函数表示的为:

f(x)=asin(x)+b.

2.使用lsqcurvefit函数

接着,新建一个脚本,用来调用这个函数,以及使用lsqcurvefit命令进行优化测试。

在脚本中写入下述内容,注释中有详细解释:

%% xiaochen 2022年10月11日12:03:36
clc;
clear all;
close all;
% 制作需要拟合的数据
xdata = [-5:0.1:5];
true_cof = [1,1]; % 假设真实的系数a = 1, b = 1
ydata = myfun(true_cof,xdata);
ydata = ydata + rand(1,length(xdata));
predict_cof = [0,0];% 预测的系数a = 0, b = 0
%result_cof为拟合系数的结果 resnorm为残差
%myfun为要拟合的函数
%predict_cof为预测系数值
%xdata,ydata为拟合数据
[result_cof,resnorm] = lsqcurvefit(@myfun,predict_cof,xdata,ydata);
% 使用拟合的系数计算y的值
ydata2 = myfun(result_cof,xdata);
figure;
plot(xdata, ydata, Marker="*");
hold on;
plot(xdata, ydata2);
legend('拟合数据','拟合结果');

拟合出来的结果如下图中所示,蓝色为原始的数据,橙色为拟合曲线。

目录
相关文章
|
2月前
|
机器学习/深度学习 传感器 算法
【无人车路径跟踪】基于神经网络的数据驱动迭代学习控制(ILC)算法,用于具有未知模型和重复任务的非线性单输入单输出(SISO)离散时间系统的无人车的路径跟踪(Matlab代码实现)
【无人车路径跟踪】基于神经网络的数据驱动迭代学习控制(ILC)算法,用于具有未知模型和重复任务的非线性单输入单输出(SISO)离散时间系统的无人车的路径跟踪(Matlab代码实现)
173 2
|
2月前
|
传感器 机器学习/深度学习 算法
【四轴飞行器】非线性三自由度四轴飞行器模拟器研究(Matlab代码实现)
【四轴飞行器】非线性三自由度四轴飞行器模拟器研究(Matlab代码实现)
|
2月前
|
Serverless Python
【三变量联合分布函数copula】利用AIC BIC确定单变量最优拟合函数、利用AIC确定三变量联合最优copula函数、计算联合概率(Matlab代码实现)
【三变量联合分布函数copula】利用AIC BIC确定单变量最优拟合函数、利用AIC确定三变量联合最优copula函数、计算联合概率(Matlab代码实现)
248 4
|
2月前
|
机器学习/深度学习 资源调度 并行计算
【图像分割】【由局部高斯分布拟合能量驱动的活动轮廓】基于区域的主动轮廓模型,采用变分水平集形式用于图像分割(Matlab代码实现)
【图像分割】【由局部高斯分布拟合能量驱动的活动轮廓】基于区域的主动轮廓模型,采用变分水平集形式用于图像分割(Matlab代码实现)
|
2月前
|
机器学习/深度学习 边缘计算 自动驾驶
【状态估计】非线性受控动力系统的线性预测器——Koopman模型预测MPC(Matlab代码实现)
【状态估计】非线性受控动力系统的线性预测器——Koopman模型预测MPC(Matlab代码实现)
122 1
|
2月前
|
机器学习/深度学习 算法 机器人
使用Koopman理论识别机器人动力学的非线性系统(Matlab代码实现)
使用Koopman理论识别机器人动力学的非线性系统(Matlab代码实现)
146 5
|
2月前
|
算法 Python
【车辆控制】基于H∞控制器与鲁棒线性二次调节器RLQR的铰接式重型车辆的稳健路径跟踪控制研究(Matlab代码实现)
【车辆控制】基于H∞控制器与鲁棒线性二次调节器RLQR的铰接式重型车辆的稳健路径跟踪控制研究(Matlab代码实现)
|
2月前
|
数据采集 Python
【阻尼器】磁流变阻尼器MR Damper非线性(阻尼、滞回)特性研究(Matlab代码实现)
【阻尼器】磁流变阻尼器MR Damper非线性(阻尼、滞回)特性研究(Matlab代码实现)
|
2月前
|
机器学习/深度学习 算法 Python
【分布鲁棒】基于Wasserstein距离的两阶段分布鲁棒简易模型【对偶转化】【线性决策】(Matlab代码实现)
【分布鲁棒】基于Wasserstein距离的两阶段分布鲁棒简易模型【对偶转化】【线性决策】(Matlab代码实现)
172 0
|
3月前
|
数据采集 决策智能 流计算
【无人机控制】基于TS模糊模型的非线性系统四旋翼无人机跟踪控制研究(Matlab代码实现)
【无人机控制】基于TS模糊模型的非线性系统四旋翼无人机跟踪控制研究(Matlab代码实现)
135 0

热门文章

最新文章