Documente Academic
Documente Profesional
Documente Cultură
1
3.4 Editarea şi formatarea regiunilor de tip expresie şi de tip text într-un
document MathCAD________________________________________________ 37
3.4.1 Editarea de expresii_______________________________________________ 37
3.4.2 Inserarea şi ştergerea de paranteze; Aplicarea unei funcţii _________________ 38
2
4.3.7 Crearea de matrice structurate_______________________________________81
4.3.7.1 Funcţia CreateMesh_____________________________________________81
4.3.7.2 Funcţia CreateSpace ____________________________________________85
4
9.6 Inserarea unei componente de tip citire (Read), scriere (Write) din/în
fişiere 163
9.7 Funcţii predefinite pentru citirea/scrierea din/în fişiere de date ASCII 166
6
16 Interpolarea şi extrapolarea datelor. Metode de
regresie. _______________________________ 231
16.1 Interpolarea datelor în 2 dimensiuni ___________________________232
16.1.1 Funcţia linterp __________________________________________________233
16.1.2 Funcţia interp __________________________________________________234
16.1.3 Funcţiile scpline, pspline şi lspline __________________________________234
Bibliografie_____________________________ 275
8
1 Produsul MathCAD; Prezentare
generală
Obiective
Număr de pagini 7
9
Capitolul 1
1.1 Introducere
10
Produsul MathCAD; Prezentare generală
11
Capitolul 1
Deşi MathCAD va genera la instalare un mare număr de fişiere de tipuri (şi deci cu
extensii) foarte diverse, utilizatorul obişnuit, trebuie să reţină în această fază că
executabilul principal este mcad.exe, fişierul help principal este mcad.hlp, dar mai ales
că extensia implicită a fişierelor de lucru MathCAD este *.mcd. Fişierele şablon
(template), despre care se va vorbi într-unul din capitolele viitoare, au extensia *.mct.
De interes sunt şi fişierele readme.mcd, sau readme.txt, care conţin informaţii de ultimă
oră despre MathCAD (ulterioare editării manualelor de utilizare). Ambele conţin acelaşi
lucru, doar că readme.mcd poate fi “citit” ca document MathCAD. Este recomandabil ca
după instalare, să se creeze cel puţin un director de lucru, care să conţină fişierele
*.mcd generate de utilizator. Aceasta deoarece nu este bine ca fişierele create de
utilizator să se “amestece” cu cele ce fac parte din pachetul iniţial de fişiere MathCAD.
Ca orice fereastră Windows, şi cea în care va opera MathCAD, are o bară de titlu, o
zonă de meniuri pull-down, precum şi mai multe bare de instrumente (toolbars) –
dintre care unele sunt asemănătoare ca aspect şi funcţionalitate cu cele ce apar la
multe aplicaţii Windows. Există şi o zonă de stare (în partea inferioară a ferestrei
MathCAD), cursoare vertical şi orizontal, precum şi butoanele pentru controlul stării
ferestrei (în partea din dreapta sus).
MathCAD creează documente, sau foi de calcul, similare, aşa cum s-a mai spus, ca
aspect şi mod de completare cu foile de hârtie pe care s-ar scrie cu creionul. MathCAD
permite deschiderea simultană a mai multor documente, dintre care doar unul este
activ la un moment dat. Dacă nu este strict necesar nu se va abuza de această
facilitate, deoarece orice document deschis (chiar dacă nu este activ), consumă resurse
12
Produsul MathCAD; Prezentare generală
ale sistemului, ceea ce, în cazul unor documente de mari dimensiuni poate duce la
reducerea vitezei de lucru în mod inutil.
Fiecare document MathCAD fiinţează tot într-o fereastră (ce poate fi controlată ca orice
fereastră în mediul Windows), cu observaţia că ferestrele în care se găsesc
documentele MathCAD nu pot să se găsească decât în spaţiul de lucru al ferestrei
aplicaţiei MathCAD. Ferestrele document pot fi aranjate în sistem “dale” (tile) sau
“cascadă” ca orice ferestre în mediul Windows. Controlul ferestrelor document se face
din meniul Window.
În figura 1.1 este prezentată fereastra MathCAD cu două documente deschise şi
aranjate în sistem “dale” pe verticală. Documentul activ este cel din dreapta.
13
Capitolul 1
Pe spaţiul de lucru al unui document MathCAD se pot insera trei mari tipuri de “obiecte”
: expresie, text, grafic. Zona ocupată de un astfel de obiect, se va numi regiune. Tot în
figura 1.1 sunt prezentate cele trei tipuri de obiecte.
Zonele încadrate cu dreptunghiuri desenate cu linie întreruptă delimitează regiunea
ocupată de un obiect. Prin utilizarea tehnicii drag and drop, regiunile pot fi mutate
oriunde pe document (regiunile se pot chiar suprapune, ceea ce în general nu este de
dorit), iar unele regiuni – de exemplu cele de tip grafic – pot fi scalate după un
mecanism asemănător cu cel folosit la controlul dimensiunilor unei ferestre în mediul
Windows (deci prin aducerea pointerului de mouse fie în colţul din dreapta jos al
regiunii selectate, fie pe laturile verticală dreapta sau orizontală jos). Selectarea unei
regiuni (care va avea ca efect apariţia dreptunghiului desenat cu linie întreruptă în jurul
regiunii) se face prin plasarea pointerului de mouse în vecinătatea obiectului şi
deplasarea lui înspre obiect cu butonul din stânga apăsat. De subliniat că în această
manieră pot fi selectate mai multe regiuni simultan.
O regiune selectată poate fi deplasată prin plasarea pointerului de mouse în interiorul
ei până când acesta se transformă în +. Din acest moment, cu butonul din stânga
apasat se va “trage” regiunea (sau regiunile) până la noua poziţie. Într-un document
MathCAD, se pot folosi două cursoare. Unul se va utiliza pentru inserarea de obiecte de
tip expresie sau grafic, iar celălalt pentru inserarea obiectelor de tip text. Cele două
cursoare sunt un semn plus de culoare roşie, respectiv o bară vericală de culoare roşie.
Deplasarea cursorului +, se face fie prin utilizarea grupului de săgeţi ↑, ↓, ←, → , fie
prin utilizarea mouse-ului (la un simplu clic în poziţia curentă a pointerului de mouse
(care este identic cu cel implicit al mediului Windows) – deci săgeata pe direcţia SE-NV
- se va insera cursorul +.
Aşa după cum s-a menţionat, MathCAD foloseşte tehnica WYSIWYG, ceea ce presupune
ca una din consecinţe, inserarea în document a unor simboluri care nu se regăsesc pe
14
Produsul MathCAD; Prezentare generală
tastatură (semnul pentru radical, integrală, sumă, produs etc). Inserarea lor se poate
face fie prin utilizarea unor combinaţii de taste (short-cuts), fie prin utilizarea grupului
de butoane corespunzător ales dintre cele aparţinând paletei de butoane Math:
grupului de butoane , fie mai simplu, prin tastarea literei corespunzătoare din
alfabetul latin, urmată de combinaţia de taste CTRL + G).
O altă particularitate a modului de operare a MathCAD, este utilizarea poziţiilor de
scriere premarcate, aşa numitele place-holdere. Astfel în cazul în care se doreşte
3
inserarea într-un document a unei expresii de forma ∫ 1
sin( x 2 )dx , se va insera la
Place-holder
15
Capitolul 1
Orice tip de regiune dintr-un document Mathcad, poate suporta operaţiile de copiere
(Copy, Paste), mutare (Cut, Paste), sau ştergere (Delete). Pentru aceste operaţii,
se va utiliza meniul Edit, combinaţii de taste (regăsite tot în meniul Edit), sau tehnica
meniului pop-up (care se poate deschide printr-un simplu clic dreapta pe zona de lucru
a unui document Mathcad).
16
2 Lansarea comenzilor în MathCAD
Obiective
Număr de pagini 2
17
Capitolul 2
Aşa după cum s-a menţionat deja, aplicaţia MathCAD dispune de propriul sistem de
meniuri pull-down. Utilizarea lor nu prezintă nici un fel de particularităţi care să le
diferenţieze de orice meniu pull-down. Chiar în timpul lucrului în MathCAD, se pot
obţine informaţii despre funcţiile fiecărui câmp al fiecărui meniu, prin apăsarea
simultană a tastelor SHIFT+F1. Pointerul MathCAD se va transforma prin ataşarea
unui semn de întrebare. Orice clic pe un câmp al unui meniu pull-down, va avea ca
efect nu lansarea unei comenzi, ci deschiderea unei ferestre de tip “help” care va
conţine informaţii succinte despre efectul activării câmpului respectiv. Apăsarea tastei
ESC, va determina transformarea pointerului modificat în cel obişnuit.
“Apăsarea” unuia dintre butoanele barei de unelte Math, va avea ca efect apariţia
propriu-zisă a paletei [cu butoanele] aferente. Cele nouă palete de butoane au
următoarele funcţii :
18
Lansarea comenzilor în MathCAD
19
Capitolul 2
Deschiderea unei agende se poate face cu ajutorul câmpului Help ⇒ Open Book….
Unul din subdirectoarele create la instalarea Mathcad-ului se numeşte chiar HANDBOOK
şi conţine o agendă numită solve.hbk.
Câmpul Help ⇒ Handbooks ⇒ Solving and Optimization Extension Pack
determină şi el deschiderea unei agende electronice (de această dată chiar cea
anunţată prin titlu).
O agendă odată deschisă, oferă utilizatorului posibilitatea de a „naviga” cu ajutorul unei
bare de instrumente specializată, ale cărei butoane au funcţii uşor de bănuit (sau de
aflat prin menţinerea pointerului de mouse „deasupra” fiecăruia din ele).
Un alt exemplu de agendă electronică, este chiar aşa numitul Resource Center.
În figura 2.2 este prezentată fereastra Resource Center. Accesul la oricare din cele
trei mari componente, Overview and Tutorials, QuickSheets and Reference
Tables, respectiv Extending Mathcad, se poate face printr-un simplu clic cu mouse-
ul pe butonul respectiv.
20
Lansarea comenzilor în MathCAD
De subliniat că una din facilităţile de mare utilitate ale agendelor electronice, sau a
documentelor conţinute în secţiunea QuickSheets and Reference Tables, este
posibilitatea de a realiza transfer de informaţii prin copiere (din agendă într-un
document MathCAD). Copierea propriu zisă se face în maniera clasică, adică printr-o
secvenţă de tip Copy ⇒ Paste.
De interes sunt şi câmpurile Help ⇒ Developer’s Reference şi respectiv Help ⇒
Author’s Reference.
În principiu, ambele sunt destinate utilizatorilor avansaţi de Mathcad. Primul furnizează
indicaţii pentru generarea de biblioteci dinamice (*.dll) cu ajutorul cărora se pot defini
noi funcţii Mathcad. Această operaţie necesită cunoştinţe de programare în C++, Java,
sau Visual Basic.
21
3 Documente MathCAD
Obiective
Număr de pagini 28
23
Capitolul 3
Aşa după cum s-a arătat deja în § 1.5, într-un document MathCAD pot exista trei tipuri
de regiuni : expresii, comentarii (regiuni de tip text) sau grafice.
Se reaminteşte că la cursorul + se inserează fie expresii, fie grafice, iar la cursorul | ,
regiuni de tip text. La versiunea 2001, se poate insera text şi fără precizarea explicită a
acestui lucru. Pur şi simplu se scrie, iar la tastarea primul [caracter de tip] spaţiu,
Mathcad „înţelege” că este vorba de text şi nu de numele unei variabile sau unei funcţii.
Se impune totuşi prudenţă, penru că scrierea unui singur cuvânt poate produce
confuzii, căci Mathcad va interpreta acel cuvânt ca pe numele unei variabile sau funcţii.
Acest lucru este de evitat, pentru că în Mathcad, numele unei variabile trebuie să apară
într-o expresie (cum se va vedea mai târziu), sau trebuie urmat de operatorul de
atribuire (:=, ≡), sau de evaluare (=, =).
Pentru crearea în mod explicit a unei regiuni de tip text, se va utiliza câmpul Insert
⇒Text Region (cu prescurtarea ”).
În cazul regiunilor de tip grafic, se va utiliza pentru inserare unul din cămpurile
submeniului Insert ⇒ Graph.
Spre exemplificare se va crea un document MathCAD cu o structură simplă şi care
realizează definirea unei variabile de tip şir de valori, a unei funcţii pentru care se
obţine şi reprezentarea grafică. Documentul va conţine şi comentarii sub forma a două
regiuni de tip text.
Etapele în crearea documentului sunt :
x : 0 ; 20 a:3
24
Documente MathCAD
f(x) : (x^3-a)/(x^2+1)♣
Pe documentul MathCAD va apare scris :
♣
Spaţiile lăsate au doar rolul de a face expresia mai lizibilă şi nu sunt permise într-un
document MathCAD
25
Capitolul 3
apăsarea tastei F9 va produce desenarea [graficului], aşa cum se poate vedea în figura
3.1.b.
26
Documente MathCAD
a. b.
Pentru a-l face mai uşor de înţeles, se vor insera în document şi două regiuni de tip
text. Una deasupra graficului şi una la sfârşitul documentului. Pentru aceasta se va
utiliza câmpurl Insert ⇒ Text Region.
În final micul document MathCAD, va arăta ca în figura 3.2.
27
Capitolul 3
Orice expresie MathCAD, este formată din operanzi şi operatori. Operanzii sunt nume
de variabile, de funcţii, valori numerice sau constante predefinite. Pentru operatori, se
poate porni de la simplii operatori aritmetici (+, -, /, *) şi se poate ajunge la operatori
specializaţi pentru calcul matriceal de exemplu.
3.2.1 Operatori
Operatorii cei mai folosiţi sunt cei aritmetici : +, -, *, ^ (ridicarea la putere), /, la care
se adaugă o gamă largă de operatori scalari sau vectoriali specifici diferitelor tipuri de
operaţii matematice.
3.2.2 Constante
În Mathcad este posibil lucrul în bazele de numeraţie, 10, 2, 8 şi 16. Pentru a opera cu
valori scrise în bazele 2, 8 şi 16, se vor insera literele b (de la binar), o (de la octal),
respectiv h (de la hexa), după valoarea propriu zisă, asa cum se poate vedea în
exemplul de mai jos:
28
Documente MathCAD
Se remarcă faptul că în cazul scrierii în baza 16, dacă valoarea începe cu una din
literele a, b, c, d, e sau f, este obligatorie inserarea unui 0 iniţial (pentru a se evita
confuzia cu o variabilă de tip şir de caractere).
3.2.4 Variabile
În MathCAD numele unei variabile (regulă valabilă şi pentru numele de funcţii), poate
conţine oricare din următoarele 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 acelaşi tip, în sensul că
trebuie să aparţină aceluiaşi font, să aibă aceeaşi dimensiune şi acelaşi stil (bold, italic,
underlined etc). Deci nu pot fi folosite caractere latine şi greceşti în acelaşi nume de
variabilă. MathCAD face diferenţa între majuscule şi minuscule, astfel că variabila
“timp” este diferită de variabila “TIMP”.
În figura 3.4 sunt prezentate câteva exemple de variabile MathCAD.
Se atrage atenţia că în cazul variabilei amin , indicele “min” este pur descriptiv şi nu
indică în nici un fel poziţia variabilei într-un şir de valori. În MathCAD este posibil să se
scrie a[1 (se va vedea a1) unde indicele “1” “spune” că este vorba de prima valoare
dintr-un şir (sau primul element al unui vector), dar se poate scrie şi a.1 (se va vedea
29
Capitolul 3
tot a1), unde indicele “1” este pur descriptiv, în sensul că putea fi înlocuit cu indicele
“unu”. Primul tip de indice (asupra căruia se va reveni) se obţine cu secvenţa “a[1”, iar
al doilea cu secvenţa “a.1”. Se atrage încă odată atenţia asupra modului cum se
realizează atribuirea de valori variabilelor. Este vorba de operatorul de atribuire “:=”,
care se obţine cel mai uşor prin apăsarea tastei “;”.
În afara variabilelor de tipul celor de mai sus, în MathCAD pot fi definite variabile de tip
scalar, variabile de tip şir, sau de tip şir de caractere
O secvenţă de tipul :
t:0.3,0.5;2
va produce pe documentul MathCAD efectul :
t:= 0.3, 0.5 .. 2
Acest tip de variabilă (e drept o formă ceva mai simplă), a fost utilizată în exemplul
prezentat în figura 3.2. Acolo variabila “x” lua valori întregi între 0 şi 20. Era vorba deci
de o progresie aritmetică cu raţia 1. În cazul de mai sus este vorba tot de o progresie
aritmetică, de această dată cu raţia diferită de 1. Semnificaţiile notaţiei sunt:
• Prima cifră indică prima valoare pe care o va lua variabila
• A doua valoare defineşte împreună cu prima raţia progresiei, care este egală cu
valoarea a doua minus prima
• A treia valoare indică ultima valoare pe care o va lua variabila.
Deci variabila “t” va lua valorile : 0.3, 0.5, 0.7, 0.9…….1.9.
30
Documente MathCAD
y[i:12,23,12,34,22
cea ce va produce în documentul MathCAD :
31
Capitolul 3
Mathcad 2001 permite definirea de variabile de tip şir de caractere. Definirea este
extrem de simplă şi se face ca şi în cazul celorlalte tipuri de variabile. Singura diferenţă
este că valoarea variabilei, va fi „închisă” între ghilimele duble (double quote).
În exemplul din figura 3.6 sunt definite două variabile, care apoi sunt concatenate
(scrierea făcându-se tot într-o variabilă de tip şir de caractere) şi în final se realizează
evaluarea variabilei „sumă”.
32
Documente MathCAD
În § 3.1 s-a enunţat regula de bază utilizată de MathCAD pentru “citirea” documentelor.
Există totuşi o excepţie de la ea. Astfel, se pot defini aşa numitele variabile globale,
care pot fi folosite şi în expresii situate deasupra sau la stânga definiţiei [de variabilă].
Aceste variabile sunt “citite” de MathCAD la începutul parcurgerii unui document (de
fapt MathCAD “parcurge” un document de două ori, prima dată “citeşte” atribuirile
globale, iar la a doua citire ia în considerare atribuirile obişnuite), deci cu eludarea
regulii enunţată § 3.1. Pentru definirea unei variabile globale se va folosi [pentru
atribuire] operatorul “≡”, care se obţine prin apăsarea tastei “~”. Dacă într-un
document se găsesc mai multe variabile globale, “citirea” acestora se face tot după
regula enunţată. Nu se recomandă excesul de atribuiri globale în documente MathCAD.
3.2.5 Funcţii
Cum se defineşte o funcţie s-a văzut în exemplele precedente. Se va mai preciza doar
că regulile enunţate pentru numele variabilelor îşi menţin valabilitatea şi în cazul
numelor de funcţii. Pot fi definite şi funcţii de mai multe variabile. În definirea
funcţiilor, se foloseşte tot operatorul de atribuire (: =). Ca şi variabilele, funcţiile pot fi
evaluate. Acest lucru se va realiza tot prin utilizarea operatorului de evaluare, ca în
figura 3.7. Se observă că evaluarea se poate face pentru toate valorile pe care le poate
lua argumentul funcţiei (se va scrie “f(x)=”), sau se poate realiza pentru o anume
valoare a argumentului (se va scrie “f(1.5)=”).
33
Capitolul 3
Asupra regiunilor dintr-un document MathCAD pot fi executate mai multe tipuri de
acţiuni. Acestea sunt :
• Selecţia unei regiuni, sau a unui grup de regiuni;
• Ştergerea unei regiuni (sau grup de regiuni);
• Copierea unei regiuni (sau grup de regiuni);
• Mutarea (deplasarea) unei regiuni (sau grup de regiuni);
• Redimensionarea unei regiuni;
• Alinierea a două regiuni;
• Separarea regiunilor;
• Evidenţierea regiunilor dintr-un document;
• Inserarea/ştergerea de linii goale între două regiuni;
• Blocarea regiunilor într-un document MathCAD.
Pentru realizarea acestor acţiuni, se va folosi meniul Edit. În paragrafele următoare vor
fi prezentate comenzile necesare executării acţiunilor enunţate mai sus. În ceea ce
priveşte selecţia unei regiuni sau a unui grup de regiuni, trebuie precizat că ea
trebuie să preceadă întotdeauna celelalte acţiuni ce se pot exercita asupra regiunilor
într-un document MathCAD. Pentru selecţie se va folosi tehnica drag and drop, specifică
34
Documente MathCAD
de altfel şi altor aplicaţii Windows. Semnul că o regiune sau un grup de regiuni au fost
selectate, este încadrarea lor în chenare dreptunghiulare, desenate cu linie întreruptă,
ca în figura 3.8.
După selectarea unei regiuni (sau grup de regiuni), ştergerea se realizează fie prin
utilizarea câmpurilor Cut sau Clear din meniul Edit, fie prin utilizarea “butonului”
de pe bara de unelte, fie prin utilizarea tastei DEL. Aceste variante NU sunt complet
echivalente. Astfel, câmpul Cut, butonul şi tasta DEL, sunt echivalente şi după
ştergerea regiunii (sau regiunilor) din documentul MathCAD, plasează informaţia în
Clipboard, astfel încât ea poate fi restaurată, fie prin utilizarea cămpului Paste din
meniul Edit (restaurarea se va face la poziţia curentă a cursorului), fie prin utilizarea
35
Capitolul 3
În acest din urmă caz, restaurarea se va face exact pe vechea poziţie a regiunii (sau
regiunilor). În cazul însă al câmpului Clear din acelaşi meniu Edit, informaţia ştearsă
nu mai este depusă în Clipboard, astfel că ştergerea este definitivă.
Copierea sau mutarea unei regiuni (sau grup de regiuni) se realizează prin
secvenţe Copy ⇒ Paste, respectiv Cut ⇒ Paste, ca în orice aplicaţie compatibilă
Windows, aşa că nu vor mai fi furnizate detalii suplimentare asupra acestor acţiuni. În
cazul deplasărilor unei regiuni (sau grup de regiuni), mai este posibilă utilizarea
tehnicii drag and drop, aşa cum s-a precizat deja în § 1.6.
Redimensionarea unei regiuni presupune ca după faza de selecţie (absolut
obligatorie), deci după ce regiunea (una singură) este încadrată de un dreptunghi
desenat cu linie întreruptă, să se poziţioneze pointerul fie pe colţul din dreapta jos al
dreptunghiului de încadrare, fie pe latura verticală dreapta sau orizontală jos, astfel că
pointerul se va transforma fie într-o săgeată dublă înclinată, fie într-o săgeată dublă
verticală respectiv orizontală, aşa cum se poate vedea în figura 3.9. Din acest moment,
cu butonul din stânga al mouse-ului apăsat, se “trage” până la obţinerea noii
dimensiuni a regiunii. Trebuie precizat că nu orice regiune poate suporta
redimensionări. Regiunile de tip expresie nu pot fi redimensionate, dar regiunile de tip
grafic pot.
36
Documente MathCAD
Construirea unei expresii MathCAD se realizează natural prin tastarea cifrelor, literelor şi
operatorilor expresiei, în ordinea în care s-ar face acelaşi lucru pe o foaie de hârtie. S-a
precizat deja în § 1.7, că datorită tehnicii WYSIWYG, nu întotdeauna ceea ce se
tastează va apare şi în document.
37
Capitolul 3
Editarea unei expresii deja construite presupune în prima etapă selectarea sa. Acest
lucru se realizează prin punctarea cu mouse-ul în zona expresiei respective.
În funcţie de tipul regiunii selectate, în interiorul acesteia va apare fie un cursor
vertical de culoare roşie (la regiunile de tip text), fie un cursor de forma __| sau |__,
sau încă _|_, aşa cum se poate vedea în figurile 3.11, respectiv 3.10.
Inserarea unei perechi de paranteze (este preferabilă inserării separate a celor două),
se face astfel:
• Se încadrează zona de închis între paranteze într-un cursor de tip |___ - vezi
figura 3.12;
• Se tastează caracterul ‚ (virgula).
38
Documente MathCAD
b.
a.
a. b.
Fig. 3-13 – Aplicarea unei funcţii
39
Capitolul 3
Ori de câte ori se tastează numele unei variabile (inclusiv într-o expresie), MathCAD
aplică şirului de caractere care formează numele variabilei, eticheta (tag-ul)
Variables. În mod similar, ori de câte ori se tastează o valoare numerică (o constantă
deci), şirului respectiv de caractere i se aplică eticheta (tag-ul) Constants. Etichetele
(tag-urile) sunt deci un fel de “ştampile” care se pun pe numele variabilelor sau
constantelor şi care vor avea un rol în identificarea acestora.
Efectul acestui mod de lucru este că în momentul în care se schimbă tipul de font
pentru o constantă sau variabilă, modificarea va afecta toate constantele sau variabilele
cu aceeaşi etichetă, indiferent unde ar fi poziţionate in document.
Pentru a şti care sunt caracteristicile etichetei (tag-ul) asociat unei variabile, unei
constante sau unei alte zone dintr-o expresie, se punctează pe expresia respectivă,
după care se activează câmpul Format ⇒ Equation. Pe ecran va apare fereastra
Equation Format, prezentată în figura 3.14. Se apasă pe butonul Modify şi se
deschide o fereastră de control al atributelor de formatare la nivel de font (din care
rezultă care este fontul ataşat zonei respective din expresie).
40
Documente MathCAD
zonelor care au ataşate etichetele Variables sau Constants, pot să mai apară zone
(de fapt tot nume de variabile sau constante) cărora li se aplică alte etichete.
Numele User1…User7 pot fi modificate în caseta de editare New Style Name din
fereastra Equation Format – vezi figura 3-15.
În exemplul de mai jos, expresia conţine trei tipuri de zone cărora li s-au ataşat trei
etichete, cele standard (Variables şi Constants), precum şi una numită variabila_2.
Din analiza figurii rezultă şi de ce ar putea fi necesară o asemenea abordare.
constants
variables
variabila_2
Într-adevăr, în expresie apar două variabile cu acelaşi nume “b”, numai că ele nu sunt
scrise cu acelaşi tip de font, astfel că MathCAD le va trata ca pe două variabile complet
distincte. Aceasta deoarece numele de variabile sau de funcţii sunt, nu numai, ceea ce
în limba engleză se numeşte “case sensitive” – adică dependente de scrierea cu
41
Capitolul 3
unei variabile sau funcţii, MathCAD verifică în primul rând eticheta asociată variabilei
sau numelui de funcţie şi abia apoi “citeşte” efectiv numele variabilei.
În cazul regiunilor de tip text, formatarea se poate face, la nivel de caracter, prin
simpla selectare a regiunii de text, urmată de punctarea pe câmpul Format ⇒ Text.
Cu ajutorul ferestrei Text Format, se vor putea modifica toate caracteristicile de
formatare la nivel de font, ca într-un editor de text obişnuit.
42
Documente MathCAD
3.6.1 Stiluri
43
Capitolul 3
Modul de lucru cu stiluri este principial identic cu cel folosit de exemplu la editorul de
text MSWORD.
Un stil se poate aplica unui paragraf printr-un procedeu simplu:
- Se selectează paragraful căruia i se va aplica stilul;
- Se selectează un stil din lista Styles (vezi figura 3-17);
- Se apasă butonul Apply.
⇒
Fig. 3-18 – Modificarea dimensiunii zonei ocupată de o regiune de tip text
44
Documente MathCAD
Controlul Push Regions Down As You Type, va controla modul cum se va comporta
o regiune de tip text când întâlneşte o altă regiune. În mod implicit, textul se va
suprapune peste regiunea pe care o întâlneşte (aşa cum se vede în figura 3-20). Dacă
se doreşte „împingerea” regiunii întâlnite spre în jos, se va bifa controlul Push
Regions Down As You Type – vezi figura 3-19.
45
Capitolul 3
ulterior folosită la definirea unui hyperlink (de la o altă regiune spre cea pentru care s-a
definit hyperlink-ul).
Formatarea rezultatelor (obţinute în urma evaluării unor expresii sau funcţii) în mediul
MathCAD, se poate realiza global sau local. În primul caz, caracteristicile de formatare
se vor aplica tuturor rezultatelor din documentul curent, în cel de-al doilea caz, ele se
vor aplica numai regiunii de tip rezultat selectată anterior operaţiei de formatare.
Pentru formatarea globală se procedează astfel :
• Se punctează cu mouse-ul oriunde în document, pe o zonă liberă;
• Din meniul Format se activează câmpul Result…
Pe ecran va apare fereastra Result Format, prezentată în figura 3-22. Pentru
formatare locală se procedează ca în cazul celei globale, cu diferenţa că înaintea
formatării propriu-zise se punctează pe regiunea (rezultatul) de formatat.
46
Documente MathCAD
Când se face formatare locală, apare şi butonul Set as Default (inexistent în cazul
formatării globale). Apăsarea sa transformă formatarea locală într-una globală.
Semnificaţiile controalelor ferestrei Result Format sunt în marea lor majoritate foarte
uşor de intuit, astfel că nu se va insista decât asupra celor a căror înţelegere nu este
imediată.
- Secţiunea Number Format (vezi figura 3-22)
Exponential Threshold
În caseta de editare corespunzătoare se va introduce o valoarea cuprinsă între 0 şi 15.
Fie aceasta n. Rezultatele mai mici decât 10-n şi mai mari decât 10n, vor fi afişate in
notaţie ştiinţifică (exponenţială).
Show trailing Zeros
În cazul în care caseta de selecţie are în interior o bifă (un simplu clic pe casetă sau
textul din dreapta activează sau dezactivează bifa), zerourile din “coada” unui număr
care apar în conformitate cu setarea din secţiunea Number of decimal places, sunt
afişate, deşi prezenţa lor nu spune nimic în plus. Dacă bifa lipseşte, aceste zerouri
inutile nu mai sunt afişate. Astfel dacă la Number of decimal places s-a precizat 4,
un rezultat de forma 12/5, va fi afişat ca 2.4, dacă există bifă în caseta Show trailing
zeros, respectiv 2.400, dacă nu există.
Number of decimal places
47
Capitolul 3
Stabileşte cum e uşor de bănuit numărul de zecimale cu care se vor afişa rezultatele.
Evident la ultima cifră se va produce o trunchiere a rezultatului. Se poate afişa totuşi un
rezultat cu precizia maximă, se poate proceda astfel:
- Se selectează rezultatul;
- Se tastează CTRL+SHIFT+N.
- Secţiunea Display Options (vezi figura 3-23)
48
Documente MathCAD
a.
b.
Fig. 3-24 – Afişare de matrice
49
Capitolul 3
a. b.
Fig. 3-25 – Vizualizarea tablourilor
Imaginary value
Prin deschiderea listei derulabile se pot alege caracterele folosite („i” sau „j”) pentru
reprezentarea numărului complex „i”.
Radix
Permite stabilirea bazei de numeraţie în care rezultatele vor fi afişate. În cazul în care
se optează pentru baza 8 sau 16, rezultatul în zecimal neîntreg va fi trunchiat la
valoarea de întreg, după care are loc transformarea rezultatului. Acesta va fi urmat de
un “h” sau un “o”, după cum s-a folosit baza 16 sau 8. MathCAD asigură rezultate
corecte pentru valori mai mici decât 231 (sau aproximativ 2*109).
50
Documente MathCAD
Complex Tolerance
Setarea se referă la modul în care vor fi afişate numerele complexe. Valoarea introdusă
în caseta de dialog corespunzătoare trebuie să fie un întreg între 0 şi 63. Fie acest
număr n şi fie numărul complex a+bi. Dacă
min( a , b )
< 10 − n
max( a , b )
51
Capitolul 3
Zero Threshold
În caseta de editare se va introduce un întreg între 0 şi 307. Fie el n. Toate rezultatele
mai mici decât 10-n vor fi afişate ca zero, deşi în continuare MathCAD va opera cu
valoarea exactă.
- Secţiunea Unit Display
Controlează modul în care se vor afişa rezultatele ce conţin şi unităţi de măsură. În
figura 3-27 sunt prezentate exemple ce ilustrează efectul activării sau inhibării celor
două controale Format units şi Simplify units when possible.
Prin evaluarea unei variabile sau funcţii se înţelege calculul valorii variabilei sau funcţiei
respective. Acest lucru se face principial în două moduri: automat şi manual.
Evaluări automate se realizează ori de câte ori se modifică ceva în expresia unei
variabile sau funcţii. Toate variabilele sau funcţiile care urmează în document sunt
evaluate, realizându-se automat reactualizarea acestora.
Evaluările manuale se realizează la cererea expresă a utilizatorului, care se exprimă prin
apăsarea tastei F9 sau prin utilizarea câmpului Calculate din meniul Math. De
subliniat că în acest caz se va realiza doar o evaluare a expresiilor vizibile pe ecran în
52
Documente MathCAD
MathCAD evaluează automat toate expresiile care folosesc variabile asupra cărora s-au
efectuat modificări, actualizând rezultatele (evident dacă setarea Automatic
Calculation este activă). Acest lucru poate deveni stânjenitor din motive expuse în
paragraful precedent. Una din modalităţile de evitare a acestui gen de neplăceri este
dezactivarea lui Automatic Calculation. Nu este însă singurul. Cea de a doua metodă
53
Capitolul 3
Reactivarea unei ecuaţii dezactivată anterior se va realiza prin acelaşi procedeu parcurs
în ordine inversă.
54
Documente MathCAD
55
Capitolul 3
56
4 Calcul matriceal numeric
Obiective
Număr de pagini 26
57
Capitolul 4
58
Calcul matriceal numeric
59
Capitolul 4
• dacă se inserează linii noi acestea vor fi create sub linia pe care se află
elementul selectat;
• dacă se inserează coloane noi acestea vor fi create la dreapta coloanei pe care
se află elementul selectat;
• pentru a insera o linie nouă deasupra primei linii a matricei se marchează
întreaga matrice prin folosirea tastei Space de câte ori este necesar şi apoi se
procedează ca la o inserare obişnuită;
• pentru a insera coloane noi la stânga primei coloane se încadrează toată
matricea, la fel ca mai sus, şi se procedează în maniera deja precizată;
• ştergerea de linii sau coloane se face începând cu linia sau coloana pe care se
află poziţionat elementul selectat.
Fig. 4-3- Inserarea unei linii sau a unei coloane într-o matrice
60
Calcul matriceal numeric
Fig. 4-4 - Referirea elementelor unui vector sau ale unei matrice
Mecanismul prezentat mai sus este valabil pentru referirea individuală a elementelor. Pe
lângă acest mecanism, MathCAD permite referirea unei întregi coloane a unei matrice.
Pentru aceasta se va folosi combinaţia de taste Ctrl + ^ sau simbolul corespunzător
din paleta de simboluri Vector and Matrix Toolbar.
Pentru a referi o anumită coloană a matricei M se va tasta numele matricei urmat de
combinaţia de taste precizată mai sus. Matricea va primi un indice superior situat între
caracterele < >, a cărui valoare specifică de fapt coloana care se va referi. În figura 4.5
sunt prezentate exemple de referire a coloanelor unei matrice.
61
Capitolul 4
62
Calcul matriceal numeric
63
Capitolul 4
64
Calcul matriceal numeric
|v|
Norma unui vector | Calculează norma unui vector v
AT
Transpusa Ctrl + ! Determină transpusa matricei A
În figura 4-7 sunt prezentate câteva exemple simple de aplicare a acestor operatori.
65
Capitolul 4
66
Calcul matriceal numeric
Crearea de tablouri
Concatenarea de tablouri
67
Capitolul 4
Extragerea de submatrice
68
Calcul matriceal numeric
Descompuneri de matrice
69
Capitolul 4
70
Calcul matriceal numeric
L2 = ρ ( M ) = max λ , λ ∈ σ ( M ) .
unde cu σ (M ) s-a notat mulţimea valorilor proprii ale matricei M (numit şi spectrul
acesteia), iar cu ρ (M ) s-a notat raza spectrală a matricei. Cu λ s-au notat valorile
∑m
2
Norma Euclidiană întoarce valoarea : M F
= jk
j ,k
Norma infinită returnează suma cea mai mare sumă a elementelor de pe linii, adică :
N
L∞ = max (∑ mkj
1≤ k ≤ N
j =1
Câteva exemple privind utilizarea acestor funcţii sunt prezentate în figurile următoare.
Fig. 4-8 – Funcţiile rows, cols, max, min, length, tr, last, augment, identity
71
Capitolul 4
Fig. 4-9 - Funcţiile stack, diag, submatrix, norm1, normi, norme, norm2
72
Calcul matriceal numeric
73
Capitolul 4
P.M=L.U,
deci un sistem Ax=b revine la a rezolva sistemul P.A.x=P.b şi mai apoi :
L.(U.x)=P.b
4.3.2 Descompunerea Cholesky
Dacă în sistemul Ax=b, matricea A este simetrică şi pozitiv definită (v.A.v>0, oricare
ar fi vectorul v), se poate găsi o matrice L, astfel încât L.LT =A (deci LT=U din
descompunerea LU).
Obs : O matrice este pozitiv definită dacă are toate valorile proprii pozitive
9 1 −1 0
1 9 0 − 1
Exemplu : A =
− 1 0 9 1
0 −1 1 9
4.3.3 Descompunerea QR
Dacă o matrice A se poate scrie ca :
A=Q.R,
unde Q este o matrice ortogonală (QT.Q=I), iar R este superior triunghiulară, atunci
sistemul :
A.x=b se poate la rândul său scrie:
A=U.diag(S).VT
unde U şi V sunt ortogonale.
Funcţia svd întoarce o matrice ce conţine concatenate prin suprapunere matricele U şi
V.
Soluţia unui sistem de forma A.x=b este:
x=V.diag(1/Sj)(UT.b)
74
Calcul matriceal numeric
75
Capitolul 4
Se poate observa din analiza figurii 4-12 că soluţiile obţinute prin utilizarea funcţiilor
svd, respectiv lsolve (care rezolvă sistemul prin aplicarea relaţiei x=M-1.b) nu sunt
identice, ba mai mult, cea oferită de lsolve este mai corectă. Se recomandă cititorului
să recreeze secvenţă Mathcad din figura 4-12 şi să mai adauge un 9 la valoarea
elementului M0,2, apropiind şi mai mult matricea M de singularitate. Se va constata că
lsolve nu mai întoarce soluţie, în vreme ce metoda care face uz de funcţia svd, încă
mai produce o soluţie. Această situaţie este prezentată în figura 4-13.
76
Calcul matriceal numeric
77
Capitolul 4
78
Calcul matriceal numeric
Semnificaţia scrierii de mai sus este, acum, uşor de dedus: se vor întoarce valorile pe
coloana a doua (cu indicele 1) din tabloul N, din dreptul (cu poziţiile) celor cu valoarea
„Ploieşti”, de pe coloana a treia din tabloul M.
- hlookup, vlookup
Tabloul M, din exemplele precedente a fost transpus şi din el se va extrage cu ajutorul
funcţiei hlookup, locul naşterii persoanei cu numele „Pripici”. Se va urmări figura
4-16.
- match
79
Capitolul 4
În exemplul din figura 4-18, s-a realizat extragerea indicilor poziţiilor din tabelul M,
care au valoarea „Ploiesti”. Pentru ca rezultatul să arate ca în figura amintită, trebuie să
se seteze „ON” opţiunea de afişare a tablourilor incluse (Format ⇒ Result… ⇒
Display Options ⇒ Expand nested arrays).
80
Calcul matriceal numeric
Funcţia creează o matrice formată din trei submatrice (dispuse în sistem „stack”) ce
reprezintă coordonatele x, y, z ale unei suprafeţe parametrice definită prin intermediul
unei funcţii vector, unei funcţii de două variabile, sau unui set de 3 funcţii.
Sintaxa de apelare a funcţiei este una din următoarele:
81
Capitolul 4
82
Calcul matriceal numeric
Exemple:
1. Utilizarea unei funcţii vector
83
Capitolul 4
84
Calcul matriceal numeric
Semnificaţiile notaţiilor sunt uşor de dedus prin analogie cu cele prezentate în cazul
funcţie CreateMesh, cu observaţia că funcţia F, ca şi funcţiile f1, f2, şi f3 depind de o
singură variabilă.
Exemplu:
1. Utilizarea unei funcţii vector
85
5 Reprezentări grafice
Mathcad permite obţinerea unui număr mare de tipuri de reprezentări grafice 2D şi 3D,
punând la dispoziţia utilizatorilor multiple facilităţi de formatare a acestor reprezentări.
Obiective
Număr de pagini 26
87
Capitolul 5
5.1 Grafice 2D
5.1.1 Grafice de tip X-Y
88
Reprezentări grafice
i := 1 .. 20 x := 0 , 0.1 .. 5
yi := ( xi) − 5 ⋅xi
2
xi := .5 ⋅i
1
60
40
yi 20
( 2)
sin x 0
0
1
20 0 2 4 6
0 5 10
x
xi
x := 0 , .1 .. 20 x := 0 , .1 .. 20
sin ( x) +cos ( x) sin ( x) −cos ( x) sin ( x) +cos ( x) sin ( x) −cos ( x)
f ( x) := e −e f ( x) := e −e
sin ( x) +cos ( x) sin ( x) −cos ( x)
g( x) := e +e
5
10
f ( x) 0
f ( x) 5
5 g ( x)
0 5 10 15 20
0
x
5
0 5 10 15 20
x
89
Capitolul 5
90
Reprezentări grafice
b.
91
Capitolul 5
În figura 5-4.a se poate vedea un grafic pe care sunt reprezentate două trasee.
Setările sunt cele din figura 5-4.b.
b.
92
Reprezentări grafice
Secţiunea Labels permite definirea unui titlu al graficului (Title), a poziţie acestuia,
sau a unor legende la nivel de axe (Axis labels).
Secţiunea Defaults permite fie revenirea la setările de formatare a graficelor implicite
pentru document (Change to Defaults), fie dimpotrivă, transformarea setărilor
curente în setări implicite pentru întregul document.
5.1.3 Grafice în coordonate polare
Inserarea unui grafic în coordonate polare presupune parcurgerea următoarelor etape:
1. Alegerea câmpului Insert ⇒ Graph ⇒ Polar Plot sau a butonului corespunzător
de pe bara de instrumente Graph (vezi figura 5-6)
2. Completarea marcatorilor cu elementele corespunzătoare (nume variabilă de
reprezentare, respectiv nume funcţie sau expresie de reprezentat etc.). A se consulta
figura 5-5)
93
Capitolul 5
94
Reprezentări grafice
citirea unor valori din exteriorul curbei sau a punctelor de pe curbă ce nu corespund
valorilor discrete ale variabilei abscisă.
În figura 5-8 se este surprinsă utilizarea facilităţii Trace în condiţiile eliminării Track
Data Points.
95
Capitolul 5
96
Reprezentări grafice
97
Capitolul 5
a.
b.
Fig. 5-10 – Facilitatea zoom
98
Reprezentări grafice
În figura 5-11 este surprins modul de operare zoom în cazul unui grafic în coordonate
polare.
5.2 Grafice 3D
5.2.1 Grafice de tip suprafaţă
Pentru includerea într-un document Mathcad a unui grafic de tip suprafaţă (Surface
Plot), se poate utiliza câmpul Insert ⇒ Graph ⇒ Surface Plot sau butonul
corespunzător de pe bara de unelte Graph (vezi figura 5-12).
99
Capitolul 5
100
Reprezentări grafice
101
Capitolul 5
Fig. 5-16 - Grafic de tip suprafaţă obţinut pornind de la ecuaţia unei funcţii vector
102
Reprezentări grafice
Fig. 5-17 – Grafic de tip suprafaţă obţinut pornind de la ecuaţia unei funcţii de două
variabile
Fig. 5-18 - Grafic de tip suprafaţă obţinut pornind de la ecuaţia a trei funcţii de două
variabile
103
Capitolul 5
Graficele de tip curbe de nivel se obţin de fapt din suprafeţe „secţionate” de plane
paralele cu planul XOY (sau YOZ sau XOZ). Curbele de intersecţie se proiectează pe
104
Reprezentări grafice
planul XOY (sau YOZ sau XOZ) şi se reprezintă. Cum la baza graficelor de tip contur
stau de fapt nişte suprafeţe, vor fi aceleaşi şi metodele de generare a unor astfel de
reprezentări: se va porni deci tot de la o matrice, trei matrice, trei vectori, sau expresia
unei funcţii (vector sau simplă de trei variabile) sau unui număr de trei funcţii de două
variabile.
Fig. 5-21 – Grafic de tip Contour Plot obţinut pornind de la trei vectori
105
Capitolul 5
Pentru inserarea unei astfel de reprezentări, se vor folosi câmpul Insert ⇒ Graph ⇒
3D Scatter Plot, sau butonul corespunzător de pe bara de instrumente Graph (vezi
figurile 5-22…5-24 ).
Fig. 5-23 – Grafic de tip „scatter” obţinut pornind de la expresia unei funcţii vector de
două variabile
106
Reprezentări grafice
107
Capitolul 5
„Argument” pentru astfel de grafice pot fi numele unei variabile de tip matrice, numele
a trei variabile de tip vector (închise între paranteze), sau numele unei funcţii vector cu
3 elemente şi de două variabile, al unei funcţii de două variabile, sau a unui set de 3
funcţii de două variabile (întocmai ca la graficele de tip suprafaţă de exemplu). Se va
obţine o reprezentare ca cea din figura 5-26, în care înălţimea fiecărei coloane este
chiar valoarea elementului de matrice corespunzător (în cazul în care argument este un
nume de funcţie/funcţii corespondenţa este indirectă, căci înainte de reprezentare tot la
o matrice se ajunge).
108
Reprezentări grafice
109
Capitolul 5
110
Reprezentări grafice
111
Capitolul 5
112
Reprezentări grafice
113
Capitolul 5
114
Reprezentări grafice
În figura 5-36 este prezentat un grafic de tip Vector, obţinut pornind de la o matrice cu
elemente complexe. Vectorii orizontali corespund unor elemente pur reale ale matricei,
cei verticali unor elemente pur complexe. Fiecare vector este de fapt definit prin
componenta orizontală (reală) şi cea verticală (coeficientul părţii imaginare), ce se
compun (în sensul cunoscut de la calculul vectorial). Se va mai remarca şi faptul că
prima coloană de vectori corespunde primei linii a matricei (ultimul element de pe
coloană corespunde primului vector din colţul din stânga sus al reprezentării).
115
Capitolul 5
116
6 Rezolvarea numerică a ecuaţiilor şi a
sistemelor de ecuaţii
Obiective
Număr de pagini 7
117
Capitolul 6
0.5 − 2 ⋅ x − 2 ⋅ x 2 = 0
Pot fi obţinute şi soluţii complexe.
Funcţia foloseşte metoda LaGuerre sau pe cea a
companionului matriceal. „Forţarea” uneia sau
alteia dintre metode se face executând clic
dreapta pe numele funcţiei şi alegerea variantei
de lucru (vezi figura 6-2).
Fig. 6-1 – funcţia polyroots
118
Rezolvarea numerică a ecuaţiilor şi a sistemelor de ecuaţii
root(f(x)-g(x),x,a,b)
Semnificaţiile notaţiilor sunt următoarele:
- x este numele variabilei necunoscută
- a şi b sunt limitele intre care se va căuta o soluţie.
119
Capitolul 6
120
Rezolvarea numerică a ecuaţiilor şi a sistemelor de ecuaţii
2 ⋅ x − y + 0.5 ⋅ z + u = −2.75
x + 2 ⋅ y − 3 ⋅ u = 0
cu ajutorul funcţiei lsolve.
0.5 ⋅ x + y − z + 1.5 ⋅ u = 2.5
− x + y + z + u = 4.5
Pentru sistemele algebrice neliniare, sau pentru cele transcendente, se va folosi funcţia
Find, apelabilă cu sintaxa: Find(x1, x2, x3,…xn), unde x1, x2, x3,…xn sunt necunoscutele
căutate. Funcţia Find se utilizează în cadrul unei secvenţe de forma:
121
Capitolul 6
[Constrângeri…] opţionale
Find(x1, x2, x3,…xn)
În figura 6-5 se pot vedea două exemple de întrebuinţare a funcţiei Find, cu şi fără
utilizarea de constrângeri.
122
Rezolvarea numerică a ecuaţiilor şi a sistemelor de ecuaţii
Funcţia Find poate utiliza diferiţi algoritmi pentru rezolvarea de sisteme de ecuaţii.
Alegerea se poate face automat (AutoSelect, sau „manual” - vezi figura 6-7).
123
Capitolul 6
Dacă funcţia Find nu întoarce o soluţie (ceea ce se poate întâmpla fie pentru că ea nu
există, fie pentru că este prea „departe” de estimarea iniţială), se poate recurge le
funcţia Minerr. Aceasta va întoarce întotdeauna un răspuns care trebuie privit ca o
soluţie aproximativă (ce poate fi eventual folosită ca o nouă estimare pentru soluţie în
cazul reutilizării funcţiei Find).
Modul de utilizare e lui Minerr, este identic cu cel prezentat în cazul lui Find (inclusiv
precizarea unei estimări iniţiale pentru soluţie).
În figura 6-8 este prezentat un exemplu de utilizare a funcţiei Minerr.
124
7 Derivare şi integrare numerică. Calcul
de sume şi produse
Obiective
125
Capitolul 7
126
Derivare şi integrare numerică. Calcul de sume şi produse
127
Capitolul 7
• dacă se apasă de mai multe ori pe tasta & (sau pe butonul ) se pot
calcula integrale multiple (dublă, triplă etc.).
128
Derivare şi integrare numerică. Calcul de sume şi produse
129
8 Utilizarea unităţilor de măsură în
documentele Mathcad
Obiective
Număr de pagini 7
131
Capitolul 8
Posibilitatea de a lucra cu unităţi de măsură este una din facilităţile extrem de utile ale
MathCAD. Aceasta prezintă dincolo de avantajele care ţin de aspectul şi inteligibilitatea
unui document, şi alte două avantaje de o cu totul altă natură. Astfel, când se lucrează
cu unităţi de măsură (UM), MathCAD realizează în afara calculelor şi următoarele două
acţiuni :
• Verifică dacă expresiile sunt omogene din punct de vedere dimensional;
• Execută toate transformările pe care o expresie ce conţine UM le presupune.
Astfel un calcul ca cel de mai jos, evident incorect din punct de vedere
dimensional (“liter” înseamnă în MathCAD litru) va produce mesajul de eroare
(vezi figura 8-1.a).
După cum un calcul ca cel din figura 8-1.b, unde din 2 metri se scad 30 de centimetri,
va produce rezultatul corect, adică 1.7 metri.
a. b.
Fig. 8-1 – Verificarea omogenităţii dimensionale şi realizarea de transformări
În MathCAD, unităţile de măsură sunt de fapt nişte variabile cu valori prestabilite. Din
acest motiv, ataşarea unei UM de o variabilă sau constantă, se face înmulţind variabila
sau constanta cu numele UM. Astfel cele două expresii de mai sus au fost obţinute cu
secvenţele :
2*kg-3*liter=, respectiv 2*m-30*cm=
Trebuie totuşi precizat că în Mathcad 2001, atunci când o valoarea numerică este
urmată imediat de numele unei unităţi de măsură, este posibilă eliminarea operatorului
de înmulţire (*).
Acest mod de lucru presupune în mod evident cunoaşterea numelor corecte (pentru
MathCAD) ale UM. Cum aceste nume nu coincid întotdeauna cu cele româneşti, se
132
Utilizarea unităţilor de măsură în documentele Mathcad
poate utiliza câmpul Insert ⇒ Unit… (se poate folosi şi shortcut-ul CTRL + U).
Rezultatul va fi apariţia ferestrei Insert Unit, prezentată în figura 8-2, care va insera în
document numele UM selectate. Atenţiune, în fereastra Insert Unit există două liste,
una cu numele mărimilor fizice (Dimension) şi una cu numele unităţilor de măsură
propriu-zise (Units). Selectarea unei mărimi fizice, va determina apariţia în lista Units
a unităţilor de măsură disponibile în MathCAD specifice mărimii fizice considerate.
Este posibilă şi definirea de noi unităţi de măsură, sau a unor multipli sau submultipli
unor unităţi de măsură existente. Cum unităţile de măsură în Mathcad sunt de fapt
nişte variabile, procesul este extrem de simplu. În figura 8-3 este prezentat un
exemplu de definire a unui multiplu de unitate de măsură.
133
Capitolul 8
⇒
Fig. 8-3 – Definirea de noi unităţi de măsură, multipli sau submultipli de UM
Se atrage atenţia asupra posibilelor conflicte ce pot apărea atunci când se folosesc
nume de variabile identice cu numele unor unităţi de măsură definite. Astfel dacă într-
un document a fost definită o variabilă cu numele „m”, nu se va mai putea utiliza
unitatea de măsură metru, cu prescurtarea „m”, oriunde dedesubtul definirii variabilei
„m”.
Un rezultat care are ataşată o unitate de măsură (rezultat al unei expresii care conţine
UM), poate fi exprimat fără a mai face odată calculul în alte UM. În exemplul din
figura 8-4, rezultatul se obţine iniţial în kg*m/sec2 (adică Newtoni). Se observă că la
sfârşitul rezultatului apare un marcator, în care utilizatorul poate “scrie” numele unei
UM. Dacă de exemplu, în acest marcator, se va scrie “km”, după apăsarea tastei F9,
rezultatul va fi cel de mai jos.
134
Utilizarea unităţilor de măsură în documentele Mathcad
a. b.
Fig. 8-4 – Modificarea unităţilor de măsură în care este exprimat un rezultat
Se vede că dacă rezultatul iniţial s-a “înmulţit” cu 1 km, deci el este exprimat acum în
kg*km/sec2, valoarea se va împărţi la 1000, astfel încât rezultatul să rămână cel corect.
Un alt exemplu ar putea fi calculul din figura 8-5. Rezultatul este exprimat iniţial în
metri cubi. Dacă în placeholder-ul din dreapta rezultatului se scrie “liter”-şi se apasă F9
rezultatul afişat va fi :
a. b.
Fig. 8-5 - Modificarea unităţilor de măsură în care este exprimat un rezultat
Dacă se şterge cuvântul “liter”, se va reveni la rezultatul iniţial, exprimat în metri cubi.
135
Capitolul 8
măsură se face prin împărţirea la funcţia predefinită UnitsOf(..), unde argumentul este
numele variabilei de care se „desprinde” temporar o anumită unitate de măsură.
Fig. 8-6 – Eliminarea temporară a unei unităţi de măsură ataşată unei variabile
136
Utilizarea unităţilor de măsură în documentele Mathcad
Rezultatele calculelor cu UM, se pot exprima fie în nume de mărimi fizice, fie în nume
de unităţi de măsură. Alegerea modului de afişare se face din secţiunea Dimensions a
casetei de dialog Math Options.
În cazul în care se optează pentru afişarea rezultatelor în nume de mărimi fizice
(dimensions), este posibilă redefinirea numelor mărimilor fizice de bază. Acest lucru
se poate face prin scrierea în casetele de editare ale secţiunii Dimensions a casetei de
dialog Math Options (vezi figura 8-8).
137
Capitolul 8
În figura 8-9 acelaşi rezultat este exprimat în nume de mărimi fizice, respectiv în nume
de unităţi de măsură.
a. b.
Fig. 8-9 – Rezultate exprimate în nume de mărimi fizice sau în nume de UM
138
Utilizarea unităţilor de măsură în documentele Mathcad
Este posibilă utilizarea UM în calculul integral sau cel diferenţial. În figura 8-10, sunt
prezentate astfel de exemple.
a. b.
Fig. 8-10 – Unităţi de măsură în calcul integral şi diferenţial
139
9 Schimb de informaţie între Mathcad şi
alte aplicaţii.
Obiective
• Prezentarea modalităţilor prin care se poate face schimp de
informaţie între Mathcad şi alte aplicaţii Windows:
o Excel
o Matlab
o Bază de date
• Prezentarea modului de lucru cu fişiere de date în Mathcad
9.6 Inserarea unei componente de tip citire (Read), scriere (Write) din/în
fişiere ....................................................................................................................163
9.7 Funcţii predefinite pentru citirea/scrierea din/în fişiere de date ASCII ....
....................................................................................................................166
Număr de pagini 23
141
Capitolul 9
Mathcad poate schimba informaţii cu alte aplicaţii. Acest lucru este posibil principial în
două moduri:
• prin intermediul fişierelor de date (ASCII sau nu);
• prin inserarea de „componente” în documentele Mathcad.
Componentele sunt obiecte OLE (Object Linking and Embedding) şi permit accesarea
din „interiorul” Mathcad a unor funcţii şi capabilităţi specifice aplicaţiei (componentei)
incluse. O componentă poate primi date de la Mathcad, dar poate să şi transmită date
spre Mathcad, în mod dinamic, realizând astfel o legătură permanentă între
„componentă” şi documentul Mathcad „gazdă”.
Componentele ce pot fi conectate la Mathcad sunt:
• Axum – pentru realizarea de reprezentări grafice AXUM
• Excel
• MATLAB
• Baze de date (Access, FoxPro, Excel)
• SmartSketch - pentru realizarea de desene parametrizate
• S-PLUS Graph – pentru crearea de grafice S-PLUS
• S-PLUS Script – pentru accesarea mediului de programare S-PLUS
Mathcad poate „transmite” unei componente un scalar, un vector, o matrice sau un şir
de caractere şi poate primi aceeaşi categorie de date. „Tranzacţia” se face prin
intermediul unor variabile de intrare (input variables), sau a unor variabile de ieşire
(output variables).
Cât priveşte schimbul de informaţie prin intermediul fişierelor de date, este posibilă fie
utilizarea inserării unei componente de tip scriere/citire în/din fişier, fie prin utilizarea
unor funcţii de acces la fişiere (păstrate de la versiuni anterioare, din dorinţa de a se
menţine compatibilitatea).
142
Schimb de informaţie între Mathcad şi alte aplicaţii.
definirea a două variabile, Adaos şi respectiv TVA (vezi figura 9-1). Valorile din cei doi
vectori vor fi transmise unui document Excel existent (vezi figura 9-2).
143
Capitolul 9
144
Schimb de informaţie între Mathcad şi alte aplicaţii.
Fig. 9-4 – Stabilirea numărului de variabile de intrare/ieşire şi a zonelor din Excel unde
acestea vor acţiona
145
Capitolul 9
146
Schimb de informaţie între Mathcad şi alte aplicaţii.
147
Capitolul 9
4. Din meniul File (al casetei de dialog Script Editor - [MATLAB], se punctează
pe câmpul Close and Return şi se răspunde cu Yes la întrebarea Apply
changes?
5. Odată reîntorşi în mediul Mathcad este obligatorie setarea corectă a numelor
variabilelor de intrare şi respectiv de ieşire. Aceasta pentru că implicit acestea
se numesc in0, in1, in2,…., respectiv out0, out1,…. Setarea numelor
variabilelor se face prin executarea unui clic dreapta pe obiectul MATLAB inclus
şi alegerea câmpului Properties. Tot implicit se consideră că există o singură
variabilă de intrare (input) şi tot una singură de ieşire (output). Modificarea
acestei stări se poate face prin utilizarea câmpurilor Add Input Variable,
respectiv Add Output Variable (este uşor de dedus funcţionalitatea
148
Schimb de informaţie între Mathcad şi alte aplicaţii.
a. b.
149
Capitolul 9
8. Un simplu clic în afara obiectului MATLAB, sau apăsarea tastei F9, va determina
actualizarea componentei MATLAB şi implicit transferul de variabile între
aplicaţii. O eventuală evaluarea a variabilei vector, va produce efectul din
figura 9-14.
150
Schimb de informaţie între Mathcad şi alte aplicaţii.
151
Capitolul 9
152
Schimb de informaţie între Mathcad şi alte aplicaţii.
153
Capitolul 9
154
Schimb de informaţie între Mathcad şi alte aplicaţii.
3. Din caseta de dialog File Read or Write Wizard (vezi figura 9-21), se alege
tabelul din componenţa bazei de date ce va fi interogat. În exemplul considerat
baza de date conţine doar un tabel (numit chiar Tabel1);
155
Capitolul 9
156
Schimb de informaţie între Mathcad şi alte aplicaţii.
a. b.
Fig. 9-23 – Definirea variabilei în care vor fi extrase datele din baza de date
Este posibilă şi filtrarea datelor prin utilizarea unei clauze SQL de tip „where”. Astfel
dacă se execută un clic dreapta pe pictograma ODBC Read şi se accesează câmpul
Properties…, se poate ajunge la secţiunea Advanced a casetei de dialog din
figura 9-25, cu ajutorul căreia se poate impune o clauză de tip WHERE. În exemplul
considerat s-a impus o condiţie de tipul Salariul > 8000000, ceea ce a condus la o
evaluare a variabilei de ieşire (A), ca în figura 9-26.
157
Capitolul 9
158
Schimb de informaţie între Mathcad şi alte aplicaţii.
Este posibilă „scrierea” într-o variabilă Mathcad a conţinutului unui tabel (asemănător
cu unul generat în Excel) creat „ad-hoc”, sau eventual citirea dintr-un fişier de date de
unul din tipurile enumerate în § 9.6.
Dacă se doreşte citirea într-o variabilă Mathcad a conţinutului unui tabel creat ad-hoc
se va proceda astfel:
1. Se inserează o componentă de tip Input Table (Insert ⇒ Component ⇒
Input Table);
2. Se execută clic stânga în oricare dintre celulele tabelului şi se completează
conţinutul;
3. Iniţial sunt afişate numai două linii şi două coloane ale tabelului, dar prin
utilizarea grupului de patru săgeţi sus, jos, stânga, dreapta , este posibilă
accesarea (şi completarea) altor zone ale tabelului;
4. Se completează în colţul din stânga sus numele variabilei în care se scrie
tabelul (vezi figura 9-27).
Dacă se doreşte citirea dintr-un fişier de date, după parcurgerea primei etape din cele
patru descrise, se execută clic dreapta pe zona tabelului şi din meniul pop-up se
selectează câmpul Import… . Se va ajunge la o casetă de dialog de tip Read From
File, cu ajutorul căreia se selectează fişierul din care se va face citirea.
159
Capitolul 9
În ambele cazuri, este posibilă formatarea tabelului, prin executarea aceluiaşi clic
dreapta, urmat de opţiunea Properties, ceea ce va conduce la caseta de dialog din
figura 9-28, ale cărei câmpuri au semnificaţii uşor de înţeles.
160
Schimb de informaţie între Mathcad şi alte aplicaţii.
Check Box
ListBox
PushButton
RadioButton
Slider
TextBox
Trebuie subliniat că aceste componente mai fac parte din categoria aşa numitelor
„Scriptable Object Component” (SOC). Utilizarea „la maxim” a acestor obiecte
presupune cunoştinţe de programare într-un limbaj de tipul Java sau Visual Basic.
Astfel se vor putea asocia controalelor evenimente complexe şi dezvolta aplicaţii
personalizate de mare complexitate. În exemplul ce va urma se va face uz doar de
primul nivel (şi cel mai simplu) de utilizare a componentelor de tipul elementelor de
control.
Analiza figurii 9-29 pune în evidenţă că de orice control se leagă numele unei variabile
Mathcad. În funcţie de tipul elementului de control şi a acţiunii exercitată asupra lui,
variabila va lua o anumită valoare. Este posibil ca de un element de control să fie
legate mai multe variabile, nu numai de ieşire (output) – cum este cea implicită,
plasată în colţul din stânga sus, dar şi de tip input (de intrare). Se recomandă
prudenţă în ataşarea de mai multe variabile de un element de control şi oricum se face
precizarea că într-o astfel de situaţie este obligatorie folosirea facilităţilor de
programare.
161
Capitolul 9
Un element de control odată inserat, folosind tehnica clicului dreapta se poate face apel
la câmpul Properties, cu ajutorul căruia se poate controla aspectul şi comportarea
obiectului.
Având în vedere complexitatea subiectului, nu se va insista prea mult asupra acestui tip
de componente, urmând ca cei interesaţi să aprofundeze pe cont propriu domeniul.
În fine se mai atrage atenţia asupra faptului că utilizarea facilităţilor de configurare
(programare) ataşate obiectelor de tip elemente de control presupune instalarea unuia
din limbajele de programare de tip script pe care le poate utiliza Mathcad. Acestea
sunt:
Microsoft VBScript (Visual Basic Scripting Edition) şi Microsoft JScript (o implementare a
JavaScript). Ambele se pot obţine gratuit de la adresa:
http://msdn.microsoft.com/scripting
În figura 9-30 este prezentat un exemplu simplu de utilizare a unor elemente de control
Mathcad.
162
Schimb de informaţie între Mathcad şi alte aplicaţii.
Este posibilă scrierea sau citirea în/din fişiere de diverse tipuri, prin utilizarea
componentei de tip File Read or Write. Inserarea unei astfel de componente se
realizează prin parcurgerea următoarelor etape:
1. Insert ⇒ Component ⇒ File Read or Write;
2. Alegerea tipului de operaţie ce se va executa (citire sau scriere) – vezi
figura 9-31;
3. Stabilirea tipului de fişier în care se va scrie sau din care se va citi, precum şi
numele acestui fişier şi poziţia sa în arborele de directoare (vezi figura 9-33).
Mathcad „ştie” să scrie sau să citească în/din următoarele tipuri de fişiere:
• Formatted Text (text formatat);
163
Capitolul 9
Dacă este vorba de operaţii de citire din fişiere, Mathcad „citeşte” conţinutul fişierelor în
variabile de tip matrice.
Pentru exemplificare se consideră scrierea în fişiere de tip text, a unei variabile de tip
matrice prezentată în figura 9-33.
164
Schimb de informaţie între Mathcad şi alte aplicaţii.
a. b.
c.
Fig. 9-34 – Fişiere ASCII obţinute cu ajutorul unei componente de tip File Read or
Write
165
Capitolul 9
În versiunile mai vechi de Mathcad, accesul la fişiere de date era posibil prin utilizarea
unor funcţii predefinite. Astfel de funcţii operau NUMAI cu fişiere text (ASCII), de două
tipuri: structurate şi nestructurate. Nu se puteau scrie în fişiere decât valori numerice,
mai precis vectori sau matrice.
Primul [tip de fişiere] conţine datele „structurate” (de unde şi numele) pe rânduri şi
coloane, astfel că o corespondenţă fişier matrice este imediată. Al doilea tip conţine
datele aranjate sub forma unui şir de valori, ceea ce conduce imediat la concluzia că
astfel de fişiere sunt destinate stocării de vectori. Este cât se poate de corect să se
scrie matrice în fişiere nestructurate, dar va fi imposibilă restaurarea matricei (revenirea
la un anumit număr de linii şi coloane). Are sens să se scrie vectori în fişiere
structurate, pentru că astfel se va putea face distincţia între vectorii linie şi cei coloană.
Funcţiile de citire/scriere predefinite corespund componentelor de tip File Read or
Write, când se optează pentru fişiere cu extensia *.dat (acestea sunt fişiere
nestructurate), sau *.prn (acestea sunt fişiere structurate).
Funcţiile de citire/scriere din/în fişiere de date ASCII sunt:
• Pentru fişiere nestructurate
- WRITE(„nume-fişier”) – scrie într-un fişier nestructurat
- READ(„nume_fişier”) – citeşte dintr-un fişier nestructurat
- APPEND(”nume_fişier”) – adaugă date la un fişier nestructurat
• Pentru fişiere structurate
- WRITEPRN(„nume-fişier”) – scrie într-un fişier structurat
- READPRN(„nume_fişier”) – citeşte dintr-un fişier structurat
- APPENDPRN(„nume_fişier”) – adaugă date la un fişier structurat
Funcţiile de tip scriere obişnuită (WRITE, WRITEPRN) în cazul în care au ca argument
numele unui fişier existent în momentul apelării, va scrie „PESTE” fişierul vechi,
distrugând complet şi IREMEDIABIL datele din acesta. Dacă fişierul argument nu există
în momentul apelării funcţiei, acesta va fi creat. Spre deosebire de funcţiile WRITE şi
WRITEPRN, funcţiile APPEND şi APPENDPRN, atunci când au ca argument numele unui
166
Schimb de informaţie între Mathcad şi alte aplicaţii.
167
10 Programare în Mathcad
Obiective
10.6 Recursivitate..............................................................................................183
Număr de pagini 14
169
Capitolul 10
170
Programare în Mathcad
elementelor pozitive. Ultima instrucţiune din corpul funcţiei calculează media, iar
valoarea rezultată este transmisă documentului Mathcad.
Odată definită, funcţia poate fi apelată ori de câte ori este nevoie în cadrul
documentului în care a fost creată. La apelare, se va folosi pentru argument orice nume
al unei variabile matrice. Generarea unei secvenţe ca cea din figura 10-1, se poate
face numai prin utilizarea paletei de butoane Programming (vezi figura 10-2) – deci
nu se scrie niciodată „if”, „while” etc.
a. b.
Fig. 10-2 – Paleta de butoane Programming
171
Capitolul 10
172
Programare în Mathcad
a. b.
Fig. 10-5 – Secvenţă de programare ce conţine elemente de calcul simbolic
Pentru ilustrarea tehnicilor de programare în Mathcad, mai jos sunt prezentate câteva
exemple:
173
Capitolul 10
Dacă se doreşte executarea mai multor instrucţiuni în cazul în care condiţia de după if
este evaluată TRUE, după selectarea marcatorului din stânga cuvântului cheie if (vezi
figura 10-6.a), se „apasă’ butonul Add line şi se obţine o secvenţă ca cea din
figura 10-6.b.
a. b.
Fig. 10-6 – Secvenţa if
Pentru exemplificare, mai jos sunt sugerate câteva probleme rezolvate cu ajutorul
secvenţei if.
10.2.1 Definirea de funcţii pe intervale.
În figura 10-7 sunt definite două funcţii cu expresii diferite pe intervale. Cuvântul cheie
otherwise se traduce prin „în rest”.
174
Programare în Mathcad
Structurile de ciclare permit executarea unei secvenţe de instrucţiuni de mai multe ori.
Numărul de execuţii poate fi cunoscut (ca în cazul secvenţei for), sau nu (ca în cazul lui
while). Mai jos sunt prezentate câteva exemple simple de utilizare a unor secvente de
ciclare.
10.3.1 Instrucţiunea for
În figura 10-8 se poate vedea cum arată un program foarte simplu ce calculează suma
primelor n numere naturale.
Este posibilă proiectarea unei structuri de ciclare utilizând secvenţa for, dar cu
incrementare neîntreagă. În figura 10-10 se poate analiza un astfel de exemplu.
175
Capitolul 10
176
Programare în Mathcad
Pentru o mai bună înţelegere a utilizării construcţiei while, mai jos sunt prezentate
câteva exemple.
În figura 10-13 este prezentat un program care „găseşte” primul element al unui
vector mai mare decât o anumită valoare (prag).
Fig. 10-13 - “Găsirea” primului element al unui vector mai mare decât o anumită
valoare
177
Capitolul 10
Secvenţa de tip break permite ieşirea „forţată” dintr-o buclă la îndeplinirea unei
anumite condiţii. Această logică impune asocierea lui break cu o construcţie if.
Acţiunea de tip break are loc numai când condiţia din dreapta lui if este evaluată TRUE
sau la o valoare strict pozitivă.
În figura 10-14 se prezintă o variantă de calcul a lui n! cu utilizarea unei secvenţe de tip
break.
Observaţie: Se va nota că pentru scrierea condiţiei din dreapta lui if s-a folosit egalul ce
apare şi în structura funcţiei Fiind (CTRL+=).
10.4.2 Secvenţa continue
Structura de tip continue permite ieşirea „forţată” dintr-o iteraţie. Dacă aceasta este
conţinută într-o alta (iteraţii imbricate), se execută iteraţia de nivel superior următoare.
Dacă iteraţia nu este conţinută într-o alta, se „sare” la următorul pas de iterare de
după cel întrerupt.
Ca şi în cazul lui break, continue se asociază cu o construcţie de tip if. În figura 10-
15 este prezentat un exemplu de program care utilizează o secvenţă de tip continue
pentru a calcula suma elementelor pozitive ale unei matrice. În figura 10-16, este
178
Programare în Mathcad
Fig. 10-16 – Calculul sumei numerelor naturale impare mai mici decât n
179
Capitolul 10
Se face observaţia că aşa cum e scris programul matricea este parcursă pe coloane.
Rezultatul nu ar fi fost acelaşi dacă s-ar fi inversat între ei indicii i şi j.
10.4.4 Secvenţa on error
Secvenţa on error permite detectarea unor erori de program, care în general ar fi
produs întreruperea execuţie acestuia şi trimiterea unui mesaj de eroare general, care
nu permite o depistare imediată a cauzei care a condus la eroare. Construcţia on
error permite chiar şi definirea unor mesaje de eroare clare, ce fac astfel mai facilă
depanarea programelor.
180
Programare în Mathcad
În figura 10-18 apare un program care calculează media elementelor pozitive ele unei
matrice. Dacă astfel de elemente nu există, se va ajunge la o împărţire cu zero. O astfel
de situaţie poate fi „stăpânită” prin utilizarea construcţiei „on error”. Se poate observa
că este posibilă şi generarea unui mesaj de eroare cât se poate de clar şi care se
„produce” numai când are loc împărţirea la zero.
181
Capitolul 10
Este posibilă generarea unui anumit mesaj de eroare şi prin utilizarea funcţiei error,
aşa cum se poate vedea mai jos, în figura 10-19.
Diferenţa este că de această dată funcţia nu se va executa, iar mesajul de eroare apare
numai atunci când se execută clic stânga pe numele funcţie (colorat în roşu, ca semn
de eroare).
182
Programare în Mathcad
10.6 Recursivitate
183
11 Calcul simbolic
Obiective
Număr de pagini 21
185
Capitolul 12
Una din cele mai spectaculoase facilităţi ale MathCAD, este posibilitatea de evaluare
simbolică a expresiilor. Spre deosebirea de evaluarea obişnuită care produce numai
rezultate strict numerice, evaluarea simbolică ştie să opereze cu simboluri, astfel încât
rezultatele înseşi ale evaluărilor simbolice conţin simboluri. Acestea sunt nume de
variabile, de constante predefinite, sau chiar de funcţii. În figura 11-1 sunt prezentate
doar câteva exemple de evaluări simbolice.
186
Animaţie în MathCAD
În alte situaţii, se va selecta numai numele unei variabile sau o subexpresie dintr-o
expresie, ca în exemplul din figura 11-3, care rezolvă simbolic o ecuaţie de gradul 2 :
Modul de
selectare
În acest din urmă caz, cursorul a fost pur şi simplu plasat în imediata vecinătate a
variabilei în raport cu care se va face calculul simbolic (aici găsirea soluţiilor ecuaţiei de
gradul 2 în x).
În general, modul cum se realizează selecţia ce precede calculul simbolic, este în acord
logic cu calculul. Este normal ca în cazul rezolvării simbolice a unei ecuaţii să se
specifice care să fie variabila care denumeşte necunoscuta, după cum dacă se doreşte
factorizarea unei expresii este logic să se selecteze toată expresia (ca în exemplele de
mai sus). Asupra acestor chestiuni se va reveni când vor fi prezentate mai pe larg
diferitele tipuri de calcul simbolic pe care MathCAD “ştie” să le facă.
Expresiile care pot fi evaluate simbolic pot fi scalare sau matriciale şi pot conţine
următorii operatori :
• Operatorii scalari şi matriceali +, -, *, /, putere (^), radical, conjugat, complex,
sumă, produs, derivare, integrare, transpusa şi determinantul unei matrice;
• Funcţiile trigonometrice, hiperbolice, inversele acestora, logaritmică,
exponenţială, Re, Im, erf, mod, max, min, identity, şi eigenvals pentru matrice;
• Nume de variabile şi constante, inclusiv constantele predefinite π, e, şi simbolul
infinit.
187
Capitolul 12
În cazul evaluărilor simbolice, rolul operatorului „=” este luat de operatorul de evaluare
simbolică „→”. Acesta, atunci când este folosit fără altă „indicaţie” explicită, întoarce o
versiune simplificată a expresiei (termenul „simplificată” având aici un înţeles foarte
larg. În general operatorul de evaluare simbolică se va utiliza ca atare în cazul
calculelor [simbolice] de integrale sau diferenţiale, aşa cum se poate vedea în
figura 11-4.
Operatorul de evaluare simbolică se foloseşte astfel:
• se selectează expresia de evaluat;
• se tastează combinaţia de taste CTRL + . (sau se foloseşte butonul de pe
bara de instrumente Symbolic – vezi figura 11-5);
• se punctează cu mouse-ul în afara expresiei sau se apasă tasta F9.
În figura 11-4 sunt prezentate fazele utilizării operatorului de evaluare simbolică.
188
Animaţie în MathCAD
Pentru evaluări simbolice mai „bine ţintite”, se vor utiliza cuvinte cheie (vezi § 11.2.2).
11.2.2 Evaluarea cu ajutorul operatorului de evaluare simbolică şi a
cuvintelor cheie
Pentru realizarea de evaluări simbolice de un anumit tip, se recomandă utilizarea
următoarei „tehnici”:
• se selectează expresia de evaluat;
• se tastează combinaţia de taste CTRL + SHIFT + . , sau se foloseşte
b.
a.
c.
Fig. 11-7 – Evaluarea simbolică cu cuvânt cheie
189
Capitolul 12
190
Animaţie în MathCAD
191
Capitolul 12
sau
substitute,var1
Înlocuieşte toate apariţiile variabilei var1 dintr-o expresie, cu o
=var2 subexpresie sau cu o altă variabilă. Expresia sau variabila de
înlocuire sunt simbolizate de parametrul var2. pentru semnul = se
192
Animaţie în MathCAD
convert,parfrac
Transformă o expresie într-o sumă de fracţii simple. Parametrul var
,var precizează variabila ce se va considera pentru determinarea fracţiilor
simple.
Exemple:
∫ f (t ) ⋅ e
−iωt
dt , unde f(t) este funcţia pentru care se determină
−∞
transformata Fourier.
Exemple:
193
Capitolul 12
invfourier, var
Calculează inversa transformării Fourier pentru o expresie, în raport
cu variabila var. Rezultatul este o funcţie de forma:
+∞
1
2π −∫∞
⋅ F (ω ) ⋅ eiωt dω , unde F(ω) este funcţia pentru care se
∫ f (t ) ⋅ e
− s ⋅t
dt , unde f(t) este funcţia pentru care se determină
0
transformata.
Exemple:
invlaplace, var
Calculează inversa transformării Laplace pentru o expresie, în raport
cu variabila var. Rezultatul este o funcţie de forma:
σ + i∞
1
⋅ ∫ F ( s ) ⋅ e s⋅t ds , unde F(s) este funcţia pentru care se
2 ⋅ π σ − i∞
determină transformata inversă.
Exemple:
194
Animaţie în MathCAD
∑ f ( n) ⋅ z
n =0
−n
, unde f(n) este funcţia pentru care se determină
transformata.
Exemple:
195
Capitolul 12
Sursă de semnal
continuu Eşantionator Cuantificator
x(t) xT(t) xd(t)
Dacă se notează cu x[n] semnalul numeric, relaţia folosită pentru calculul transformatei
Z este :
∞
X ( z ) = ∑ x[ n] ⋅ z − n
n =0
196
Animaţie în MathCAD
t
0 T 2T 3T nT
Fig. 11-11 – Rezolvarea simbolică a unui sistem folosind blocul Given – Fiind
197
Capitolul 12
Se mai face precizarea că pentru cuvântul cheie simplify, se mai poate folosi
modificatorul trig. Acesta va determina simplificarea expresiilor trigonometrice ţinând
cont numai de relaţiile:
sin 2 ( x) + cos 2 ( x) = 1
cosh 2 ( x) − sinh 2 ( x) = 1
11.2.4 Utilizarea succesivă sau simultană a mai multor cuvinte cheie
Este posibilă şi folosirea succesivă sau simultană a mai mult de un cuvânt cheie pentru
evaluările simbolice.
Utilizarea succesivă va permite vizualizarea rezultatelor intermediare, în vreme ce
utilizarea simultană va produce direct rezultatul final.
198
Animaţie în MathCAD
Tehnica de lucru pentru întrebuinţarea succesivă a mai multor cuvinte cheie este
următoarea:
1. Se scrie expresia de evaluat;
6. Se apasă ENTER pentru obţinerea noului rezultat, adică (în cazul exemplului
prezentat):
Dacă rezultatele intermediare nu interesează, se poate ajunge direct la cel final prin
utilizarea simultană a mai multor cuvinte cheie.
Modul de operare este următorul:
199
Capitolul 12
200
Animaţie în MathCAD
Modul de lucru pentru evaluările simbolice realizate cu ajutorul meniului Symbolic este
următorul:
• Se selectează expresia (o subexpresie, sau o variabilă, după caz);
• Se execută clic stânga pe câmpul din meniul Symbolic dorit.
Acest mod de lucru mai pune în evidenţă o deosebire între cele două modalităţi de
evaluare simbolică. În cazul meniului [Symbolic], prin posibilitatea de a selecta o
subexpresie sau o variabilă din componenţa expresiei de evaluat [simbolic] se pot
realiza evaluări simbolice mai „nuanţate”.
Meniul Symbolic pune la dispoziţia utilizatorului o serie de operatori de evaluare
simbolică specializaţi în calcul matriceal (unii din ei sunt disponibili şi în bara de
instrumente Symbolic).
În figurile 11-13 … 11-20 sunt prezentate câteva exemple de calcul simbolic utilizând
meniul Symbolic.
201
Capitolul 12
202
Animaţie în MathCAD
203
Capitolul 12
Rezultatul obţinut la evaluarea celei de a doua inegalităţi se poate încă prelucra, aşa
cum se poate vedea în figura 11-20.
b.
a.
c.
Fig. 11-20 – Prelucrarea suplimentară a rezultatului evaluării unei inegalităţi
De multe ori, evaluările simbolice produc rezultate „stufoase”, care ocupă mult spaţiu
(mai ales pe direcţie orizontală). Astfel de situaţii pot fi rezolvate prin utilizarea
operatorului de scindare a unei expresii pe două (sau mai multe) rânduri.
De altfel acest operator se poate folosi şi pentru scindarea pe mai multe rânduri a unei
expresii.
Se va proceda astfel:
204
Animaţie în MathCAD
1. Se execută clic stânga pe termenul din expresie care apare imediat înainte de
operatorul în dreptul căruia se va fragmenta expresia;
2. Se apasă tasta SPACE până când este selectată subexpresia din stânga
operatorului în dreptul căruia se va fragmenta expresia;
3. Se apasă tasta DEL;
4. Se apasă simultan tastele CTRL + ENTER;
Aceste faze sunt ilustrate în figura 11-21.
Uneori rezultatele sunt atât de lungi încât Mathcad propune de la bun început plasarea
acestora în CLIPBOARD. De aici el poate fi inserat printr-un procedeu de tip PASTE în
orice aplicaţie.
11.2.6 Controlul formatului rezultatelor simbolice
Poziţia rezultatelor evaluărilor simbolice în raport cu expresia iniţială, atunci când se
foloseşte meniul Symbolic, se stabileşte cu ajutorul câmpului Symbolic ⇒
Evaluation Style…. . În figura 11-22 se poate vedea caseta de dialog ce permite
alegerea poziţiei relative între rezultat şi expresia iniţială.
205
Capitolul 12
În figura 11-23 sunt prezentate efectele diferitelor setări din caseta de dialog
Evaluation Style.
206
Animaţie în MathCAD
12 Animaţie în MathCAD
Obiective
Număr de pagini 6
207
Capitolul 12
În MathCAD pot fi animate regiunile de tip expresie care realizează o evaluare (deci o
secvenţă de tip nume_variabilă =, sau nume_funcţie = , unde egalul este operatorul de
evaluare şi se obţine direct prin apăsarea tastei “=”), sau regiunile de tip grafic.
Animaţia presupune o succesiune de cadre (frame), redate cu o anumită cadenţă
(exprimată în cadre pe secundă). În MathCAD pentru a se putea realiza animarea unei
regiuni, este necesar ca regiunea respectivă să conţină variabila MathCAD numită
FRAME (scrisă cu majuscule). Înainte de a adăuga alte cometarii, se prezintă mai jos
un exemplu simplu de animaţie a unei regiuni ce realizează evaluarea unei variabile.
Vor fi detaliate etapele ce trebuie parcurse pentru realizarea animaţiei.
a : = FRAME
208
Animaţie în MathCAD
4. Se selectează regiunea de animat prin procedeul drag and drop, astfel încât
regiunea va fi încadrată de un dreptunghi desenat cu linie întreruptă. După
selecţie butonul Animate din caseta de dialog Animate, devine activ. În acest
moment se “apasă” butonul Animate.
În caseta Animate în zona centrală se vor derula cadrele (atâtea câte s-au
precizat în casetele de editare From şi To). La sfârşitul acestui proces pe ecran
209
Capitolul 12
Desigur acesta e un exemplu foarte simplu, dar ilustrează etapele de parcurs pentru
animarea unei regiuni dintr-un document MathCAD.
În continuare (vezi figura 12-3) se prezintă un alt exemplu, care realizează animarea
unui grafic. Nu vor mai fi furnizate detalii relative la etapele de parcurs pentru
realizarea animaţiei (identice cu cele trecute în revistă mai sus).
210
Animaţie în MathCAD
În exemplu s-a animat un grafic de tip Contour Plot. După cum se observă, în
expresia elementelor matricei ce va determina graficul apare şi variabila a, care a fost
definită anterior în funcţie de variabila FRAME. Aceasta ia valori între două limite
întregi (vezi casetele de editare From şi To din caseta de dialog Animate), iar
variabila a va lua valori neîntregi în intervalul FRAMEmin/10, FRAMEmax/10.
Odată creată o animaţie, ea se poate salva ca fişier *.avi. În acest fel animaţia poate fi
rulată cu orice aplicaţie care recunoaşte fişierele *.avi sau poate fi rulată în MathCAD
fără a fi nevoie să fie recreată. Pentru salvarea unei animaţii se vor parcurge etapele :
1. După ce animaţia a fost creată şi fereastra Animate este încă deschisă, se
“apasă” pe butonul Save As. Implicit animaţia este salvată în format *.avi.
2. Animaţiile sunt salvate în format *.avi comprimat (pentru economie de spaţiu
disc). Dacă se doreşte salvarea în format *.avi necomprimat sau dacă se
doreşte comprimarea cu altă metodă, se acţionează butonul Options… din
caseta de dialog Animate. Se deschide fereastra Compressor Options (vezi
figura 12-4), care permite utilizatorului să aleagă metoda de comprimare dorită,
precum şi calitatea comprimării.
211
Capitolul 12
Dacă butonul Configure… este activ, prin acţionarea lui se deschide fereastra
Configure (vezi figura 12-5), care permite utilizatorului să controleze parametrul
“Temporal Quality Ratio”, care controlează calitatea animaţiei.
Prin apăsarea lui se deschide o fereastră de tip Open File, cu ajutorul căreia
utilizatorul poate să aleagă fişierul *.avi pe care doreşte să-l ruleze. După alegerea
fişierului, fie prin acţionarea butonului Play ( ), fie prin acţionarea cursorului, se
212
Animaţie în MathCAD
poate rula animaţia integral, respectiv cadru cu cadru în direcţia dorită (înainte sau
înapoi).
Pentru o mai bună înţelegere a subiectului, se recomandă consultarea exemplelor din
secţiunea Animations din Quick Sheets.
213
13 Operatori personalizaţi
Obiective
Număr de pagini 3
215
Capitolul 13
13.1 Introducere
Aşa cum se pot defini în Mathcad funcţii, altele decât cele predefinite, tot aşa se pot
crea şi operatori, alţii decât cei predefiniţi. Aceştia vor fi numiţi în continuare,
[operatori] personalizaţi.
Procesul de definire a unui astfel de operator este asemănător cu cel de definire a unei
funcţii.
Din punctul de vedere al terminologiei, funcţiile au argumente, incluse între paranteze
şi, dacă sunt mai multe, separate prin virgulă. În cazul operatorilor, locul argumentelor
este luat de operanzi, care însă pot fi în număr de unu sau maxim doi.
Din punctul de vedere al poziţiei operatorului în raport cu operandul - în cazul
operatorilor cu un singur operand (pot fi numiţi şi operatori unari) - se poate vorbi
despre operatori de tip prefix, respectiv sufix.
În cazul operatorilor binari (cu doi operanzi), Mathcad poate crea operatori de tip
„infix”, respectiv arbore (tree).
În figura 13-1 sunt prezentate tipurile de operatori menţionate mai sus (este vorba
despre secvenţe de evaluare).
216
Operatori personalizaţi
217
14 Fişiere şablon (template)
Obiective
Număr de pagini 5
219
Capitolul 14
14.1 Introducere
Ca şi în cazul altor aplicaţii, Mathcad utilizează la deschiderea oricărui nou fişier, aşa
numitele şabloane, care transmit noului document o serie de caracteristici de formatare
(ce vor fi detaliate mai târziu), dar şi elemente de conţinut (expresii, text, antet şi/sau
subsol).
La deschiderea unui nou document Mathcad, dacă se utilizează câmpul File ⇒ New
(vezi figura 14-1), nu se deschide direct un nou document, ci se „ajunge” în caseta de
dialog New (vezi figura 14-2), cu ajutorul căreia se alege şablonul care va sta la baza
noului document.
Lista conţine şabloane predefinite (dar care pot fi modificate de orice utilizator), dar şi
şabloane create de utilizator, cum ar fi cel numit „sablon_1” (vezi figura 14-2).
220
Fişiere şablon (template)
221
Capitolul 14
222
Fişiere şablon (template)
câmpul File ⇒ New. Pentru aceasta se va utiliza butonul din dreapta lui (vezi
figura 14-5, zona marcată cu un cerc). Din lista ce se va deschide, se va alege şablonul
dorit.
223
Capitolul 14
224
15 Formatarea de pagină şi tipărirea
în Mathcad
Obiective
Număr de pagini 5
225
Capitolul 15
Mathcad oferă şi posibilitatea de a defini pentru pagini antete (headere) şi sau subsoluri
(footer) – după „modelul” mai degrabă al Excel-ului decât al Word-ului.
Pentru definirea şi configurarea unor astfel de secţiuni se va folosi câmpul Format ⇒
Header/Footers, care va conduce la caseta de dialog din figura 15-2.
Se vede că atât antetul cât şi subsolul pot fi împărţite în trei zone (Stănga-Left,
Centru-Center şi Dreapta-Right), că în oricare din aceste zone se pot insera câmpuri de
226
Formatarea de pagină şi tipărirea în Mathcad
tip nume document, data salvării, numărul de pagină, numărul total de pagini etc (vezi
zona Tools din caseta de dialog Header/Footer). Cu ajutorul butonului Format din
aceeaşi zonă, se poate controla aspectul câmpurilor de tip text, iar prin intermediul
butonului Image, se poate insera în oricare din secţiunile unui antet sau subsol un
fişier imagine.
Secţiunea Options permite stabilirea originii numărării paginilor (Start at page
number), sau prezenţa unui antet sau subsol diferit pentru prima pagină dintr-o suită
[de pagini]. Antetul (sau subsolul) diferite pentru prima pagină se vor controla cu
ajutorul secţiunilor Header-Page 1 sau Footer – Page 1, care nu apar decât atunci
când câmpul Different header and footer on first page este bifat, dar atenţie, dacă
din secţiunea Frame s-a ales prezenţa unui chenar în zona antetului sau subsolului,
acesta va fi desenat şi pentru prima pagină.
227
Capitolul 15
15.2 Tipărirea
Procesul de tipărire este declanşat şi controlat de caseta de dialog Print, deschisă prin
utilizarea câmpului File ⇒ Print (vezi figura 15-3).
Elementele ce pot fi controlate sunt suficient de clare şi din acest motiv nu vor fi
explicate.
Se va insista doar asupra modului de tipărire în cazul în care documentele Mathcad
conţin regiuni şi în dreapta liniei de demarcaţie ce sugerează marginea din dreapta a
foii de hârtie.
Controlul propriu zis se face cu ajutorul câmpului Print single page width, ce poate fi
regăsit în conţinutul casetei de dialog Page Setup (figura 15_1).
În figura 15-4 este prezentat un document Mathcad vizualizat cu factorul de mărire
50%. Se poate observa că apar şi o a doua, respectiv o a treia bară de demarcaţie
228
Formatarea de pagină şi tipărirea în Mathcad
verticală. Ar putea să se vadă şi mai multe dacă se alege un factor de vizualizare din ce
în ce mai mic.
Se pune problema cum se vor lista documente ce conţin regiuni şi în dreapta primei sau
celei de a doua bare de demarcaţie verticală (sau dincolo de una de ordin şi mai mare).
Pentru un astfel de document s-ar putea adopta schematizarea din figura 15-5. Astfel
Pagina 1_n se referă la documentul Mathcad de deasupra primei linii de demarcaţie
ORIZONTALÃ, Pagina 2_n se va referi la acea parte a documentului situată sub prima
linie de demarcaţie ORIZONTALÃ şi aşa mai departe. Pentru o mai bună înţelegere se
va urmări figura 15-5.
229
Capitolul 15
Astfel, dacă există bifă în dreptul câmpului Print single page width, se vor tipării
numai paginile 1_1 şi respectiv 2_1 (şi nu 1_2, respectiv 2_2).
Dacă bifa din dreptul câmpului Print single page width nu există, se vor tipării, în
ordine, paginile 1_1, 2_1, apoi 1_2 şi 2_2 (deci se tipăresc întâi paginile din stânga
primei linii de demarcaţie verticală).
230
16 Interpolarea şi extrapolarea
datelor. Metode de regresie.
Obiective
Număr de pagini 20
231
Capitolul 16
În cazul interpolării cu ajutorul curbelor spline, punctele sunt unite (evident imaginar)
cu arce de curbă splină. Curbele spline, sunt curbe polinomiale de grad k şi care asigură
continuitatea derivatelor de ordin k-1 în punctele de joncţiune între arcele de curbe
spline. Este evident că printr-un set de puncte, teoretic s-ar putea găsi o curbă
polinomială care să treacă prin toate punctele din set. Dacă punctele sunt numeroase şi
dispuse foarte neregulat, atunci dacă un asemenea polinom există el este de grad mare
(ceea ce presupune în ultimă analiză rezolvarea unor sisteme algebrice mari - cu număr
mare de ecuaţii şi necunoscute – pentru determinarea coeficienţilor polinomului). De
232
Interpolarea şi extrapolarea datelor. Metode de regresie.
aceea se preferă determinarea unor curbe care să treacă, fiecare, prin doar două
puncte, urmând ca pentru asigurarea “netezimii” curbei de interpolare (care nu trebuie
să aibă vârfuri sau puncte de întoarcere), pe întreg domeniul să se pună condiţii de
continuitate a derivatelor de ordin 1 şi eventual 2 în punctele de joncţiune. Rezultă
astfel un număr de necunoscute (coeficienţi) comparabil cu cel corespunzător unei
singure curbe de interpolare, dar ele vor rezulta prin rezolvarea succesivă a unui set de
sisteme algebrice de mici dimensiuni. Aceste arce de curbe sunt chiar curbele spline
despre care s-a făcut deja vorbire. În figura 16-2, se prezintă cazul interpolării cu arce
de curbă splină.
Se va detalia în continuare sintaxa specifică funcţiilor MathCAD specializate în
interpolare.
233
Capitolul 16
234
Interpolarea şi extrapolarea datelor. Metode de regresie.
0 1.254 .762 1.107 .809 1.21 .745 1.141 .915 1.045 .949
1.093 .845 1.054
Cele două fişiere pot fi pur şi simplu generate în Notepad. Se mai atrage atenţia asupra
necesităţii ca elementele din fişierul axa_x.dat să fie în ordine strict crescătoare şi
fireşte cele două fişiere să aibă exact acelaşi număr de elemente.
Citirea datelor din cele două fişiere se poate face utilizând componenta de tip File
Read or Write (Text Files).
Documentul MathCAD va arăta ca în figura 16-3.
Pentru o şi mai bună înţelegere, s-au reprezentat grafic în figura 16-4, atât punctele
corespunzătoare valorilor yi, cât şi graficele celor 4 curbe de interpolare.
Se poate observa că între cele 4 curbe există diferenţe notabile, lucru remarcat şi din
analiza valorilor interpolate pentru abscisa x=2. Aceste diferenţe tind să fie mai mari la
235
Capitolul 16
236
Interpolarea şi extrapolarea datelor. Metode de regresie.
237
Capitolul 16
tipuri de interpolare sunt mai mari decât în cazul punctului al doilea, situat mai spre
interiorul domeniului.
În partea a doua a documentului se realizează discretizarea domeniului de interpolat,
prin definirea unei grile de 4 ori mai deasă decât cea iniţială. Deci dacă iniţial pe x şi y
se defineau câte 6 puncte, acum pe aceleaşi direcţii se vor defini câte 24, deci între
două puncte succesive ale grilei iniţiale, după o direcţie, se vor găsi încă 3 puncte
pentru care se va realiza de fapt interpolarea. Altfel spus, dacă iniţial matricea Mz avea
6x6=36 valori, după interpolare matricele notate FIT_s, FIT_p sau FIT_l, vor avea
fiecare câte 24x24=576 valori.
În faza finală s-a realizat reprezentarea grafică atât a suprafeţei iniţiale (Mz), cât şi a
celor obţinute prin cele trei metode de interpolare. La dimensiunea la care s-a realizat
reproducerea reprezentărilor grafice (impusă de considerente de spaţiu), diferenţele
între cele trei grafice nu sunt prea uşor detectabile. Dacă însă vor fi crescute – în
documentul MathCAD creat de utilizator - dimensiunile graficelor (prin tehnica drag
and drop), diferenţele vor începe să se vadă cu claritate.
În figura 16-6, sunt prezentate cele 4 grafice, unul al suprafeţei originale (descrisă de
matricea Mz) şi celelalte 3, corespunzând suprafeţelor obţinute prin interpolare, cu una
din metodele (funcţiile) descrise mai sus.
238
Interpolarea şi extrapolarea datelor. Metode de regresie.
239
Capitolul 16
240
Interpolarea şi extrapolarea datelor. Metode de regresie.
241
Capitolul 16
242
Interpolarea şi extrapolarea datelor. Metode de regresie.
243
Capitolul 16
244
Interpolarea şi extrapolarea datelor. Metode de regresie.
Exemplu:
Să se realizeze regresia polinomială pentru un set de date reţinut într-un fişier de date,
sub forma unei matrice cu două coloane. În prima [coloană] se găsesc valorile de pe
abscisă, iar în a doua cele de pe ordonată. După citirea fişierului (numit în exemplu
“date[.prn]), sunt extrase cu ajutorul operatorului CTRL+^, coloanele pentru definirea
vectorilor X şi Y. Urmează utilizarea funcţiilor regress, loess şi interp, precum şi
reprezentarea grafică a datelor iniţiale, precum şi a celor interpolate.
Structura fişierului date.prn este următoarea :
0 9.1
1 7.3
2 3.2
3 4.6
4 4.8
5 2.9
6 5.7
7 7.1
8 8.8
În prima coloană sunt precizate valorile lui x (sau vx, aşa acum apare în sintaxa
funcţiei), iar în a doua coloană apar valorile lui y (sau vy).
Fişierul MathCAD care realizează aplicaţia este prezentat în figura 16-9.
245
Capitolul 16
În figura 16-10 sunt prezentate punctele (Yi) precum şi datele obţinute prin regresie.
246
Interpolarea şi extrapolarea datelor. Metode de regresie.
În figura 16-11 este prezentat graficul polinomului de interpolare p_int(x), aşa cum a
fost el definit după extragerea în vectorul coef a coeficienţilor din vectorul vs şi
înmulţirea cu vectorul ce conţine puterile în ordine crescătoare ale variabilei x.
247
Capitolul 16
248
Interpolarea şi extrapolarea datelor. Metode de regresie.
linfit (vx, vy, F) - funcţia întoarce un vector care conţine coeficienţii ai din
relaţia de mai sus. Vectorii vx şi vy definesc setul de date analizat şi trebuie să
aibă acelaşi număr de elemente. În plus, elementele lui vx trebuie să fie în
ordine crescătoare. F este un vector care conţine setul de funcţii fi. F şi vx sau
vy NU trebuie –în mod obligatoriu - să aibă acelaşi număr de elemente.
Exemplu:
Să se aproximeze setul de date utilizat în exemplul de la regresia polinomială (datele
249
Capitolul 16
1
f _ comb( x) = 0.684 ⋅ x + 0.909 ⋅ sin( x) + 9.16 ⋅ + 3.587 ⋅10 −4 ⋅ e x
x +1
În figura 16-12 se poate vedea cum ar arăta un document Mathcad care determină
combinaţia liniară de funcţii ce aproximează un se t de date.
Pentru funcţia f_comb(x) obţinută s-a trasat graficul, suprapus peste valorile
neprelucrate Yi(Xi).
250
Interpolarea şi extrapolarea datelor. Metode de regresie.
251
Capitolul 16
să aproximeze cu eroare minimă un set de date. Funcţia care realizează calculul acestor
parametri se numeşte genfit, iar sintaxa ei este prezentată mai jos.
• genfit (vx, vy, vg, F) – funcţia întoarce parametrii din definiţia funcţiei de
aproximare, care minimizează eroarea de aproximare a setului de date
precizat de vectorii vx şi vy, cu funcţia F.
• Vectorul vg are dimensiunea egală cu numărul de parametrii necunoscuţi
din componenţa definiţiei funcţiei F şi reprezintă a valoare de start în
procesul de determinare a acestor parametri (guess value).
• Funcţia F, este tot un vector şi conţine definiţia funcţiei de aproximare,
precum şi derivatele acesteia în raport cu parametrii din relaţia de definiţie.
Deci dacă definiţia funcţiei de aproximare conţine n parametri, vg va avea
dimensiunea n, iar F va avea dimensiunea n+1.
Exemplu:
Să se aproximeze setul de date de la exemplul precedent, folosind metoda funcţiei
arbitrare.
Se va prezenta structura documentului MathCAD fără să se reia citirea datelor din
fişierul date.prn sau extragerea vectorilor X şi Y.
Pentru funcţia arbitrară s-a ales expresia :
2
+ a2 ⋅(1+ x ) 0.8
f ( x) = e a0 ⋅ x + a1 ⋅ x
Documentul MathCAD arăta ca în figura 16-14.
252
Interpolarea şi extrapolarea datelor. Metode de regresie.
În cea de a doua parte a documentului MathCAD (vezi fig 16-15), s-a realizat
reprezentarea grafică, atât a datelor neprelucrate (Yi/Xi), cât şi a funcţiei f(x), care
aproximează setul de date.
Trebuie menţionat că rezultatul depinde de valorile de start pentru coeficienţii ai şi
pentru anumite valori, diferenţele între soluţii pot fi chiar notabile. Din acest motiv se
recomandă să se realizeze determinarea lui f(x) pentru câteva valori ale lui vg şi să se
reţină soluţia care aproximează cel mai bine setul de date.
Se recomandă de asemenea reluarea exemplului de mai sus pentru altă formă a
funcţiei f(x), eventual chiar cu mai mulţi parametri.
Rezultatele se vor reprezenta pe acelaşi grafic pentru o mai bună comparare.
253
Capitolul 16
254
17 Prelucrarea semnalelor - Analiza
Fourier
Obiective
Număr de pagini 10
255
Capitolul 17
Există situaţii când este utilă analiza semnalelor atât în domeniul timpului cât şi în cel al
frecvenţei. Analiza circuitelor electronice, prelucrarea şi interpretarea rezultatelor unor
măsurări (de vibraţii de exemplu), impun realizarea trecerii semnalelor din domeniul
timpului în cel al frecvenţei. Deşi pare o complicaţie în plus, această transformare
permite evidenţierea unor caracteristici ale unor fenomene fizice, foarte greu sau chiar
imposibil de decelat printr-o analiză în domeniul timpului (fenomenele de rezonanţă de
exemplu).
În MathCAD trecerea din domeniul timpului în cel al frecvenţei se poate realiza fie cu
ajutorul calculului simbolic (se realizează calcului integralei Fourier) dacă se cunoaşte
expresia analitică a semnalului în domeniul timpului, fie prin utilizarea funcţiilor
specializate pentru realizarea transformării Fourier discrete, pentru cazul în care
semnalul în domeniul timpului este cunoscut sub forma unui set finit de perechi de
valori (timp, semnal).
În esenţă, “imaginea” obţinută printr-o transformare Fourier, “dezvăluie” conţinutul de
frecvenţe al unui semnal pentru care se cunoaşte “imaginea” în domeniul timpului.
256
Prelucrarea semnalelor - Analiza Fourier
În expresia din partea dreaptă apare funcţia Dirac. Având în vedere proprietăţile
acesteia ( Dirac( x) = 0 daca x ≠ 0 ), se poate ajunge la o expresie mai simplă şi
anume:
257
Capitolul 17
−i i
f (ω ) := + ⋅ e −i⋅d ⋅ω
ω ω
Reprezentarea grafică a acestui rezultat este prezentată în figura 17-3. S-a realizat
reprezentarea grafică a modulului transformatei (care este o funcţie complexă). În plus
este de remarcat simetria pe care o afişează transformata în raport cu originea. În
general interesează numai tronsonul pe abscise pozitive.
În multe situaţii, este de interes să se realizeze şi reprezentarea părţii imaginare şi a
celei reale a transformatei, sau chiar să se reprezinte partea imaginară funcţie de cea
reală [a transformatei].
Analiza imaginilor de tipul figurii 17-3, pun în evidenţă conţinutul de frecvenţe al
semnalului analizat. În cazul concret al exemplului, semnalul este “bogat” în frecvenţe
în domeniul 0-4 Hz.
Se recomandă reluarea calculului transformatei pentru diferite valori ale parametrului d,
pentru a se pune în evidenţă influenţa duratei semnalului asupra conţinutului de
frecvenţe al imaginii obţinută prin calculul integralei Fourier.
258
Prelucrarea semnalelor - Analiza Fourier
Deşi aparent rezultatul nu seamănă cu funcţia f(t), aşa cum a fost ea definită mai sus,
o simplificare simbolică (ce va ţine cont de proprietăţile funcţiei Φ(x)), va produce exact
rezultatul f (t ) = Φ (t ) − Φ (t − d ) .
259
Capitolul 17
1
fc =
2 ⋅ ∆t
Altfel spus, dacă semnalul are o durată finită în timp şi eşantionarea s-a făcut la
intervale de 0.01 secunde, transformata Fourier va acoperi domeniul [-50, 50] Hz.
Pentru a acoperi un domeniu mai întins, trebuie ca eşantionarea să fie mai fină, deci
semnalul să fie înregistrat la intervale de timp mai mici.
Dacă semnalul analizat nu are o durată limitată în timp, se spune că nu este limitat nici
în frecvente (nu este “bandwidth limited”), astfel că dacă se realizează eşantionarea la
intervale de timp ∆t, componentele în frecvenţele din afara domeniului [-fc, fc], sunt
translatate în mod fals în intervalul [fc fc].
Fenomenul poartă numele de “aliasing” şi produce asupra transformatei Fourier efectul
prezentat în figura 17-5.
Transformata Fourier
afectată de aliasing
260
Prelucrarea semnalelor - Analiza Fourier
fft(v) elemente.
Elementul de ordin j este dat de relaţia :
2π j
1 i( )k
cj = ⋅ ∑ vk ⋅ e n
n k
n k
261
Capitolul 17
Pentru toate aceste transformări directe, există şi transformările inverse, după cum
urmează :
fft(v) ↔ ifft(u)
cfft(A) ↔ icfft(B)
FFT(v) ↔ IFFT(u)
CFFT(A) ↔ ICFFT(B)
• Atât fft cât şi cfft întorc vectori ale căror elemente sunt complexe
• Pentru a determina spectrul de frecvenţe acoperit de transformare este
necesară cunoaşterea următoarelor elemente :
- Frecvenţa de eşantionare a semnalului original fs=1/∆t
- Numărul de eşantioane considerate, N
În aceste condiţii, frecvenţa asociată cu elementul j al transformatei este :
j
ck = ⋅ fs
N
Pentru a evita fenomenul de “aliasing”, trebuie ca frecvenţa de eşantionare să fie mai
mică decât frecvenţa Nyquist, deci :
1
fs < fc =
2 ⋅ ∆t
Funcţiile fft şi FFT, produc spectre de frecvenţă simetrice în raport cu originea, astfel
că nu este necesar decât calculul primei jumătăţi a spectrului. Aceasta este explicaţia
faptului că vectorul întors de fft are jumătate din numărul de elemente al vectorului
original. Funcţia inversă ifft, reconstruieşte semnalul ţinând cont şi de jumătatea de
spectru simetrică.
Având în vedere că funcţiile fft şi cfft (ca şi FFT sau CFFT) întorc vectori complecşi, se
poate calcula şi informaţia de fază prin utilizarea operatorului de vectorizare (CTRL + -)
262
Prelucrarea semnalelor - Analiza Fourier
Exemplu:
Să se obţină spectrul de frecvenţe “conţinut” de un semnal pentru care se cunoaşte
dependenţa de timp. Datele de lucru sunt reţinute în două fişiere, situate în directorul
curent de lucru MathCAD, cu numele timp.dat, respectiv semnal.dat. datele din cele
două fişiere sunt prezentate mai jos (separarea s-a făcut aici cu semnul “/”, dar evident
în fişierul *.dat, fiecare valoare se găseşte pe un rând) :
Fişierul t_2m_ext.dat :
0/2.176/4.118/6.412/8.353/10/12.47/14.706/16.765/18.824/20.882/22.647/24.
706/26.882/28.941/31/33/35.294/36/40/41.27827/43.33727/45.39626/47.455
2/49.51426/51.57325/53.63225/55.69125/58.75024/59.80924/63.86824/64.92
724/65.98623/68.04523/70.10423/72.16322/74.22222/76.28122
Fişierul f_2m_ext.dat :
0/.018/.092/1.443/.832/1.09/.8/1.243/.714/1.253/.832/1.062/.956/1.075/.79/1
.085/.924/1.022/1.0/1.0/1.022/.924/1.085/.79/1.275/.656/1.362/.732/1.253/.7
14/1.543/.8/1.4/.832/1.243/.092/.018/0
Structura fişierului MathCAD care rezolvă problema este detaliată (cu comentarii
intercalate) în figura 17-6:
Se va utiliza pentru transformarea Fourier directă funcţia fft, care are nevoie ca
argumente de vectori cu 2m elemente (m>2), iar vectorii x şi y au numai 38 de
elemente. Va fi necesară o “îndesire” a elementelor celor doi vectori şi acest lucru se va
realiza prin interpolarea liniară a lui x şi y.
263
Capitolul 17
264
Prelucrarea semnalelor - Analiza Fourier
265
Capitolul 17
266
18 Probleme de valori şi vectori
proprii
Obiective
Număr de pagini 7
267
Capitolul 18
A⋅ x = z ⋅ x (1)
det A − z ⋅ I = 0 (2)
268
Probleme de valori şi vectori proprii
Aşa cum s-a spus mai sus, dacă x este vector propriu al unei matrice, atunci şi αx va fi
vector propriu. Multiplicatorului α i se pot atribui valori astfel încât vectorii proprii să
aibă anumite proprietăţi, cum ar fi :
• suma pătratelor modulelor componentelor vectorului este egală cu unitatea;
• suma modulelor componentelor vectorului este egală cu unitatea;
• componenta vectorului cu cea mai mare valoare este egală cu unitatea;
• componentele vectorului sunt ortogonalizate. Se spune că doi vectori proprii
sunt ortogonali în raport cu o matrice, dacă este satisfăcută o relaţie de tipul :
1, daca i = j
α i ⋅ xiT ⋅ M ⋅α j ⋅ x j = , unde (4)
0, daca i ≠ j
xi şi xj sunt vectorii proprii consideraţi.
În afară de relaţia (1), problemele de valori şi vectori proprii se mai pot prezenta şi sub
forma unei relaţii de tipul :
x⋅ A = z ⋅x (5)
Dacă în primul caz - relaţia (1) - se obţineau vectorii proprii la dreapta, în cazul relaţiei
(5) se obţin vectorii proprii la stânga.
Prelucrarea relaţiilor (1) şi (5), permite enunţarea următoarelor propoziţii :
• vectorii proprii la stânga sunt transpuşii vectorilor proprii la dreapta ai matricei
transpuse;
• valorile proprii la stânga şi la dreapta sunt egale.
•
A⋅ x = z⋅ B ⋅ x (6)
( B −1 ⋅ A) ⋅ x = z ⋅ x
(7)
269
Capitolul 18
( A ⋅ λ2 + B ⋅ λ + C ) ⋅ x = 0 (8)
MathCAD poate rezolva primele două tipuri de probleme de valori şi vectori proprii (nu
ştie să rezolve direct problemele de valori şi vectori proprii neliniari). Pentru cazul
vectorilor proprii neliniari se recomandă liniarizarea problemei.
Funcţiile MathCAD specializate pentru rezolvarea acestui tip de probleme sunt:
Exemplu:
Să se citească dintr-un fişier de date două matrice astfel: în fişier este reţinut un tablou
cu 5 linii şi 10 coloane. Primele 5 coloane vor defini prima matrice – fie ea notată cu M
– iar ultimele 5 coloane vor defini cea de a doua matrice – fie ea notată cu N. După
separarea celor două matrice, se vor calcula valorile şi vectorii proprii ai matricei M,
270
Probleme de valori şi vectori proprii
pentru problema de valori şi vectori proprii clasică, iar în a doua etapă, se vor calcula
valorile şi vectorii proprii asociaţi problemei generalizate de valori şi vectori proprii
pentru matricele M şi N.
Fişierul de date va avea următorul conţinut :
6 12 8 4 0 4 8 12 16 2
2 -7 10 5 1 5 10 15 6 -5
4 18 2 6 0 6 12 1 24 -3
-2 21 -4 7 -1 7 14 21 8 5
3 24 16 8 0 8 16 24 6 0
Un astfel de fişier se poate obţine cu ajutorul unui editor ASCII cum ar fi Notepad.
Structura fişierului MathCAD care rezolvă problemele enunţate mai sus este redată în
continuare în figura 18-1. În exemplu numele fişierului structurat din care se face
citirea este v_p.prn, dar este evident că se poate folosi şi un alt nume. Ceea ce este
important este ca fişierul să se găsească în directorul de lucru al MathCAD.
Se atrage atenţia asupra necesităţii de se seta variabila MathCAD ORIGIN pe
valoarea 1.
Se mai atrage atenţia asupra modalităţilor de notare a indicilor, deoarece în documentul
MathCAD prezentat se folosesc şi notaţiile cu indice de ordonare (operatorul [), dar şi
cele cu indice de identificare (operatorul .).
271
Capitolul 18
272
Probleme de valori şi vectori proprii
Se atrage atenţia că figurile 18-1 şi 18-2 surprind zone ale unui singur fişier Mathcad.
Aceasta explică de exemplu prezenţa notaţiei z1 în figura 18-2 (e vorba despre primul
element al vectorului z determinat pe parcursul figurii 18-1).
În ceea ce priveşte rezolvarea problemei generalizate, documentul MathCAD va avea
structura prezentată în figura 18-3.
273
Capitolul 18
274
Bibliografie
1. Borse G. J., Numerical methods with Matlab : a resource for scientists and
engineers, PWS Publishing Company, Boston, 1997
2. Broch J. T., Mechanical vibration & shock measurement, Bruel & Kjaer 1980
3. Carnahan B., Luther H., Wilkes O., Applied numerical methods, John Wiley, New
York, 1969
4. Constantinescu I., Golumbovici, D., Militaru, C., Prelucrarea datelor experimentale
cu calculatoare numerice, Editura Tehnică Bucureşti, 1980
5. Conte S. D., Elementary numerical analysis, McGraw Hill, New York, 1965
6. Ewins D. J., Modal testing : Theory and practice, John Wiley & Sons, 1984
7. Ghinea M., Fireţeanu S., Matlab, Calcul numeric-Grafică. Aplicaţii, Editura Teora
Bucureşti, 1995
8. Ionescu D. V., Ecuaţii diferenţiale şi integrale, Editura Didactică şi Pedagogică,
Bucureşti, 1972
9. Ingham P., CAD systems in mechanical and production engineering, Heinemann
Newns, London, 1989
10. McMahon Ch., Browne J., CAD-CAM-From principles to practice, Addison Wesley
1993
11. Nicolescu L. J., Stoka M. I., Matematici pentru ingineri, Editura Tehnică, Bucureşti,
1969
12. Pascariu I., Elemente Finite, Concepte-Aplicaţii, Editura Militară, Bucureşti, 1985
13. Press W., Teukolsky S., Vetterling W., Flannery B., Numerical recipes in C -The art
of scientific computing, Cambridge University Press, Cambridge, 1992
14. Rumşiski I. Z., Prelucrarea matematică a datelor experimentale, Editura Tehnică
Bucureşti, 1974
15. Rus I. A., Micula Ghe., Pavel P., Ionescu B., Probleme de ecuaţii diferenţiale şi cu
derivate parţiale, Editura Didactică şi Pedagogică, Bucureşti, 1982
16. Sandi H., Metode matriciale în mecanica structurilor, Editura Tehnică, Bucureşti,
1975
275
Capitolul 18
17. Trandafir R., Probleme de matematici pentru ingineri, Editura Tehnică, Bucureşti,
1977
18. **** Documentaţie Mathcad
276