Message Boards Message Boards

Solving non-linear equations: no methods available error

Posted 2 years ago

To determine the FWHM of LSFs I tried to solve the following non-linear equations with Mathematica:

Assuming[a > 0 && Element[{a, x}, Reals],
 Sol = Solve[Abs[x] *BesselK[1, Abs[x]/a] == a/2, x]]

Assuming[a > 0 && 0 <= Eta <= 1 && Element[{a, Eta, Ln2}, Reals] ,
 Sol = Solve[
   Eta/(a*Pi)*1/(1 + (x/a)^2) + (1 - Eta)/a*
      Sqrt[Log[2]/Pi] E^(-Log[2]*(x/a)^2) == 
    Eta/(2*a*Pi) + (1 - Eta)/(2*a)*Sqrt[Log[2]/Pi] , x]]

Mathematica states in both cases: Solve::nsmet: This system cannot be solved with the methods available to Solve.

Is there any other way to solve these non-linear equations?

You can solve numerically.Try:

With[{a = 1}, NSolve[Abs[x]*BesselK[1, Abs[x]/a] == a/2 && -10 < x < 10, x, Reals]]

f[n_, a_] := FindRoot[Abs[x]*BesselK[1, Abs[x]/a] == a/2, {x, n}]; {f[-1, 1], f[1, 1]}

And

 With[{a = 1/2, Eta = 3/10}, 
  NSolve[Eta/(a*Pi)*1/(1 + (x/a)^2) + (1 - Eta)/a*
       Sqrt[Log[2]/Pi] E^(-Log[2]*(x/a)^2) == 
     Eta/(2*a*Pi) + (1 - Eta)/(2*a)*Sqrt[Log[2]/Pi] && -10 < x < 10, x,
    Reals]]

  g[n_, a_, Eta_] := 
   FindRoot[Eta/(a*Pi)*1/(1 + (x/a)^2) + (1 - Eta)/a*
       Sqrt[Log[2]/Pi] E^(-Log[2]*(x/a)^2) == 
     Eta/(2*a*Pi) + (1 - Eta)/(2*a)*Sqrt[Log[2]/Pi], {x, n}]; {g[-1, 
    1/2, 3/10], g[1, 1/2, 3/10]}
POSTED BY: Mariusz Iwaniuk
Reply to this discussion
Community posts can be styled and formatted using the Markdown syntax.
Reply Preview
Attachments
Remove
or Discard

Group Abstract Group Abstract