Resolva os parâmetros para que uma relação seja sempre satisfeita

Nov 26 2020

Digamos que eu tenha uma função parametrizada por uma série de variáveis. Como um exemplo simples$$F(x,y) = ax^2 +by^2-cxy+1$$ Eu quero encontrar algum conjunto de valores (não importa quais sejam) para os parâmetros para que a relação $$ F(x,y)>0$$vale para todos os pontos de seu domínio. Então, eu gostaria de retornar valores como (1,1,1). Não preciso de todos os valores possíveis, apenas um exemplo de onde a relação se mantém.

Existe uma função no Mathematica que poderia fazer isso? A função real que preciso operar é muito mais complicada e tem mais alguns parâmetros, mas isso pode ser feito de forma simples?

Eu sei SolveAlways, mas não gosto quando aplico relações em vez de igualdades.

Agradeço qualquer ajuda!

Respostas

8 user64494 Nov 26 2020 at 23:53

O que você prefere:

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*)

ou

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}}*)

?

Em seguida, Resolve[ForAll[{x, y}, a*x^2 + b*y^2 > 0 && a < 0 && b < 0], Reals]resulta em Falsee FindInstance[ Resolve[ForAll[{x, y}, a*x^2 + b*y^2 > 0 && a < 0 && b < 0], Reals], {a, b}, Reals]produz {}. Essas saídas indicam que não há solução.

6 MichaelE2 Nov 27 2020 at 01:24

SolveAlways[eqns, vars]de acordo com sua documentação é equivalente a Solve[ ! Eliminate[! eqns, vars]]. Isso pode ser traduzido para Reduce, que pode lidar com 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))
*)

Isso é equivalente ao 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  *)