【发布时间】:2018-09-06 16:29:49
【问题描述】:
如果我有一个函数,自变量是数学模型的定积分的上限。这个数学模型有我想做回归的参数。 这个数学模型是非线性的,可能很复杂。
我该如何解决这个问题?
如果我的函数的输出再被处理,可以是curve_fit吗?
有一个简化的案例
import scipy.optimize as sp
from scipy.integrate import quad
import numpy as np
number = 100
def f(x,a,b,c):
return 500*a*x+b*c
def curvefit(d,a,b,c):
return quad(f,0,d,args=(a,b,c))[0]
x_linear = np.linspace(0.001,0.006,number)
y_linear = 23.33*x_linear + 0.02*(np.random.random(number)-0.5)
parameter = sp.curve_fit(curvefit,x_linear,y_linear)
x 和 y _linear 是我编的数。
curvefit() 中的d 现在是 x_linear,它是一个列表,并且是 quad() 中的上限。
错误显示ValueError:具有多个元素的数组的真值不明确。使用 a.any() 或 a.all()
我知道 quad() 要求上限为浮点数。
【问题讨论】:
-
欢迎来到 Stack Overflow!您可以先take the tour 学习How to Ask a good question 并创建Minimal, Complete, and Verifiable 示例。这让我们更容易为您提供帮助。
标签: python numpy math scipy curve-fitting