Sunteți pe pagina 1din 55

CURS 6: Mathcad

CURS 6
PROGRAM DE CALCUL NUMERIC
MATHCAD

CURS 6: Mathcad

Mathcad
Produs soft destinat rezolvrii problemelor ce implic
efectuarea de calcule matematice, de la simple formule
pn la rezolvarea de ecuaii, sisteme de ecuaii, ecuaii
difereniale, calcul integral, calcul matricial, att la nivel
numeric ct i la nivel simbolic. Mathcad permite
trasarea de grafice (2D i 3D), prelucrarea de imagini,
interaciunea cu fiiere de date, precum i cu alte
aplicaii
Produsul este destinat studenilor, specialitilor din
industrie i cercetare, cadrelor didactice din nvmntul
mediu i superior.
2

CURS 6: Mathcad

Mathcad
are interfaa de lucru (desktop-ul MathCAD), deosebit de
prietenoas i care utilizeaz tehnica WYSIWYG (What
You See Is What You Get) astfel nct att aspectul
documentelor MathCAD, dar mai ales modul de
completare sunt identice cu cele care s-ar obine n cazul
folosirii hrtiei i creionului
documentele MathCAD pot fi evaluate integral n mod
automat ori de cte ori se produce o modificare n
structura lor, astfel c ntotdeauna rezultatele afiate vor
reflecta starea curent a documentului

CURS 6: Mathcad

Mediul de lucru MathCAD


Bara titlu
Bara meniuri
Bara butoane
Bara formatare

Suprafata de
scriere a
formulelor

Functii

Instrumente matematice

CURS 6: Mathcad

Tipuri de obiecte inserate intr-o foaie MathCAD


Expresii matematice
Text
Grafice
Zona ocupat de un obiect, se numeste regiune

CURS 6: Mathcad

Regul de baz in MathCAD ordinea regiunilor este foarte importanta


MathCAD citete documentele de la stnga la dreapta i de sus n
jos, astfel c orice variabil ce intervine ntr-o expresie trebuie definit
naintea (deci la stnga sau deasupra) expresiei propriu-zise, dup cum
orice funcie folosit pentru trasarea unui grafic se va defini la stnga sau
deasupra graficului.
Operatorii cei mai folosii sunt cei aritmetici : +, -, *, /,^
n MathCAD exist 6 constante matematice predefinite :
- (cu shortcut-ul CTRL + z),
- (cu shortcut-ul p + CTRL + g),
-e (se va tasta pur i simplu e),
-i (se va tasta 1i i NU 1*i), j (se va tasta 1j)
-% (se va tasta pur i simplu %).
Constantele i %, au respectiv valorile 10307 i 0.01.
6

CURS 6: Mathcad

Variabile
Numele variabilelor poate conine oricare din urmtoarele caractere :
Caracterele alfabetului latin, a..z, A..Z;
Cifrele de la 0 la 9;
Caracterul _, simbolul
Caracterul %
Caracterele alfabetului grec
Simbolul infinit
Un nume de variabil nu poate ncepe cu o cifr sau cu unul din caracterele
_, , sau %.
Toate caracterele dintr-un nume de variabil trebuie s fie de acelai tip (s
aparin aceluiai font, s aib aceeai dimensiune i acelai stil (bold, italic,
underlined etc)). Deci nu pot fi folosite caractere latine i greceti n acelai
nume de variabil.
Atentie! MathCAD face diferena ntre majuscule i minuscule, astfel c
variabila timp este diferit de variabila TIMP.
7

CURS 6: Mathcad

Variabile
Indicii unei variabile pot fi scrisi diferit:

a.1 apare a1 unde a1 este o variabila oarecare


a[1 apare a1 unde a1 este primul element al sirului a

CURS 6: Mathcad
Inserarea tipurilor de obiecte in MathCAD:
a ) Numerice : cifre de la 0 la 9, operatori matematici (+,-,*,/,^),
functii (log,sin,cos,exp, etc)
introduse direct sau utilizand Arithmetic Toolbar
6

15

= 13

( 15 6 )
3

= 3

15 6
3
15 6
3

= 3

3 4.7 = 14.1
3
4

= 9

log ( 5 )

9= 2.635

CURS 6: Mathcad

b) Date de tip text:


litere, semne, cifre

10

CURS 6: Mathcad

c) Expresii matematice:
Atribuirea valorilor unei variabile se face utilizand semnul :
pe ecran apare semnul :=

Subiectul nr 1
x := 3.7

x ia valoarea 3.7

1 + x = 4.7

Se calculeaza 1+x

y ia valoarea x2-7

y := x 7
y = 6.69

Se cere valoarea lui y

Daca se schimba valoarea lui x se calculeaza automat valoarea lui y

11

CURS 6: Mathcad

c) Functii:
Initializarea variabilelor
x:=2..20
Scrierea functiei
f(x):x^3-a/x^2-1
Evaluarea functiei
f(x)=

x:=2..20
3

f ( x) :=

x a
2

x 1

f ( x) =
1.667
3
4.067
5.083

f(5)=

6.086
7.083
8.079

f ( 5) = 5.083

9.075
10.071
11.067
12.063
13.06
14.056
15.054
16.051
17.049

12

CURS 6: Mathcad

c) Functii:

g ( a , b ) := a + b + 33
g ( 0 , 0) = 33
g ( 1 , 1) = 35

Daca se schimba valoarea lui a si b se calculeaza automat valoarea lui g

13

CURS 6: Mathcad
c) Vectori (definirea automata sau manuala)
# spatiu

Subiectul nr 3 Definirea vectorilor

Scrie i:0;9
Scrie x[i#:2*i
Scrie y[i#:2*x[i#^2

i := 0 .. 9
x := 2 i
i

( i)2

y := 2 x
i

i=
0

0
1

x= 4

10

12

14

16

18

0
0

32

72

y = 4 128
5

200

288

392

512

648

Pentru afisarea valorilor se tasteaza:


i=
x=
y=

14

CURS 6: Mathcad
c) Vectori (definirea automata sau manuala)
i := 0 , 2 .. 10

Scrie i:0,2;10
Scrie x[i#:2*i
Scrie y[i#:2*x[i#^2

x := 2 i
i

( i)

y := 2 x
i

i=
0

Pentru afisarea valorilor se tasteaza:

32

x = 2
i

y = 2 128
i

12

288

16

512

10

20

800

2
4
6

i=
x=
y=

15

CURS 6: Mathcad
c) Vectori (definirea automata sau manuala)

Scrie j:0;4
Scrie x[j#:2.01,2.98,4.04,4.97,6.03

j := 0 .. 4
x :=
j

2.01
2.98
4.04
4.97
6.03

y :=
j

1
2
3
4
5

x +y =
j

0
10

Scrie y[j#:1,2,3,4,5
Scrie x[j#+y[j#=

36
78
136

16

CURS 6: Mathcad
Exercitiu
Se considera un gaz ideal. Sa se reprezinte grafic variatia presiunii cu volumul
pentru un mol de gaz la temperatura de 200K.

Constante
n=1 numar de moli
T=200 K temperatura
R= 0.0821 atm L/mol K constanta gazelor
Volumul va fi definit ca un vector de 60 valori intre 0.01 L si 0. 6 L
Se genereaza vectorul presiunilor

n R T
pi =
Vi

Se reprezinta grafic Pi functie de Vi

Vi:=i.0.01+0.01

17

CURS 6: Mathcad
Exercitiu
Se considera un gaz ideal. Sa se reprezinte grafic variatia presiunii cu volumul
Pentru un mol de gaz la temperatura de 200K.
v =
i

0.01
0.02
0.03
0.04
0.05
0.06
0.07
0.08
0.09
0.1
0.11
0.12
0.13
0.14
0.15
0.16

p =

p2 =

1.64210 3

3.28410 3

821

1.64210 3

547.333

1.09510 3

410.5

821

328.4

656.8

273.667

547.333

234.571

469.143

205.25

410.5

182.444

364.889

164.2

328.4

149.273

298.545

136.833

273.667

126.308

252.615

117.286

234.571

109.467

218.933

102.625

205.25

Subiectul 4 Presiunea unui gaz ideal la temperatura de 200 K


n := 1 moli

3.28410

R := 0.0821

34000

3000

T := 200
pi

i := 0 .. 59

p2 i

v := i 0.01 + 0.01
i

p :=

1000

n R T

p2 :=
i

2000

27.367

n R T 2
v

0
0.01

0.1

0.2

0.3

0.4

0.5

vi

0.6
0.6

18

CURS 6: Mathcad
c) grafice
-se va poziiona cursorul la dreapta i sub definiia funciei
-se va activa cmpul Insert / Graph / X-Y Plot
-la poziia curent a cursorului va apare o regiune de tip grafic la care se vor
completa numai marcatorii de la jumtile axelor ox i oy

19

CURS 6: Mathcad
-limitele superioar i respectiv inferioar de variaie a variabilei de reprezentare
pot s nu fie precizate n mod explicit, caz n care se vor considera egale cu 10
i respectiv -10;
-limitele superioar i respectiv inferioar pentru domeniul de reprezentat pot s
nu fie precizate, caz n care vor fi folosite valoarea maxim, respectiv minim a
expresiei/funciei de reprezentat, nregistrate pe domeniul de lucru;
-pot fi trasate mai multe curbe pe acelai grafic, curbe ce pot depinde de una
sau mai multe variabile;
-dac se folosesc mai multe variabile, acestea trebuie separate prin virgul

20

CURS 6: Mathcad

21

CURS 6: Mathcad
=0,0.001..8

=0,0.001..12

22

CURS 6: Mathcad

Alte tipuri de grafice


Graficul Cardioidei

Lemniscate lui Bernoulli

90

90

120

60

120

150

30

( ) 180

150

0
1

210

330

240

300

60

30

( ) 180

0
1

330

240

300
270

( ) := 2 ( 1 + cos ( ) )

210

270

:= 0 , 0.001.. 30

:= 0 , 0.001.. 30
( ) := 2 cos ( 2)

23

CURS 6: Mathcad

24

CURS 6: Mathcad

Alte tipuri de grafice


i := 1 .. 8
Productia :=
i

1000
2000
4000
2000
4000
5000
3500
4000

an := 2005 + i 1
i

an =
i

2005

5000

4000

2006
2007
2008
2009
2010

3000
Productiai
2000

1000

2011
2012

0
2004

2006

2008

2010

2012

ani

25

CURS 6: Mathcad

Alte tipuri de grafice


i := 0 .. 80

j := 0 .. 180

x := 4 + 0.1 i

y := 9 + 0.1 j

f ( x , y ) :=

f x ,y
i

i, j

:= f x , y
i

=
13

12.803
12.61
12.422
12.24
12.063
11.89
11.723
11.56
11.402
11.25
11.102
10.96

10.822
10.69
...

26

CURS 6: Mathcad
Rezolvarea ecuatiilor
a) cu o sigura variabila
Initializare variabila

x := 0

Inceput bloc executabil

Given
2

x 1

Find( x) = 1

Scrierea ecuatiei utilizand semnul egal


din toolbarul boolean
sfarsit bloc exeutabil

inseamna calculeaza

27

CURS 6: Mathcad
Rezolvarea ecuatiilor
b) cu mai multe variabile

x := 0
Initializare variabile

y := 0
Given
2

Inceput bloc executabil

x + y + 2y

Find( x, y ) =

2.162

Scrierea ecuatiei utilizand semnul egal


din toolbarul boolean
sfarsit bloc exeutabil
28

CURS 6: Mathcad
Vectori si matrici
a) Introducerea elementelor
- se poziioneaz cursorul n zona dorit n documentul
MathCAD;
- se activeaz opiunea Matrices din meniul Insert
sau se tasteaz Ctrl+M.
- se completeaza nr de linii si coloane
- pentru fiecare element apare un placeholder in
care se completeaza elementele vectorului sau
matricii
-

Restrictie: maxim 100 elemente

29

CURS 6: Mathcad
Vectori si matrici

b) Originea indicilor
Referirea elementelor vectorilor sau matricelor presupune
utilizarea indicilor.
Valoarea minim a indicelui/indicilor este dat de variabila
predefinit numit ORIGIN - este implicit setat pe valoarea
0.

V = V0 V1 V2 .... VN

a0 , 0

A = a1, 0
a
2, 0

a0,1

a1,1
a2,1

a0 , 2

a1, 2
a2, 2

Valoarea variabilei ORIGIN poate fi modificat astfel:


Numele variabilei ORIGIN trebuie scris cu majuscule i pot fi
definii i indici negativi.
ORIGIN:=1

30

CURS 6: Mathcad
Vectori si matrici

31

CURS 6: Mathcad
Vectori si matrici

32

CURS 6: Mathcad
Vectori si matrici

1
A := 0

Transpusa
Inversa
Extragerea unei coloane
Produs scalar
Produs vectorial
Suma elementelor
1
b := 2

3

0 0
1 0

0 1

1
b 1 = 0.5

0.333

b0 = 1
b1 = 2
b2 = 3

b = (1 2 3 )

1
T
b b = 2

2 3
4
6

0
6 b b = 0


9
0

1
0
A0 = 0 A1 = 1


0
0
A1 , 1 = 1
A b =

1
2

3

33

CURS 6: Mathcad
Vectori si matrici

Model 1

Model 2

34

CURS 6: Mathcad
Vectori si matrici
Extragerea unei submatrici din matrice :Functia submatrix
Alipirea a unui vector la o matrice: Functia augment
0

ORIGIN:= 1

Extragerea matricii B din matricea A

5
9
A :=
1
5

8 7 6
2 3 4

6 7 8
4

10

11

b :=

B := submatrix( A , 3 , 4 , 2 , 4)

2 3 4

6
7

B=

Alipirea vectorului b la matricea B


C := augment ( B, b )

2 3 4 10

6 7 8 11

C=

35

CURS 6: Mathcad
Diferentiale si integrale
Diferentialele pot fi evaluate dupa doua cai:
- Evaluare simbolica utilizand simbolul
- se tasteaza expresia de diferentiat
- se alege functia SIMBOLICS/Variables/Differentiate

( 2) x
d 2x
( 2) e
e
dx

- Evaluare numerica utilizand semnul =


x := 5
4
d 2x
e
= 4.405 10
dx

36

CURS 6: Mathcad
Diferentiale si integrale

37

CURS 6: Mathcad
Diferentiale si integrale
- utilizand butoanele d/dx din meniul Calculus
- se definste functia
- se alege operatorul
- se alege sageata la dreapta

de ( m , v) :=

m
v

1
d
de ( m , v)
v
dm

m
d
de ( m , v)
2
dv
v

38

CURS 6: Mathcad
Diferentiale si integrale

39

CURS 6: Mathcad
Sume si produse

40

CURS 6: Mathcad
Unitati de masura
- Alegerea sistemului de unitati de masura Math/Options
- Scrierea unitatilor in limba engleza
- Alegerea unitatilor din meniul INSERT/Units

F := 100 N
m := 10 kg
F
a :=
m
m
a = 10
s2
41

CURS 6: Mathcad

Ce este un program?
Un program este o expresie construita din mai multe instructiuni. In exemplul de
mai jos este scrisa o expresie singulara (pe o linie) si aceeasi expresie ca un
program:

Programele ofera doua avantaje distincte :


Un program alcatuit din cativa pasi simpli este mai simplu de scris si de inteles
decat o expresie echivalenta, insa mult mai complicata datorita parantezelor...
Utilizand structuri de control de tip ciclu sau conditionale (ramificatii, decizii),
un program poate deveni mult mai flexibil decat orice expresie simpla...
In comparatie cu un limbaj din linia clasica keyword-uri putine, sintaxa mai
simpla (structurare automata!), compilare si executie simultana, permite trace,
42
debug si are o biblioteca de functii extrem de puternica!

CURS 6: Mathcad

Atentie! Cuvintele cheie ale


programarii NU se scriu din taste, ci se iau din Toolbar

43

CURS 6: Mathcad

Definirea unui program


Etapele urmatoare arata cum se defineste un program:
Se scrie la dreapta definitiei functiei operatorul de
atribuire ":".
Se deschide Programming toolbar ce contine operatorii
de programare.
Click pe butonul "Add Line" sau apasati ]. Apare o
bara verticala cu un placeholder pentru linia de
program aditionala (un program poate avea orice
numar de instructiuni).
Click pe primul placeholder, scrieti "z" si click pe
butonul de atribuire locala. (Atentie! Definitia lui z
este locala in program; z este nedefinit in afara
programului si nu are efect nicaieri altundeva).
Completati atribuirea locala scriind "x/w" in
placeholder-ul de la dreapta sagetii.
Ultimul placeholder va contine intotdeauna valoarea
returnata de program. Scrieti "log(z)" in placeholder.

44

CURS 6: Mathcad

Instructiuni conditionale
Utilizati o instructiune conditionala daca doriti ca anumite
operatii sa fie executate numai daca o conditie este
indeplinita (TRUE sau pozitiva!).
Introducerea unei structuri conditionale:
Click pe placeholder-ul in care vreti sa plasati
instructiunea conditionala.
Click pe butonul "If" sau Shift+]. NU scrieti cuvantul
"if".
In placeholder-ul din dreapta, scrieti conditia (o
expresie booleana! numerica este riscanta).
Click pe butonul "Add Line" pentru inserarea de
placeholder-e aditionale daca este necesar daca se f ( x) :=
adauga in stanga, conditia comuta...
Click pe placeholder-ul ramas si click pe butonul
"otherwise". NU scrieti cuvantul "otherwise".

x >2

0 if

4x

f (2) = 0
In placeholder scrieti valoarea ce trebuie returnata de f ( 1 ) = 1.732
program cand conditia este falsa.

45

CURS 6: Mathcad
Calcul functie simpla

Functie cu 2 ramuri

x := 1 .. 10
F( x) :=

y := 1 , 10.. 100

if x < 0

x
f( x, y ) :=

F( x) =
100

log ( z)

81
y =

x=
1
2
3
4
5
6
7
8
9
10

f( x, y ) =

64

1 if x 0
otherwise
2 if x

3 otherwise

49

1
10

0
0.301

19

0.477

25

28

0.602

37

0.699

16

46

0.778

55

0.845

64

0.903

73

0.954

82

91

-1

100

-0.699

36

f( 1) = 1

f( 0)
f( 2) = 3

-1
-4

-0.523

-9

-0.398

-16

-0.301

-25

-0.222

otherwise

f( x) :=

x
y

Functie cu 3 ramuri

46

CURS 6: Mathcad

Suma primelor n numere


n := 10
i := 1 , 2 .. n
x :=

Solutia ecuatiei de gradul 2


b := 2

a := 1

6
11
2
5
6
7
8
0
4
1

c := 1
2

tipsol ( a , b , c) :=

delta b 4 a c
"reale" if delta 0
"complexe" otherwise

x1 :=

delta b 4 a c
m1
m2

b delta
2 a
b
2 a

2 a

x1 = 1

delta b 4 a c
delta

2 a
b
2 a

2 a

x :=
i

x2 = 1

if delta 0

delta

ss+x

rez( n ) = 50

n := 10
i := 1 , 2 .. n

b +

for i 1 .. n

Numar de numere pare si impare

i otherwise

m1

x2 :=

s0

if delta 0

delta

rez( n ) :=

i otherwise

( )

( ))

sol := concat tipsol ( 1 , 4 , 3) , ", x1= " , num2str x1 , ", x2= " , num2str x2
sol = "reale, x1= -1, x2= -1"

6
11
2
5
6
7
8
0
4
1

rez( n ) :=

nr1 0
nr2 0
for i 1 , 2 .. n

(i )

nr1 nr1 + 1 if mod x , 2


nr2 nr2 + 1 otherwise
a augment ( nr1 , nr2)

rez( n ) = ( 6 4 )

47

CURS 6: Mathcad

Scrierea in Mathcad a programului


de rezolvare a ecuatiei de gradul 2:
functioneaza doar cand a 0!
coeficientii se introduc direct
(re)calculul este instantaneu
s-au folosit variabilele interne
re si im, precum si text
clauze if
conditii mixte (relatie + logica) fara
paranteze

concatenare cu functie proprie


ATENTIE la booleanul = care se ia
din toolbar!
numerele imaginare aici exista i
(care se introduce ca 1i)
solutiile nu fac parte din tablou!
cu verde redefinirile
48

CURS 6: Mathcad

Programare mai structurata


(si mai completa!)
tot mai trebuie format
Afisare infinit
Instructiunea return
49

CURS 6: Mathcad

Functia interna root este utila in


gasirea unei radacini se poate
solicita gasirea unei radacini
intr-un interval dat important
pentru problemele fizice, reale;
eroarea se poate inlatura prin
folosirea in cazul respectiv a lui
on error

50

CURS 6: Mathcad

Bucle de program (cicluri)


Un ciclu este o instructiune ce produce repetarea unei portiuni de
program (corpul ciclului) pana cand o anumita conditie comuta. Sunt 2
tipuri de cicluri in Mathcad:
"While" - cu numar necunoscut de pasi si conditie initiala.
"For" - cu numar cunoscut de pasi.
Lipseste al 3-lea tip, considerat inutil (oricum e mai restrictiv si poate fi
inlocuit cu opusul sau), desi era cel mai intuitiv insa exista (!) functia
until, precum si functia last
Uneori este necesara parasirea brusca a ciclurilor (break) sau trebuie
controlata cu atentie executia unor iteratii particulare (continue, on error).
51

CURS 6: Mathcad

Bucle de tip "FOR"


Se utilizeaza cand se stie cu precizie de cate
ori trebuie executat corpul ciclului.
Introducerea unei bucle "for":
Click in placeholder-ul in care trebuie
plasata bucla "for".
Click pe butonul "for" sau Ctrl+". Nu scrieti
de la tastatura "for".
In placeholder-ul din stanga semnului "",
introduceti variabila de iterare (contorul).
In placeholder-ul din dreapta lui "" se scrie
domeniul valorilor luate de contor (de regula
o variabila de tip domeniu, dar si o lista de
scalari, un vector, mai multi).
Acest tip de ciclu este ideal pentru diverse
manevre efectuate cu vectori si matrice

sum( n ) :=

s0
for x 1 .. n
ss+x

sum( 5) = 15

52

CURS 6: Mathcad

Bucle de tip "WHILE"


Se utilizeaza cand un set de instructiuni trebuie
executate pana la NEindeplinirea unei conditii. Pentru
ca ciclul (cu numar necunoscut de pasi) sa nu fie
infinit, trebuie sa existe undeva in corpul ciclului
posibilitatea ca respectiva conditie sa comute daca
nu era falsa de la inceput! Introducerea buclei "while":
Click in placeholder-ul in care trebuie plasata.
Click pe butonul "while" sau Ctrl+]. Nu scrieti de la
tastatura "while".
In placeholder-ul din dreapta lui "while" scrieti o
expresie booleana (de executie a corpului
ciclului).
In placeholder-ul de sub "while", introduceti
instructiunea ce trebuie executata repetat. Click
pe butonul "Add Line" pentru a insera
placeholder-e aditionale daca este necesar.
53

CURS
6: Mathcad
Exemplu:
Functia
factorial, echivalenta in Mathcad cu operatorul factorial...

F( n) :=

f 1
while n n 1
f f (n + 1)
f

F( 6 ) = 720
Instructiunea RETURN
Orice secventa de program are un return implicit, in sensul ca se revine
in structura superioara cu ultima valoare calculata, dupa ultima linie
Folosind explicit cuvantul return, se iese din program in alta parte si
cu altceva (!) decat se calculeaza la ultima linie
54

CURS 6: Mathcad

Instructiunile BREAK si CONTINUE


Break" se introduce intr-o bucla pentru a permite
oprirea brusca (halt) se asociaza cu un if Cum
se introduce un "break":
Click in placeholder-ul unde trebuie plasat
"break".
Click pe butonul "break" sau Ctrl+{. Nu scrieti de
la tastatura "break".
( n) :=
Cand Mathcad intalneste un "break" in corpul F
unui
ciclu for sau while:

f n
while 1

Executia buclei inceteaza si se returneaza cea mai


recenta valoare calculata.

f f ( n 1)

Executia programului continua cu urmatoarea


linie de program de dupa ciclul intrerupt.

break if n

nn1
f

Continue este utila la ciclurile imbricate are ca F( 6 ) = 720


rezultat iesirea in ciclul superior nu sterge stiva!

55

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