Sunteți pe pagina 1din 11

MathCad

Variabile de tip tablou


Operatia de vectorizare in MathCad
Elemente de teoria campului
Realizarea animaţiei în Mathcad
Fisiere MathCad

Variabile tablou (array): vectori, matrice


• O variabila devine variabila tablou daca i se atribuie o constanta tablou sau o
expresie a carei valoare este de tip tablou.
• Pentru a crea o constanta tablou se parcurg urmatorii pasi:
− Se tasteaza Ctrl + m sau se alege Matrices din Math;
− Se fixeaza dimensiunile tabloului (randuri, coloane);
− MathCad afiseaza un vector sau o matrice, elementele fiind indicate
printr-o pozitie marcata; se completeaza pozitiile cu expresii numerice
folosind tasta Tab pentru trecerea de la o pozitie la alta.
• Componentele unui vector (matrice) se obtin tastand numele vectorului
(matricei) urmat de indici inferiori (v2 sau a4,5).
2. Observatii utile in rezolvarea exercitiilor:
• Pentru a calcula:
− determinantul unei matricei A, scriem |A|= ;
− transpusa matricei A, scriem AT=;
− urma matricei A , scriem tr(A)=
• Pentru a rezolva un sistem de ecuatii linear scriem matricea sistemului, A,
vectorul termenilor liberi, B, si obtinem solutia scriind X:=A-1B . Rezultatul il
obtinem daca scriem X=.
• Pentru a rezolva un sistem de ecuatii nelinear se folosesc functiile find sau
minerr ca in exemplul urmator:
x 0 y 0 z 0

Given
2
x x 2. y . z 0.1 0
2
y y 3. x. z 0.2 0
2
z z 2. x. y 0.3 0

sol find( x, y , z)

0.137
sol = 0.127
0.218

Semnul = se obtine tastand Ctrl + =.

Aplicatii
2n!
1. Fie X=(-1, 2, ,9, -4, 3, 22) un vector. Sa se calculeze: a) E= 6
, unde n
∑ x i2
i =1

este lungimea vectorului X.


b) Cel mai mic element al vectorului; c) Cel mai mare element al
vectorului.
⎛2 3 − 8 5 ⎞
⎜ ⎟
⎜4 1 0 − 5⎟
2. Fie matricea A = ⎜ . Sa se calculeze:
6 7 8 3 ⎟
⎜⎜ ⎟⎟
⎝ 2 10 0 4 ⎠
a) Suma patratelor elementelor mai mari decat 1;
b) det(A);
c) A-1;
d) AT;
e) Urma matricei A.
⎧ x1 + 2 x 2 + 3 x 3 + 4 x 4 = 11

⎪2 x 1 + 3 x 2 + 4 x 3 + x 4 = 12
3. Sa se rezolve sistemul liniar de ecuatii: ⎨
⎪3 x 1 + 4 x 2 + 2 x 3 + x 4 = 13
⎪⎩4 x 1 + x 2 + 2 x 3 + 3 x 4 = 14
⎧ x + x 2 − 2 yz = 0.1
⎪⎪ 2
4. Sa se rezolve sistemul neliniar de ecuatii: ⎨ y − y + 3 xz = 0.2
⎪ 2
⎪⎩ z + z + 2 xy = 0.3
∞ ∞
1
5. Sa se calculeze: ∫ dx; ∫ sin x 2 dx .
−∞ x4 + 1 0

x
6. Sa se verifice ca functia y( x ) = este solutia ecuatiei integrale:
5
2 2
(1 + x )

3x + 2x 3 x
3x + 2x 3 − t
y( x ) − + ∫ y( t )dt = 0
3(1 + x 2 ) 2 0 (1 + x 2 ) 2
7. Sa se calculeze derivatele partiale pentru urmatoarele functii

a) f ( x, y) = x 2 ⋅ y 5

∂f ⎛ π ⎞ ∂f ⎛ π ⎞
b) f ( x , y ) = sin 2 x + sin 2 y , ⎜ ,0 ⎟, ⎜ ,0 ⎟
∂x ⎝ 4 ⎠ ∂y ⎝ 4 ⎠

c) f ( x, y) = x2 + y2 , dans (1,1)
d) f ( x , y ) = x
ln y
, dans (e , e )
e) (
f ( x , y ) = ln x + y 2 − 1 , ) dans (1,1)
f) f ( x , y ) = xy ln x , dans (1,1)
f ( x , y ) = (1 + xy ) ,
y
g) 1 + xy > 0
2
⎛ x + y⎞ x+ y
h) f ( x , y ) = 1 − ⎜⎜ ⎟⎟ + arcsin
⎝ xy ⎠ xy

yz
i) f ( x, y , z ) = x

Operatia de vectorizare in MathCad


Daca o functie f(x,y) trebuie aplicata succesiv unui sistem de variabile (xi,yi),
obtinand zi=f(xi,yi), pentru i=1,2,...,n se poate folosi operatia de vectorizare, procedeu
care este mult mai rapid decat folosirea indexarii.
⎛ x1 ⎞ ⎛ y1 ⎞
⎜ ⎟ ⎜ ⎟
z = f ( x , y ) unde x = ⎜ ... ⎟, y = ⎜ ... ⎟
⎜x ⎟ ⎜y ⎟
⎝ n⎠ ⎝ n⎠
Pentru a obtine simbolul vectorizarii se plaseaza cursorul oriunde pe numele functiei
si se tasteaza Ctrl + - sau se ia semnul din listele de simboluri. In cazul vectorizarii
unei expresii mai complicate, expresia se marcheaza (cu bara de spatiu sau cu mouse-
ul) apoi se tasteaza Ctrl + - .
Exemplu:
1
x 2
3
15.841
2
x 7. ( x 3 ) sin( x) = 11.909
9.141

Elemente de teoria campului


Fie D ⊆ ℜ 3 . O functie f : D → ℜ se numeste camp scalar. Un camp scalar care are
derivate partiale continue pana la ordinul p se numeste de clasa Cp. Multimea
campurilor scalare de clasa Cp se noteaza cu S3,p(D). Fie V3 spatiul liniar al vectorilor
r r r
liberi din ℜ 3 . Un element din V3 se poate reprezenta prin ai + bj + ck .
r
O functie v : D → V3 se numeste camp vectorial. Un camp vectorial se poate
r r r r
introduce prin v ( x, y, z ) = P ( x, y, z )i + Q ( x , y, z ) j + R( x , y, z )k , unde P,Q,R sunt
campuri scalare. Daca P,Q,R sunt de clasa Cp, atunci campul se numeste de clasa Cp.
Multimea campurilor vectoriale de clasa Cp o notam cu V3,p(D).
Se definesc operatorii:
∂f r ∂f r ∂f r
grad : S 3,1 ( D) → V3, 0 ( D), grad ( f ) = i + j+ k
∂x ∂y ∂z
r ∂ P ∂Q ∂R
div : V3,1 ( D) → S 3, 0 ( D), div (v ) = + +
∂x ∂ y ∂z
r r r
i j k
r ∂ ∂ ∂
rot : V3,1 ( D) → V3,0 ( D), rot( v ) = =
∂ x ∂y ∂z
P Q R
⎛ ∂R ∂ Q ⎞ r ⎛ ∂ P ∂R ⎞ r ⎛ ∂Q ∂ P ⎞ r
= ⎜⎜ − ⎟⎟ i + ⎜ − ⎟ j + ⎜⎜ − ⎟⎟ k
⎝ ∂ y ∂z ⎠ ⎝ ∂ z ∂x ⎠ ⎝ ∂x ∂y ⎠
Notatii:
r r r r r r r r r r r r r
r = xi + yj + zk , s = r = x 2 + y 2 + z 2 , v = ai + bj + ck , w = di + ej + fk

Observatii: Vectorii se reprezinta ca tablouri cu trei linii si o coloana. Produsul scalar


al vectorilor u si v se obtine prin uTv, iar produsul vectorial se obtine prin u × v .

Exemple:
• Calculul gradientului:
1 .x
d
s( x, y , z)
dx 2 2 2
x y z
d 1 .y
grad( s , x, y , z) s( x, y , z)
dy grad( s , x, y , z)
2 2 2
x y z
d
s( x, y , z) 1
dz .z
2 2 2
x y z

• Calculul divergentei:
P( x, y , z) x Q( x, y , z) y R( x, y , z) z

d d d
div( P , Q , R , x, y , z) P( x, y , z) Q( x, y , z) R( x, y , z)
dx dy dz

div( P , Q , R , x, y , z) 3

• Calculul rotorului:
P( x, y , z) x Q( x, y , z) y R( x, y , z) z

d d
R( x, y , z) Q( x, y , z)
dy dz
0
d d
rot( P , Q , R, x, y , z) P( x, y , z) R( x, y , z) rot( P , Q , R , x, y , z) 0
dz dx
0
d d
Q( x, y , z) P( x, y , z)
dx dy
r r r r r r
• Sa se calculeze: grad v ⋅ r ; div v × r ; rot v × r .
⎛a⎞ ⎛ x⎞
⎜ ⎟ ⎜ ⎟
Daca v := ⎜ b ⎟ si r := ⎜ y ⎟ atunci
⎜c⎟ ⎜z⎟
⎝ ⎠ ⎝ ⎠
T
v .r a. x b . y c. z
b . z c. y
v r c. x a. z
a. y b . x
r r
Campul scalar v ⋅ r este f ( x , y, z ) := a ⋅ x + b ⋅ y + c ⋅ z si componentele campului
r r
vectorial v×r sunt: P ( x , y, z ) := b ⋅ z − c ⋅ y ; Q ( x , y, z ) := c ⋅ x − a ⋅ z ;
R( x , y, z ) := a ⋅ y − b ⋅ x . Se obtin urmatoarele rezultate:
d
f( x, y , z)
dx
d a
grad( f , x, y , z) f( x, y , z)
dy grad( f , x, y , z) b

d c
f( x, y , z)
dz

d d d
div( P , Q , R, x, y , z) P( x, y , z) Q( x, y , z) R( x, y , z) div( P , Q , R, x, y , z) 0
dx dy dz

d d
R( x, y , z) Q( x, y , z)
dy dz
2. a
d d
rot( P , Q , R, x, y , z) P( x, y , z) R( x, y , z) rot( P , Q , R, x, y , z) 2. b
dz dx
2. c
d d
Q( x, y , z) P( x, y , z)
dx dy
Calculul gradientului unui scalar:
2 2 2
s ( x, y , z) := x + y + z
⎡ 1
⋅ x⎤⎥
⎢ 1
⎢ ⎥
⎛⎜ ∂ ⎞⎟
⎜ ∂x
s ( x, y , z)

⎢ 2 2 2
⎢ x +y +z ( ) 2 ⎥

⎜ ⎟ ⎢ 1 ⎥
⎜ ∂ ⎟ ⎢ ⋅ y⎥
grad ( s , x, y , z) := s ( x, y , z) 1
⎜ ∂y ⎟ grad ( s , x, y , z) → ⎢ ⎥

⎜∂


⎢ 2 2 2
⎢ x +y +z
( )2 ⎥

⎜ z s ( x, y , z) ⎟ ⎢ 1 ⎥
⎝∂ ⎠ ⎢ ⋅z

1
⎢ ⎥
Calculul divergentei unui vector de componente P,⎣ Q,
⎢ 2 + y2 + z2
x R: ( )2 ⎥

P( x, y , z) := x Q( x, y , z) := y R( x, y , z) := z

∂ ∂ ∂
div ( P , Q , R, x, y , z) := P( x, y , z) + Q( x, y , z) + R( x, y , z)
∂x ∂y ∂z

div ( P , Q , R, x, y , z) → 3

Calculul rotorului unui vector de componente P, Q, R:

P( x, y , z) := y ⋅ z Q( x, y , z) := z ⋅ x R( x, y , z) := y ⋅ x

⎛⎜ ∂ ∂ ⎞
R( x, y , z) − Q( x, y , z) ⎟
⎜ ∂y ∂z ⎟
⎜ ⎟
⎜ ∂ ∂ ⎟ ⎛0⎞
rot ( P , Q , R, x, y , z) → ⎜ 0 ⎟
rot ( P , Q , R, x, y , z) := P( x, y , z) − R( x, y , z)
⎜ ∂z ⎟
∂x ⎜ ⎟
⎜ ⎟ ⎝0⎠
⎜∂ ∂ ⎟
⎜ x Q( x, y , z) − y P( x, y , z) ⎟
⎝∂ ∂ ⎠
Exercitii

1. Rezolvarea ecuatiilor de gradul doi care au coeficientii:


⎛ 1⎞ ⎛ 3⎞ ⎛ 2⎞
⎜ ⎟ ⎜ ⎟ ⎜ ⎟
⎜ 1⎟ ⎜ 2⎟ ⎜1⎟
a := ⎜ ⎟, b := ⎜ ⎟, c := ⎜ ⎟
1 1 1
⎜⎜ ⎟⎟ ⎜⎜ ⎟⎟ ⎜⎜ ⎟⎟
⎝ 1⎠ ⎝ 0⎠ ⎝1⎠
a⋅b+ b⋅c + a⋅c
2. Sa se calculeze E := , unde a, b si c au valorile de la punctul
2 2 2
a +b +c
1.
r r r r r r r r r
3. Fie r = xi + yj + zk , s = r = x2 + y2 + z2 si v = ai + bj + ck Sa se

calculeze expresiile:
r
r
a) div ;
s
r
r
b) rot ;
s
r
c) div s n ⋅ r ;
r r r r
r ×v r ⋅v
d) rot 3 − 2 grad 3 .
s s

Realizarea animaţiei în Mathcad: se foloseşte pentru descrierea proceselor


evolutive. Pentru exemplificare să considerăm metoda aproximatiilor successive
pentru determinarea soluţiei ecuaţiei sin(x)+2x-1=0.

−sin ( x) 1 0.336
f ( x) := + 0.336

2 2
x0 := 0.335 ( )
f xFRAME 0.3355

Pentru realizarea animaţiei se activează comanda Animate din meniul View şi


n := 1 .. 10
se selecteaza regiunea care dorim să fie 0.335
cuprinsă
0.335 în fereastra de0.3355
animaţie; se va crea
xn := f ( xn− 1)
0.3345 0.335
0.335 xFRAME 0.335
fereastra Playback-ului. Se pot preciza valorile de inceput (0) şi de final (10) ale
variabilei FRAME şi viteza de afişare a imaginilor.

Funcţii de citire şi de scriere a fişierelor de tip BMP, GIF, JPG sau TGA

Denumire funcţie Semnificaţie


READBMP(fisier) Citeşte un fişier de tip BMP ce este organizat ca o matrice;
imagine în nuanţe de gri.
READRGB(fisier) Citeşte un fişier de tip BMP ce este organizat ca o matrice ce
conţine 3 submatrice (roşu, verde şi albastru).
READ_IMAGE(fisier) Citeşte un fişier de tip BMP, GIF, JPG, sau TGA.
READ_HLS(fisier) Citeşte un fişier de tip BMP, GIF, JPG, sau TGA (Hue,
Lightness, Saturation)
READ_HSV(fisier) Citeşte un fişier de tip BMP, GIF, JPG, sau TGA (Hue,
Saturation, Value)
WRITEBMP(fisier) Crează un fişier de tip BMP în nuanţe de gri din matricea
care i se atribuie.
WRITERGB(fisier) Crează un fişier de tip BMP color din matricea care i se
atribuie.
WRITE_HLS(fisier) Crează un fişier BMP color de tip HLS din matricea care i se
atribuie.
WRITE_HSV(fisier) Crează un fişier BMP color de tip HSV din matricea care i
se atribuie.

(
a := READ_IMAGE"C:\Documents and Settings\Administrator\My Documents\My Pictures\373651973-th.gif")

Cu instrucţiunea de mai sus se citeşte o imagine care se va atribui matricei a.


Din meniul INSERT se activează comanda Picture prin care se creează un spaţiu de
afişare a imaginii unde se tasteaza denumirea matricei în care s-a făcut citirea.
Fisiere MathCad

Prin comanda save un document se salveaza ca un fisier cu extensia .MCD.


Datele numerice (valorile unor variabile scalare, componentele vectorilor si
matricelor) se salveaza in fisiere cu extensia .DAT sau .PRN.
Fisierul este un fisier text in care elementele sunt separate prin spatii sau
virgula. Acest fisier poate fi creat cu programe specifice de editare de text sau cu
programe elaborate in limbaje de programare: Pascal, C, Fortran, etc.
Functii de citire/scriere ale datelor in fisiere MathCad

Procedura Semnificatie
READ(var_fisier) Citeste o variabila din fisier.
WRITE(var_fisier) Scrie o variabila in fisier. Daca fisierul exista, atunci
se inlocuieste cu unul nou. Se foloseste sub forma
WRITE(var_fisier):=expresie.
APPEND(var_fisier) Adauga o valoare la un fisier existent.Se foloseste sub
forma APPEND(var_fisier):=expresie.
READPRN(var_fisier) Se citeste o matrice.
WRITEPRN(var_fisier) Scrie o matrice intr-un fisier. Se foloseste sub forma
WRITEPRN(var_fisier):=expresie matriceala.
APPENDPRN(var_fisier) Adauga o matrice la sfarsitul unui fisier.Se foloseste
sub forma APPENDPRN(var_fisier):=expresie
matriceala.
Exemplu:
1. In fisierul Date.prn se gasesc elementele matricei pe care dorim sa o
transmitem catre MathCad (fisierul se poate realiza in Notepad).
2. Se acceseaza progamul MathCad, apoi se citeste continutul fisierului cu
instructiunea: a:=READPRN(“c:\[calea]\Date.prn”). Se vizualizeaza matricea cu
a=.
3. Prelucrarea datelor: se calculeaza b := a 5 ;
4. Se salveaza in acelasi fisier folosind instructiunea;
APPENDPRN(“c:\[calea]\Date.prn”):=b.

Exercitii:
Se va configura MathCad-ul astfel incat originea vectorilor sa fie 1.
1. Sa se defineasca matricele a ∈ Μ 3×6 , b ∈ Μ 4×6 in MathCad, sa se salveze in
fisierul Matrice.prn, apoi sa se citeasca in matricea c continutul fisierului. Sa se
vizualizeze cele trei matrice.
2. Sa se calculeze:
10
1 20
⎛ 1 ⎞
a=∑ b = ∏ ⎜⎜ k 2 + ⎟
i =1 i − 5 (k − 3) ⎟⎠
2
k =1 ⎝
i ≠5 k ≠3

Sa se salveze in fisierul Valori.dat variabilele a si b, apoi sa se citeasca in variabila v


continutul fisierului. Sa se reprezinte grafic variabila v.
3. Sa se citeasca in matricea a continutul fisierului Camp.prn (daca nu exista sa

se creeze in Notepad; sa contina o matrice cu 11 linii si 21 de coloane). Sa se


vizualizeze matricea a. Pentru i = 2,10 si j = 2,20 sa se recalculeze fiecare element
al matricei ca media aritmetica a elementelor vecine. Procesul sa se repete de 100 de
ori. Sa se vizualizeze matricea nou calculata si sa se reprezinte grafic
(Graphics/Create Contour Plot).

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