我正在尝试最小化以下功能:
关于参数 H
和 alpha
使用蛮力方法,特别是 scipy.optimize.brute
算法。问题来了,我不知道如何处理这个未知数量的变量,我的意思是,那是 2n 个变量,n 是程序的输入。
我有以下代码,我希望最小化会导致 H
和 alpha
值的数组:
import numpy as np
#Entries:
gamma = 17.0
C = 70.0
T = 1
R = 0.5
n = int(2)
def F(mins, gamma,C,T,R):
H,alpha = mins
ret = 0
for i in range(n):
inner_sum = 0
for j in range(i+1):
inner_sum += H[j]*np.tan(alpha[j])
ret += 3*gamma*H[i]*(R+inner_sum)**2
所以我可以从数组的位置得到H
和alpha
的值。我习惯于使用蛮力进行多变量最小化,但仅当我有固定数量的变量时。在这种情况下,我该如何继续?
P.S.:我知道上述表达式的最小化会导致两个变量都为 0。这只是说明问题的更大表达式的一小部分,其中工作算法将非常有帮助。提前致谢!