首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我应该如何创建使用scipy.optimize.least-squares提供用于拟合阻抗数据的残差的函数?

我应该如何创建使用scipy.optimize.least-squares提供用于拟合阻抗数据的残差的函数?
EN

Stack Overflow用户
提问于 2019-05-15 12:17:22
回答 1查看 58关注 0票数 0

我想使用在Scipy优化模块的最小二乘函数中实现的Levenberg-Marquardt算法来拟合测量的阻抗数据。然而,我对如何提供残差感到有点困惑。

在文档中显示的示例中,很明显,您应该只提供实验值和计算值之间的减法。因此,与其创建一个返回

,我们应该编写一个返回

虽然这对于正常数据是直接的,但我不确定如何对阻抗数据执行此操作。每个阻抗测量(Z)都有实数部分和复数部分,因此目标函数为

其中wt是权重因子,w是频率(自变量),a是要查找的参数集。问题是我不知道如何正确地将残差提供给最小二乘函数,因为我不认为

会起作用的。

EN

回答 1

Stack Overflow用户

发布于 2019-05-15 13:20:51

the scipy.optimize.least_squares documentation中的最后一个示例展示了如何处理复杂的残差。也就是说,如果你有复杂的输入和输出:

代码语言:javascript
复制
def f(z):
    return z - (0.5 + 0.5j)

您可以将该函数包装为两个实数:

代码语言:javascript
复制
def f_wrap(x):
    fx = f(x[0] + 1j*x[1])
    return np.array([fx.real, fx.imag])
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56141698

复制
相关文章

相似问题

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