3
1 Laborator 1 - Introducere ˆ ın Mathematica ˆ In cele ce urmeaz˘ a, paragrafele/rˆ ındurile care ˆ ıncep cu simbolul ”” cont ¸in explicat ¸ii iar cele care ˆ ıncep cu aliniat cont ¸in expresii/comenzi Mathematica. Orice comand˘ a Mathematica are asociat˘ a o pagin˘ a de ”Help”, pagin˘ a care poate fi accesat˘ a select˘ and numele comenzii (f˘ ar˘ a parantezele drepte ¸ si interiorul lor) ¸ si ap˘ asˆ and ”F1”. Pentru fiecare comand˘ a Mathematica prezentat˘ a mai jos consultat ¸i pagina de ”Help” asociat˘ a avˆ and ˆ ın vedere mai ales exemplele (interactive) incluse. Spat ¸iul de lucru dintr-un document (fi¸ sier) Mathematica este ˆ ımp˘ art ¸it ˆ ın sa-numite ”celule” (”cells”), ˆ ımp˘ art ¸irea propriu-zis˘ a fiind pus˘ ın evident ¸˘ ın partea dreapt˘ a a ecranului. Celulele ce cont ¸in expresii/comenzi introduse de utilizator se evalueaz˘ a folosind ”Shift”+”Enter”, ˆ ın urma evalu˘ arii primind eticheta ”In” (de la ”Input”), etichet˘ a ce apare ˆ ın partea stˆ ang˘ a a ecranului. Rezultatul/rezultatele evaluarii apar ˆ ın c˘ asut ¸e de tip ”Output” care primesc eticheta ”Out”. Etichetele ”In” ¸ si ”Out” sunt numerotate ˆ ın ordinea ˆ ın care s-a f˘ acut evaluarea. Celulele de tip ”Input” pot fi oricˆ and modificate ¸ si reevaluate folosind din nou ”Shift”+”Enter”, c˘ asut ¸ele de ”Output” corespunz˘ atoare reflectˆ and rezultatul reevalu˘ arii. Definirea unui vector se face folosind o pereche de acolade, elementele fiind separate prin virgule: v= {1,-2,3} Num˘ arul de elemente ale vectorului se poate determina folosind comanda Length: Length[v] O matrice in Mathematica este un vector a c˘ arui elemente sunt vectorii ce contin elementele de pe liniile matricei: M= {{1, 3, -4}, {0, 4, 2}, {5, -7, 1}} Pentru a vizualiza forma real˘ a a matricei se poate proceda astfel: MatrixForm[M] Alternativ, pentru definirea unei matrice se poate accesa din bara de meniu tab-ul ”Input”, selectˆ and apoi ”Create Table/Matrix/Palette”. Elementul de pe linia ”i” ¸ si coloana ”j” a matricei este M[[i, j]]: M[[1, 3]] Num˘ arul ”n1” de linii ¸ si num˘ arul ”n2” de coloane ale matricei M se pot determina folosind comanda Dimensions: {n1, n2} = Dimensions[M] Calculul determinantului ¸ si a inversei lui M se pot face astfel: Det[M] Mi = Inverse[M]; MatrixForm[Mi] Inmultirea unei matrice cu un vector se face folosind punctul:

Laborator 1 Mathematica.pdf

Embed Size (px)

Citation preview

1

Laborator 1 - Introducere ın Mathematica

In cele ce urmeaza, paragrafele/rındurile care ıncep cu simbolul ”•” continexplicatii iar cele care ıncep cu aliniat contin expresii/comenzi Mathematica.

Orice comanda Mathematica are asociata o pagina de ”Help”, pagina carepoate fi accesata selectand numele comenzii (fara parantezele drepte siinteriorul lor) si apasand ”F1”. Pentru fiecare comanda Mathematicaprezentata mai jos consultati pagina de ”Help” asociata avand ın vedere maiales exemplele (interactive) incluse.

Spatiul de lucru dintr-un document (fisier) Mathematica este ımpartit ınasa-numite ”celule” (”cells”), ımpartirea propriu-zisa fiind pusa ın evidenta ınpartea dreapta a ecranului.

Celulele ce contin expresii/comenzi introduse de utilizator se evalueaza folosind”Shift”+”Enter”, ın urma evaluarii primind eticheta ”In” (de la ”Input”),eticheta ce apare ın partea stanga a ecranului. Rezultatul/rezultatele evaluariiapar ın casute de tip ”Output” care primesc eticheta ”Out”. Etichetele ”In” si”Out” sunt numerotate ın ordinea ın care s-a facut evaluarea.

Celulele de tip ”Input” pot fi oricand modificate si reevaluate folosind din nou”Shift”+”Enter”, casutele de ”Output” corespunzatoare reflectand rezultatulreevaluarii.

• Definirea unui vector se face folosind o pereche de acolade, elementele fiindseparate prin virgule:

v = {1,-2,3}• Numarul de elemente ale vectorului se poate determina folosind comandaLength:

Length[v]

• O matrice in Mathematica este un vector a carui elemente sunt vectorii cecontin elementele de pe liniile matricei:

M = {{1, 3, -4}, {0, 4, 2}, {5, -7, 1}}• Pentru a vizualiza forma reala a matricei se poate proceda astfel:

MatrixForm[M]

• Alternativ, pentru definirea unei matrice se poate accesa din bara de meniutab-ul ”Input”, selectand apoi ”Create Table/Matrix/Palette”.

• Elementul de pe linia ”i” si coloana ”j” a matricei este M[[i, j]]:

M[[1, 3]]

• Numarul ”n1” de linii si numarul ”n2” de coloane ale matricei M se potdetermina folosind comanda Dimensions:

{n1, n2} = Dimensions[M]

• Calculul determinantului si a inversei lui M se pot face astfel:

Det[M]

Mi = Inverse[M]; MatrixForm[Mi]

• Inmultirea unei matrice cu un vector se face folosind punctul:

2

M.v

• Rezolvarea sistemului de ecuatii liniare M · x = v se poate face folosindcomanda LinearSolve:

LinearSolve[M, v]

• Rezolvarea unui sistem alcatuit din de ecuatiile (nu neaparat liniare)f1(x1, x2, ...xn) = 0, f2(x1, x2, ...xn) = 0, ...fm(x1, x2, ...xn) = 0 se poateface folosind comanda Solve (forma generala - nu introduceti ın program):

Solve[{f1(x1,x2,...xn)==0, f2(x1,x2,...xn)==0, ...,

fm(x1,x2,...xn)==0}, {x1,x2,...xn }]• Exemplu: Sistemul format din ecuatiile 3x + y = 5, x + 2y = 0 poate firezolvat folosind comanda Solve astfel:

Solve[{3*x + y - 5 == 0, x + 2*y == 0}, {x, y}]• Exemplul de mai sus poate fi rezolvat si folosind comanda LinearSolve,obtinandu-se bineınteles aceeasi solutie:

A = {{3, 1}, {1, 2}}; b = {5, 0}; LinearSolve[A, b]

• Exercitiu: Pentru valoare a lui k matricea A =

(−1 k

2 −8

)are

determinantul nul?

Indicatie: Se defineste matricea A, se calculeaza determinantul ei folosindcomanda Det si se rezolva folosind comanda Solve ecuatia care se obtine prinanularea determinantului.

• Definirea unei functii se face adaugand la variabila o liniuta de subliniere:

f[x ] = Exp[x] + x2 + x + 1

• In expresia de mai sus, puterea lui x se poate scrie folosind ”caciulita”:”Shift”+”6” sau accesand de pe bara de meniu tab-ul ”Palletes” si apoiselectand simbolul corespunzator din ”BasicMathAssistant/Calculator/Basic”:

• Evaluarea unei functii f (definite anterior) intr - un punct x0 dat se facescriind ”f[x0]”. De exemplu, valoarea functiei f definite mai sus in zero este:

f[0]

• Calculul derivatei unei functii (definite anterior) se poate face automatfolosind apostroful:

f’[x]

• Reprezentarea grafica a unei functii de o variabila se face folosind comandaPlot. In exemplul ce urmeaza intervalul pe care se face reprezentarea este [0,2]:

Plot[f[x], {x, 0, 2}]• Exercitiu: Calculati punctele critice ale functiei x3 - 3 x + 1. Folosind oreprezentare grafica a functiei, precizati pentru fiecare punct critic ın partedaca este sau nu punct de extrem.

Indicatie: Se rezolva folosind comanda Solve ecuatia care se obtine prinanularea derivatei.

• O functie de doua variabile se poate defini de exemplu astfel :

g[x , y ] = Sin[x + y]

• Reprezentarea grafica a functiei anterioare pentru x si y luınd valori peintervalul [-10, 10] este:

Plot3D[g[x, y], {x, -10, 10}, {y, -10, 10}]

3

• Secventa de algoritm :Pentru i de la 1 la 10

Scrie ise poate implementa folosind comenzile For si Print astfel:

For[i=1, i<=10, i++, Print[i]]

• Aceeasi secventa de algoritm poate fi implementata folosind comanda Do:

Do[Print[i], {i, 1, 10}]• Aceeasi secventa implementata folosind comanda While:

i = 1; While[i <= 10, Print[i]; i++]

• Exercitiu : Construiti folosind comenzile For, Do si While programe cecalculeaza suma primelor 10 numere naturale nenule.

• Comanda Module, cu sintaxa Module[{lista variabile locale},expresii/comenzi], permite creearea unor functi de tip procedura, ce sedefinesc ca rezultat al unui sir de expresii/comenzi. In cadrul unui Module,expresiile/comenzile succesive se despart prin ”;”, expresia ce da rezultatulfiind cea care se gaseste pe ultimul loc. Programul urmator asociaza sub formaunei functii fiecarui numar natural n suma 1 + 2 + 3 + ... + n corespunzatoare:

suma[n ] := Module[{s = 0}, Do[s = s + i, {i, 1, n}]; s]

• Pentru a implementa secventa de algoritm ce tipareste elementele matricei Mdefinite mai sus:Pentru i de la 1 la 3

Pentru j de la 1 la 3Scrie Mij

se poate folosi programul:

For[i=1, i<=3, i++,For[j=1, j<=3, j++, Print[M[[i, j]]]]]

• Exercitiu : Construiti un program care tipareste doar elementele pozitiveale matricei M folosind comanda If.

Indicatie: Secventa de algoritm:Daca ”conditie” atunci ”rezultat”se poate scrie ın Mathematica astfel:If[conditie, rezultat]).

• Exercitiu : Algoritmii/programele de mai sus se pot folosi doar ın cazulunor matrice cu trei linii si trei coloane. Generalizati programul astfel ıncat sapoate fi aplicat unei matrice de orice dimensiuni.

Indicatie: Se poate folosi comanda Dimensions prezentata mai sus.

• Comanda Manipulate permite construirea unei interfete grafice ın cadrulcareia diversi parametrii pot fi modificati folosind slidere si butoane.Urmatorul program Mathematica construieste o interfata grafica ce continegraficul functiei sin(n · x, n · y), parametrul n fiind controlat de un slider ce iavalori ıntre 1 si 2 cu pasul 0.1:

Manipulate[Plot3D[g[n*x, n*y], {x,-3,3}, {y,-3,3}], {n,1,2,0.1}]Interfata urmatoare afiseaza suma de mai sus a primelor n numere naturale:

Manipulate[suma[n], {n,1,10,1}]• Exercitiu : Construiti o interfata grafica ce afiseaza produsul primelor nnumere naturale nenule.