NSolve finds real-valued results in version 9, but not in version 10

Not a solution, more of an extended comment.

Clearly there are real solutions, the curves below do cross

ContourPlot[
 Evaluate[{D[P[T, V], {V, 1}] == 0, 
   D[P[T, V], {V, 2}] == 0}], {V, -10, 10}, {T, -10, 10}, 
 PlotPoints -> 40]

enter image description here

You can get the real-valued solutions version 9 gave via

Solve[{N@D[P[T, V], {V, 1}] == 0, 
  N@D[P[T, V], {V, 2}] == 0}, {T, V}, Reals]

During evaluation of Solve::ratnz: Solve was unable to solve the system with inexact coefficients. The answer was obtained by solving a corresponding exact system and numericizing the result. >>

(* {{T -> -9.67712, V -> -2.35529}, {T -> -5.12191, 
  V -> -0.778707}, {T -> 0.0943287, V -> 7.66613}} *)

You can also get these answers with NSolve (with a little more precision) by using the Method option

NSolve[
   {
     D[P[T, V], {V, 1}] == 0,
     D[P[T, V], {V, 2}] == 0
     },
   {T, V}
   , Reals, Method -> "UseSlicingHyperplanes"] 
(* {{T -> 0.0943287, V -> 7.66613}, {T -> -9.67712, 
  V -> -2.35529}, {T -> -5.12191, V -> -0.778707}} *)

{D[P[T, V], {V, 1}] , D[P[T, V], {V, 2}]} /. %
(* {{-1.12757*10^-17, 
  3.25261*10^-18}, {1.11022*10^-15, -1.9984*10^-15}, {3.55271*10^-15, 
  1.59872*10^-14}} *)

Why is this happening? I don't know (hence the disclaimer at the top). I know that the functions NSolve and the like are constantly undergoing development, and some of those very developers post here. They would be very interested in hearing about this I think.


You can use any of the alternative methods found here: Methods for NSolve

For example:

NSolve[{D[P[T, V], {V, 1}] == 0, D[P[T, V], {V, 2}] == 0}, {T, V}, Reals,
 Method -> "Legacy"]
(*
  {{T -> 0.0943287, V -> 7.66613},
   {T -> -9.67712,  V -> -2.35529},
   {T -> -5.12191,  V -> -0.778707}}
*)

The other alternatives seem to work, too. Except the default one.

This is cute, too (method "Foo"??):

NSolve[{D[P[T, V], {V, 1}] == 0, D[P[T, V], {V, 2}] == 0}, {T, V}, Reals,
 Method -> "Foo"]
(*
  {{T -> 0.0943287, V -> 7.66613}, {T -> -9.67712, 
    V -> -2.35529}, {T -> -5.12191, V -> -0.778707}}
*)