Page 1 of 1

sign of eigenvectors

PostPosted: Mon Nov 14, 2005 12:39 am
by mmgk
Hi,

I am using dgeevx routine in LAPACK to solve a system of ordinary differential equations (chemical kinetics reaction model). This routine returns the eigenvectors that are normalized to have Euclidean norm equal to 1 and largest component real. How do I fix the sign of each eigenvector so that I can obtain the time course of each chemical species? I know that the concentrations of all species should be positive at all times. Any suggestions or pointers are welcome.

Thanks,

mmgk

Re: sign of eigenvectors

PostPosted: Mon Nov 14, 2005 5:53 am
by sven
Can you please explain what you mean by the "sign of each eigenvector". Thanks,

Sven Hammarling.

PostPosted: Mon Nov 14, 2005 2:26 pm
by mmgk
"Sign of eigenvector" means +ve or -ve.

The concentration of each species in a chemical reaction scheme will be given by C(t) = Sigma_i a_i exp(-k_i t), where k_i are the eigenvalues and a_i are the eigenvectors obtained by solving the system of ordinary differential equations. Depending on the sign of eigenvectors whether it is +ve or -ve, C(t) can become +ve or -ve. I want to make sure that C(t) is +ve at all t. How do I do that?

mmgk

Re: sign of eigenvectors

PostPosted: Tue Nov 15, 2005 4:09 am
by sven
In general there is no guarantee that an eigenvector has elements of the same sign since, after all, it represents a direction. But I presume that there is something special about your matrices that means that the eigenvectors are real and do have elements of the same sign? (Forgive me, I am not familiar with your application.)

Since the eigenvectors represent a direction, you can scale them by any non-zero value, and in particular by -1.

Sven.