{{{id=1|
#####################
###### Code Starts ##
#####################
#####################
#Bifurcation Diagram
#by Sinan Kapcak
#2017
#####################
a,x,y=var('a x y')
@interact
def _(
f=input_box(label='$f(x)$',default=x*e^(a-x),width=45),
P0=input_box(default= n(.6,digits=3),label='$x_0$',width=15),
parameter=input_box(default=(0,3),label='Interval for $a$',width=15),#,auto_update=False
iterasyon=input_box(default=200,label='Quality Parameter#1',width=12),#number of iterations: 400 is good
subint=input_box(default=200,label='Quality Parameter#2',width=12),#number of subinterval: 500 is good
figs=slider(2, 20, 1, default=6,label='Figure size'),
ar=slider([2^n for n in [-10..10]], default=1/2,label='Aspect Ratio' )
):
paramin=parameter[0]
paramax=parameter[1]
kk=(paramax-paramin)/subint
paralist=[paramin+i*kk for i in range(1+subint) ]
biflistx=[]
for j in range(len(paralist)):
nok=[P0]#list of points
for i in range(iterasyon):
nok.append(f(x=nok[i],a=paralist[j] ))
if iterasyon < 200 :
soniter = floor(iterasyon / 2)
if iterasyon > 199 :
soniter = floor(iterasyon * 2/5 )
nok_x=[ nok[-m] for m in [1..soniter] ]
for mm in range(len(nok_x)):
biflistx.append( [paralist[j] ,nok_x[mm]])
biflistgrafx=list_plot(biflistx, plotjoined=False, color='purple',alpha=.3,pointsize=1,figsize=figs,aspect_ratio=ar)
graf=biflistgrafx
show(graf,frame=False,axes=True,axes_labels=['$a$','$x_n$'])
#####################
###### Code Ends ####
#####################
///
}}}
{{{id=2|
///
}}}