python - 为什么你分配的初始值 p0 会在很大程度上影响拟合结果
问题描述
当我为 P0 分配不同的初始值时,拟合会发生两个数量级的变化。问题是,我怎样才能找到合适的,因为拟合的目的是搜索正确的参数。
我得到了 2 个变量和两个未知参数,可以通过合适的方法找到。
p0 = [0.5,0.3] #initial value
c,cov = curve_fit(titrition,(xp,xd),y,p0)
yp = titrition ((xp,xd),c[0],c[1])
解决方案
这个问题不是一个编码问题,而是一个非常具体的数字问题。curve_fit
只是试图最小化成本函数,以使您的函数尽可能适合数据。我不知道函数titration
长什么样,但我怀疑优化它是非凸的。换句话说,curve_fit
可能会根据您提供的初始猜测找到不同的最佳值。这是您必须使用某种物理直觉来提供初始条件应该是什么的最佳猜测的地方。
推荐阅读
- python - 如何获取最后一个断言语句的值?
- javascript - JavaScript:如何在包含对象的数组上使用 Array.prototype.filter()
- c# - 使用 TLS 1.2 从 HttpClient 连接到 Azure FrontDoor 后面的 API
- android - appinstalled 事件被提前触发?
- python - numpy fromstring 不推荐使用 frombuffer 代替
- google-sheets - 在 BigQuery Cloud Shell 中从 Google 表格创建外部表格时,如何选择默认表格(第一张表格)以外的表格?
- go - 我可以在一个 go 模块中包含多个包吗?如何?
- python - 如何将 CSV 数据(从 GoogleSheets - Google Python API 获得)转换为表格格式(数据框)?
- spring - Spring Data Hibernate:N+1 问题和分页
- for-loop - 如何使用 Jekyll 的 Liquid 将限制参数传递给包含