非线性最小二乘(曲线拟合)
以串行或并行方式求解非线性最小二乘(曲线拟合)问题
在开始求解优化问题之前,您必须选择合适的方法:基于问题或基于求解器。有关详细信息,请参阅首先选择基于问题或基于求解器的方法。
非线性最小二乘求解 min(∑||F(xi) – yi||2),其中 F(xi) 是一个非线性函数,yi 是数据。问题可以有边界、线性约束或非线性约束。
对于基于问题的方法,请创建问题变量,然后用这些符号变量表示目标函数和约束。有关基于问题的求解步骤,请参阅基于问题的优化工作流。要求解生成的问题,请使用 solve
。
有关基于求解器的求解步骤,包括定义目标函数和约束,以及选择合适的求解器,请参阅基于求解器的优化问题设置。要求解生成的问题,请使用 lsqcurvefit
或 lsqnonlin
。
函数
实时编辑器任务
优化 | 在实时编辑器中优化或求解方程 (自 R2020b 起) |
主题
基于问题的非线性最小二乘
- 基于问题的非线性最小二乘
使用基于问题的方法的非线性最小二乘基本示例。 - 使用几种基于问题的方法进行非线性数据拟合
使用不同求解器和不同线性参数方法求解最小二乘拟合问题。 - 使用优化变量拟合 ODE 参数
使用基于问题的最小二乘拟合 ODE 参数。 - 比较 lsqnonlin 和 fmincon 的约束非线性最小二乘法
比较lsqnonlin
和fmincon
在具有非线性约束的非线性最小二乘问题上的性能。 - 编写基于问题的最小二乘法的目标函数
基于问题的最小二乘法的语法规则。
基于求解器的非线性最小二乘
- 非线性数据拟合
显示求解数据拟合问题的几种方法的基本示例。 - 香蕉函数的最小化
说明如何使用不同求解器在使用或不使用梯度的情况下求解罗森布罗克函数的最小值。 - lsqnonlin 与 Simulink 模型
拟合模拟模型的示例。 - 不含和含雅可比矩阵的非线性最小二乘
说明在非线性最小二乘中使用解析导数的示例。 - 用 lsqcurvefit 进行非线性曲线拟合
显示如何用 lsqcurvefit 进行非线性数据拟合的示例。 - 拟合常微分方程 (ODE)
示例说明如何对数据进行 ODE 的参数拟合,或对 ODE 的解进行曲线参数拟合。 - 对复数值数据进行模型拟合
说明如何求解具有复数值数据的非线性最小二乘问题的示例。
代码生成
- 非线性最小二乘中的代码生成:背景
为非线性最小二乘生成 C 代码的前提条件。 - 为 lsqcurvefit 或 lsqnonlin 生成代码
非线性最小二乘法的代码生成示例。 - 实时应用的优化代码生成
探索处理生成代码中的实时需求的技术。
并行计算
- Optimization Toolbox 中的并行计算是什么?
使用多个处理器进行优化。 - 在 Optimization Toolbox 中使用并行计算
并行执行梯度估计。 - 利用并行计算提高性能
调查加速优化的因素。
算法和选项
- 编写基于问题的最小二乘法的目标函数
基于问题的最小二乘法的语法规则。 - 最小二乘(模型拟合)算法
在仅具有边界或线性约束的情况下,在 n 个维度中最小化平方和。 - 优化选项参考
了解优化选项。