gpt4 book ai didi

Python 将多项式拟合到 3d 数据

转载 作者:行者123 更新时间:2023-12-01 07:13:49 24 4
gpt4 key购买 nike

拥有一组数据点 (x,y,z),并尝试使用 scipy Optimize.curve_fit 拟合通用二次方程。

我尝试了几种不同的方法,但似乎无法使其发挥作用。关于为什么我会收到此错误的任何指导,或者推荐的不同方法?

错误是“ValueError:操作数无法与形状 (2,) (12,) 一起广播”


import scipy.optimize as optimize

XY = [(11, 70), (11, 75), (11, 80), (11, 85), (12, 70), (12, 75), (12, 80), (12, 85), (13, 70), (13, 75), (13, 80), (13, 85)]

Z = [203.84, 208, 218.4, 235.872, 228.30080000000004, 232.96000000000004, 244.60800000000006, 264.1766400000001, 254.8, 260, 273, 294.84000000000003]

guess = (1,1,1,1,1,1)

def fit(X, a, b, c, d, f, g):
return a + (b*X[0])+(c*X[1])+(d*X[0]**2)+(f*X[1]**2)+(g*X[0]*X[1])

params, cov = optimize.curve_fit(fit, XY, Z, guess)

最佳答案

根据docs您需要 XY 的大小为 (k,M),其中 k 是尺寸,M 是数量 sample 。在您的情况下,您已将 XY 定义为大小 (M,k)

尝试以下操作

import numpy as np

...

params, cov = optimize.curve_fit(fit, np.transpose(XY), Z, guess)

关于Python 将多项式拟合到 3d 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58087193/

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