我有一个包含 3 个变量的函数,我想最小化 objective 函数
I have a function with 3 variables that I want to minimize the objective function
我已经导入了所有的包
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" 之后没有“)”,假设那是您想要的位置。请确保以上所有条款都是正确的。
我已经导入了所有的包
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" 之后没有“)”,假设那是您想要的位置。请确保以上所有条款都是正确的。