python - Python:如何通过用户定义的函数拟合曲线?
问题描述
嘿大家,
为了向你展示我的问题,我画了一张照片。如您所见,红色的曲线“A(m)”是目标函数。它的表达是已知的。
绿色曲线是具有 4 个参数 a、b、c、d 的对象函数“f”。这个函数很复杂(表达式有4000多个字符串),是由程序生成的。
我的问题是如何在另一个附加条件下找到最佳拟合参数 a、b、c、d:
f >= A
最大的困难是速度,如前所述,功能太复杂
我尝试使用嵌套循环来找到最佳参数,但每个循环都需要几分钟才能运行然后失败。
我是 python 新手。任何建议和想法将不胜感激。
先谢谢大家了!</p>
解决方案
在 scipy 中,您有一个优化模块,它允许您对参数列表执行非线性优化,您还可以定义优化器要遵守的约束。因此,您可以将损失函数定义为用户函数和已知函数之间的差异,并在给定参数上最小化这种差异。请参阅:https ://docs.scipy.org/doc/scipy/reference/optimize.html
推荐阅读
- powershell - Powershell根据日期范围标准删除文件夹文件
- excel - 更改打印机时 Excel 文档的布局会发生变化
- javascript - WebComponents - 在组件公共接口中使用 CSS 自定义属性有什么好处?
- javascript - Stripe - 如何使用 Checkout Session (php/js) 获取订阅 ID(以取消)
- laravel - 在 Laravel 6 中调用未定义的方法 stdClass::isOnline()
- laravel - 如何在自定义规则中验证电子邮件
- android - 单击后禁用Android cordova InAppBrowser提交按钮
- reactjs - 首次在 React.js 中渲染时如何避免 init 函数调用?
- oracle - 使用 SQL Developer 连接 do DB 时没有匹配的身份验证协议
- reactjs - 提升输入字段的状态后,无法在字段中输入任何内容