gpt4 book ai didi

具有多个自变量的 Python curve_fit

转载 作者:IT老高 更新时间:2023-10-28 21:40:23 28 4
gpt4 key购买 nike

Python 的 curve_fit计算具有单个自变量的函数的最佳拟合参数,但是有没有办法使用 curve_fit 或其他方法来拟合具有多个自变量的函数?例如:

def func(x, y, a, b, c):
return log(a) + b*log(x) + c*log(y)

其中 x 和 y 是自变量,我们希望拟合 a、b 和 c。

最佳答案

您可以为自变量传递 curve_fit 一个多维数组,但是您的 func 必须接受相同的内容。例如,调用这个数组 X 并将其解包为 x, y 以便清楚:

import numpy as np
from scipy.optimize import curve_fit

def func(X, a, b, c):
x,y = X
return np.log(a) + b*np.log(x) + c*np.log(y)

# some artificially noisy data to fit
x = np.linspace(0.1,1.1,101)
y = np.linspace(1.,2., 101)
a, b, c = 10., 4., 6.
z = func((x,y), a, b, c) * 1 + np.random.random(101) / 100

# initial guesses for a,b,c:
p0 = 8., 2., 7.
print(curve_fit(func, (x,y), z, p0))

适合:

(array([ 9.99933937,  3.99710083,  6.00875164]), array([[  1.75295644e-03,   9.34724308e-05,  -2.90150983e-04],
[ 9.34724308e-05, 5.09079478e-06, -1.53939905e-05],
[ -2.90150983e-04, -1.53939905e-05, 4.84935731e-05]]))

关于具有多个自变量的 Python curve_fit,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28372597/

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