Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save Observatorio-de-Matematica/f7413ea1f3281961a46f43ff868e465f to your computer and use it in GitHub Desktop.
Save Observatorio-de-Matematica/f7413ea1f3281961a46f43ff868e465f to your computer and use it in GitHub Desktop.
/* [wxMaxima batch file version 1] [ DO NOT EDIT BY HAND! ]*/
/* [ Created with wxMaxima version 12.01.0 ] */
/* [wxMaxima: input start ] */
load(diag);
/* [wxMaxima: input end ] */
/* [wxMaxima: input start ] */
a1:matrix([7,-1,6],[-10,4,-12],[-2,1,-1]);
/* [wxMaxima: input end ] */
/* [wxMaxima: input start ] */
ja1:jordan(a1);
/* [wxMaxima: input end ] */
/* [wxMaxima: input start ] */
dia:dispJordan(ja1);
/* [wxMaxima: input end ] */
/* [wxMaxima: input start ] */
ec1: 'diff(x(t),t)=7*x(t)-y(t)+6*z(t)+5;
/* [wxMaxima: input end ] */
/* [wxMaxima: input start ] */
ec2: 'diff(y(t),t)=-10*x(t)+4*y(t)-12*z(t)+7;
ec3: 'diff(z(t),t)=-2*x(t)+y(t)-z(t)+1;
/* [wxMaxima: input end ] */
/* [wxMaxima: input start ] */
soluc:desolve([ec1,ec2,ec3],[x(t),y(t),z(t)]);
/* [wxMaxima: input end ] */
/* [wxMaxima: input start ] */
B:matrix([3,-1,-4,2],[2,3,-2,-4],[2,-1,-3,2],[1,2,-1,-3]);
/* [wxMaxima: input end ] */
/* [wxMaxima: input start ] */
Bj:jordan(B);
/* [wxMaxima: input end ] */
/* [wxMaxima: input start ] */
Bjd:dispJordan(Bj);
/* [wxMaxima: input end ] */
/* [wxMaxima: input start ] */
P2:ModeMatrix(B,Bj);
/* [wxMaxima: input end ] */
/* [wxMaxima: input start ] */
Q:apply('matrix,makelist(P2[i],i,1,4));
/* [wxMaxima: input end ] */
/* [wxMaxima: input start ] */
matrix(makelist(P2[i],i,1,4));
/* [wxMaxima: input end ] */
/* [wxMaxima: input start ] */
expA:matrixexp(B,t);
/* [wxMaxima: input end ] */
/* [wxMaxima: input start ] */
expA(0);
/* [wxMaxima: input end ] */
/* [wxMaxima: input start ] */
expA0:subst(t=0,expA^^-1);
/* [wxMaxima: input end ] */
/* [wxMaxima: input start ] */
Mf:expA.expA0;
/* [wxMaxima: input end ] */
/* [wxMaxima: input start ] */
ci:transpose([1,2,-2,0]);
/* [wxMaxima: input end ] */
/* [wxMaxima: input start ] */
define(sg2(t),Mf.c1);
/* [wxMaxima: input end ] */
/* [wxMaxima: input start ] */
kill(x,y,z,t);
/* [wxMaxima: input end ] */
/* [wxMaxima: input start ] */
atvalue(x(t),t=0,1);
/* [wxMaxima: input end ] */
/* [wxMaxima: input start ] */
atvalue(y(t),t=0,2);
/* [wxMaxima: input end ] */
/* [wxMaxima: input start ] */
atvalue(z(t),t=0,-2);
/* [wxMaxima: input end ] */
/* [wxMaxima: input start ] */
atvalue(v(t),t=0,0);
/* [wxMaxima: input end ] */
/* [wxMaxima: input start ] */
ec1:'diff(x(t),t)=3*x(t)-y(t)-4*z(t)+2*v(t);
/* [wxMaxima: input end ] */
/* [wxMaxima: input start ] */
ec2: 'diff(y(t),t)=2*x(t)+3*y(t)-2*z(t)-4*v(t);
ec3:'diff(z(t),t)=2*x(t)-y(t)-3*z(t)+2*v(t);
ec4:'diff(v(t),t)=x(t)+2*y(t)-z(t)-3*v(t);
/* [wxMaxima: input end ] */
/* [wxMaxima: input start ] */
soluc2:desolve([ec1,ec2,ec3,ec4],[x(t),y(t),z(t),v(t)]);
/* [wxMaxima: input end ] */
/* [wxMaxima: input start ] */
define(x(t),rhs(soluc2[1]));
define(y(t),rhs(soluc2[2]));
define(z(t),rhs(soluc2[3]));
define(v(t),rhs(soluc2[4]));
/* [wxMaxima: input end ] */
/* Maxima can't load/batch files which end with a comment! */
"Created with wxMaxima"$
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment