首页 > 解决方案 > Python:如何通过用户定义的函数拟合曲线?

问题描述

通过优化进行曲线拟合

嘿大家,

为了向你展示我的问题,我画了一张照片。如您所见,红色的曲线“A(m)”是目标函数。它的表达是已知的。

绿色曲线是具有 4 个参数 a、b、c、d 的对象函数“f”。这个函数很复杂(表达式有4000多个字符串),是由程序生成的。

我的问题是如何在另一个附加条件下找到最佳拟合参数 a、b、c、d:
f >= A

最大的困难是速度,如前所述,功能太复杂

我尝试使用嵌套循环来找到最佳参数,但每个循环都需要几分钟才能运行然后失败。

我是 python 新手。任何建议和想法将不胜感激。

先谢谢大家了!</p>

标签: pythonnumpymachine-learningscipycurve-fitting

解决方案


在 scipy 中,您有一个优化模块,它允许您对参数列表执行非线性优化,您还可以定义优化器要遵守的约束。因此,您可以将损失函数定义为用户函数和已知函数之间的差异,并在给定参数上最小化这种差异。请参阅:https ://docs.scipy.org/doc/scipy/reference/optimize.html


推荐阅读