+def initialisation_():
+ global u, v, la, w, theta , q, Ps, Rh, eta, x,init
+ fd = open(fichier_init,"r")
+ l= fd.readline()
+ init_p = eval(l)
+ print init_p
+ theta = omega
+ (q,Ps,Rh,eta,x,u,v,la,w) = tuple([deepcopy(x) for x in init_p])
+ init = [deepcopy(q),deepcopy(Ps),deepcopy(Rh),deepcopy(eta),
+ deepcopy(x),deepcopy(u),deepcopy(v),deepcopy(la),deepcopy(w)]
+
+
+
+def __evalue_maj_theta__(nbexp,out=False):
+ global u, v, la, w, theta , q, Ps, Rh, eta, x, valeurFonctionDuale
+ res = {}
+ m = []
+ itermax = 100000
+
+ def __maj_theta(k):
+ mem = []
+ om = omega/(mt.pow(k,0.75))
+ return om
+ liste_arret=[]
+ for idxexp in range(nbexp):
+ mxg = 0
+ if not(out):
+ initialisation()
+ else :
+ initialisation_()
+
+ k = 1
+ arret = False
+ sm = 0
+ err, ar = 0,0
+ dur,dura=0,0
+ while k < itermax and not arret :
+ print "ici"
+ (u,v,la,w,theta,eta,q,Ps,Rh,x,valeurFonctionDuale,ar,mxg,smax,ct,cta)=maj(k,__maj_theta,mxg,idxexp)
+ err = (max(q.values()) - min(q.values()))/min(q.values())
+ dur += ct
+ dura += cta
+ arret = err < errorq or ar < errorD
+ k+=1
+ variation = "+" if smax > sm else "-"
+ if out : print variation,
+ if k%10 ==0 :
+ print "k:", k,
+ "erreur sur q",
+ errorq, "erreur sur F", ar, "et q:", q
+
+ if out : print "maxg=", mxg
+ mem = [deepcopy(q),deepcopy(Ps),deepcopy(Rh),deepcopy(eta),
+ deepcopy(x),deepcopy(u),deepcopy(v),deepcopy(la),deepcopy(w)]
+ """
+ if k%4500 == 0 :
+
+ #print "#########\n",mem,"\#########\n"
+ if k%4600 == 0 :
+ #print "#########m\n",mem,"\#########\n"
+ """
+
+
+ if smax - sm > 500:
+ print "variation trop grande"
+ print "init"
+ print init
+ exit
+ sm = smax
+
+ if k == itermax:
+ print "nbre d'iteration trop grand"
+ print "init"
+ print init
+ sy.exit(1)
+ else :
+ liste_arret += [(err, ar,k,errorD)]
+
+ print "###############"
+ print k
+ print "###############"
+ m += [k]
+
+ #print liste_arret
+ #print (min(m),max(m),float(sum(m))/nbexp,m),m
+ #return (liste_arret,dur,dura)
+ return (liste_arret,dur)
+
+
+def __une_seule_exp__(fichier_donees):