首页 文章

scipy曲线拟合矩阵

提问于
浏览
4

我需要使用scipy的 curve_fit 函数进行简单的曲线拟合 . 但是,我的数据是矩阵形式 . 我可以很容易地在numpy中做到这一点,但我想看到适合scipy的善良 .

问题:

AX = B - >给定A,找到X表示最小平方误差 .

from scipy.optimize import curve_fit
def getXval():
    a = 4; b = 3, c = 1;
    f0 = a*pow(b, 2)*c
    f1 = a*b/c
    return [f0, f1]

def fit(x, a0, a1):
    res = a0*x[0] + a1*x[1]
    return [res]

x = getXval()
y = [0.15]
popt, pcov = curve_fit(fit, x, y)

但是,这不起作用 . 有人能指出这里发生了什么吗?

1 回答

  • 2

    您的代码有一些问题 .
    1)使用numpy数组而不是Python列表
    2)你缺少y的值 .

    这对我有用:

    from scipy.optimize import curve_fit
    import numpy as np
    def getXval():
        a = 4; b = 3; c = 1;
        f0 = a*pow(b, 2)*c
        f1 = a*b/c
        return np.array([f0, f1])
    
    def fit(x, a0, a1):
        res = a0*x[0] + a1*x[1]
        return np.array([res])
    
    x = getXval()
    y = np.array([0.15, 0.34])
    popt, pcov = curve_fit(fit, x, y)
    print popt, pcov
    

相关问题