Мне нужна помощь в оптимизации этой итерации

#python #iteration #nonlinear-optimization

Вопрос:

На это уходит больше часа. Я задавал тот же вопрос ранее, но он был закрыт, потому что я не включил функции. Итак, вот они (ничего особенного). Я перебираю несколько значений и строю массив с минимальными значениями.

 def chi_interaction(theta1,theta2,phi1,phi2):  return np.sin(theta1)*np.sin(phi2) - np.sin(theta2)*np.sin(phi1)  def xi_interaction(a,theta1,theta2,phi1,phi2):  return a*np.cos(theta1)*np.cos(phi2) - 2*a*np.cos(theta2)*np.cos(phi1)  N = np.pi/12 internal_angle = np.pi/3  theta_list = np.arange(0,np.pi N,N) phi_list = np.arange(0,2*np.pi,N)  v = [] parameter_list = []  temp1 = 0  import itertools for i,j,k,l1,l2,l3 in itertools.product(theta_list,theta_list,theta_list,phi_list,phi_list,phi_list):  a = 2.5e-1  m2 = l2 - 4*internal_angle  m3 = l3   2*internal_angle  n1 = l1   internal_angle  n3 = l3   internal_angle  temp2 = chi_interaction(i,j,l1,l2)   chi_interaction(j,k,m2,m3)     chi_interaction(i,k,n1,n3)     (xi_interaction(a,i,j,l1,l2)   xi_interaction(a,j,k,m2,m3)     xi_interaction(a,i,k,n1,n3))  if temp2 lt;= temp1:  v.append(temp2)  temp1 = temp2  parameter_list.append([i,j,k,l1,n1,l2,m2,m3,n3])  interaction_array = np.array(v) parameter_array = np.rad2deg(np.array(parameter_list))  print(np.amin(interaction_array)) interaction_min = np.where(interaction_array == np.amin(interaction_array))  print("[theta1, theta2, theta3, phi1-1, phi1-3, phi2-1, phi2-2, phi3-2, phi3-3] :",  parameter_array[interaction_min[0]])