【发布时间】:2018-01-01 15:30:48
【问题描述】:
我想最小化一个函数以获得一些参数的值:a,e,I,Omega,om,tp。
我使用这个“模块”:docs.scipy.org/doc/scipy/reference/generated/scipy.optimize.minimize.html。
我的函数有13个参数:
我导入了:from scipy.optimize import minimize。然后我尝试最小化它。并且发生错误:
有人能帮忙解决这个问题吗?
PS:我一周前开始使用python,可能可以解释程序的这种语法,但是我愿意改进自己。
from numpy import *
import numpy as np
import scipy as sp
from scipy.optimize import minimize
import matplotlib.pyplot as plt
from pylab import *
from os import chdir
chdir("/Users/benjaminjaillant/Desktop")
def Chi_VLT(a,e,I,tp,Omega,om,Mbh,R0,Vr_bh,alpha_bh,V_alp_bh,delta_bh,V_del_bh):
return sum(((Vr_etoile(t_vr_VLT*365*24*3600,a,e,I,tp,om,Mbh,Vr_bh)/1000)-vr_VLT)**2/vr_error_VLT**2) + sum(((alpha_etoile_IR(t_orbit_VLT*365*24*3600,a,e,I,tp,Omega,om,Mbh,alpha_bh,V_alp_bh,R0)*206264806.246)-Ra_VLT)**2/Ra_error_VLT**2) + sum(((delta_etoile_IR(t_orbit_VLT*365*24*3600,a,e,I,tp,Omega,om,Mbh,delta_bh,V_del_bh,R0)*206264806.246)-Dec_VLT)**2/Dec_error_VLT**2)
x0 = [1.5e14,0.8,2.5,63.10e9,4,1,8.5e36,2.5e20,2000,1.3e-8,-10e-18,2e-9,1.5e-17]
res = minimize(Chi_VLT, x0 , method='nelder-mead',options={'xtol': 1e-4,'maxiter':50 ,'disp': True})
print res.message
print res.x
【问题讨论】:
-
大家好:),我不知道如何编辑我的帖子..
-
Î 就在这里,在标签下面,请贴出你的函数代码,而不是图片
-
所有代码??读起来不会太复杂吧?
-
我们这里只需要相关且可重现的部分
-
从外观上看,优化器正在尝试使用单个参数 x0(列表...)而不是其内容来调用函数。您可以先尝试将 x0 转换为所需类型的 nd 数组。
标签: python variables optimization minimize