Sunteți pe pagina 1din 31

CURS 12: Mathcad

CURS 12

PROGRAM DE CALCUL NUMERIC


MATHCAD

1
CURS 12: Mathcad

Functii predefinite in Mathcad Comanda FUNCTION


din meniul INSERT

sau

Butonul

1
1

f( x) 0.5

0
0
0 50 100
0 x 100

x 0 100

f( x) sin
x

1002
f( x)
CURS 12: Mathcad

Rezolvarea ecuatiilor
a) cu o sigura variabila

Initializare variabila
x 0
Inceput bloc executabil
Given
2 Scrierea ecuatiei utilizand semnul egal
x 1 0 din toolbarul boolean

Find ( x) 1 sfarsit bloc exeutabil

inseamna calculeaza 3
CURS 12: Mathcad

Rezolvarea ecuatiilor

x b)0cu mai multe variabile

y 0 Initializare variabile

Given
Inceput bloc executabil
2 2
x y 2y 9
Scrierea ecuatiei utilizand semnul egal
0 din toolbarul boolean
Find ( x y )
2.162 sfarsit bloc exeutabil

4
CURS 12: 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

5
CURS 12: 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 a0,1 a0 , 2

A a1, 0 a1,1 a1, 2
a a2,1 a2, 2
2,0
Valoarea variabilei ORIGIN poate fi modificat astfel:
Numele variabilei ORIGIN trebuie scris cu majuscule i pot fi
definii i indici negativi.
6
ORIGIN:=1
CURS 12: Mathcad

Vectori si matrici

7
CURS 12: Mathcad

Vectori si matrici

8
CURS 12: Mathcad

Vectori si matrici

Transpusa
Inversa
Extragerea unei coloane
Produs scalar
Produs vectorial
Suma elementelor
1 0 0 1
A 0 1 0 b 2
1 0
0 0 1 3
A0 0 A1 1
1 b0 1 T
b (1 2 3 )
b 1
0.5
b1 2 0 0
1 2 3 0
0.333 b2 3
b b 2 4 6 bb 0
T
A1 1 1 1
3 6 9 0 A b 2

3 9
CURS 12: Mathcad

Vectori si matrici

Model 1

Model 2

10
CURS 12: Mathcad

Vectori si matrici

Extragerea unei submatrici din 1matrice :Functia
submatrix
dx 0.785
Alipirea a unui vector la o matrice:2Functia
4 augment


1 x
2
0
ORIGIN 1

Extragerea matricii B din matricea A


10
5 4 3 2 b
9 8 7 6
11
A
1 2 3 4 B submatrix( A 3 4 2 4)
5 6 7 8

2 3 4
B
6 7 8

Alipirea vectorului b la matricea B

2 3 4 10
C augment( Bb ) C
6 7 8 11 11
CURS 12: 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
d 2x ( 2) x
e ( 2) e
dx

- Evaluare numerica utilizand semnul =


x 5

d 2x 4
e 4.405 10 12
dx
CURS 12: Mathcad

Diferentiale si integrale

13
CURS 12: Mathcad

Diferentiale si integrale
- utilizand butoanele d/dx din meniul Calculus
- se definste functia
- se alege operatorul
- se alege sageata la dreapta
m
de ( m v)
v
d 1
de ( m v)
dm v

d m
de ( m v)
dv v2

14
CURS 12: Mathcad

Diferentiale si integrale

15
CURS 12: Mathcad

Sume si produse

16
CURS 12: 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

17
CURS 12: 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,
18
debug si are o biblioteca de functii extrem de puternica!
CURS 12: Mathcad

Atentie! Cuvintele cheie ale


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

19
CURS 12: 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 20
returnata de program. Scrieti "log(z)" in placeholder.
CURS 12: 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
adauga in stanga, conditia comuta... f ( x) 0 if x 2
Click pe placeholder-ul ramas si click pe butonul 2
4x
"otherwise". NU scrieti cuvantul "otherwise".
In placeholder scrieti valoarea ce trebuie returnata def ( 2 ) 0
program cand conditia este falsa. f ( 1 ) 1.732 21
CURS 12: Mathcad

Calcul functie simpla Functie cu 2 ramuri


x 1 10
F( x) x
2
if x 0 Functie cu 3 ramuri
y 1 10 100
2
x otherwise
x f( x) 1 if x 0
f( x y ) z
y F( x)
otherwise
log ( z) 100 2 if x 0
81
3 otherwise
64
y f( x y )
x 49
1 0
1 36 f( 1) 1
10 0.301
2
19 0.477 25
3
28 0.602 16
4 f( 0)
37 0.699
5 9
46 0.778
6 4 f( 2) 3
55 0.845
7
64 0.903 1
8
73 0.954 0
9
82 1
10 -1
91 -1
100 -0.699 -4
-0.523 -9
-0.398 -16
-0.301 -25
-0.222

22
CURS 12: Mathcad
Suma primelor n numere
n 10
i 1 2 n
x
Solutia ecuatiei de gradul 2 i

6
b 2 c 1
a 1 11
2
2 5
tipsol( a b c) delta b 4 a c rez( n ) s 0
6
"reale" if delta 0 for i 1 n
7
"complexe" otherwise 8 ssx
i
0
2 4
x1 delta b 4 a c rez( n ) 50
1
b delta
m1 if delta 0
2 a

m2
b

delta
i otherwise Numar de numere pare si impare
2 a 2 a
m1 x1 1
n 10
rez( n ) nr1 0
i 1 2 n
2
x2 delta b 4 a c x nr2 0
i
b delta x2 1 for i 1 2 n
if delta 0
2 a
6
11
nr1 nr1 1 if mod x 2 i 0
b delta 2 nr2 nr2 1 otherwise
i otherwise
2 a 2 a 5 a augment ( nr1 nr2)
6

sol concat tipsol( 1 4 3) ", x1= " num2str x1 ", x2= " num2str x2 7
8 rez( n ) ( 6 4 )
sol "reale, x1= -1, x2= -1"
0
4
23
1
Scrierea in Mathcad a programului
CURS 12: Mathcad 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 24
CURS 12: Mathcad

Programare mai structurata


(si mai completa!)
tot mai trebuie format

Afisare infinit
Instructiunea return
25
CURS 12: 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

26
CURS 12: 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).
27
CURS 12: 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). sum( n ) s0
In placeholder-ul din dreapta lui " " se scrie for x 1 n
domeniul valorilor luate de contor (de regula
o variabila de tip domeniu, dar si o lista de ssx
scalari, un vector, mai multi).
Acest tip de ciclu este ideal pentru diverse sum( 5) 15
manevre efectuate cu vectori si matrice 28
CURS 12: 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.
29
CURS
Exemplu: 12: factorial,
Functia Mathcadechivalenta in Mathcad cu operatorul factorial...

F( n) f 1
while nn1
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
30
CURS 12: 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".
F( n) f n
Cand Mathcad intalneste un "break" in corpul unui
ciclu for sau while: while 1

Executia buclei inceteaza si se returneaza cea mai f f ( n 1)


recenta valoare calculata. nn1
Executia programului continua cu urmatoarea break if n 1
linie de program de dupa ciclul intrerupt. f

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


rezultat iesirea in ciclul superior nu sterge stiva!

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