Solving Two Dimensional Systems of Linear Differential Equations.
restart; with(LinearAlgebra):
A utiity procedure.
buildsys := proc(mat)
{diff(x(t),t)=mat[1,1]*x(t)+mat[1,2]*y(t), diff(y(t),t)=mat[2,1]*x(t)+mat[2,2]*y(t)};
end;
Diagonializable, real eigenvalues.
A := Matrix([[-4, 6], [-3, 5]]);
sys := buildsys(A);
Initial Condition
xno := <a,b>;
Maple's Solution
sol := dsolve(sys union {x(0)=a, y(0)=b}, [x(t),y(t)]);
Now, we'll solve it.
evv := Eigenvectors(A);
P:=evv[2];
P^(-1).A.P;
zmat := DiagonalMatrix([exp(2*t), exp(-t)]);
xsol := P.zmat.P^(-1).xno;
Rearrange to compare with Maple.
map(collect, %, [exp(2*t), exp(-t)]);
Diagonalizable, nonreal eigenvalues.
A := Matrix([[11, -6], [15, -7]]);
sys := buildsys(A);
dsol:=dsolve(sys union {x(0)=a, y(0)=b}, [x(t), y(t)]);
evv := Eigenvectors(A);
P := evv[2];
p1 := Column(P,1);
u := map(Re,p1);
v := -map(Im, p1);
u - I*v;
Q := <u|v>;
B:=Q^(-1).A.Q;
zmat := << exp(2*t)*cos(3*t)|-exp(2*t)*sin(3*t)>,
<exp(2*t)*sin(3*t)| exp(2*t)*cos(3*t)>>;
xsol := Q.zmat.Q^(-1).xno;
To check that this is the same as Maple's solution, create differences
{x(t)-xsol[1], y(t)-xsol[2]};
Now substitute Maple's solutions for LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYlLUkjbWlHRiQ2JVEieEYnLyUnaXRhbGljR1EldHJ1ZUYnLyUsbWF0aHZhcmlhbnRHUSdpdGFsaWNGJy1JKG1mZW5jZWRHRiQ2JC1GIzYkLUYsNiVRInRGJ0YvRjIvRjNRJ25vcm1hbEYnRj1GPQ== and LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYmLUkjbWlHRiQ2JVEieUYnLyUnaXRhbGljR1EldHJ1ZUYnLyUsbWF0aHZhcmlhbnRHUSdpdGFsaWNGJy1JKG1mZW5jZWRHRiQ2JC1GIzYkLUYsNiVRInRGJ0YvRjIvRjNRJ25vcm1hbEYnRj0tSSNtb0dGJDYtUSIuRidGPS8lJmZlbmNlR1EmZmFsc2VGJy8lKnNlcGFyYXRvckdGRS8lKXN0cmV0Y2h5R0ZFLyUqc3ltbWV0cmljR0ZFLyUobGFyZ2VvcEdGRS8lLm1vdmFibGVsaW1pdHNHRkUvJSdhY2NlbnRHRkUvJSdsc3BhY2VHUSYwLjBlbUYnLyUncnNwYWNlR0ZURj0=
subs(dsol, %);
map(simplify, %);
Nondiagonalizable.
A := Matrix([[-8/3, 4/3], [-1/3, -4/3]]);
sys := buildsys(A);
dsol := dsolve(sys union {y(0)=b, x(0)=a}, [x(t), y(t)]);
evv := Eigenvectors(A);
u:= <2, 1>;
Pick some vector independent of LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYlLUkjbWlHRiQ2JVEidUYnLyUnaXRhbGljR1EldHJ1ZUYnLyUsbWF0aHZhcmlhbnRHUSdpdGFsaWNGJy1JI21vR0YkNi1RIi5GJy9GM1Enbm9ybWFsRicvJSZmZW5jZUdRJmZhbHNlRicvJSpzZXBhcmF0b3JHRj0vJSlzdHJldGNoeUdGPS8lKnN5bW1ldHJpY0dGPS8lKGxhcmdlb3BHRj0vJS5tb3ZhYmxlbGltaXRzR0Y9LyUnYWNjZW50R0Y9LyUnbHNwYWNlR1EmMC4wZW1GJy8lJ3JzcGFjZUdGTEY5
v := < -1,3>;
A.v;
A.v - (-2)*v;
This is LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYoLUkobWZlbmNlZEdGJDYkLUYjNiQtSSZtZnJhY0dGJDYoLUkjbW5HRiQ2JFEiN0YnLyUsbWF0aHZhcmlhbnRHUSdub3JtYWxGJy1GIzYkLUY0NiRRIjNGJ0Y3RjcvJS5saW5ldGhpY2tuZXNzR1EiMUYnLyUrZGVub21hbGlnbkdRJ2NlbnRlckYnLyUpbnVtYWxpZ25HRkQvJSliZXZlbGxlZEdRJmZhbHNlRidGN0Y3LUkjbWlHRiQ2JVEidUYnLyUnaXRhbGljR1EldHJ1ZUYnL0Y4USdpdGFsaWNGJy1JI21vR0YkNi1RIi5GJ0Y3LyUmZmVuY2VHRkkvJSpzZXBhcmF0b3JHRkkvJSlzdHJldGNoeUdGSS8lKnN5bW1ldHJpY0dGSS8lKGxhcmdlb3BHRkkvJS5tb3ZhYmxlbGltaXRzR0ZJLyUnYWNjZW50R0ZJLyUnbHNwYWNlR1EmMC4wZW1GJy8lJ3JzcGFjZUdGYW8tRlQ2LVEifkYnRjdGV0ZZRmVuRmduRmluRltvRl1vRl9vRmJvRmRvRjc= Adjust LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYlLUkjbWlHRiQ2JVEidkYnLyUnaXRhbGljR1EldHJ1ZUYnLyUsbWF0aHZhcmlhbnRHUSdpdGFsaWNGJy1JI21vR0YkNi1RIi5GJy9GM1Enbm9ybWFsRicvJSZmZW5jZUdRJmZhbHNlRicvJSpzZXBhcmF0b3JHRj0vJSlzdHJldGNoeUdGPS8lKnN5bW1ldHJpY0dGPS8lKGxhcmdlb3BHRj0vJS5tb3ZhYmxlbGltaXRzR0Y9LyUnYWNjZW50R0Y9LyUnbHNwYWNlR1EmMC4wZW1GJy8lJ3JzcGFjZUdGTEY5
v := v/(7/3);
A.v - (-2)*v;
This is LUklbXJvd0c2Iy9JK21vZHVsZW5hbWVHNiJJLFR5cGVzZXR0aW5nR0koX3N5c2xpYkdGJzYlLUkjbWlHRiQ2JVEidUYnLyUnaXRhbGljR1EldHJ1ZUYnLyUsbWF0aHZhcmlhbnRHUSdpdGFsaWNGJy1JI21vR0YkNi1RIi5GJy9GM1Enbm9ybWFsRicvJSZmZW5jZUdRJmZhbHNlRicvJSpzZXBhcmF0b3JHRj0vJSlzdHJldGNoeUdGPS8lKnN5bW1ldHJpY0dGPS8lKGxhcmdlb3BHRj0vJS5tb3ZhYmxlbGltaXRzR0Y9LyUnYWNjZW50R0Y9LyUnbHNwYWNlR1EmMC4wZW1GJy8lJ3JzcGFjZUdGTEY5 Tis normalization gives us the 1 in the matrix B below.
P := <u|v>;
B := P^(-1).A.P;
zmat := << exp(-2*t) | t*exp(-2*t)>, <0| exp(-2*t)>>;
xsol := P.zmat.P^(-1).xno;
{x(t)-xsol[1], y(t)-xsol[2]};
subs(dsol, %);
map(simplify, %);
TTdSMApJNVJUQUJMRV9TQVZFLzEzMDk2NzY4WColKmFsZ2VicmFpY0c2IjYiW2dsISMlISEhIiMiIyIiIyEiIkYmTTdSMApJNFJUQUJMRV9TQVZFLzgxNDI0NTZYLCUqYWxnZWJyYWljRzYiNiJbZ2whIiUhISEjJSIjIiMiIiJGJyIiI0YnRiY=TTdSMApJNFJUQUJMRV9TQVZFLzgxNDI0NTZYLCUqYWxnZWJyYWljRzYiNiJbZ2whIiUhISEjJSIjIiMiIiJGJyIiI0YnRiY=TTdSMApJNVJUQUJMRV9TQVZFLzEzMzAzOTg0WColKmFsZ2VicmFpY0c2IjYiW2dsISMlISEhIiMiI14kIiIjIiIkXiRGKCEiJEYmTTdSMApJNFJUQUJMRV9TQVZFLzkwMDE1MjBYLCUqYWxnZWJyYWljRzYiNiJbZ2whIiUhISEjJSIjIiNeJCMiIiQiIiYjIiIiRipGLF4kRigjISIiRipGLEYmTTdSMApJNFJUQUJMRV9TQVZFLzkwMDE1MjBYLCUqYWxnZWJyYWljRzYiNiJbZ2whIiUhISEjJSIjIiNeJCMiIiQiIiYjIiIiRipGLF4kRigjISIiRipGLEYmTTdSMApJNVJUQUJMRV9TQVZFLzEzMzA1MDY0WColKmFsZ2VicmFpY0c2IjYiW2dsISMlISEhIiMiI14kIyIiJCIiJiMiIiJGKkYsRiY=TTdSMApJNVJUQUJMRV9TQVZFLzExMTA2MDQ4WColKmFsZ2VicmFpY0c2IjYiW2dsISMlISEhIiMiIyEiI0YnRiY=TTdSMApJNFJUQUJMRV9TQVZFLzk5NzcyNjRYLCUqYWxnZWJyYWljRzYiNiJbZ2whIiUhISEjJSIjIiMiIiMiIiIiIiFGKUYm