Sari la conținut

Sistem de ecuații polinomiale

De la Wikipedia, enciclopedia liberă

În algebră un sistem de ecuații polinomiale[1] este o mulțimeî de ecuații simultane f1 = 0, ... , fh = 0 unde fi sunt polinoame de mai multe variabile, de exemplu x1, ... , xn, peste un anumit corp k.

O soluție a unui sistem de ecuații polinomiale este o mulțime de valori pentru xi care aparțin unei extinderi de corp K algebric închisă a numerelor complexe și care satisfac toate ecuațiile. Când k este corpul numerelor raționale, se presupune în general că K este corpul numerelor complexe, deoarece fiecare soluție aparține unei extinderi de corp a lui k, care este izomorfă cu un subcorp al numerelor complexe.

Acest articol se referă la metodele de rezolvare, adică la obținerea tuturor soluțiilor sau la descrierea lor. Deoarece aceste metode sunt concepute pentru a fi implementate într-un computer, accentul este pus pe corpurile k în care calculul (inclusiv testarea egalității) este ușor și eficient, adică corpul numerelor raționale și al corpurilor finite.

Căutarea soluțiilor care aparțin unei mulțimi specifice este o problemă în general mult mai dificilă și este în afara domeniului acestui articol, cu excepția cazului soluțiilor dintr-un anumit corp finit. Pentru cazul soluțiilor ale căror componente sunt numere întregi sau raționale, a se vedea ecuație diofantică⁠(d).

Numeroasele puncte singulare ale sexticei lui Barth sunt soluții ale unui sistem de ecuații polinomiale

Un exemplu simplu de sistem de ecuații polinomiale este:

Soluțiile sale sunt cele patru perechi (x, y) = (1, 2), (2, 1), (−1, −2), (−2, −1). Aceste soluții pot fi ușor verificate prin substituție, dar este mai dificil de demonstrat că nu există și alte soluții.

Subiectul acestui articol este studiul generalizărilor unor astfel de exemple și descrierea metodelor utilizate pentru calcularea soluțiilor.

Un sistem de ecuații polinomiale este o colecție de ecuații:

unde fiecare fh este un polinom cu variabilele nedeterminate x1, ... , xm, cu coeficienți întregi sau coeficienți într-un corp fix, adesea corpul numerelor raționale sau un corp finit.[2] Alte corpuri de coeficienți, cum ar fi cel al numerelor reale, sunt mai rar utilizate, deoarece elementele lor nu pot fi reprezentate într-un calculator (în calcule pot fi utilizate doar aproximări ale numerelor reale, iar aceste aproximări sunt întotdeauna numere raționale).

O „soluție” a unui sistem de ecuații polinomiale este un tuplu de valori ale lui (x1, ... , xm) care satisface toate ecuațiile sistemului. Soluțiile sunt căutate în numerele complexe sau, mai general, într-un corp algebric închis care conține coeficienții. În special, în caracteristica zero sunt căutate toate soluțiile complexe. Căutarea soluțiilor reale sau raționale sunt probleme mult mai dificile, care nu sunt tratate în acest articol.

Mulțimea soluțiilor nu este întotdeauna finită; de exemplu, soluțiile sistemului

sunt un punctul (x,y) = (1,1) și dreapta x = 0.[3] Chiar și atunci când mulțimea soluțiilor este finită, în general, nu există o expresie în formă închisă⁠(d) a soluțiilor (în cazul unei singure ecuații, aceasta este teorema Abel-Ruffini).

Suprafața Barth⁠(d), prezentată în figură, este reprezentarea geometrică a soluțiilor unui sistem de ecuații polinomiale redus la o singură ecuație de gradul 6 în 3 variabile. Unele dintre numeroasele sale puncte singulare sunt vizibile în imagine. Acestea sunt soluțiile unui sistem de 4 ecuații de gradul 5 în 3 variabile. Un astfel de sistem supradeterminat⁠(d) nu are o soluție în general (adică dacă coeficienții nu sunt anume). Dacă are un număr finit de soluții, atunci, conform teoremei lui Bézout, acest număr este cel mult 53 = 125. Totuși, s-a demonstrat că pentru cazul punctelor singulare ale unei suprafețe de gradul 6 numărul maxim de soluții este 65 și este atins de suprafața Barth.

Proprietăți fundamentale și definiții

[modificare | modificare sursă]

Un sistem este supradeterminat dacă numărul de ecuații este mai mare decât numărul de variabile. Un sistem este inconsistent dacă nu are o soluție în corpul numerelor complexe (sau, dacă coeficienții nu sunt numere complexe, nicio soluție într-un corp algebric închis care conține coeficienții). Prin teorema zerourilor a lui Hilbert⁠(d) aceasta înseamnă că 1 este o combinație liniară⁠(d) (cu polinoame drept coeficienți) a primilor membri ai ecuațiilor. Majoritatea, dar nu toate sistemele supradeterminate, atunci când sunt construite cu coeficienți oarecare, sunt inconsistente. De exemplu, sistemul x3 – 1 = 0, x2 – 1 = 0 este supradeterminat (având două ecuații, dar doar o necunoscută), dar nu este inconsistent deoarece are soluția x = 1.

Un sistem este nedeterminat⁠(d) dacă numărul de ecuații este mai mic decât numărul de variabile. Un sistem nedeterminat este fie inconsistent, fie are un număr infinit de soluții complexe (sau soluții într-un corp algebric închis care conține coeficienții ecuațiilor). Acesta este un rezultat netrivial al algebrei comutative care implică, în special, teorema zerourilor a lui Hilbert și teorema idealului principal al lui Krull⁠(d).

Un sistem este zerodimensional dacă are un număr finit de soluții complexe (sau soluții într-un câmp algebric închis). Această terminologie provine din faptul că varietatea algebrică⁠(d) a soluțiilor are dimensiunea⁠(d) zero. Un sistem cu un număr infinit de soluții este pozitiv dimensional.

Un sistem zero dimensional cu tot atâtea ecuații câte variabile este uneori considerat a avea o comportare bună.[4] Teorema lui Bézout afirmă că un sistem cu comportare bună ale cărui ecuații au gradele d1, ... , dn are cel mult d1 ... dn soluții. Această limită este precisă. Dacă toate gradele sunt egale cu d, această limită devine dn și este exponențială în numărul de variabile. (Teorema fundamentală a algebrei este cazul particular n = 1.)

Acest comportament exponențial face dificilă rezolvarea sistemelor polinomiale și explică de ce există puține programe de rezolvare care sunt capabile să rezolve automat sisteme cu limita lui Bézout mai mare decât, să zicem, 25 (trei ecuații de gradul 3 sau cinci ecuații de gradul 2 depășesc această limită).

Cum se rezolvă?

[modificare | modificare sursă]

Primul lucru de făcut pentru rezolvarea unui sistem de ecuații polinomiale este stabilirea dacă este inconsistent, zerodimensional sau pozitiv dimensional. Acest lucru se poate face prin calcularea unei baze Gröbner⁠(d) a membrilor stângi ai ecuațiilor. Sistemul este inconsistent dacă această bază Gröbner este redusă la 1. Sistemul este zerodimensional dacă pentru fiecare variabilă există un monom principal al unui element al bazei Gröbner care este o putere pură a acestei variabile. Pentru acest test, cea mai bună ordine monomială⁠(d) (adică cea care duce, în general, la cel mai rapid calcul) este de obicei ordinea lexicografică inversă gradată (grevlex).

Dacă sistemul este pozitiv dimensional, are o infinitate de soluții. Prin urmare nu este posibil fie enumerate. Rezultă că în acest caz rezolvarea poate însemna doar „găsirea unei descrieri a soluțiilor din care proprietățile relevante ale soluțiilor sunt ușor de extras”. Nu există o astfel de descriere acceptată în general. De fapt, există multe „proprietăți relevante” diferite, din aproape fiecare subdomeniu al geometriei algebrice.

Un exemplu natural al unei astfel de întrebări privind sistemele pozitiv dimensionale este următorul: stabilirea dacă un sistem de ecuații polinomiale peste numerele raționale are un număr finit de soluții reale și calculul lor. O generalizare a acestei întrebări este obținerea a cel puțin a unei soluții în fiecare componentă conexă a mulțimii de soluții reale ale unui sistem de ecuații polinomiale. Algoritmul clasic pentru rezolvarea acestor întrebări este descompunerea algebrică cilindrică⁠(d), care are o complexitate de calcul⁠(d) dublu exponențială⁠(d), prin urmare, cu excepția unor exemple foarte mici, nu poate fi utilizată în practică.

Pentru sistemele zerodimensionale, rezolvarea constă în calcularea tuturor soluțiilor. Există două moduri diferite de obținere a soluțiilor. Metoda obișnuită este posibilă doar pentru soluții reale sau complexe și constă în obținerea aproximărilor numerice ale soluțiilor. O astfel de soluție se spune că este numerică. O soluție este certificată dacă are o limită pentru eroarea aproximărilor și dacă această limită separă diferitele soluții.

Cealaltă posibilitate de reprezentare a soluțiilor este cea algebrică. Aceasta folosește faptul că pentru un sistem zero-dimensional soluțiile aparțin închiderii algebrice a corpului k al coeficienților sistemului. Există mai multe modalități de a reprezenta soluția într-o închidere algebrică, care sunt discutate mai jos. Toate permit calcularea unei aproximări numerice a soluțiilor prin rezolvarea uneia sau mai multor ecuații pentru o singură variabilă. Pentru acest calcul, este de preferat să se utilizeze o reprezentare care implică rezolvarea unui singur polinom cu o variabilă per soluție, deoarece calcularea rădăcinilor unui polinom care are coeficienții aproximați este o problemă extrem de instabilă.

Dezvoltări particulare

[modificare | modificare sursă]

Ecuații trigonometrice

[modificare | modificare sursă]

O ecuație trigonometrică este o ecuație g = 0 unde g este un polinom trigonometric⁠(d). O astfel de ecuație poate fi transformată într-un sistem de ecuații polinomiale prin dezvoltarea sinusurilor și cosinusurilor din ea (folosind formule de sumă și diferență a unghiurilor), înlocuind sin(x) și cos(x) cu două variabile noi s și c și adăugând noua ecuație s2 + c2 – 1 = 0 .

De exemplu, deoarece există identitatea

rezolvarea ecuației

este echivalentă cu rezolvarea sistemului de ecuații polinomiale:

Pentru fiecare soluție (c0, s0) a sistemului există o soluție unică x a ecuației astfel încât 0 ≤ x < 2π.

În cazul acestui exemplu simplu poate fi neclar dacă sistemul este sau nu mai ușor de rezolvat decât ecuația. În exemplele mai complicate lipsesc metode sistematice pentru rezolvarea directă a ecuației, însă există software disponibil pentru rezolvarea automată a sistemului corespunzător.

Soluții într-un corp finit

[modificare | modificare sursă]

Când se rezolvă un sistem peste un corp finit k cu elemente q, interesul principal este reprezentat de soluțiile din k. Deoarece elementele lui k sunt chiar soluțiile ecuației xqx = 0, pentru a restricționa soluțiile la k este suficient să se adauge ecuația xiqxi = 0 pentru fiecare variabilă xi.

Coeficienți într-un corp de numere sau într-un corp finit de ordin care nu este prim

[modificare | modificare sursă]

Elementele unui corp de numere⁠(d) sunt de obicei reprezentate ca polinoame într-un generator al corpului care satisface o anumită ecuație polinomială de o singură variabilă. Pentru a lucra cu un sistem de ecuații polinomiale ai cărui coeficienți aparțin unui corp de numere, este suficient să se considere acest generator ca o variabilă nouă și să se adauge ecuația generatorului la ecuațiile sistemului. Astfel, rezolvarea unui sistem de ecuații polinomiale peste un corp de numere se reduce la rezolvarea unui alt sistem peste numere raționale.

De exemplu, dacă un sistem conține un sistem peste numerele raționale se obține prin adăugarea ecuației r22 – 2 = 0 și înlocuirea cu r2 în celelalte ecuații.

În cazul unui corp finit, aceeași transformare permite întotdeauna presupunerea că corpul k este de ordin prim.

Reprezentarea algebrică a soluțiilor

[modificare | modificare sursă]

Lanțuri canonice

[modificare | modificare sursă]

Modul obișnuit de reprezentare a soluțiilor este prin lanțuri canonice⁠(d) zerodimensionale. Un astfel de lanț constă dintr-un șir de polinoame f1(x1), f2(x1, x2), ... , fn(x1, ... , xn) astfel încât pentru fiecare i astfel încât 1 ≤ in:

  • fi este un polinom doar în x1, ... , xi, de gradul di > 0 în xi;
  • coeficientul lui xidi din fi este un polinom în x1, ... , xi −1 care nu are niciun zero comun cu f1, ... , fi − 1 .

Unui astfel de lanț canonic îi este asociat un sistem triunghiular de ecuații:

Soluțiile acestui sistem se obțin prin rezolvarea primei ecuații de o singură variabilă, substituirea soluțiilor în celelalte ecuații, apoi rezolvarea celei de-a doua ecuații, care este acum de o singură variabilă ș.a.m.d. Definiția lanțurilor canonice implică faptul că ecuația de o singură variabilă obținută din fi are gradul di, prin urmare sistemul are d1 ... dn soluții, cu condiția să nu existe o rădăcină multiplă în acest proces de rezolvare (teorema fundamentală a algebrei).

Fiecare sistem zerodimensional de ecuații polinomiale este echivalent (adică are aceleași soluții) cu un număr finit de lanțuri canonice. Pot fi necesare mai multe lanțuri canonice, așa cum este cazul următorului sistem, care are trei soluții.

Există mai mulți algoritmi pentru calcularea unei descompuneri triunghiulare⁠(d) a unui sistem de ecuații polinomiale arbitrar (nu neapărat zerodimensional)[5] în lanțuri canonice.

De asemenea, există un algoritm competitiv cu algoritmii direcți, specific cazului zerodimensional. Acesta constă în calcularea mai întâi a bazei Gröbner pentru ordinea lexicografică inversă gradată (grevlex), apoi deducerea bazei lexicografice Gröbner prin algoritmul FGLM.[6] iar în final se aplică algoritmul Lextriangular.[7]

Această reprezentare a soluțiilor este pe deplin convenabilă pentru coeficienții dintr-un corp finit. Totuși, pentru coeficienții raționali trebuie luate în considerare două aspecte:

  • Rezultatul poate implica numere întregi uriașe, ceea ce poate face problematice calculul și utilizarea rezultatului.
  • Pentru a deduce valorile numerice ale soluțiilor din rezultat trebuie rezolvate polinoame de o singură variabilă cu coeficienți aproximativi, ceea ce reprezintă o problemă extrem de instabilă.

Prima problemă a fost rezolvată de Dahan și Schost:[8][9] Printre mulțimile de lanțuri canonice care reprezintă o mulțime dată de soluții există o mulțime pentru care coeficienții sunt explicit mărginiți în funcție de dimensiunea sistemului inițial, cu o limită aproape optimă. Această mulțime, numită descompunere echiproiectabilă, depinde doar de alegerea coordonatelor. Aceasta permite utilizarea metodelor modulare⁠(d) pentru calcularea eficientă a descompunerii echiproiectabile.[10]

A doua problemă este în general rezolvată prin generarea de lanțuri canonice de o formă particulară, uneori numită lemă a formei, pentru care toate di, cu excepția primului, sunt egale cu 1. Pentru a obține astfel de lanțuri canonice poate fi necesar să se adauge o variabilă suplimentară, numită variabilă de separare, căreia i se atribuie indicele 0. Reprezentarea rațională de o singură variabilă, descrisă mai jos, permite calcularea unui astfel de lanț canonic particular care satisface limita Dahan-Schost, pornind fie de la un lanț canonic, fie de la o bază Gröbner.

Reprezentarea rațională de o singură variabilă

[modificare | modificare sursă]

Reprezentarea rațională de o singură variabilă este o reprezentare a soluțiilor unui sistem de ecuații polinomiale zerodimensional peste numere raționale, introdusă de F. Rouillier.[11] Această reprezentare constă dintr-o combinație liniară x0 a variabilelor – numite variabile de separare – și un sistem de ecuații:[12]

unde h este un polinom de o singură variabilă în x0, de gradul D, iar g0, ... , gn sunt polinoame de o singură variabilă în x0 de grad mai mic decât D.

Fiind dat un sistem polinomial zerodimensional peste numere raționale, reprezentarea are următoarele proprietăți:

  • Toate combinațiile liniare ale variabilelor, cu excepția unui număr finit, sunt variabile de separare.
  • Când se alege variabila de separare, reprezentarea există și este unică. În special h și gi sunt definite independent de orice algoritm de calcul.
  • Soluțiile sistemului sunt în corespondență biunivocă cu rădăcinile lui h, iar multiplicitatea fiecărei rădăcini a lui h este egală cu multiplicitatea soluției corespunzătoare.
  • Soluțiile sistemului se obțin prin substituirea rădăcinilor lui h în celelalte ecuații.
  • Dacă h nu are nicio rădăcină multiplă, atunci g0 este derivata formală⁠(d) a lui h.

De exemplu, pentru sistemul din secțiunea precedentă, fiecare combinație liniară a variabilei, cu excepția multiplilor lui x, y și x + y, este o variabilă de separare. Dacă se alege t = xy/2 ca variabilă de separare, atunci reprezentarea este:

Reprezentarea este definită în mod unic pentru o anumită variabilă de separare, independentă de orice algoritm, și păstrează multiplicitățile rădăcinilor. Aceasta este o diferență importantă față de descompunerea triunghiulară (chiar și față de descompunerea echiproiectabilă), care, în general, nu conservă multiplicitățile. Reprezentarea are în comun cu descompunerea echiproiectabilă proprietatea de a produce un rezultat cu coeficienți de dimensiuni relativ mici.

Pentru sistemele zerodimensionale, reprezentarea permite recuperarea valorilor numerice ale soluțiilor prin rezolvarea unui singur polinom de o singură variabilă și substituirea acestora în funcții raționale. Aceasta permite producerea de aproximări certificate ale soluțiilor la orice precizie dată.

Mai mult, polinomul de o singură variabilă h(x0) al reprezentării poate fi factorizat, iar acest lucru dă o reprezentare pentru fiecare factor ireductibil. Aceasta oferă descompunerea primară⁠(d) a idealului dat (adică descompunerea primară a radicalului idealului). În practică, aceasta oferă un rezultat cu coeficienți mult mai mici, în special în cazul sistemelor cu multiplicități mari.

Spre deosebire de descompunerile triunghiulare și descompunerile echiproiectabile, reprezentarea nu este definită în dimensiune pozitivă.

Rezolvarea numerică

[modificare | modificare sursă]

Algoritmi generali de rezolvare

[modificare | modificare sursă]

Algoritmii numerici generali concepuți pentru orice sistem de ecuații neliniare⁠(d) funcționează și pentru sistemele de ecuații polinomiale. Totuși, metodele specifice vor fi în general preferate, deoarece metodele generale nu permit, în general, găsirea tuturor soluțiilor. În special, atunci când o metodă generală nu găsește vreo soluție, acest lucru nu indică, de obicei, că nu există o soluție.

Două metode merită menționate aici.

  • Metoda tangentei poate fi utilizată dacă numărul de ecuații este egal cu numărul de variabile. Nu permite găsirea tuturor soluțiilor și nici demonstrarea faptului că nu există o soluție. Dar este foarte rapidă atunci când se pornește dintr-un punct apropiat de o soluție. Prin urmare, este un instrument de bază pentru metoda continuării omotopiei, descrisă mai jos.
  • Optimizarea este rar utilizată pentru rezolvarea sistemelor polinomiale, dar a reușit, în jurul anului 1970, să demonstreze că un sistem de 81 de ecuații de gradul al doilea în 56 de variabile nu este inconsistent.[13] Cu celelalte metode cunoscute, în 2022 acest lucru era dincolo de posibilitățile tehnologiei moderne. Această metodă constă pur și simplu în minimizarea sumei pătratelor ecuațiilor. Dacă se găsește un minim local egal cu zero, atunci acesta este o soluție. Această metodă funcționează pentru sisteme supradeterminate, dar dacă toate minimele locale găsite sunt pozitive, nu găsește soluții.

Metoda continuării omotopiei

[modificare | modificare sursă]

Aceasta este o metodă seminumerică ce presupune că numărul de ecuații este egal cu numărul de variabile. Această metodă este relativ veche, dar în ultimele decenii a fost îmbunătățită mult.[14]

Această metodă are trei etape. Mai întâi se calculează o limită superioară pentru numărul de soluții. Această limită trebuie să fie cât mai precisă posibil. Prin urmare, se calculează folosind cel puțin patru metode diferite și se păstrează cea mai bună valoare, să zicem N.

În a doua etapă se generează un sistem de ecuații polinomiale care are exact N soluții ușor de calculat. Acest nou sistem are același număr de variabile, același număr de ecuații și aceeași structură generală ca sistemul de rezolvat,

Apoi se ia în considerare o omotopie⁠(d) între cele două sisteme. Aceasta constă, de exemplu, dintr-o dreaptă între cele două sisteme, dar pot fi luate în considerare și alte drumuri, în special pentru a evita unele singularități din sistem.

Continuarea omotopiei constă în deformarea parametrului de la 0 la 1 și urmărirea celor soluții în timpul acestei deformări. Aceasta dă soluțiile dorite pentru Urmărirea înseamnă că dacă , soluțiile pentru sunt deduse din soluțiile pentru prin metoda tangentei. Dificultatea aici este de a alege bine valoarea lui dacă este prea mare, convergența metodei tangentei poate fi lentă și poate chiar sări de la un drum de soluție la altul; dacă este prea mică, numărul de pași încetinește metoda.

Rezolvarea numerică pornind de la reprezentarea rațională de o singură variabilă

[modificare | modificare sursă]

A deduce valorile numerice ale soluțiilor dintr-o ecuație a acestei reprezentări pare ușor: este suficient să se calculeze rădăcinile polinomului de o singură variabilă și să se înlocuiască în celelalte ecuații. Acest lucru nu este atât de ușor deoarece evaluarea unui polinom la rădăcinile unui alt polinom este foarte instabilă.

Prin urmare, rădăcinile polinomului de o singură variabilă trebuie calculate cu o precizie ridicată, care nu poate fi definită o dată pentru totdeauna. Există doi algoritmi care îndeplinesc această cerință.

  • Metoda Aberth⁠(d), implementată în MPSolve, calculează toate rădăcinile complexe, cu orice precizie.
  • Algoritmul lui Uspensky al lui Collins și Akritas,[15] îmbunătățit de Rouillier and Zimmermann[16] și bazat pe regula semnelor a lui Descartes⁠(d). Acest algoritm calculează rădăcinile reale, izolate în intervale arbitrar de mici. Este implementat în Maple.

Există cel puțin patru pachete software care pot rezolva automat sisteme zerodimensionale (prin „automat” se înțelege că nu este necesară nicio intervenție umană între furnizarea datelor și obținerea rezultatului, prin urmare nu este necesară cunoașterea metodei de către utilizator). De asemenea, există și alte câteva pachete software care pot fi utile pentru rezolvarea sistemelor zerodimensionale. Unele dintre ele sunt listate în funcție de rutinele de rezolvare automată.

Funcția isolate din Maple are ca date inițiale cele ale unui sistem de ecuații polinomiale peste numerele raționale (dacă unii coeficienți sunt reprezentați în virgulă mobilă, aceștia sunt convertiți în numere raționale) și generează soluțiile reale reprezentate fie (opțional) ca intervale de numere raționale, fie ca aproximări în virgulă mobilă cu precizie arbitrară. Dacă sistemul nu este zerodimensional, acest fapt este semnalat ca eroare.

Intern, această rutină de rezolvare, concepută de F. Rouillier, calculează mai întâi o bază Gröbner și apoi o reprezentare rațională de o singură variabilă din care se deduce aproximarea necesară a soluțiilor. Funcționează în mod curent pentru sisteme cu până la câteva sute de soluții complexe.

Pentru a calcula toate soluțiile complexe dintr-o reprezentare rațională de o singură variabilă se poate utiliza MPSolve, care calculează rădăcinile complexe ale polinoamelor de o singură variabilă cu orice precizie. Se recomandă rularea MPSolve de mai multe ori, dublând precizia de fiecare dată, până când soluțiile rămân stabile, deoarece substituirea rădăcinilor în ecuațiile variabilelor de intrare poate fi foarte instabilă.

Altă rutină de rezolvare este PHCpack,[14][17] scrisă sub coordonarea lui J. Verschelde. PHCpack implementează metoda continuării omotopiei. Această rutină calculează soluțiile complexe izolate ale sistemelor de ecuații polinomiale având tot atâtea ecuații câte variabile.

A treia rutină de rezolvare este Bertini,[18][19] scrisă de D.J. Bates, J.D. Hauenstein, A.J. Sommese și C.W. Wampler. Bertini folosește continuarea omotopiei numerice cu precizie adaptivă. Pe lângă calcularea seturilor de soluții zerodimensionale, atât PHCpack, cât și Bertini sunt capabile să lucreze cu seturi de soluții pozitiv dimensionale.

A patra rutină de rezolvare este biblioteca Maple RegularChains, scrisă de Marc Moreno-Maza și colaboratorii săi. Aceasta conține diverse funcții pentru rezolvarea sistemelor de ecuații polinomiale prin intermediul lanțurilor canonice.

  1. Liviu Nicolaescu, O introducere în teoria mecanismelor, Gazeta Matematică: Seria A, anul XXVII (CVI), nr. 1/2009, p. 5
  2. Bates et al. 2013, p. 4.
  3. Bates et al. 2013, p. 8.
  4. en Songxin Liang, J. Gerhard, D.J. Jeffrey, G. Moroz, A Package for Solving Parametric Polynomial Systems. Communications in Computer Algebra (2009)
  5. en Aubry, P.; Maza, M. Moreno (). „Triangular Sets for Solving Polynomial Systems: a Comparative Implementation of Four Methods”. J. Symb. Comput. 28 (1–2): 125–154. doi:10.1006/jsco.1999.0270Accesibil gratuit.
  6. en Faugère, J.C.; Gianni, Patrizia; Lazard, D.; Mora, T. (). „Efficient Computation of Zero-Dimensional Gröbner Basis by Change of Ordering”. Journal of Symbolic Computation. 16 (4): 329–344. doi:10.1006/jsco.1993.1051Accesibil gratuit.
  7. en Lazard, D. (). „Solving zero-dimensional algebraic systems”. Journal of Symbolic Computation. 13 (2): 117–131. doi:10.1016/S0747-7171(08)80086-7.
  8. en Xavier Dahan, Eric Schost, Sharp Estimates for Triangular Sets. Moreover, recent algorithms for decomposing polynomial systems into triangular decompositions produce regular chains with coefficients matching the results of Dahan and Schost. In proc. ISSAC'04, pages 103--110, ACM Press, 2004
  9. en Dahan, Xavier; Moreno Maza, Marc; Schost, Eric; Wu, Wenyuan; Xie, Yuzhen (). „Lifting techniques for triangular decompositions” (PDF). Proceedings of ISAAC 2005. ACM Press. pp. 108–105. Arhivat din original (PDF) la . Accesat în .
  10. en Changbo Chen and Marc Moreno-Maza. Algorithms for Computing Triangular Decomposition of Polynomial Systems.In proc. ISSAC'2011, pages 83-90, ACM Press, 2011 and Journal of Symbolic Computation (to appear)
  11. en Rouillier, Fabrice (). „Solving Zero-Dimensional Systems Through the Rational Univariate Representation”. Appl. Algebra Eng. Commun. Comput. 9 (9): 433–461. doi:10.1007/s002000050114.
  12. en Saugata Basu; Richard Pollack; Marie-Françoise Roy (). Algorithms in real algebraic geometry, chapter 12.4. Springer-Verlag. Arhivat din original la . Accesat în .
  13. en Lazard, Daniel (). „Treizeci de ani de rezolvare a sistemelor polinomiale, și acum?”. J. Symb. Comput. 44 (3): 2009. doi:10.1016/j.jsc.2008.03.004Accesibil gratuit.
  14. 1 2 en Verschelde, Jan (). „Algorithm 795: PHCpack: A general-purpose solver for polynomial systems by homotopy continuation” (PDF). ACM Transactions on Mathematical Software. 25 (2): 251–276. doi:10.1145/317275.317286. Arhivat din original (PDF) la . Accesat în .
  15. en George E. Collins, Alkiviadis G. Akritas, Polynomial Real Root Isolation Using Descartes' Rule of Signs. Proceedings of the 1976 ACM Symposium on Symbolic and Algebraic Computation
  16. en Rouillier, F.; Zimmerman, P. (). „Efficient isolation of polynomial's real roots”. Journal of Computational and Applied Mathematics. 162 (1): 33–50. Bibcode:2004JCoAM.162...33R. doi:10.1016/j.cam.2003.08.015Accesibil gratuit.
  17. en Release 2.3.86 of PHCpack
  18. Bates et al. 2013.
  19. en Bertini: Software for Numerical Algebraic Geometry
  • en Bates, Daniel J.; Sommese, Andrew J.; Hauenstein, Jonathan D.; Wampler, Charles W. (). Numerically solving polynomial systems with Bertini. Philadelphia: Society for Industrial and Applied Mathematics. ISBN 978-1-61197-269-6. 

Lectură suplimentară

[modificare | modificare sursă]
  • en Cox, David; Little, John; O'Shea, Donal (). Ideals, varieties, and algorithms : an introduction to computational algebraic geometry and commutative algebra (ed. 2nd). New York: Springer. ISBN 978-0387946801. 
  • en Morgan, Alexander (). Solving polynomial systems using continuation for engineering and scientific problems (ed. SIAM). Society for Industrial and Applied Mathematics (SIAM, 3600 Market Street, Floor 6, Philadelphia, PA 19104). ISBN 9780898719031. 
  • en Sturmfels, Bernd (). Solving systems of polynomial equations. Providence, RI: American Mathematical Soc. ISBN 0821832514.