Professional Documents
Culture Documents
df,dfinv=dfcn((a+da),th0,(al+dl),w)
dab=-np.dot(dfinv,f)
dat=np.dot(dfinv,iq)
ddl1,ddl2=arc(da,dab,dat,dl,iq)
dda1=dab+ddl1*dat
dda2=dab+ddl2*dat
det=np.linalg.det(df)
daomag=np.dot(dao,dao)
if daomag==0.:
if np.sign(dl+ddl1)==np.sign(det):
dda=dda1
ddl=ddl1
else:
dda=dda2
ddl=ddl2
else:
aux1=np.dot(da+dda1,dao)
aux2=np.dot(da+dda2,dao)
aux3=dlamda*(dl+ddl1)*np.dot(iq,iq)
aux4=dlamda*(dl+ddl2)*np.dot(iq,iq)
dot1=aux1+psi**2.*aux3
dot2=aux2+psi**2.*aux4
if dot1>dot2:
dda=dda1
ddl=ddl1
else:
dda=dda2
ddl=ddl2
if ddl1==ddl2:
dda=dda1
ddl=ddl1
dalfa=da+dda
dlamda=dl+ddl
f=fcn((a+dalfa),th0,(al+dlamda),w)
fcheck=np.linalg.norm(f)
if iters>maxiter:
iters=maxiter+1
break
if iters>maxiter:
print 'Convergence cannot achieved within',maxiter,'iter
ations'
print 'Program stops'
exit()
else:
a+=dalfa
al+=dlamda
iout.write(str(a[1])+' '+str(al)+"\n")
dao=dalfa
dlo=dlamda
#print 'Riks increment',i,'completed successfully'
print 'The program completed successfully'
iout.close()
#iread=open('Riks.dat', 'r')
with open('./FD_'+str(w)+'.dat') as iread:
u, l = [float(x) for x in iread.readline().split()]
array= np.array([[float(x) for x in line.split()] for line in iread])
plt.figure()
# Setting text fonts
plt.rc('text', usetex=True)
plt.rc('font', family='serif',size=15)
plt.plot(array[:,0],array[:,1],label='$\\beta=0.3$',linewidth=2)
# Add some labels
plt.xlabel('$\\alpha$',fontsize=18)
plt.ylabel('$\\lambda$',fontsize=18,rotation=0)
plt.title('$\\theta_0=\\pi/6$')
plt.legend(loc='best')
plt.show()