Hi everyone,

just signed up to the forum after failing to find a solution for quite a while.

Where I am stuck is the following. After a little of plasma physics I end up with two equations which are functions of two variables.

F[nccm, TcineV] == 0

G[nccm, TcineV] == 0

Now I am looking for a pair (nccm, TcineV) which satisfies both equations at the same time.

I hoped this would be straight forward, but it turns out not to be as you can see from the attached notebook;

NSolve does not give an answer (just repeats the question), NMinimize just sticks to a solution at the limit of the physical value. Finding a graphical solution sort of works, but is not very convenient, as I will have to evalute these equations for a large number of parameters.

Is there a more clever way to solve these equations/shuffle them in a more appropriate form for Mathematica?

Help would be very much appreciated!

Cheers,

Niels

(*Function F named EnEqZeroF as it originates from energy conservation: *)

EnEqZeroF = -2.46`*^18 -

1/(nccm3^4 TcineV^2)1.9920982277963014`*^61 E^(

49.2`/TcineV) (1.` + 0.01` TcineV)^4 (-404771.5405015526` +

TcineV^(7/2));

(*Function G named partBalZero as it originates from particle balance considerations: *)

partBalZero =

200000000000000000 -

1/(nccm3^3 TcineV^(3/2)) 2.6999484623235618`*^39 E^(

36.900000000000006`/

TcineV) (-4000000000000 + nccm3) (1.` +

0.01` TcineV)^3 \[Sqrt](((-4000000000000 + nccm3) (0.4` +

TcineV) -

4.`*^12 TcineV Log[

1.` + 2.5`*^-13 (-4000000000000 + nccm3)])/(-4000000000000 +

nccm3));

(* Does not work at all: *)

NSolve[{EnEqZeroF == 0, partBalZero == 0}, {TcineV, nccm3}, Reals]

(* Graphical solution seems to work: *)

ContourPlot[{EnEqZeroF == 0, partBalZero == 0}, {TcineV, 0,

15}, {nccm3, 1*^12, 1.5*^14},

AxesLabel -> {"\!\(\*SubscriptBox[\(T\), \(c\)]\) in eV",

"\!\(\*SubscriptBox[\(n\), \(c\)]\) in \

\!\(\*SuperscriptBox[\(cm\), \(-3\)]\)"},

PerformanceGoal -> "Quality"]

(* However, the the graphical solution, Tc~2.5 eV, nc ~ 1.2*10^14 cm^-3 is not found numerically:*)

NMinimize[{Abs[EnEqZeroF - partBalZero], 0 < TcineV < 40,

nccm3 > 4.0*^12}, {TcineV, nccm3}]

NMinimize[{Abs[EnEqZeroF - partBalZero], 0 < TcineV < 40,

nccm3 > 4.0*^12}, {TcineV, nccm3}, Method -> "NelderMead"]

NMinimize[{Abs[EnEqZeroF - partBalZero], 0 < TcineV < 40,

nccm3 > 4.0*^12}, {TcineV, nccm3}, Method -> "DifferentialEvolution"]

NMinimize[{Abs[EnEqZeroF - partBalZero], 0 < TcineV < 40,

nccm3 > 4.0*^12}, {TcineV, nccm3}, Method -> "SimulatedAnnealing"]

NMinimize[{Abs[EnEqZeroF - partBalZero], 0 < TcineV < 40,

nccm3 > 4.0*^12}, {TcineV, nccm3}, Method -> "RandomSearch"]