Znajdź parametry, aby relacja była zawsze spełniona

Nov 26 2020

Powiedzmy, że mam funkcję sparametryzowaną przez szereg zmiennych. Jako prosty przykład$$F(x,y) = ax^2 +by^2-cxy+1$$ Chcę znaleźć zestaw wartości (nie ma znaczenia, jakie to są) dla parametrów, aby uzyskać relację $$ F(x,y)>0$$zachowuje wszystkie punkty swojej domeny. Chciałbym więc, aby zwracane były wartości takie jak (1,1,1). Nie potrzebuję wszystkich możliwych wartości, tylko jeden przykład, w którym relacja jest zachowana.

Czy w Mathematica jest funkcja, która mogłaby to zrobić? Rzeczywista funkcja, na której muszę pracować, jest znacznie bardziej skomplikowana i ma kilka dodatkowych parametrów, ale czy można to zrobić w prosty sposób?

Wiem o tym SolveAlways, ale nie podoba mi się, kiedy stosuję relacje zamiast równości.

Doceniam każdą pomoc!

Odpowiedzi

8 user64494 Nov 26 2020 at 23:53

Co wolisz:

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

lub

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

?

Następnie Resolve[ForAll[{x, y}, a*x^2 + b*y^2 > 0 && a < 0 && b < 0], Reals]daje wyniki Falsei FindInstance[ Resolve[ForAll[{x, y}, a*x^2 + b*y^2 > 0 && a < 0 && b < 0], Reals], {a, b}, Reals]produkuje {}. Te wyniki mówią, że nie ma rozwiązania.

6 MichaelE2 Nov 27 2020 at 01:24

SolveAlways[eqns, vars]zgodnie z dokumentacją jest równoważne z Solve[ ! Eliminate[! eqns, vars]]. Można to przetłumaczyć na to Reduce, co może radzić sobie z nierównościami:

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

Jest to równoważne z wynikiem @ 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  *)