Mathematics Stack Exchange is a question and answer site for people studying math at any level and professionals in related fields. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I'm currently having trouble getting my head around solving this matrix (eigenvalue problem?) transcendental equation.

I have a matrix 4x4 where, $\det(M)=0$. And where ij of the matrix is a function of 4 variables, 2 of them are known where 2 are unknown, $\alpha_r$ (alphar) and $\epsilon$ (epsilon, the strain). I've set strain to a reasonable value (0.05) which leaves me one variable, alphar, to solve for. The matrix I have is below,


and the Mathematica code is (with a=alphar)

M = {{6.08259*10^22 Cosh[0.76724 a], 2.98856*10^23 Cosh[3.53664 a], -1.60097*10^21 Cosh[0.191442 a], -6.58085*10^21 Cosh[0.823236 a]}, 
     {-7.24194*10^22 Sinh[0.76724 a], 1.63044*10^24 Sinh[3.53664 a], -1.89318*10^21 Sinh[0.191442 a], 3.40266*10^22 Sinh[0.823236 a]}, 
     {2.21319*10^11 Sinh[0.76724 a], 2.21319*10^11 Sinh[3.53664 a], 1.46171*10^11 Sinh[0.191442 a], 1.46171*10^11 Sinh[0.823236 a]}, 
     {-3.57353*10^11 Cosh[0.76724 a], 1.01793*10^12 Cosh[3.53664 a], 5.59395*10^10 Cosh[0.191442 a], -1.44394*10^11 Cosh[0.823236 a]}}

I need to find the root so that $\det(M)=0$. I've tried using

FindRoot[Det[M]==0, {a,0}]

But I don't get a reasonable value (depending on initial guess ranging from 0 to anything between 5 for example) I get 0 or almost 0, I should hopefully get a value between 0.1 and 0.8 depending on initial strain value.

From similar papers on the topic it seems I should have one transcendental equation in terms of the two variables, $\alpha_r$ and $\epsilon$. Would I be right in assuming this would be the characteristic polynomial of the matrix?

Sorry for the vague post, I tried getting in as much info as possible without blabbering on!

share|cite|improve this question
That is an exceedingly complicated transcendental equation that you have there... and the numbers are quite large, too. You might want to consider recasting your data in different units... – J. M. Dec 4 '11 at 0:40
What does your matrix look like before picking a value for strain? – Aleks Vlasev Dec 4 '11 at 3:25
dunks: If you plot the determinant, you see that 0 is clearly the only solution, which agrees with the result of FindRoot. Maybe you have an error in your matrix? (Or maybe I had a copying error - I added the Mma code for the matrix to your post, can you check it?) – Simon Dec 4 '11 at 4:18
In fact, the determinant is the sum of terms like $-k_1 \cosh(k_2 \alpha_r)\cosh(k_3 \alpha_r)\sinh(k_4 \alpha_r)\sinh(k_5 \alpha_r)$ (where each $k_i>0$ is different), so it is clearly negative for all real $\alpha_r \neq 0$. And is only zero for $\alpha_r = 0$. – Simon Dec 4 '11 at 4:27
Thanks for the replies. J.M, tell me about it. I'm trying to keep the numbers as they are due to Er and Em being Young's Modulus of the material. – dunks Dec 4 '11 at 12:16

OK, just to summarize the comment thread above, let's start by importing the more general expression that you put on pastebin:

MfXNRkpc = Import["", "Text"];

And (by inspection) clean it up a little,

MfXNRkpc2 = StringReplace[StringSplit[MfXNRkpc, ";\n"], 
    {"ClearAll[\"Global`*\"]\n" -> "", "// MatrixForm" -> ";"}];

This is now safe to evaluate (if in doubt, remove the commented out bit)


Now bqs is your 4x4 matrix that depends on the strain e11 that you say ranges from about 0.01 to 0.1 and ar ($\alpha_r$) that should be from 0.1 to around 0.8.

Let's define the determinate (slightly rescaled):

dbqs[e11_, ar_] = Det[10^-15 bqs];

we can check that it is symmetric in ar since
Simplify[dbqs[e11, ar] - dbqs[e11, -ar]]==0 returns True. We can also check that dbqs[e11, 0]==0. Then, if we plot it for a range of e11

Plot[Evaluate[Table[Tooltip[dbqs[e11, ar], e11], 
  {e11, .01, .1, .01}]], {ar,   0, .01}]

the plot

it looks like Det[bqs] < 0 for all $\alpha_r>0$, which is something you say should not be the case. So I suggest you must have an error somewhere... (n.b. The general form of dbqs[e11, ar] is messy, so proving it is always less than zero might be tricky...)

share|cite|improve this answer

what you're looking for here certainly isn't the characteristic polynomial (whose roots are the values such that det(A - t Id)=0 ).

the only thing to do here is to write explicitly the determinant (or better, make the program compute it, for example using maple) and then solve numerically for alphar (I guess the equation is much too horrible for an explicit solve). good luck !

share|cite|improve this answer
Thanks for the reply, it's pretty tricky trying to get what I'm wanting to do across! Would FindRoot[Det[matrix]==0, {alphar,0}] not do the same as suggested? – dunks Dec 3 '11 at 21:08
hmm... actually I am not familiar with mathematica so I can't help you with the syntax... sorry ! my point was just that the "brute" way of doing this is to make it into an equation f(alphar)=0 by first defining f. out of curiosity, why do you consider this ? is it related to chemistry ? – Glougloubarbaki Dec 3 '11 at 21:19
It's related to internal stability (microbuckling) of layered composites. It's quite involved so hard to get what I need to find out without getting into some technical specifics. But that's what I was thinking, set a function f(alphar,epilon)=0, set epsilon to values ranging from ~0.01 to ~0.1 and solve for alphar. What would be the best way of setting the function, f being the determinant of the matrix in respect to the two variables? – dunks Dec 3 '11 at 21:39

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.