gpt4 book ai didi

python - 最小二乘最小化复数

转载 作者:太空狗 更新时间:2023-10-29 22:22:56 24 4
gpt4 key购买 nike

我一直在使用我的 Matlab,但我的愿景是最终切换到使用 Python 进行所有分析,因为它是一种实际的编程语言以及其他一些原因。

我最近一直试图解决的问题是对复杂数据进行最小二乘法最小化。我是一名工程师,我们经常处理复阻抗,我正在尝试使用曲线拟合来将简单的电路模型拟合到测量数据。

阻抗方程如下:

Z(w) = 1/( 1/R + j*w*C ) + j*w*L

然后我试图找到 R、C 和 L 的值,以便找到最小二乘曲线。

我试过使用优化包,例如 optimize.curve_fit 或 optimize.leastsq,但它们不适用于复数。

然后我尝试让我的残差函数返回复杂数据的大小,但这也不起作用。

最佳答案

引用 to unutbu answer's ,没有必要通过取函数残差的平方来减少可用信息,因为 leastsq 不关心数字是实数还是复数,只关心它们被表示为一维数组,保持功能关系的完整性。

这是一个替换残差函数:

def residuals(params, w, Z):
R, C, L = params
diff = model(w, R, C, L) - Z
z1d = np.zeros(Z.size*2, dtype = np.float64)
z1d[0:z1d.size:2] = diff.real
z1d[1:z1d.size:2] = diff.imag
return z1d

这是唯一需要进行的更改。 2013 年种子的答案是:[2.96564781, 1.99929516, 4.00106534]。

关于 to unutbu answer's 的错误减少了一个数量级以上。

关于python - 最小二乘最小化复数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16745588/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com