1
$\begingroup$

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,

matrix

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!

  • 2
    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...2011-12-04
  • 0
    What does your matrix look like before picking a value for strain?2011-12-04
  • 1
    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?)2011-12-04
  • 0
    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$.2011-12-04
  • 0
    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.2011-12-04
  • 0
    Aleks Vlasev, the matrix before setting a value for strain I'm afraid is too large to show you with pasting the Mathematica code.2011-12-04
  • 0
    @Simon , thanks for the help. I checked your mma code and all seems to be in order, I've double checked my original code and it should be fine as well. The value of alphar for Det[matrix]==0 should not be a negative number, with a strain range from 0.01 to 0.1 alphar should be from 0.1 to around 0.8. I've included a link to a pastebin of my mma code if you would be so kind to have a look? pastebin.com/raw.php?i=C3mPV4G32011-12-04
  • 0
    @Simon http://pastebin.com/raw.php?i=MfXNRkpc updated mma code.2011-12-04
  • 0
    @dunks: Not looking good. At the end of [your code](http://pastebin.com/MfXNRkpc) (removing the `MatrixForm`), try `dbqs = Det[10^-15 bqs];Plot[Evaluate[Table[Tooltip[dbqs, e11] , {e11, .01, .2, .01}]], {ar, 0, .01}]` You'll see that the `Det[]` always seems to be negative. In general, the expression is a bit messy, but it might be possible to prove this. Since you say that the Det should not be zero, I guess you've made a mistake somewhere.2011-12-05

2 Answers 2

1

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

MfXNRkpc = Import["http://pastebin.com/raw.php?i=MfXNRkpc", "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)

ToExpression[MfXNRkpc2(*,StandardForm,Hold*)];

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...)

0

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 !

  • 0
    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?2011-12-03
  • 0
    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 ?2011-12-03
  • 0
    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?2011-12-03