cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
Showing results for 
Search instead for 
Did you mean: 

Community Tip - You can subscribe to a forum, label or individual post and receive email notifications when someone posts a new topic or reply. Learn more! X

Non-Trivial Eigenvector

sfan
1-Visitor

Non-Trivial Eigenvector

Hi,

I am trying to solve the eigenvectors of matrix k-lambda*m, similar to [vec, val] = eig(k,m) in matllab.

1.JPG

However, there is no such built in function in Mathcad. I write a similar equation in solve block,

but mathcad tends to return to the trivial solution.

Is there a way to restrain mathcad from producing trivial solutions?

Thank you guys!

Best

Shawn

ACCEPTED SOLUTION

Accepted Solutions
Werner_E
25-Diamond I
(To:sfan)

Why don't you use the built-in functions genvals and genvecs ?

Zero tolerance is set to 12, otherwise we won't get those perfect zeros.

I guess one problem in your attempt is, that you are taking the square root when you define w´  while you should rather simply write w´:=polyroots(v) to get the generic eigenvalues.

But even then your solve block just provides the trivial solution as eigenvectors are not unique.

You could add some constraints like "the first component of each vector should be 1"

or "every vector should be of length 1"

or even

You may play around with smaller values of CTOL to get more accurate results. In Mathcad 15 I had no luck with values below 10^-5.

Regards

Werner

View solution in original post

3 REPLIES 3
AlvaroDíaz
12-Amethyst
(To:sfan)

Hi Shawn.

No way. If MuPad don't make some mistakes, which could be, your system have rank 3, this is, all columns are independent, so, the system only have trivial solutions.

Best regards.

Alvaro.

TrivialSol.gif

Werner_E
25-Diamond I
(To:sfan)

Why don't you use the built-in functions genvals and genvecs ?

Zero tolerance is set to 12, otherwise we won't get those perfect zeros.

I guess one problem in your attempt is, that you are taking the square root when you define w´  while you should rather simply write w´:=polyroots(v) to get the generic eigenvalues.

But even then your solve block just provides the trivial solution as eigenvectors are not unique.

You could add some constraints like "the first component of each vector should be 1"

or "every vector should be of length 1"

or even

You may play around with smaller values of CTOL to get more accurate results. In Mathcad 15 I had no luck with values below 10^-5.

Regards

Werner

sfan
1-Visitor
(To:Werner_E)

Hi, Werner

Sorry my bad, I shouldn't have square root the lambda to w'. My algorithm is wrong.

Thank you so much for informing me the built-in function of genvals and genvecs, that is very helpful!

Best Regards

Shawn

Announcements

Top Tags