Python:如何通过用户定义的函数拟合曲线?

时间:2018-05-13 19:15:41

标签: python numpy machine-learning scipy curve-fitting

Curve Fitting via Optimization

嘿大家,

为了向您展示我的问题,我画了一张照片。如您所见,曲线' A(m)'红色是目标功能。它的表达是众所周知的。

绿色曲线是反对功能' f'带有4个参数a,b,c,d。 此函数非常复杂(表达式超过4000个字符串)并由程序生成。

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

主要困难是速度,如上所述,功能过于复杂

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

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

提前谢谢大家!

1 个答案:

答案 0 :(得分:3)

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