Sunteți pe pagina 1din 3

Laborator 2.

Rezolvarea ecuaţiilor şi a sistemelor de ecuaţii.


În Mathematica, o ecuaţie este o expresie relaţională, având ca operator principal
operatorul de egalitate ==.
Forma generală a unei ecuaţii este:
expresie1 == expresie2
unde în expresiile expresie1 şi expresie2 se află simbolul necunoscutei din ecuaţiile
algebrice (din matematică).
Dacă simbolul necunoscut este substituit cu o valoare numerică, atunci ecuaţia, în
Mathematica, va returna, în urma execuţiei, o valoare logică, True sau False.
Un sistem de ecuaţii se poate reprezenta în mai multe moduri:
- fie ca o listă de ecuaţii:
{ecuatia1, ecuatia2, ..., ecuatian}
- fie ca o egalitate de liste cu acelaşi număr de elemente:
{expr11, expr12, ..., expr1n}=={expr21, expr22, ..., expr2n}
- fie ca o expresie relaţională compusă cu ecuaţii:
ecuatia1 && ecuatia2 && ... && ecuatian

Exemple:
In[1]:= ecuatie=x^2 - 5x+4==0

Out[1]= x 2 − 5x + 4 == 0
In[2]:= ecuatie/.x->4
Out[2]= True
In[3]:= ecuatie/.x->2
Out[3]= False

Mathematica permite rezolvarea ecuaţiilor şi sistemelor de ecuaţii polinomiale,


furnizând soluţii exacte sau aproximative, în funcţie de metodele folosite.
Rezolvarea simbolică (exactă) a unei ecuaţii cu necunoscuta x se face apelând
comanda:
Solve[ecuatie, x]
Rezultatul furnizat de Solve este o listă de reguli de transformare pentru x
corespunzătoare tuturor rădăcinilor. Pentru afişarea liste rădăcinilor trebuie apllicate aceste
reguli de transformare (pentru o mai bună înţelegere am preferat să stocăm aceste reguli în
obiectul solutie) simbolului x:
x/.solutie
Pentru ecuaţiile algebrice se poate folosi alternativ şi funcţia Roots, prin
Roots[ecuatie, x], iar în cazurile când soluţiile sunt prezentate cu ajutorul obiectului
Root se pot genera doar aproximări numerice apelându-se suplimentar funcţia N atât lui
Solve cât şi lui Roots.
Numărul soluţiilor se obţine apelând Length[solutie].
Exemple:
In[4]:= ecuatie1=x^2 - 5x+4==0;ecuatie2= x^2 - 3x+2==0;
In[5]:= solutie1=Solve[ecuatie1, x]
Out[5]= {{x → 1}, {x → 4}}
In[6]:= Solve[ecuatie2, x]
Out[6]= {{x → 1}, {x → 2}}
In[7]:= Length[solutie1]
Out[7]= 2

Pentru rezolvarea sistemelor de ecuaţii se foloseşte următoarea sintaxă a lui Solve:


Solve[sistem, {x, y, …}]
unde x, y, ... sunt simbolurile asociate necunoscutelor sistemului.
Funcţia Reduce[ecuatie, x] furnizează soluţiile sub forma unor expresii logice
analizând şi valorile critice ale parametrilor. Spre deosebire de Solve care returnează doar
soluţiile generale ignorându-le pe cele care sunt valide pentru valori particulare ale
parametrilor, Reduce furnizează setul complet de soluţii, aducând chiar şi discuţii asupra
rădăcinilor.
Funcţia Eliminate[{ecuatia1, ecuatia2, …, ecuatian}, x] crează un
sistem de ecuaţii echivalent eliminând necunoscuta x din toate ecuaţiile iniţiale ale sistemului.
Exemple.
In[8]:= sistem = ecuatie1 && ecuatie2

Out[8]= 4 − 5x + x 2 == 0 & & 2 − 3x + x 2 == 0


In[9]:= solutie=Solve[sistem, x]
Out[9]= {{x → 1}}
In[10]:= sistem/.solutie
Out[10]= {True}
In[11]:= sistem = x^2 + y^2==1 && x + y ==0

Out[11]= x 2 + y 2 == 1 & & x + y == 0


In[12]:= solutii=Solve[sistem, {x,y}]

⎧⎧ 1 1 ⎫ ⎧ 1 1 ⎫⎫
Out[12]= ⎨⎨x → − ,y → ⎬, ⎨x → ,y → − ⎬⎬
⎩⎩ 2 2⎭ ⎩ 2 2 ⎭⎭
In[13]:= Roots[ecuatie1, x]
Out[13]= x == 1 || x == 4
In[14]:= Eliminate[{a x + y == 0, 2x + (1-a)y == 1}, y]

Out[14]= − ax + a2x == 1 − 2x
In[15]:= Reduce[{x == 1, x == a}, x]
Out[15]= a == 1 & & x == 1
In[16]:= NSolve[x^3 + 1 == 0, x]
Out[16]=
{{x → −1.}, {x → 0.5 − 0.866025 i}, {x → 0.5 + 0.866025 i}}
In[17]:= Solve[x^8 + 3x^4 – 4x^3 + 1 == 0, x]
Out[17]=

{{x [ ] [ ]
→ Root 1 − 4#13 + 3#14 +#18&, 1 }, {x → Root 1 − 4#13 + 3#14 +#18&, 2 },...}
In[18]:= NSolve[x^8 + 3x^4 – 4x^3 + 1 == 0, x]
Out[18]=
{{x → −1.15507 − 0.968699i}, {x → −1.15507 + 0.968699i},...}

S-ar putea să vă placă și