我是个编程新手,所以即使是简单的事情,我也有困难;
我试图从下面的三重循环中得到3个向量,我有一个Xvec
,其中有120个数据,我想要的是每个x in Xvec
尝试90个A
值,每个A
都会有Zs
到a(Zs首先是浮动的,然后通过比较ceil和floor,我会取给我最小值的那一个),然后这些值找到了最佳的A
,Zs
耦合,使函数gibbs
最小化120 Xvec
值。
经过几天的试验,我可以写下面的代码,但是代码运行得太慢了,我认为应该有直接的方法来找到这些A
和Zs
参数,实际上我甚至不确定用这个代码我是否得到了我需要的结果。任何建议都将不胜感激
for x in Xvec:
for A in range(1,91):
for Zs in (np.arange(1, A+1 , 0.1 , dtype=float)):
g = gibbs(x,A,Zs)
g1 = np.append(g1,g)
min_pos, minofg = g1.argmin() , g1.min()
Zpos = 1+(0.1)*min_pos
Zceil = np.ceil(Zpos)
Zfloor = np.floor(Zpos)
gc = gibbs(x,A,Zceil)
gf = gibbs(x,A,Zfloor)
k = min(gc,gf)
if k == gc: Z = Zceil
else: Z = Zfloor
z1 = np.append(z1,Z)
x1 = np.append(x1,x)
a1 = np.append(a1,A)
for N in range(0,10711,90):
a = min(g1[N:N+90])
g1vec = np.append(g1vec,a)
b = g1[N:N+90].argmin()
a1vec = np.append(a1vec,a1[N+b])
z1vec = np.append(z1vec,z1[N+b])
最后我需要有3个向量,一个是每x有一个函数gibbs
的最小可能值,另外2个是给出函数最小值的A
和Zs
值。
在我找不到任何其他方法之后,我计算了所有的可能性,然后尝试在另一个for循环中分离它们,但这需要永远,我有很多怀疑它是否真的有效。你知道吗
目前没有回答
相关问题 更多 >
编程相关推荐