MathGroup Archive 2010

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: Find the solution of a system of two nonlinear, complicated

  • To: mathgroup at smc.vnet.net
  • Subject: [mg108835] Re: Find the solution of a system of two nonlinear, complicated
  • From: Daniel Lichtblau <danl at wolfram.com>
  • Date: Fri, 2 Apr 2010 05:21:49 -0500 (EST)

Christian Schneider wrote:
> Dear members of the mathgroup email group,
> 
> I have serious difficulties in solving the following problem in Mathematica
> v.7 and would very grateful if anyone could give me a helping hand with
> that.
> 
> I want to solve a system of two nonlinear equations. Unfortunately the
> equations are rather bulky. I've tried to use FindRoot for this problem, but
> I get three error messages:
> 
> General::ovfl : Overflow occurred in computation
> 
> General::ovfl : Overflow occurred in computation
> 
> FindRoot::nlnum : The function value {Overflow[], Overflow[]} is not a list
> of numbers with dimensions {2} at {sigmabare, dmu}={0.2, 4}.
> 
> I think mathematica is telling me that the iterations or the starting points
> need to be changed. I tried to do that, but always end up with that error
> messages.
> 
> I have a set of two equations with two variables and two parameters each,
> and I want to solve the two variables of the set.
> 
> The variables of the two equations are: sigmabare, dmu
> 
> The two parameters per equation are
> 
> for equation1: epsilon1, c01 
> 
> for equation2: epsilon2, c02
> 
>  
> 
> The complete syntax as plain text is:
> 
>  
> 
> FindRoot[{c01*6.022*10^(23) == 
> 
>        Abs[sigmabare/(2*(437*10^(-12))*3*(1.602*10^(-19)))]*
> 
>         Exp[(-(4.11641*10^(-21))*(1.65*(1/(4*(4.11641*10^(-21))*
> 
>                     epsilon1*(8.854*10^(-12)))*((1.602*10^(-19))^3*3^\
> 
> 3*sigmabare/3.141592654)^(1/2)) - 
> 
>               2.61*(1/(4*(4.11641*10^(-21))*
> 
>                     epsilon1*(8.854*10^(-12)))*((1.602*10^(-19))^3*3^\
> 
> 3*sigmabare/3.141592654)^(1/2))^(1/4) + 
> 
>               0.26*Log[
> 
>                 1/(4*(4.11641*10^(-21))*
> 
>                     epsilon1*(8.854*10^(-12)))*((1.602*10^(-19))^3*3^\
> 
> 3*sigmabare/3.141592654)^(1/2)] + 1.95))/((4.11641*10^(-21)))]*
> 
>         Exp[dmu/((4.11641*10^(-21)))]/(6.022*10^(23)) /. 
> 
>       c01 -> {0.5*10^(-5)} /. epsilon1 -> {54} , 
> 
>     c02*6.022*10^(23) == 
> 
>      Abs[sigmabare/(2*(437*10^(-12))*3*(1.602*10^(-19)))]*
> 
>       Exp[(-(4.11641*10^(-21))*(1.65*(1/(4*(4.11641*10^(-21))*
> 
>                   epsilon2*(8.854*10^(-12)))*((1.602*10^(-19))^3*3^3*
> 
>                   sigmabare/3.141592654)^(1/2)) - 
> 
>             2.61*(1/(4*(4.11641*10^(-21))*
> 
>                    epsilon2*(8.854*10^(-12)))*((1.602*10^(-19))^3*3^3*
> 
>                    sigmabare/3.141592654)^(1/2))^(1/4) + 0.26*Log[
> 
>               1/(4*(4.11641*10^(-21))*
> 
>                   epsilon2*(8.854*10^(-12)))*((1.602*10^(-19))^3*3^3*
> 
>                   sigmabare/3.141592654)^(1/2)] + 
> 
>             1.95))/((4.11641*10^(-21)))]*
> 
>       Exp[dmu/((4.11641*10^(-21)))]/(6.022*10^(23))} /. 
> 
>    c02 -> {1*10^(-5)} /. 
> 
>   epsilon2 -> {78}, {{sigmabare, 0.2}, {dmu, 4}}]
> 
>  
> 
> Sorry for this mess of equations.
> 
>  
> 
> Has somebody an idea where I am going wrong and how to solve this?
> 
>  
> 
> Thanks a lot in advance for your help,
> 
>  
> 
> Chris
> 

Here is your input in plain Mathematica InputForm, and with the excess 
curly braces removed.

FindRoot[{3.011*^18 == 3953.3389353664143*
           E^(2.429301260078564*^20*dmu -
                1.*(1.95 - 5.769493817846426*sigmabare^(1/8) +
                     39.39787193680568*Sqrt[sigmabare] +
                     0.26*Log[23.87749814351859*Sqrt[sigmabare]]))*
           Abs[sigmabare], 6.022*^18 ==
        3953.3389353664143*E^(2.429301260078564*^20*dmu -
                1.*(1.95 - 5.262747112219504*sigmabare^(1/8) +
                     27.27544980240393*Sqrt[sigmabare] +
                     0.26*Log[16.530575637820565*Sqrt[sigmabare]]))*
           Abs[sigmabare]}, {{sigmabare, 0.2}, {dmu, 4}}]

You can take logs of both sides to avoid the overflow.

rt = FindRoot[{Log[3.011*^18] ==
     PowerExpand[
      Log[3953.3389353664143*
        E^(2.429301260078564*^20*
            dmu - (1.95 - 5.769493817846426*sigmabare^(1/8) +
             39.39787193680568*Sqrt[sigmabare] +
             0.26*Log[23.87749814351859*Sqrt[sigmabare]]))*
        Abs[sigmabare]]],
    Log[6.022*^18] ==
     PowerExpand[
      Log[3953.3389353664143*
        E^(2.429301260078564*^20*dmu -
           1.*(1.95 - 5.262747112219504*sigmabare^(1/8) +
              27.27544980240393*Sqrt[sigmabare] +
              0.26*Log[16.530575637820565*Sqrt[sigmabare]]))*
        Abs[sigmabare]]]}, {{sigmabare, 0.2}, {dmu, 4}}]

{sigmabare -> 0.00502108, dmu -> 1.70676*10^-19}

Daniel Lichtblau
Wolfram Research


  • Prev by Date: Re: Find the solution of a system of two nonlinear, complicated equations
  • Next by Date: Re: trying to use InputField as a continually attentive
  • Previous by thread: Re: 0/1 knapsack-like minimalization problem and file
  • Next by thread: Re: trying to use InputField as a continually attentive