变参数Scipy曲线拟合优化

2024-04-25 20:57:27 发布

您现在位置:Python中文网/ 问答频道 /正文

假设我们有下面的函数为4个参数进行优化,我们必须按照下面的方式编写函数,但是如果我们想要相同的函数有更多的参数,我们必须重写函数定义。你知道吗

def radius (z,a0,a1,k0,k1,):
    k = np.array([k0,k1,])
    a = np.array([a0,a1,])
    w   = 1.0
    phi = 0.0
    rs = r0 + np.sum(a*np.sin(k*z +w*t +phi), axis=1)
    return rs

问题是,这是否能以一种更自动、更直观的方式完成,而不是this question所建议的那样。你知道吗

示例如下,必须手写。你知道吗

def radius (z,a0,a1,a2,a3,a4,a5,a6,a7,a8,a9,k0,k1,k2,k3,k4,k5,k6,k7,k8,k9,):
    k = np.array([k0,k1,k2,k3,k4,k5,k6,k7,k8,k9,])
    a = np.array([a0,a1,a2,a3,a4,a5,a6,a7,a8,a9,])
    w   = 1.0
    phi = 0.0
    rs = r0 + np.sum(a*np.sin(k*z +w*t +phi), axis=1)
    return rs

Tags: 函数参数defa1np方式k1a0