/* [wxMaxima batch file version 1] [ DO NOT EDIT BY HAND! ]*/ /* [ Created with wxMaxima version 12.09.0 ] */ /* [wxMaxima: input start ] */ 'diff(x,t)=k*x*(1-x); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ ode2(%,x,t); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ ic1(%,t=0,x=x[0]),logcontract; /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ solve(%,x); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ define(x(t),rhs(first(%o4)))$ /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ wxplot2d(makelist(subst([k=d*0.25,x[0]=0.1],x(t)),d,1,7), [t,0,15],cons(legend,makelist(k=d*0.25,d,1,7)), [gnuplot_preamble,"set key right bottom"]); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ solve(r*c*(1-c)=c,c); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ F(r,x):=r*x*(1-x)$ /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ load(dynamics)$ /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ set_random_state(make_random_state (true))$ /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ x[0]:random(1.0); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ evolution(F(0.25,x),x[0],15,[y,0,1]); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ evolution(F(1.3,x),x[0],15,[y,0,1]); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ evolution(F(3.5,x),0.3,25,[y,0,1]); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ staircase(F(3.5,x),x[0],500,[x,0,1],[y,0,1]); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ orbits(F(r,x), x[0], 150, 200, [r, 2.5, 4], [style, dots]); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ orbits(F(r,x),x[0],150,200,[r,3.5,3.6],[x,0.3,0.4], [style,dots]); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ evolution(F(4,x),3/4,50,[style,[lines,2]]); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ eps:random(0.000000000001); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ evolution(F(4,x),3/4+eps,50,[style,[lines,2]]); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ evolution(F(4,x),0.2,50000,[style,dots]); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ numer:false$ /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ latractor: [10*y-10*x, -x*z+28*x-y, x*y-8*z/3]$ /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ linitial: [-8, 8, 27]$ /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ lsolution:rk(latractor,[x,y,z],linitial,[t,0,50,0.01])$ /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ lpoints: map(lambda([x], rest(x)), lsolution)$ /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ load(draw)$ /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ draw3d(point_type=none,points_joined=true,color=orange, xlabel="x(t)",ylabel="y(t)",zlabel="z(t)", xtics=10,ytics=10,ztics=10,points(lpoints)); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ remfunction(x)$ /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ gradef(x(t),%sigma*(y(t)-x(t)))$ /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ gradef(y(t),x(t)*(%rho -z(t))-y(t))$ /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ gradef(z(t),x(t)*y(t)-%beta *z(t))$ /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ x(t)^2+y(t)^2+(z(t)-(%sigma +%rho))^2=R^2*(%sigma +%rho)^2; /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ facsum(diff(%,t),x(t),y(t),z(t)); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ factor(solve((sqrt(2*%beta)*z(t)-u)^2-u^2= 2*%beta*z(t)^2-2*%beta*(%sigma+%rho)*z(t),u)); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ solve(1/a = sqrt(2*%sigma/(%beta*(%sigma +%rho)^2/2)),a); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ solve(1/b = sqrt(2/(%beta*(%sigma +%rho)^2/2)),b); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ solve(1/c = sqrt(2*%beta/(%beta*(%sigma +%rho)^2/2)),c); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ assume(%epsilon>0,N>0)$ /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ remvalue(x[0])$ /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ solve(abs(f[N](x[0]+%epsilon)-f[N](x[0]))= %epsilon*exp(N*%lambda),%lambda); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ gradef(f(x),f\'(x))$ /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ atvalue(f(y),y=x[0],x[1])$ /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ atvalue('diff(f(y),y),y=x[0],f\'(x[0]))$ /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ at(diff(f(f(x)),x),x=x[0]); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ define(dF(r,x),diff(F(r,x),x))$ /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ r:3$ /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ maxiter:50000$ /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ x[1]:random(1.0); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ for j:2 thru maxiter do (x[j]:F(r,x[j-1]))$ /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ L:0$ /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ for j:1 thru maxiter do L:L+log(abs(dF(r,x[j])))$ /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ '%lambda=L/maxiter; /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ 'V(x)=integrate(x^3/4-x,x); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ wxplot2d(integrate(x^3/4-x,x),[x,-3,3],[ylabel,"V(x)"]); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ duff:[v,-v/10+x-x^3/4]$ /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ icduff:[3,10]$ /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ solduff:rk(duff,[x,v],icduff,[t,0,100,0.1])$ /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ curveduff:map(lambda([x],rest(x,-1)),solduff)$ /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ pointsduff:map(lambda([x],rest(x)),solduff)$ /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ wxdraw2d(point_type=none,points_joined=true, xlabel="t",ylabel="x(t)",points(curveduff)); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ wxdraw2d(point_type=none,points_joined=true, xlabel="x(t)",ylabel="v(t)",points(pointsduff)); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ duffing:[v,-v/10+x-x^3/4+sin(t)]$ /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ icduffing:[0,0]$ /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ sduffing:rk(duffing,[x,v],icduffing,[t,0,100,0.1])$ /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ cduffing:map(lambda([x],rest(x,-1)),sduffing)$ /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ pduffing:map(lambda([x],rest(x)),sduffing)$ /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ wxdraw2d(point_type=none,points_joined=true,color=magenta, xlabel="t",ylabel="x(t)",points(cduffing)); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ wxdraw2d(point_type=none,points_joined=true,color=magenta, xlabel="x(t)",ylabel="v(t)",points(pduffing)); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ duffing1:[v,-v/10+x-x^3/4+2.5*sin(2*t)]$ /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ icduffing1:[0,0]$ /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ sduffing1:rk(duffing1,[x,v],icduffing1,[t,0,100,0.1])$ /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ pduffing1:map(lambda([x],rest(x)),sduffing1)$ /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ wxdraw2d(point_type=none,points_joined=true,color=coral, xlabel="x(t)",ylabel="v(t)",points(pduffing1)); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ miter:25$ /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ %tau:bfloat(%pi)$ /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ sduffing2:rk(duffing,[x,v],icduffing, [t,0,miter*2*%tau,%tau/30])$ /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ pduffing2:create_list(sduffing2[i],i,makelist(i*60,i,1,miter))$ /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ poinduffing2:map(lambda([x],rest(x)), makelist(pduffing2[i],i,1,miter))$ /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ wxdraw2d(point_type=filled_circle,color=magenta,xtics=1, ytics=1,xrange=[-4,1.5],yrange=[0,4],points(poinduffing2)); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ transient:map(lambda([x],rest(x)), makelist(pduffing2[i],i,5,miter))$ /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ wxdraw2d(point_type=filled_circle,color=magenta,xtics=1, ytics=1,xrange=[-4,1.5],yrange=[0,4],points(transient)); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ duffing3:[v,-v/10+x-x^3/4+2.5*sin(2*t)]$ /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ icduffing3:[0,0]$ /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ maxiter:1000$ /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ sduffing3:rk(duffing3,[x,v],icduffing3, [t,0,maxiter*%tau,%tau/30])$ /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ pduffing3: create_list(sduffing3[i],i,makelist(i*30,i,1,maxiter))$ /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ poinduffing3:map(lambda([x],rest(x)), makelist(pduffing3[i],i,1,maxiter))$ /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ wxdraw2d(point_size=0.3,point_type=circle, xrange=[-5,5],yrange=[-7,3],xtics=1,ytics=1, color=coral,points(poinduffing3),grid=true); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ resolution:20$ /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ for n:1 thru resolution do (Z[n]:substpart("[",zeromatrix(10*n,10*n),0), boxcount[n]:0, for k:1 thru maxiter do ( ix:floor(n*(poinduffing3[k][1]+5)), iy:floor(n*(poinduffing3[k][2]+7)), if is(Z[n][ix][iy]=0) then (Z[n][ix][iy]:1,boxcount[n]:boxcount[n]+1)))$ /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ fitdim:makelist( [log(n)/log(10),log(boxcount[n])],n,1,resolution),numer$ /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ wxdraw2d(point_size=1,point_type=filled_circle, color=dark_violet,points(fitdim)); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ fitdimension:rest(rest(fitdim,7),-2)$ /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ load(stats)$ /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ model:linear_regression(fitdimension); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ fiteqn:take_inference('b_estimation,model); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ fractaldimension:second(%); /* [wxMaxima: input end ] */ /* Maxima can't load/batch files which end with a comment! */ "Created with wxMaxima"$