Calcul simbolic
Un obiect simbolic este o structura de date ce contine un string reprezentand simbolul. Symbolic Math Toolbox utilizeaza obiecte simbolice pentru reprezentarea variabilelor, expresiilor si matricilor simbolice.
Exemplu pentru ilustrarea diferentei dintre un tip de data standard a Matlabului (double) si obiectul simbolic corespunzator:
comanda |
rezultat |
|
|
|
|
Pentru a obtine valoarea numerica a obiectului simbolic se foloseste comanda:
Constructia fractiilor folosind obiecte simbolice.
Variabile de tip predefinit |
Obiecte simbolice |
|
|
Crearea variabilelor si expresiilor simbolice.
Pentru constructia variabileleor sau a expresiilor simbolice se utilizeza comanda sym:
Pentru a crea o variabile simbolica reprezentand ratia
se utilizeaza comanda:
In continuare se pot efectua diferite operatii folosind variabile simbolica creata:
Rezultatul obtinut se poate simplifica utilizand comanda:
Sa presupunem ca dorim sa studiem functia de gradul 2
O metoda ar putea fi
prin care ii asociem variabilei f expresia simbolica , insa in acest caz nu sunt create automat variabile corespunzatoare termeniilor expresiei: a, b, c, x. pentru a putea trece la efectuarea operatiilor matematice asupra acestei expresii (integrare, derivare, etc.), trebuie sa cream fiecare variabila in parte:
sau, mai simplu
si apoi sa introducem expresia
Determinarea variabilelor simbolice din cadrul expresiilor: comanda findsym
Exemplu:
Substituirea unei variabile simbolice cu o valoare numerica: comanda subs
va returna valoarea functiei f in punctual x=2.
In cazul in care expresia contine mai mult de o variabila, se poate specifica variabila care se doreste a fi substituita:
Crearea matricilor simbolice.
Pentru a inlocui elementul (2,3) cu beta iar elemntul b cu alpha:
Crearea de functii matematice simbolice: utilizand expresii simbolice.
Conversia simbolica si numerica.
Consideram in Matlab instructiunea t = 0.1 . functia sym are 4 optiuni pentru a returna reprezentarea simbolica a valorii numerice stocata in t:
Optiune |
Expresie |
Rezultat |
f |
|
|
r implicita |
sau
|
|
e |
|
|
d |
sau
|
|
Conversia unei matrici din numeric in simbolic.
Fie matricea A = hilb(3), adica matricea de tip Hilbert (3,3):
Pentru a obtine matricea simbolica corespunzatoare:
Construirea variabilelor reale si complexe.
Se utilizeaza optiunea real astfel:
sau
vom utilize aceste variabile pentru a construi:
unde z este o variabila complexa care poate fi manipulata ca atare:
In cazul in care se doreste schimbarea proprietatii ca x este numar real se foloseste instructiunea:
Crearea de functii abstracte.
1. Crearea unei functii abstracte f(x):
pentru aceasta functie se poate calcula derivate de ordin I astfel:
sau
2. Crearea functiei factorial:
Utilizarea obiectelor simbolice.
Derivata de ordin I
Derivata de ordinal II
sau
In cazul functiilor de mai multe variabile:
Exemple pentru diff
iar pentru a simplifica rezultatul:
Pornind de la definitia derivatie I ca si limita:
avem
sau
In cazul limitelor laterale avem:
Limita |
Expresie cu obiecte simbolice |
|
|
|
|
|
|
Operatia matematica Instructiunea in Matlab
Exemplu:
Creand variabilele simbolice
avem
In cazul integralei definite:
Integrarea in cazul parametrilor reali.
In cazul in care a este un numar real pozitiv, expresia tinde la 0 atunci cand x tinde la
Pentru a calcula
Determinarea punctelor de minim/maxim si a punctelor sa.
Fie functia :
Se observa ca functia este continua pe
Determinam punctele de forma (x,y) obtinute din egalarea cu 0 a ambelor derivate partiale :
Se vor obtine punctele critice:
Testul folosind derivata a 2-a.
Seminficatie pentru fiecare punct critic in parte:
|
|
clasificare |
negativ |
punct sa |
|
pozitiv |
pozitiv |
minim local |
pozitiv |
negativ |
maxim local |
zero |
eroare |
In cazul exemplului de mai sus avem:
(x,y) |
|
|
clasificare |
punct sa |
|||
maxim local |
|||
punct sa |
|||
minim local |
Cod matlab:
Metoda 1.
Comanda :
returneaza solutiile sistemului:
Metoda 2
iar apoi comanda solve(fx).
Vizualizarea rezultatelor:
Pentru vizualizarea punctelor de extrem, se utilizeaza comanda pentru desenarea liniilor de contur:
Pentru a fi afisate mai multe linii de contur :
Urmatoarele comenzi deseneaza liniile de nivel la diferite inaltimi (-14,-13,-12, ,-4), afisand valorile:
Observatii:
|