我有一个包含 3 个变量的函数,我想最小化目标函数



我已经导入了所有的软件包

def f(x,y,z):
   return (1364*(z + x)**2 - (2728*(z + x)**3)/3 - 1600*y**2 + (3200*y**3)/3 
                 - (5114092463576843*z**2)/4398046511104 + 
                 (5114092463576843*z**3)/6597069766656 + 1364*x**2 
                 - (2728*x**3)/3 + 1364*(y - x)**2 + (2728*(y - x)**3)/3 
                 + 1364*(z - y + x)**2 - (2728*(z - y + x**3)/3 
                         - 20799363518172179/105553116266496)**(1/2)
x0 = [0.3, 0.2, 0.2]
H = np.array(hessian(f, (x, y, z)))
res = minimize(f, [0,0,0], method='nelder-mead', options={'xtol': 1e-8, 'disp': True})

我在 X0、H 和 res 中有无效的语法错误

我将您的方程分解为加法项,仅用于可视化。

def f(x,y,z):
    a = 1364 * (z + x) ** 2
    b = (2728 * (z + x) ** 3) / 3
    c = 1600 * y ** 2
    d = (3200 * y ** 3) / 3
    e = (5114092463576843 * z ** 2) / 4398046511104
    g = (5114092463576843 * z ** 3) / 6597069766656
    h = 1364 * x ** 2
    i = (2728 * x ** 3) / 3
    j = 1364 * (y - x) ** 2
    k = (2728 * (y - x) ** 3) / 3
    l = 1364 * (z - y + x) ** 2
    m = (2728 * (z - y + x ** 3) / 3 - 20799363518172179 / 105553116266496) ** (1 / 2)
    return (a - b - c + d - e + g + h - i + j + k + l - m)
">

a"前面的前导"("没有"("在"m"之后假设这是您想要的地方。请确保上述所有条款均正确无误。

最新更新