Symbolic question

View: New views
4 Messages — Rating Filter:   Alert me  

Symbolic question

by FrenchLeaf :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hello,

I want to resolve the following problem :

Det(alpha*F1 +(1 - alpha)*F2) == a3*lambda + a2*lambda + a1 *lambda +a0 = 0

F1 and F2 are 3*3 matrix. Alpha is a single value.
The problem is from the formula of the right of I can obtain the a3,a2,a1,a0 factor to compute the lambda roots.

I know that is feasible in Maple, but I do not know How, and I did not have maple...

I have test to find the solution with Xcas (solve), but Xcas seems cannot handle it.

I have start with the following idea :
f = det( (alpha* [ [a1,b1,c1] , [d1,e1,f1] ,  [g1,h1,i1] ]) * ( (1-alpha) * [ [a2,b2,c2] , [d2,e2,f2] ,  [g2,h2,i2] ] ) );
g = a3*lambda + a2*lambda + a1 *lambda +a0;

=> How to try to solve the system to identify the three A factor now ?

Thanks in advance for your suggestion ;)
Pierre.

Re: Symbolic question

by Fumihiro CHIBA :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hello, Pierre

Maxima may solve your problem.

Introduction to Maxima:
http://maxima.sourceforge.net/docs/intromax/intromax.html
Matrix calculations:
http://maxima.sourceforge.net/docs/intromax/intromax.html#tth_sEc6

Maxima site:
http://maxima.sourceforge.net/

-----------------------
Fumihiro CHIBA
<http://web.me.com/chibaf/>

On 2009/08/05, at 19:44, FrenchLeaf wrote:

>
> Hello,
>
> I want to resolve the following problem :
>
> Det(alpha*F1 +(1 - alpha)*F2) == a3*lambda + a2*lambda + a1 *lambda  
> +a0 = 0
>
> F1 and F2 are 3*3 matrix. Alpha is a single value.
> The problem is from the formula of the right of I can obtain the  
> a3,a2,a1,a0
> factor to compute the lambda roots.
>
> I know that is feasible in Maple, but I do not know How, and I did  
> not have
> maple...
>
> I have test to find the solution with Xcas (solve), but Xcas seems  
> cannot
> handle it.
>
> I have start with the following idea :
> f = det( (alpha* [ [a1,b1,c1] , [d1,e1,f1] ,  [g1,h1,i1] ]) * ( (1-
> alpha) *
> [ [a2,b2,c2] , [d2,e2,f2] ,  [g2,h2,i2] ] ) );
> g = a3*lambda + a2*lambda + a1 *lambda +a0;
>
> => How to try to solve the system to identify the three A factor now ?
>
> Thanks in advance for your suggestion ;)
> Pierre.
> --
> View this message in context: http://www.nabble.com/Symbolic-question-tp24824620p24824620.html
> Sent from the Octave - General mailing list archive at Nabble.com.
>
> _______________________________________________
> Help-octave mailing list
> Help-octave@...
> https://www-old.cae.wisc.edu/mailman/listinfo/help-octave

_______________________________________________
Help-octave mailing list
Help-octave@...
https://www-old.cae.wisc.edu/mailman/listinfo/help-octave

Re: Symbolic question

by FrenchLeaf :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

I have resolved it by using Xcas and advice of the Xcas community :

The solution is to call the following line on Xcas :

f := det( (lambda* [ [a1,b1,c1] , [d1,e1,f1] , [g1,h1,i1] ]) +( (1-lambda) * [ [a2,b2,c2] , [d2,e2,f2] , [g2,h2,i2] ] ) );
coeff(f,lambda,3) -> donne a_3
coeff(f,lambda,2) -> donne a_2
coeff(f,lambda,1)
coeff(f,lambda,0)

So after we can call a cubic solver to find the possible lambda root that constraint the system.

THanks a lot for your suggestion.
Pierre.

Re: Symbolic question

by Jaroslav Hajek-2 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

On Wed, Aug 5, 2009 at 12:44 PM, FrenchLeaf<pmoulon@...> wrote:

>
> Hello,
>
> I want to resolve the following problem :
>
> Det(alpha*F1 +(1 - alpha)*F2) == a3*lambda + a2*lambda + a1 *lambda +a0 = 0
>
> F1 and F2 are 3*3 matrix. Alpha is a single value.
> The problem is from the formula of the right of I can obtain the a3,a2,a1,a0
> factor to compute the lambda roots.
>

What you probably want to get (although your description is quite
incomprehensible) is called the generalized eigenvalues;
that means, roots of the polynomial p(alpha) = det (A - alpha*B) = 0.
Here, A = F2 and B = F2 - F1.

So, in Octave, you can either use
alpha = eig (F2, F2 - F1);
or
alpha = eig ((F2 - F1) \ F2); # faster, but only works if (F2 - F1) is
sufficiently regular.

of course Octave is a numerical tool, so you get only numerical answers.

--
RNDr. Jaroslav Hajek
computing expert & GNU Octave developer
Aeronautical Research and Test Institute (VZLU)
Prague, Czech Republic
url: www.highegg.matfyz.cz
_______________________________________________
Help-octave mailing list
Help-octave@...
https://www-old.cae.wisc.edu/mailman/listinfo/help-octave