Resolver parámetros para que siempre se satisfaga una relación

Nov 26 2020

Digamos que tengo una función parametrizada por una serie de variables. Como un simple ejemplo$$F(x,y) = ax^2 +by^2-cxy+1$$ Quiero encontrar un conjunto de valores (realmente no importa cuáles sean) para los parámetros para que la relación $$ F(x,y)>0$$se mantiene para todos los puntos de su dominio. Entonces me gustaría que se devolvieran valores como (1,1,1). No necesito todos los valores posibles, solo un ejemplo donde se mantiene la relación.

¿Existe una función en Mathematica que pueda hacer esto? La función real en la que necesito operar es mucho más complicada y tiene algunos parámetros más, pero ¿se puede hacer simplemente?

Lo sé SolveAlways, pero no me gusta cuando aplico relaciones en lugar de igualdades.

¡Agradezco cualquier ayuda!

Respuestas

8 user64494 Nov 26 2020 at 23:53

Qué prefieres:

Resolve[ForAll[{x, y}, a*x^2 + b*y^2 - c*x*y + 1 > 0], Reals]
(*(a == 0 && b >= 0 && c == 0) || (a >= 0 && b >= 0 && c == 0) || (a > 0 && 4 a b - c^2 >= 0*)

o

FindInstance[  Resolve[ForAll[{x, y}, a*x^2 + b*y^2 - c*x*y + 1 > 0],Reals],{a, b,c}, Reals,3]
(*{{a->96,b->12,c->0},{a->0,b->275,c->0},{a->0,b->113,c->0}}*)

?

A continuación, Resolve[ForAll[{x, y}, a*x^2 + b*y^2 > 0 && a < 0 && b < 0], Reals]da como resultado Falsey FindInstance[ Resolve[ForAll[{x, y}, a*x^2 + b*y^2 > 0 && a < 0 && b < 0], Reals], {a, b}, Reals]produce {}. Estos resultados dicen que no hay solución.

6 MichaelE2 Nov 27 2020 at 01:24

SolveAlways[eqns, vars]según su documentación es equivalente a Solve[ ! Eliminate[! eqns, vars]]. Esto se puede traducir a Reduce, que puede tratar las desigualdades:

red = Reduce[
  Not@Reduce[Not[a*x^2 + b*y^2 - c*x*y + 1 > 0], {a, b, c}, {x, y}], 
  Reals]
(*
  (c < 0 && b > 0 && a >= c^2/(4 b)) || (c == 0 && b >= 0 && 
     a >= 0) || (c > 0 && b > 0 && a >= c^2/(4 b))
*)

Esto es equivalente al resultado de @ user64494:

res = Resolve[ForAll[{x, y}, a*x^2 + b*y^2 - c*x*y + 1 > 0], Reals]
Reduce[res \[Implies] red && red \[Implies] res]
(*  True  *)