[Scilab-users] Jordan normal form
Samuel Gougeon
sgougeon at free.fr
Sun Jul 26 17:40:35 CEST 2020
Le 26/07/2020 à 16:33, fujimoto2005 a écrit :
> Dear Samuel,
> Thanks for your reply.
>
>> Have you tried bdiag()?
> Yes, I have tried it with rmax=1/%eps.
> But result of the sample of help page is not the Jordan form.
How do you see that?
--> a = rand(5,5), [J, X] = bdiag(a)
a =
0.2113249 0.6283918 0.5608486 0.2320748 0.3076091
0.7560439 0.8497452 0.6623569 0.2312237 0.9329616
0.0002211 0.685731 0.7263507 0.2164633 0.2146008
0.3303271 0.8782165 0.1985144 0.8833888 0.312642
0.6653811 0.068374 0.5442573 0.6525135 0.3616361
J =
2.4777836 0. 0. 0. 0.
0. 0.0757087 0.4869251 0. 0.
0. -0.5777956 -0.1248605 0. 0.
0. 0. 0. 0.069654 0.
0. 0. 0. 0. 0.5341598
X =
-0.3527369 0.0605091 0.2379654 0.9582868 0.4179387
-0.5921536 -0.7886896 -0.1822515 0.5222938 0.3870075
-0.3418189 0.2368257 0.3781926 -0.0200047 0.6351967
-0.5157279 0.3072656 0.3968688 -0.5383794 -1.1636856
-0.3769819 0.4738897 -0.7809384 -1.0656465 -0.6321472
J est block-diagonal. Isn't it what we expect?
--> clean(a - X*J/X, 10*%eps)
ans =
0. 0. 0. 0. 0.
0. 0. 0. 0. 0.
0. 0. 0. 0. 0.
0. 0. 0. 0. 0.
0. 0. 0. 0. 0.
J and the base X of eigen vectors and/or subspaces is such that a = X *
J / X
Isn't it an expected property?
We can easily check it at least for eigen vectors, of multiplicity = 1:
--> a*X(:,[1 4 5]) ./ X(:,[1 4 5])
ans =
2.4777836 0.069654 0.5341598
2.4777836 0.069654 0.5341598
2.4777836 0.069654 0.5341598
2.4777836 0.069654 0.5341598
2.4777836 0.069654 0.5341598
with related eigenvalues
So, what else?
More information about the users
mailing list