Group Abstract Group Abstract

Message Boards Message Boards

0
|
6.9K Views
|
7 Replies
|
2 Total Likes
View groups...
Share
Share this post:

Find the value of b for which one of the eigenvalues crosses the imaginary?

Dear members,

I have a Matrix that that depends on a parameter "b"

A={{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
  0}, {0, 0, 0, 0, 0, 0, -2 \[Pi], 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,
   0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, -4 \[Pi], 0, 0, 0, 0, 0, 1, 0, 0, 
  0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, -6 \[Pi], 0, 0, 0, 0, 0,
   1, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, -8 \[Pi], 0, 
  0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 
  0, -10 \[Pi], 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0}, {0, 2 \[Pi], 0, 0, 
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0}, {0, 0, 
  4 \[Pi], 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 
  0}, {0, 0, 0, 6 \[Pi], 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
  1, 0, 0}, {0, 0, 0, 0, 8 \[Pi], 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
  0, 0, 0, 1, 0}, {0, 0, 0, 0, 0, 10 \[Pi], 0, 0, 0, 0, 0, 0, 0, 0, 0,
   0, 0, 0, 0, 0, 0, 1}, {-1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -0.1, 0, 
  0, 0, 0, 0, -(b/2), 0, 0, 0, 0}, {0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
  0, -0.1, 0, 0, 0, 0, -2 \[Pi], -(b/2), 0, 0, 0}, {0, 0, -1, 0, 0, 0,
   0, 0, 0, 0, 0, 0, 0, -0.1, 0, 0, 0, b/2, -4 \[Pi], -(b/2), 0, 
  0}, {0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -0.1, 0, 0, 0, b/
  2, -6 \[Pi], -(b/2), 0}, {0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
   0, -0.1, 0, 0, 0, b/2, -8 \[Pi], -(b/2)}, {0, 0, 0, 0, 0, -1, 0, 0,
   0, 0, 0, 0, 0, 0, 0, 0, -0.1, 0, 0, 0, b/2, -10 \[Pi]}, {0, 0, 0, 
  0, 0, 0, -1, 0, 0, 0, 0, -b, 2 \[Pi], b/2, 0, 0, 0, -0.1, 0, 0, 0, 
  0}, {0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, -(b/2), 4 \[Pi], b/2, 0, 
  0, 0, -0.1, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 
  0, -(b/2), 6 \[Pi], b/2, 0, 0, 0, -0.1, 0, 0}, {0, 0, 0, 0, 0, 0, 0,
   0, 0, -1, 0, 0, 0, 0, -(b/2), 8 \[Pi], b/2, 0, 0, 0, -0.1, 0}, {0, 
  0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, -(b/2), 10 \[Pi], 0, 0, 
  0, 0, -0.1}}

To find the value of b for which one of the eigenvalues crosses the imaginary I am doing this

FindRoot[Max[Re[Eigenvalues[A]]] == 0, {b, 1}]

varies errors rise when executing FindRoot. For intance, "Unable to find all roots of the characteristic polynomial" It seem to me that FindRoot does not take "b" as a variable. Am I using FindRoot correctly?

Thanks for any help you can provide.

Jesús

7 Replies

One reference is a tech report from 2000 by Karin Gatermann: "Counting stable solutions of sparse polynomial systems in chemistry"

https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&cad=rja&uact=8&ved=0ahUKEwjiwaOm5eDbAhWp44MKHQ5vAPUQFggtMAA&url=https%3A%2F%2Fopus4.kobv.de%2Fopus4-zib%2Ffrontdoor%2Fdeliver%2Findex%2FdocId%2F600%2Ffile%2FZR-00-32.ps&usg=AOvVaw3nKM2IUGHWqcbuhyii8BEL

See section 4, "Finding Hopf bifurcations with resultants"

I also did this computation in a different way, basically substituting re+I*im for the char poly variable, setting 're' to zero, and taking the resultant of the explicit real and imaginary parts with respect to im to get a polynomial in the parameter b. It gives the same result(ant).

As for assessing stability in between the critical values of b, it suffices to take one numeric value between any adjacent pair (as well as one positive value beyond either extreme). Evaluate the eigenvalues and see if all real parts are less than zero. In principle you would also need to add the ordinary critical points, that is, values of b for which an eigenvalue is zero. As it turns out (see below), there are no positive values of b for which this happen.

In[253]:= NSolve[jac /. t -> 0, b]

Out[253]= {{b -> -0.202419223967 - 
    38.001292257 I}, {b -> -0.202419223967 + 
    38.001292257 I}, {b -> -0.155569770065 - 
    14.9249163595 I}, {b -> -0.155569770065 + 14.9249163595 I}, {b -> 
   0.155569770065 - 14.9249163595 I}, {b -> 
   0.155569770065 + 14.9249163595 I}, {b -> 
   0.202419223967 - 38.001292257 I}, {b -> 
   0.202419223967 + 38.001292257 I}}
POSTED BY: Daniel Lichtblau

Hi again

Where can I find more about the procedure you used in your answer?. Some of the values of b you have found are very accurate.

I could not figure out if the values in between are all stable or unstable.

Best regards

Jesus

Daniel,

I am trying to determine the transition curves, i.e. the lines that separate unstable from stable regions in space parameters, so yes it is to do with things such as bifurcations. I am going to check your interesting answer!

Thanks!

Jesus

POSTED BY: Daniel Lichtblau

Yes, it works!!

Thanks

Jesus

Make the dependency explicit, please

In[31]:= Clear[A]
A[b_?NumericQ] := 
  N[{{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
     0}, {0, 0, 0, 0, 0, 0, -2 \[Pi], 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
      0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, -4 \[Pi], 0, 0, 0, 0, 0, 1, 
     0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, -6 \[Pi], 0, 0,
      0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 
     0, -8 \[Pi], 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0,
      0, 0, 0, 0, 0, -10 \[Pi], 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0}, {0, 
     2 \[Pi], 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
      0}, {0, 0, 4 \[Pi], 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
      1, 0, 0, 0}, {0, 0, 0, 6 \[Pi], 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
      0, 0, 0, 0, 1, 0, 0}, {0, 0, 0, 0, 8 \[Pi], 0, 0, 0, 0, 0, 0, 0,
      0, 0, 0, 0, 0, 0, 0, 0, 1, 0}, {0, 0, 0, 0, 0, 10 \[Pi], 0, 0, 
     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1}, {-1, 0, 0, 0, 0, 0, 0,
      0, 0, 0, 0, -0.1, 0, 0, 0, 0, 0, -(b/2), 0, 0, 0, 0}, {0, -1, 0,
      0, 0, 0, 0, 0, 0, 0, 0, 0, -0.1, 0, 0, 0, 0, -2 \[Pi], -(b/2), 
     0, 0, 0}, {0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -0.1, 0, 0, 0,
      b/2, -4 \[Pi], -(b/2), 0, 0}, {0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0,
      0, 0, 0, -0.1, 0, 0, 0, b/2, -6 \[Pi], -(b/2), 0}, {0, 0, 0, 
     0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -0.1, 0, 0, 0, 
     b/2, -8 \[Pi], -(b/2)}, {0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 
     0, 0, 0, -0.1, 0, 0, 0, b/2, -10 \[Pi]}, {0, 0, 0, 0, 0, 0, -1, 
     0, 0, 0, 0, -b, 2 \[Pi], b/2, 0, 0, 0, -0.1, 0, 0, 0, 0}, {0, 0, 
     0, 0, 0, 0, 0, -1, 0, 0, 0, 0, -(b/2), 4 \[Pi], b/2, 0, 0, 
     0, -0.1, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 
     0, -(b/2), 6 \[Pi], b/2, 0, 0, 0, -0.1, 0, 0}, {0, 0, 0, 0, 0, 0,
      0, 0, 0, -1, 0, 0, 0, 0, -(b/2), 8 \[Pi], b/2, 0, 0, 0, -0.1, 
     0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, -(b/2), 
     10 \[Pi], 0, 0, 0, 0, -0.1}}];

In[50]:= Clear[rico]
rico[x_?NumericQ] := Max[Re[Evaluate[Eigenvalues[A[y] //. y -> x]]]]

In[52]:= FindRoot[rico[q], {q, 1., .9}]
Out[52]= {q -> 6.85509}

and

Plot[rico[x], {x, -1, 9}

Shows it seems to work. With Eigenvalues[] one can have trouble in numerical functions because it can also generate symbolic results.

POSTED BY: Dent de Lion
POSTED BY: Frank Kampas
Reply to this discussion
Community posts can be styled and formatted using the Markdown syntax.
Reply Preview
Attachments
Remove
or Discard