首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用超越方程进行拟合

用超越方程进行拟合
EN

Stack Overflow用户
提问于 2017-02-24 00:56:10
回答 2查看 651关注 0票数 2

我有一组正常的数据,电流密度是电压J(V)的函数。我的目标是将这些数据与模型进行拟合。问题是我的模型是由超越方程组成的,所以我不能根据J编写函数并使用lmfit。我的模型是这样的:

请看一下图片

你知道我该怎么做吗?

如果我用fsolve或类似的方法来解决这个系统,我必须提供参数,所以我不知道该怎么做。

我也尝试过用Scypy来解决这个问题,但是没有成功。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-02-25 10:12:34

我不确定您是否能找到一种干净、简单的方法来做到这一点--如果您找到了,请让我们知道。

由于您的函数基本上是指数函数,因此您可能会发现,在模型函数中进行几次迭代会产生稳定的、自洽的结果。也就是说,如果数值“表现良好”,使得电压降扰动(Vdn - V)相当小,则采取几个循环来达到接近自一致性可能就足够了。

再一次,由于它们是指数,对于V的大的正值,它们可能会很快发散。

票数 1
EN

Stack Overflow用户

发布于 2019-09-04 12:40:38

我认为scipy.optimize.curve_fit有你想要的东西,我发现this tutorial对我的情况很有帮助。

你也许可以这样做:

代码语言:javascript
复制
from scipy.optimize import curve_fit

def CurrentDensityFromVoltage(V, RS1, RS12, r, J01, J02):
     VD1 = <expression> 
     VD2 = <expression> 
     J1 = <expression>
     J2 = <expression>
     J3 = <expression>
     return J1+J2+J3

# coefficients to get CurrentDensity as a function of Voltage
param, _ = curve_fit(CurrentDensityFromVoltage, Voltage, CurrentDensity)

# current density 'cd' for any voltage 'v'
cd = CurrentDensityFromVoltage(v, param[0], param[1], param[2], param[3], param[4])
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42421822

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档