使用 scipy.optimize.brute 全局最小化多变量

时间:2021-03-04 14:50:34

标签: python numpy math scipy minimization

我正在尝试最小化以下功能:

enter image description here

关于参数 Halpha 使用蛮力方法,特别是 scipy.optimize.brute 算法。问题来了,我不知道如何处理这个未知数量的变量,我的意思是,那是 2n 个变量,n 是程序的输入。

我有以下代码,我希望最小化会导致 Halpha 值的数组:

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

所以我可以从数组的位置得到Halpha的值。我习惯于使用蛮力进行多变量最小化,但仅当我有固定数量的变量时。在这种情况下,我该如何继续?

P.S.:我知道上述表达式的最小化会导致两个变量都为 0。这只是说明问题的更大表达式的一小部分,其中工作算法将非常有帮助。提前致谢!

0 个答案:

没有答案