Sunteți pe pagina 1din 396

EDITURA UNIVERSITĂŢII ”TRANSILVANIA” DIN BRAŞOV

2004
EDITURA UNIVERSITĂŢII ”TRANSILVANIA” DIN BRAŞOV

2004
PREFAŢĂ

De la pachetele de programe dedicate rezolvării numerice a unor clase de probleme de


natură matematică ca: Turbo Numerical Methods Toolbox, Borland International, Inc. apărute cu
mai bine de cincisprezece ani în urmă, sau altele scrise în Fortran, deja funcţionale în anii 70,
până la ultimele medii matematice de uz general: Mathcad 11, Matlab 6.5.1, Maple 9.0 şi
Mathematica 5, complexitatea acestor produse a crescut spectaculos. După o evoluţie care
depăşeşte un deceniu cele patru, dominante pe piaţa software-ului matematic, au ajuns la
maturitate. Cu mici deosebiri acestea au următoarele caracteristici: sunt medii de dezvoltare
complete; efectuează calcule numerice şi simbolice; posedă biblioteci foarte bogate de funcţii
predefinite care sunt şi extensibile; sunt dotate cu instrumente de vizualizare a datelor în 2D, 3D
şi animaţii; posedă instrumente de programare relativ puternice; sunt integrate complet Windows
şi cu medii de programare, proiectare uzual utilizate în inginerie; sunt integrate Web; oferă
suport MathML; prin intermediul unor add-on-uri li se măreşte funcţionalitatea (în general sunt
disponibile zeci de add-on-uri care conţin funcţii specializate pentru rezolvarea problemelor
inginereşti sau de altă natură); au module specializate pentru modelarea şi simularea sistemelor
dinamice complexe; oferă suport pentru achiziţii de date; au capacitatea de a produce şi compila
cod C.
Dintre acestea, Mathcad se remarcă prin gradul înalt de ergonomicitate intelectuală,
versatilitate şi completitudine, caracteristici care ne-au determinat să-l alegem ca mediu de
implementare a aplicaţiilor efectuate de studenţii anilor II la disciplina Informatică Aplicată în
Inginerie II, existentă în planurile de învăţământ ale specializărilor Tehnologia Construcţiilor
de Maşini, Productică şi Construcţii Aeronave. Având în vedere caracteristicile enumerate
mai sus, considerăm că Mathcad este mediul matematic ideal pentru un începător în domeniu,
care nu are cunoştinţe profunde nici în domeniul matematicii, nici în cel al informaticii.

Lucrarea este structurată în trei părţi: “Fundamente”, ”Aplicaţii”, ”Managementul datelor


şi programelor în Mathcad 2001”. În mare, autorul celei de a doua părţi este C. Morariu, iar al
celorlalte două T.Păunescu.

În prima parte sunt abordate fundamentele Mathcad 2001: este prezentat IDE; foia de
lucru; operarea cu regiunile matematice şi text; lucrul cu unităţile de măsură; operatorii şi
funcţiile predefinite destinate: calculelor numerice, vectorilor şi matricelor, şirurilor de caractere,

3
reprezentărilor grafice 2D şi 3D, obiectelor şi fişierelor imagine; programarea în Mathcad 2001;
efectuarea calculelor simbolice.

Partea a doua se concentrează pe aplicaţii la nivelul cunoştinţelor studenţilor cu


profilurile inginerie tehnologică, inginerie mecanică din anii I, II şi tratează: precizia calculelor
iterative; rezolvarea ecuaţiilor şi sistemelor; optimizări prin programare matematică; interpolări
şi regresii; rezolvarea ecuaţiilor diferenţiale, calcule în complex, combinatorică, statistică şi
probabilităţi. Pentru cele mai importante funcţii sunt prezentate şi metodele numerice utilizate.

Ultima parte se ocupă de managementul datelor şi programelor în Mathcad 2001:


schimbul de date apelând la componente; accesarea Mathcad din altă aplicaţie care are suport
OLE2; referinţe; hyperlink-uri.

Pentru stăpânirea complexităţii şi o asimilare cât mai eficientă a numeroaselor funcţii,


comenzi, autorii au marcat informaţia esenţială cu simbolul E asociat de obicei capitolului sau

subcapitolului. Detaliile neesenţiale sunt marcate cu Suplimentar, indicaţiile care au efecte

benefice asupra calităţii aplicaţiei sunt marcate cu Sugestie, procedurile care măresc
productivitatea cu Rapid.

Am păstrat, în mare, succesiunea logică a capitolelor propusă de versiunile originale ale


manualelor utilizatorilor pentru Mathcad 7.0 ... 2001, cu unele modificări cum ar fi: programarea
a fost plasată în partea I deoarece noi o considerăm esenţială pentru abordarea unor probleme
care depăşesc nivelul elementar; nu am detaliat mediul vizual MathConnex din două motive:
avem rezerve asupra eficienţei lui în comparaţie cu alte medii similare, nu prezintă interes pentru
cititorii cărora le este adresată lucrarea.

În general, au fost cuprinse toate informaţiile necesare însuşirii Mathcad 2001 la nivelul
segmentului de cititori amintit mai sus. Astfel am asociat un glosar conţinând de termeni de
informatică, generali şi specifici mediilor matematice, adresele surselor de informare de pe web.

În final, recomandăm lucrarea studenţilor secţiilor de inginerie şi în special celor având


specializările: Tehnologia Construcţiilor de Maşini, Productică şi Construcţii Aeronave ca şi
tuturor celor care nu au mai abordat un mediu matematic şi care intenţionează să folosească
Mathcad 2001 pentru aplicaţiile matematice, în proiectele tehnice, în cercetare şi în activitatea
didactică.

primăvara anului 2004 Autorii

4
CUPRINS
PARTEA I
FUNDAMENTE MATHCAD 2001

1. MEDII DE PROGRAMARE MATEMATICE ................................................................. 13


2. MATHCAD 2001 PREZENTARE GENERALĂ ............................................................. 17
2.1 Prezentare generală .................................................................................................... 17
2.2 Desktop-ul Mathcad 2001 .......................................................................................... 19
2.3 Help-ul şi alte surse de documentare ......................................................................... 23
2.3.1. Utilizarea Help-ului........................................................................................... 23
2.3.2. Resource Center ................................................................................................ 24
2.3.3. Cărţile electronice ............................................................................................. 25
2.3.4. Alte surse de documentare .............................................................................. 25
2.4 Principii de lucru şi elemente de operare în Mathcad................................................ 25
2.4.1. Principii de lucru............................................................................................... 25
2.4.2. Elemente de operare în Mathcad........................................................................ 26
2.4.2.1. Editarea regiunilor în Mathcad .............................................................. 26
2.4.2.2. Operaţii elementare în regiunile matematice ......................................... 30
3. FOAIA DE LUCRU .......................................................................................................... 36
3.1 Modelul foii de lucru ................................................................................................. 36
3.1.1. Deschiderea unei noi foi de lucru ...................................................................... 36
3.1.2. Modificarea unui model ..................................................................................... 37
3.2 Setarea layout-ului foii de lucru ................................................................................ 37
3.2.1. Setarea dimensiunii foii de lucru, orientării, marginilor.................................... 38
3.2.2. Separatorii foii de lucru...................................................................................... 38
3.2.3. Antete şi subsoluri.............................................................................................. 38
3.3 Finisarea aspectului foii de lucru ............................................................................. 40
3.3.1. Alinierea regiunilor ............................................................................................ 40
3.3.2. Separarea regiunilor suprapuse .......................................................................... 40
3.3.3. Introducerea, ştergerea de linii libere................................................................. 41
3.3.4. Modificarea culorii fondului foii de lucru, regiunilor........................................ 42
3.4 Structurarea regiunilor .............................................................................................. 42
3.4.1. Inserarea unui bloc de regiuni............................................................................ 43
3.4.2. Proprietăţile blocului de regiuni......................................................................... 43
3.4.2.1 Ascunderea conţinutului (contractarea) blocului de regiuni................... 43
3.4.2.2. Relevarea conţinutului (expandarea) blocului de regiuni ...................... 44
3.4.2.3. Încuierea blocului de regiuni ................................................................. 44
3.4.2.3. Setări grafice ale blocurilor de regiuni .................................................. 45
4. OPERAREA CU REGIUNILE MATEMATICE ŞI TEXT .............................................. 46
4.1 Lucrul cu regiunile matematice ................................................................................ 46
4.1.1. Numerele în Mathcad ......................................................................................... 46
4.1.1.1. Numere definite de utilizator ................................................................. 46
4.1.1.2. Constante matematice predefinite.......................................................... 47
4.1.2. Nume de variabile şi de funcţii .......................................................................... 48
4.1.2.1. Nume predefinite de variabile şi de funcţii............................................ 48
4.1.2.2. Nume definite de utilizator ale variabilelor şi funcţiilor ....................... 49
4.1.3. Construirea şi editarea expresiilor...................................................................... 49
4.1.3.1. Construirea expresiilor........................................................................... 49

5
4.1.3.2. Editarea expresiilor ............................................................................... 52
4.1.4. Stilurile regiunilor matematice........................................................................... 56
4.1.4.1. Editarea stilului regiunilor matematice.................................................. 56
4.1.4.2. Definirea stilului utilizatorului .............................................................. 56
4.1.5. Formatarea rezultatelor ...................................................................................... 57
4.1.5.1. Formatarea unui rezultat ........................................................................ 57
4.1.5.2. Formatarea tuturor rezultatelor .............................................................. 60
4.1.6. Definiri locale, globale, modul de procesare a foii de lucru ............................. 61
4.1.6.1. Definiri locale ....................................................................................... 61
4.1.6.2. Definiri globale..................................................................................... 61
4.1.6.3. Modul de procesare a foii de lucru ....................................................... 61
4.1.7. Efectuarea calculelor numerice în Mathcad ....................................................... 62
4.1.7.1. Controlul desfăşurării calculelor............................................................ 62
4.1.7.2. Efectuarea calculelor iterative ............................................................... 63
4.1.7.3. Recursivitatea în Mathcad ..................................................................... 64
4.1.7.4. Mesaje de eroare în calcule numerice.................................................... 65
4.2. Lucrul cu regiunile text.............................................................................................. 66
4.2.1. Editarea textelor............................................................................................... 66
4.2.1.1. Crearea unei regiuni text........................................................................ 66
4.2.1.2. Controlul lăţimii regiunii text ................................................................ 67
4.2.1.3. Controlul suprapunerii cu alte regiuni, marcarea cu culoare de fond şi
bordurarea ........................................................................................................... 67
4.2.1.4. Căutarea şi înlocuirea unor caractere din regiuni text ........................... 67
4.2.1.5. Verificarea corectitudinii scrierii cuvintelor (spell checking) ............... 68
4.2.2. Formatarea textelor .......................................................................................... 69
4.2.3. Stiluri ale regiunilor text .................................................................................. 70
5. UNITĂŢI DE MĂSURĂ .................................................................................................. 71
5.1 Ataşarea unităţilor de măsură .................................................................................... 71
5.2 Conversia unităţilor.................................................................................................... 72
5.3 Definirea de noi unităţi .............................................................................................. 72
5.4 Redenumirea unităţilor .............................................................................................. 73
5.5 Observaţii privitoare la lucrul cu unităţile de măsură................................................ 73
6. OPERATORI ŞI FUNCŢII PREDEFINITE UTILIZAŢI ÎN CALCULE NUMERICE .. 75
6.1 Operatori .................................................................................................................... 75
6.1.1. Lucrul cu operatorii Mathcad .......................................................................... 75
6.1.1.1. Modificarea aspectului operatorilor....................................................... 75
6.1.1.2. Definirea de noi operatori ...................................................................... 75
6.1.2. Operatori aritmetici şi booleeni ....................................................................... 77
6.1.3. Operatori pentru sume şi produse ................................................................... 77
6.1.3.1. Sume, produse cu index unitar............................................................... 77
6.1.3.2. Sume, produse cu index neunitar........................................................... 78
6.1.3.3. Sume, produse cu condiţie logică asociată ............................................ 78
6.1.4. Operatori pentru derivare................................................................................. 78
6.1.4.1. Derivarea numerică................................................................................ 78
6.1.4.2. Operatori pentru derivarea numerică ..................................................... 82
6.1.5. Operatori pentru integrare................................................................................ 86
6.1.5.1. Generalităţi despre integrarea numerică ................................................ 86
6.1.5.2. Formule de cuadratură pentru calculul integralelor............................... 86
6.1.5.3. Formule de cubatură pentru calculul integralelor .................................. 91
6.1.5.4. Operatori pentru integrarea numerică .................................................... 92

6
6.2. Funcţii predefinite ..................................................................................................... 96
6.2.1. Inserarea funcţiilor predefinite......................................................................... 96
6.2.2. Funcţii predefinite create de utilizator ............................................................. 96
6.2.3. Principalele categorii de funcţii matematice predefinite ................................. 97
7. VECTORI ŞI MATRICE................................................................................................... 98
7.1. Crearea de vectori şi matrice ................................................................................... 98
7.1.1. Crearea V&M neimbricate............................................................................... 98
7.1.1.1. Crearea V&M prin definirea individuală a elementelor ........................ 98
7.1.1.2. Crearea V&M prin paleta ” Vector and Matrix” ................................... 98
7.1.1.3. Crearea V&M prin introducerea datelor într-un tabel ........................... 99
7.1.1.4. Crearea V&M prin VPA ........................................................................ 99
7.1.1.5. Crearea V&M prin funcţia Matrix, CreateMesh, CreateSpace ............. 100
7.1.1.6. Crearea V&M prin citirea unui fişier..................................................... 100
7.1.1.7. Crearea V&M prin import de date într-un tabel .................................... 101
7.1.1.8. Generarea unor matrice speciale ........................................................... 102
7.1.1.9. Generarea unor V&M din alte matrice ................................................. 102
7.1.2 Crearea V&M imbricate ................................................................................... 102
7.2. Accesarea şi afişarea rezultatelor indexate ............................................................... 103
7.2.1. Accesarea elementelor V&M........................................................................... 103
7.2.2. Afişarea elementelor V&M ............................................................................. 103
7.3. Căutarea de valori în V&M ...................................................................................... 104
7.4. Copierea, lipirea elementelor V&M .......................................................................... 105
7.5. Modificarea dimensiunilor vectorilor şi matricelor ................................................... 106
7.6. Funcţii vectoriale şi matriceale .................................................................................. 106
7.6.1. Funcţii de analiză matriceală ........................................................................... 106
7.6.1.1. Mărimea matricelor ............................................................................... 106
7.6.1.2. Rangul matricelor .................................................................................. 107
7.6.1.3. Inversa unei matrice............................................................................... 107
7.6.1.4. Sortări ale elementelor V&M ................................................................ 107
7.6.1.5. Calculul normelor vectorilor şi matricelor ............................................ 108
7.6.1.6. Condiţionarea unei matrice.................................................................... 108
7.6.2. Descompunerea şi factorizarea matricelor....................................................... 108
7.6.2.1. Valori şi vectori proprii ......................................................................... 108
7.6.2.2. Calculul valorilor singulare ................................................................... 109
7.6.2.3. Factorizări .............................................................................................. 109
7.7. Operatori vectoriali şi matriceali ............................................................................... 109
7.8. Reprezentarea grafică a vectorilor şi matricelor ........................................................ 111
7.8.1. Reprezentarea grafică a vectorilor ................................................................... 111
7.8.2. Reprezentarea grafică a matricelor .................................................................. 111
8. ŞIRURI DE CARACTERE ............................................................................................... 112
8.1. Definiri ......................................................................................................................... 112
8.1.1. Definiri de variabile cu valori SC .................................................................... 112
8.1.2. Definiri de funcţii cu argumente SC ................................................................ 113
8.1.3. Definiri de vectori, matrice cu elemente SC.................................................... 113
8.2. Funcţii pentru operarea cu SC...................................................................................... 113
8.2.1. Funcţii generale................................................................................................ 113
8.2.2. Funcţii de conversie ......................................................................................... 114
8.3. Operatori pentru SC ..................................................................................................... 115
9. REPREZENTĂRI GRAFICE ÎN MATHCAD.................................................................. 116
9.1. Reprezentări grafice 2D .............................................................................................. 116

7
9.1.1. Etapele reprezentării unor grafice 2D cu parametri impliciţi .......................... 116
9.1.2. Setarea domeniului reprezentării grafice 2D ................................................... 117
9.1.3. Multigrafice 2D................................................................................................ 119
9.1.4. Reprezentarea curbelor definite prin ecuaţii parametrice ................................ 119
9.1.5. Reprezentarea vectorilor, numerelor imaginare............................................... 119
9.1.6. Formatări în reprezentările carteziene ............................................................. 120
9.1.7. Formatări în reprezentările polare.................................................................... 122
9.1.8. ZOOM şi afişarea coordonatelor cursorului în graficele 2D,
în coordonate carteziene sau polare ........................................................................... 123
9.1.8.1. ZOOM în graficele 2D........................................................................... 123
9.1.8.2. Afişarea coordonatelor cursorului în graficele 2D ................................ 124
9.2. Reprezentări grafice 3D ............................................................................................... 124
9.2.1. Reprezentarea graficelor 3D cu parametri impliciţi prin QUICK PLOT ........ 125
9.2.2. Reprezentarea graficelor 3D cu parametri impliciţi prin
3D PLOT WIZARD .................................................................................................. 125
9.2.3. Reprezentarea 3D a datelor.............................................................................. 127
9.2.4. Reprezentarea suprafeţelor .............................................................................. 128
9.2.4.1. Principii de reprezentare a suprafeţelor ................................................. 128
9.2.4.2. Setarea domeniului reprezentării grafice 3D ......................................... 128
9.2.4.3. Reprezentarea poliedrelor uniforme ...................................................... 130
9.2.5. Reprezentarea curbelor .................................................................................... 131
9.2.5.1. Definirea analitică a curbelor................................................................. 131
9.2.5.2. Setarea domeniului reprezentării 3D a curbelor .................................... 131
9.2.6. Reprezentarea câmpurilor de vectori ............................................................... 133
9.2.6.1. Definirea discretă a câmpului vectorial ................................................. 133
9.2.6.2. Definirea câmpului vectorial prin funcţii .............................................. 133
9.2.6.3. Setări grafice specifice reprezentării Vector Field Plot ........................ 134
9.2.7. Formatări ale reprezentărilor grafice 3D............................................................ 135
9.2.7.1. Tab-ul General ....................................................................................... 135
9.2.7.2. Tab-ul Axes ........................................................................................... 136
9.2.7.3. Tab-ul Appearance................................................................................. 136
9.2.7.4. Tab-ul Lighting ..................................................................................... 137
9.2.7.5. Tab-ul Title ........................................................................................... 137
9.2.7.6. Tab-ul Backplanes ................................................................................. 137
9.2.7.7. Tab-ul Special ........................................................................................ 137
9.2.7.8. Tab-ul Advanced ................................................................................... 138
9.3. Editări ale graficelor, redimensionări, rotirea şi zoom-ul graficelor 3D ................... 139
9.4. Animaţii ....................................................................................................................... 139
10. OBIECTE ŞI FIŞIERE IMAGINE .................................................................................... 141
10.1. Inserarea obiectelor în foia de lucru ........................................................................... 141
10.1.1. Inserarea prin comanda OBJECT..................................................................... 141
10.1.2. Inserarea prin lipire .......................................................................................... 142
10.1.3. Inserarea prin DRAG & DROP ....................................................................... 143
10.1.4. Inserarea imaginilor ......................................................................................... 143
10.1.4.1. Inserarea imaginilor în format bitmap (bmp) ...................................... 144
10.1.4.2. Inserarea imaginii unei matrice ........................................................... 144
10.2. Editarea unui obiect.................................................................................................... 144
10.3. Procesarea imaginilor................................................................................................. 145
10.3.1. Citirea fişierului imagine şi conversia într-o matrice....................................... 145
10.3.2. Procesări ale imaginilor ................................................................................... 146
10.3.2.1. Procesări ale imaginilor prin intermediul funcţiilor

8
şi operatorilor matriceali..................................................................................... 146
10.3.2.2. Procesări ale imaginilor prin intermediul paletei
Picture Toolbar .................................................................................................. 147
10.3.3. Salvarea imaginilor modificate ........................................................................ 148
11. PROGRAMAREA ÎN MATHCAD................................................................................... 149
11.1. Proprietaţi generale ale programelor Mathcad ........................................................... 149
11.2. Elemente de editare a programelor Mathcad.............................................................. 150
11.3. Instrucţiuni ................................................................................................................. 151
11.3.1. Instrucţiunea condiţională ................................................................................ 151
11.3.2. Instrucţiuni repetitive ....................................................................................... 152
11.3.2.1 Instrucţiunea FOR ............................................................................... 152
11.3.2.2 Instrucţiunea WHILE ......................................................................... 153
11.3.3. Instrucţiuni pentru controlul execuţiei programului ........................................ 154
11.3.3.1. Instrucţiunea RETURN ...................................................................... 154
11.3.3.2. Instrucţiunea BREAK ........................................................................ 155
11.3.3.3. Instrucţiunea CONTINUE ................................................................. 156
11.3.4. Instrucţiuni pentru gestiunea erorilor ............................................................... 156
11.3.4.1. Instrucţiunea ON ERROR ................................................................. 156
11.3.4.2. Instrucţiunea ERROR ........................................................................ 157
11.4. Subprograme şi recursivitate...................................................................................... 157
11.4.1. Subprograme ................................................................................................... 157
11.4.2. Recursivitatea în Mathcad ............................................................................... 158
12. CALCULE SIMBOLICE................................................................................................... 159
12.1. Egalul simbolic........................................................................................................... 159
12.2. Egalul simbolic personalizat ...................................................................................... 160
12.3. Operaţiile simbolice predefinite în Mathcad 2001 ..................................................... 161
12.4. Modificatori ai operatorilor simbolici ........................................................................ 165
12.5. Utilizarea a mai multor operatori simbolici într-o regiune matematică ..................... 165
12.6. Operaţii simbolice prin intermediul meniului symbolic ............................................ 166
12.7. Optimizarea calculelor numerice prin intermediul operaţiilor simbolice .................. 167

PARTEA II
APLICAŢII ÎN MATHCAD 2001

13. PRECIZIA CALCULELOR ITERATIVE ........................................................................ 169


13.1. Elemente de teoria erorilor ......................................................................................... 169
13.1.1. Sistematizarea şi definirea erorilor de calcul numeric iterativ ...................... 169
13.1.1.1. Sistematizarea erorilor de calcul numeric iterativ ............................... 169
13.1.1.2. Definiri ale erorilor .............................................................................. 169
13.1.1.3. Numărul de cifre exacte ale unui număr aproximativ.......................... 170
13.1.1.4. Relaţia între eroarea relativă şi numărul de cifre exacte...................... 171
13.1.2. Ce este o metodă iterativă ? .......................................................................... 171
13.1.3. Criterii de oprire a iteraţiilor ......................................................................... 172
13.1.3.1. Calitatea condiţionării soluţiei............................................................. 172
13.1.3.2. Criterii de oprire a iteraţiilor................................................................ 173
13.1.4. Rotunjirea numerelor ..................................................................................... 173
13.1.5. Eroarea absolută şi relativă a unei funcţii de mai multe variabile ................. 174
13.1.6. Erorile operaţiilor aritmetice elementare ....................................................... 174
13.1.6.1. Eroarea sumei ...................................................................................... 174
13.1.6.2. Eroarea produsului............................................................................... 175

9
13.1.7. Problema directă şi inversă a erorilor ............................................................ 175
13.1.8. Recomandări privind controlul preciziei calculelor numerice....................... 175
13.1.9. Recomandări privind calculele iterative ........................................................ 176
13.2. Funcţii care efectuează trunchieri şi aproximaţii ...................................................... 176
14. REZOLVAREA ECUAŢIILOR ŞI SISTEMELOR......................................................... 177
14.1. Rezolvarea numerică iterativă a ecuaţiilor algebrice ................................................ 177
14.1.1. Metoda La Guèrre ......................................................................................... 181
14.1.2. Metoda companionului matriceal ................................................................. 183
14.2. Rezolvarea numerică iterativă a ecuaţiilor transcendente ......................................... 184
14.2.1. Metoda coardei ............................................................................................. 192
14.2.1.1. Metoda falsei poziţii ........................................................................... 192
14.2.1.2. Metoda coardei cu punct fix ............................................................... 193
14.3. Rezolvarea numerică a sistemelor de ecuaţii liniare ................................................ 195
14.3.1. Metoda lui Crout ........................................................................................... 197
14.3.2. Metoda de eliminare a lui Gauss ................................................................... 199
14.4. Rezolvarea numerică iterativă a sistemelor de ecuaţii neliniare ............................... 201
14.4.1. Metoda Newton ............................................................................................. 210
14.4.2. Metoda gradientului ...................................................................................... 214
14.4.3. Metoda Levenberg – Marquardt ................................................................... 215
14.4.4. Metoda gradienţilor conjugaţi ....................................................................... 216
14.5. Rezolvarea simbolică a ecuaţiilor şi sistemelor de ecuaţii ...................................... 217
15. OPTIMIZĂRI PRIN PROGRAMARE MATEMATICĂ ................................................. 223
15.1. Algoritmul simplex ................................................................................................... 230
15.2. Algoritmul cvadratic ................................................................................................. 235
16. INTERPOLĂRI ŞI REGRESII......................................................................................... 239
16.1. Funcţii pentru interpolare .......................................................................................... 241
16.1.1. Interpolarea liniară ........................................................................................ 241
16.1.2. Interpolarea polinomială de tip spline .......................................................... 243
16.2. Funcţii pentru regresii ............................................................................................... 254
16.2.1. Regresia liniară ............................................................................................. 255
16.2.2. Regresii polinomiale ..................................................................................... 261
16.2.3. Regresii generalizate ..................................................................................... 273
16.2.4. Funcţii speciale de regresie ........................................................................... 277
16.3. Funcţii pentru extrapolare ......................................................................................... 280
16.4. Funcţii pentru netezirea datelor ................................................................................. 282
17. REZOLVAREA ECUAŢIILOR DIFERENŢIALE ......................................................... 285
17.1. Rezolvarea ecuaţiilor diferenţiale de ordinul n ....................................................... 285
17.1.1. Rezolvarea ecuaţiilor diferenţiale liniare, cu condiţii iniţiale ....................... 286
17.1.2. Rezolvarea ecuaţiilor diferenţiale neliniare, cu condiţii iniţiale ................... 290
17.1.3. Metoda Runge-Kutta ..................................................................................... 295
17.2. Rezolvarea sistemelor de ecuaţii diferenţiale ............................................................ 297
17.2.1. Rezolvarea sistemelor de ecuaţii diferenţiale ............................................... 299
17.2.2. Rezolvarea sistemelor de ecuaţii diferenţiale cu proprietăţi speciale ........... 301
17.2.3. Calculul soluţiei sistemelor de ecuaţii diferenţiale în punctul final
al domeniului ............................................................................................................ 306
17.3. Rezolvarea ecuaţiilor diferenţiale cu condiţii la limită ............................................. 307
17.4. Soluţii ale unor ecuaţii diferenţiale particulare ......................................................... 312
17.5. Rezolvarea ecuaţiilor diferenţiale cu derivate parţiale .............................................. 317

10
18. CALCULE ÎN COMPLEX............................................................................................... 321
19. COMBINATORICĂ......................................................................................................... 325
20. STATISTICĂ ŞI PROBABILITĂŢI................................................................................ 329
20.1. Funcţii pentru statistică ............................................................................................. 329
20.1.1. Calculul frecvenţelor absolute ...................................................................... 329
20.1.2. Calculul parametrilor statistici ...................................................................... 333
20.1.2.1. Parametrii tendinţei centrale ............................................................... 333
20.1.2.2. Parametrii de împrăştiere .................................................................... 335
20.1.2.3. Parametrii formei repartiţiei de frecvenţe ........................................... 336
20.1.2.4. Parametrii corelaţiei ............................................................................ 338
20.1.3. Generarea numerelor aleatorii ...................................................................... 339
20.2. Repartiţii statistice ..................................................................................................... 340
20.2.1. Repartiţii statistice pentru variabile aleatorii discrete ................................... 341
20.2.2. Repartiţii statistice pentru variabile aleatorii continue ................................. 350
20.2.2.1. Repartiţii statistice de bază ................................................................. 350
20.2.2.2. Repartiţii statistice auxiliare ............................................................... 364

PARTEA III
MANAGEMENTUL DATELOR ŞI AL PROGRAMELOR ÎN MATHCAD 2001

21. SCHIMBUL DE DATE .................................................................................................... 370


21.1. Schimbul de date prin componente ............................................................................ 372
21.1.1. Importul de date, citirea datelor dintr-un fişier ................................................ 372
21.1.2. Exportul de date, salvarea datelor într-un fişier ............................................... 372
21.1.2.1. Exportul de date................................................................................... 372
21.1.2.2. Salvarea datelor prin componenta File Read or Write......................... 372
21.1.3. Editarea şi exploatarea componentelor .......................................................... 373
21.1.3.1. Inserarea componentelor...................................................................... 373
21.1.3.2. Configurarea componentelor ............................................................... 374
21.1.3.3. Schimbul de date.................................................................................. 374
21.1.3.4. Componenta EXCEL ........................................................................... 374
21.1.3.5. Componenta Matlab............................................................................. 377
21.1.3.6. Componenta AXUM............................................................................ 379
21.1.3.7. Componenta ODBC Read Component ............................................... 380
21.2. Schimbul de date între Mathcad alt program care oferă suport
OLE automation .................................................................................................................. 381
21.3. Accesarea Mathcad din altă aplicaţie ......................................................................... 382
21.4. Referinţe ..................................................................................................................... 382
21.5. Hyperlink-uri.............................................................................................................. 383
21.6. MATHCONNEX ....................................................................................................... 383
22. CĂRŢILE ELECTRONICE ÎN MATHCAD 2001 ........................................................... 384
22.1. Crearea cărţii electronice............................................................................................ 384
22.1.1. Crearea fişierelor Mathcad............................................................................... 384
22.1.2. Crearea cuprinsului cărţii electronice .............................................................. 385
22.1.3. Fişierul *.hbk ................................................................................................... 385
22.2. Adnotarea cărţii electronice ....................................................................................... 387
Referinţe Mathcad pe Internet ................................................................................................. 388
Glosar ....................................................................................................................................... 389
Bibliografie .............................................................................................................................. 394

11
NOTAŢII, ABREVIERI ŞI SIMBOLURI DE ATENŢIONARE

Notaţii referitoare la comenzi, funcţii, variabile

- Bold Italic - nume de funcţii


- Italic – nume de variabile, argumente ale funcţiilor
- Bold - caracterele care trebuie tastate, ceea ce se obţine pe foia de lucru, comenzi
- [ ] - lista argumentelor opţionale ale unei funcţii sau tasta care trebuie apăsată

Notaţii referitoare la taste şi meniuri

- [tasta 1] Æ [tasta 2] - se apasă tasta 1, se tine apăsată, se apasă tasta 2


- [tasta 1] + [tasta 2] - tastele 1 şi 2 se apasă simultan
- meniu Æ comanda – din meniu se selectează comanda

Notaţii de atenţionare

- Atentie - avertizare importantă


- Etape - succesiune de operaţii
- Rapid - procedură care duce la economie de timp
- Sugestie - indicaţii care au efecte benefice asupra calităţii aplicaţiei
- Suplimentar - notă conţinând detalii
- E - esenţial, informaţii strict necesare pentru a lucra în Mathcad
- termend – termen existent in dicţionarul asociat cursului

Abrevieri
BR - Bloc de Regiuni
BR grupează logic regiuni text, matematice alte obiecte care pot fi ascunse, încuiate.

LEO - Linie de Editare Orizontală (“horizontal editing line”).


LEO este colorat în albastru şi apare în operaţii de editare în regiuni matematice. Poziţia şi
lungimea de cuprindere sunt controlate cu tasta Space şi tastele săgeţi.

VPA - Variabilă cu valori în Progresie Aritmetică (“range variable”)

V&M - Vectori şi matrice.

ButS, ButD – Butonul din stânga, respectiv dreapta mouse-ului.

12
I FUNDAMENTE MATHCAD 2001

MEDII DE PROGRAMARE MATEMATICE


_______________________________________________________________________________

Cele mai utilizate medii matematice dedicate calculelor numerice, simbolice folosite în
domeniul ştiinţei şi inginerie sunt:
¾ MATHCAD, produs de firma MathSoft (www. mathsoft.com).
¾ MATLAB, produs de firma MathWorks (www.mathworks.com)
¾ MATHEMATICA, producător Wolfram Research (www.wolfram.com).
¾ MAPLE sub licenţă Waterloo Maple Inc. (www.maplesoft.com).
Acestea facilitează rezolvarea unei palete foarte largi de probleme de calcul ştiinţific,
ingineresc. Diferenţele dintre ele fiind generate de conceptele care au stat la baza dezvoltării
motorului matematic. Toate sunt medii matematice ajunse la maturitate după o evoluţie de mai mult
de un deceniu.
Mediile matematice care s-au impus pe piaţa software au următoarele caracteristici comune:
- efectuează calcule numerice, simbolice cu numere reale, complexe, indexate sau nu;
- în general lucrează cu două procesoare matematice independente: unul pentru calcule
numerice şi altul pentru cele simbolice. În anumite situaţii acestea pot să colaboreze.
- au biblioteci foarte bogate de funcţii predefinite, care pot fi extinse de utilizator;
- sunt dotate cu instrumente de vizualizare a datelor în 2D, 3D şi animaţii;
- posedă instrumente de programare relativ puternice;
- sunt medii de dezvoltare complete;
- sunt integrate complet Windows, mai rar şi pe alte platforme;
- sunt integrate cu alte medii uzual utilizate în inginerie: AutoCAD, suita Microsoft
Office, alte medii matematice;
- sunt integrate Webd, oferă suport MathMLd;
- prin intermediul unor add-on-uri pot fi integrate biblioteci dedicate rezolvării unor
probleme din domenii mai înguste.
- au module specializate pentru modelarea şi simularea sistemelor dinamice complexe.
- au suport pentru achiziţii de date.
- au capacitatea de a produce şi compila cod C.
MATHCAD a ajuns la generaţia 11. După afirmaţiile firmei producătoare mediul Mathcad
este folosit, în diverse versiuni, de mai mult de 1,5 milioane de utilizatori şi în peste 2000 de colegii
şi universităţi din întreaga lume. Este unul din mediile preferate pentru aplicaţiile matematice în
proiectele tehnice. Mai exact, conform unui studiu statistic făcut de Mathsoft, Mathcad este folosit
în următoarele domenii: inginerie mecanică 25%, inginerie electrică 22%, fizică 12%, inginerie
civilă 9%.
Una dintre caracteristicile principale, evidente la primul contact cu Mathcad, este interfaţa
grafică tip “scratchpad”: combinaţie între o interfaţă document “live” a unei foi de calcul
(“spreadsheet”, efectele se văd, în general, imediat) şi una WYSIWIG (“What You See Is What

13
You Get”) a unui procesor de cuvinte. Aproape toate operaţiile sunt concentrate într-o foaie de lucru
(“worksheet”), unde se inserează ecuaţiile, funcţiile, folosindu-se convenţiile de notaţie uzuale din
matematică, unde se inserează textele, graficele 2D, 3D ş.a.m.d. Efectul este eliberarea
utilizatorului de efortul necesar acordat aspectelor matematice ale rezolvării problemelor,
permiţându-i să se concentreze pe elementele specifice dezvoltării proiectului. Mathcad este cel mai
accesibil, uşor de învăţat şi exploatat software matematic dintre cele patru enumerate mai sus.
Mathcad 2001 este disponibil în două ediţii: Mathcad Professional ediţie recomandată
aplicaţiilor tehnice curente, Mathcad Premium care este ediţia completă.
O comparare amănunţită a ediţiilor Mathcad 8, 2000, 2001, 2001i, 11 se poate consulta la
adresa: www.softwarecientifico.com\MathCad 2001.htm, sau ediţiile 2000, 2001, 2001i, 11 la
www.redacom.ch.
Pe lângă Mathcad, firma Mathsoft mai produce: MathClient destinat gestiunii
documentelor tehnice în firmele mari, StudyWorks (peste un milion de licenţe vândute) pachet
educaţional pentru învăţarea matematiciii şi a altor discipline aparţinând ştiinţelor exacte, la nivel de
liceu.
MATLAB (MATrix LABoratory), după cum sugerează şi denumirea, a fost dezvoltat
plecându-se de la ideea că matricea este structura de bază a datelor. Spre deosebire de Mathcad,
Matlab nu este dezvoltat ca “scratchpad”, instrumentul curent de lucru este limbajul de nivel înalt
Matlab. La fel ca în MathCad, prin intermediul add-on-urilor numite în acest caz “toolboxes”
Matlab poate fi extins. Mai mult utilizatorul îşi poate crea propriile toolbox-uri.
Din punct de vedere structural Matlab are un nucleu de bază, cu interpretor propriu, în jurul
căruia sunt construite toolbox-urile. Mediul SIMULINK este integrat în Matlab, fiind destinat
modelării, simulării interactive şi analizei sistemelor dinamice liniare sau neliniare, continue,
discrete, sau hibride. Acesta este un mediu vizual, orientat prin excelenţă pe obiecte. Programarea în
SIMULINK se reduce la construirea unor scheme bloc formate din obiectele existente în bibliotecă
şi legarea lor în mod grafic. Blocurile existente pot fi personalizate sau pot fi create unele noi. Fiind
integrat Matlab rezultatele simulării pot fi analizate, vizualizate în mediul Matlab şi invers.
Aplicaţiile tipice în Matlab sunt:
¾ calcule de natură tehnică care necesită analiză, vizualizare şi implementare de algoritmi;
¾ sinteza sistemelor de comandă;
¾ sinteza sistemelor de comunicaţie;
¾ procesare semnale;
¾ procesare imagini;
¾ modelare, simulare şi analiză a datelor de natură financiară.
Printre cele câteva zeci de toolbox-uri amintim: Optimization, Spline, Statistics, Partial
Differential Equation; Control System, System Identification, Robust Control, Nonlinear Control
Design Blockset, Frecquency Domain Identification; Neural Network, Fuzzy Logic. Cele mai noi
toolbox-uri disponibile sunt: Bioinformatics, Genetic Algorithm and Direct Search, Image
Acquisition, Curve Fitting.
Funcţionalitatea Matlab este potenţată de alte produse ale firmei MathWorks: Matlab COM
Builder, Matlab Compiler, Matlab Report Generator, Matlab Web Server, Matlab Runtime Server,
Matlab Excel Builder. De exemplu: Matlab COM Builder 1.0 converteşte algoritmii Matlab în
obiecte COM (Common Object Model). Aceste pot fi accesate de alte medii care le recunosc cum ar
fi: Visual Basic, C/C++, Excel etc; Matlab Compiler 3.0 permite convertirea aplicaţiilor Matlab în
cod sursă C/C++, dll-uri.

14
Existenţa SIMULINK-ului şi a numeroaselor toolbox-uri specifice explică frecventa
utilizare a Matlab-ului în analiza şi sinteza sistemelor de control. Ultima ediţie Matlab este 6.5.1.
MAPLE ajuns la versiunea 9.0 are o interfaţă grafică tip “scratchpad”, în consecinţă codul
nu este compilat ci interpretat. Este disponibil în mai multe variante care satisfac necesităţile de
calcul matematic ale firmelor, instituţiilor, universităţilor şi liceelor. Maple beneficiază de un motor
matematic foarte performant, procesorul simbolic fiind integrat şi în alte medii matematice cum ar
fi MathCAD sau Matlab. Spre deosebire de alte medii matematie în Maple preponderentă este
procesarea simbolică.
Maple poate fi folosit în două moduri: ca mediu matematic interactiv şi ca sistem pentru
generarea de rapoarte tehnice.
Interasant este modul de organizare a exploatării mediului Maple. La pornire este automat
încărcat kernel-ul. Acesta conţine comenzile fundamentale: interpretorul limbajului Maple,
algoritmii de calculele numerice de bază, rutinele care afişează rezultatele şi ale altor operaţii de
intrare-ieşire. Kernel-ul este scris în cod C optimizat şi ocupă aproximativ 10% din mărimea totală a
sistemului. Creatorii Maple-ului au conceput un kernel de dimensiuni mici în scopul creşterii vitezei
de procesare şi al eficienţei. Restul de 90% din sistem este scris în limbajul Maple şi este cuprins în
bibliotecile de funcţii. Acestea se împart în două grupuri:
1. Biblioteca principală conţine cele mai frecvent utilizate comenzi Maple, evident
diferite de cele ale kernel-ului. Acestea sunt încărcate explicit de către utilizator, după
necesităţi. Deşi sunt scrise în limbajul Maple şi nu în cod C optimizat, acesta fiind un
limbaj evoluat produce proceduri foarte compacte.
2. Bibliotecile specializate pe anumite clase de probleme, în număr de peste 60.
Câteva dintre bibliotecile specializate sunt descrise sumar în continuare:
- CodeGeneration funcţii pentru convertirea codului Maple în alte limbaje de programare,
inclusiv în Java.
- Finance conţine funcţii frecvent utilizate în finanţe.
- LinAlg este compusă din mai mult de 100 de comenzi folosite în manipularea
informaţiilor organizate în vectori şi matrice.
- LinearAlgebra extinde funcţiile pachetului anterior pentru crearea de matrice speciale,
calculul matricelor de dimensiuni mari.
- Maplets conţine comenzi pentru crearea de ferestre de dialog şi alte elemente ale
interfeţelor grafice utilizator.
- MatML asigură importul şi exportul expresiilor Maple sub forma MathML.
- Matlab conţine funcţii ale mediului Matlab specializate în procesarea matricelor.
- Networks este utilizat pentru construirea, editarea şi analiza reţelelor. Are numeroase
facilităţi pentru manipularea digrafurilor având expresii oarecare pentru ponderi.
- PDEtools conţine instrumente pentru manipularea, rezolvarea şi grafică asociată
ecuaţiilor cu derivate parţiale.
- Plots este destinată ridicării de grafice 2D şi 3D.
- RandomTools are ca obiect manipularea obiectelor cu valori aleatoare.
- ScientificConstants permite accesul la constante din domeniul fizicii, chimiei etc.
- Simplex conţine comenzi pentru optimizări liniare prin algoritmul SIMPLEX.
- SolveTools este dedicat rezolvării sistemelor de ecuaţii algebrice.
- Stats este un set de comenzi pentru calcule statistice
- Worksheets asigură infrastructura pentru crearea şi manipularea foilor de calcul Maple.

15
La fel ca şi mediile anterior descrise, Maple este integrat Web, EXCEL, Matlab şi chiar cu
programe create de utilizator, asigură suport MathML.

MATHEMATICA este primul software matematic care a reuşit cu mai bine de un deceniu
în urmă să efectueze calcule simbolice şi numerice, de asemenea este pionier în introducerea
suportului pentru MathML. Se estimează că mai mult de un milion de utilizatori exploatează diverse
versiuni ale acestui mediu matematic. Ultima versiune Mathematica 5 este un mediu matur şi
foarte puternic. Noua tehnologie de procesare a matricelor împachetate a mărit spectaculos viteza de
calcul. Mathematica şi alte produse ale firmei Wolfram Research folosesc un mediu propriu care
combină text, formule, algoritmi, butoane şi hyperlink-uri într-un document independent de
platformă. Astfel, un utilizator Windows poate transmite prin e-mail un document spre utilizatori
Unix, Linux, Mac.
Dintre numeroasele add-on-uri dezvoltate de Wolfram Research amintim: Control System
Professional, Signal and Systems, Wavelet Explorer, Dynamic Vizualizer, Parallel Computing
Toolkit, Digital Image Processing, Experimental Data Analyst, Mechanical Systems, Structural
Mechanics, Fuzzy Logic. Pe lângă acestea există, alte aplicaţii ale unor dezvoltatori independenţi:
Derivatives Expert, Global Optimization, Industrial Electromagnetics, Industrial Optimization,
Industrial Termics, Math Tensor, MathCode C++, Operation Research.
Printre multe alte medii matematice generale, cu o răspândire mai redusă, remarcabile sunt:
DERIVE 6.0 (Texas Instruments Incorporated, www.derive.com), MACSYMA
(www.macsyma.com, nedezvoltat din 2001), ambele cu capacităţi de calcul numeric şi simbolic.
Sunt larg răspândite aplicaţiile “spreadsheetd” (programe de calcul tabelar) ca: EXCEL
(face parte din familia Microsoft Office), Lotus 1-2-3 (pachetul Lotus Smart Suite), Quatro Pro
(aparţine pachetului WordPerfect Office al firmei Corel), Open Office Calc, modulul de calcul
tabelar al suitei Open Office, produs de Sun Microsystems (www.openoffice.org). Acestea sunt
dedicate calculelor contabile, analizelor financiare şi statistice, dispunând şi de instrumente
puternice pentru desenarea diagramelor .

16
I FUNDAMENTE MATHCAD 2001

PREZENTARE GENERALĂ MATHCAD 2001

_______________________________________________________________________________

2.1. PREZENTARE GENERALĂ

Mathcad 2001 produs de compania MathSoft (www.mathsoft.com) este un mediu integrat


de dezvoltare (IDEd) a aplicaţiilor matematice în tehnică. Calităţile lui principale sunt: gradul înalt
de ergonomicitate intelectuală, versatilitatea şi completitudinea.
Interfaţa grafică cu utilizatorul (GUId) se bazează pe o combinaţie între o interfaţă document
“live” a unui “spreadsheet”d şi una WYSIWIG (What You See Is What You Get) a unui procesor
de cuvinte. Cu excepţia vizualizării animaţiilor, toate operaţiile se efectuează într-o foaie de lucru
(în engleză “worksheet”), unde se scriu ecuaţiile şi funcţiile în conformitate cu convenţiile de
notaţie din matematică, se inserează textele, graficele 2D, 3D ş.a.m.d. Având aceste calităţi
Mathcad eliberează într-o măsură apreciabilă utilizatorul de efortul necesar acordat aspectelor
matematice ale rezolvării problemelor, permiţându-i să se concentreze pe elementele specifice
dezvoltării proiectului.
Mathcad-ul permite rezolvarea completă a unor probleme ştiinţifice de uz general, sau
inginereşti, asigurând suportul pentru toate etapele elaborării unui proiect, inclusiv cele finale,
de realizarea documentaţiei, prezentarea şi comunicarea rezultatelor.
Principalele caracteristici ale mediului Mathcad 2001 sunt:
• Funcţionalitatea matematică:
- efectuarea de calcule numerice, simbolice “live”;
- procesarea numerelor reale, imaginare, complexe şi a unităţilor de măsură;
- operatori şi funcţii predefinite pentru manipularea numerică, simbolică a vectorilor şi
matricelor;
- funcţii predefinite pentru: rezolvarea ecuaţiilor, sistemelor, a ecuaţiilor diferenţiale
ordinare, a sistemelor de ecuaţii diferenţiale, optimizare prin programare matematică;
- funcţii Bessel, transformate Fourier şi wave, directe şi inverse;
- funcţii specifice algebrei liniare superioare;
- funcţii statistice, repartiţii de probabilitate, funcţii empirice de probabilitate, funcţii
pentru calculul cuantilelor, interpolări, predicţii, regresii, neteziri.
• Instrumente de vizualizare a datelor, funcţiilor:
- grafice interactive şi “live” 2D, 3D într-o gama suficient de largă, zoom;
- posibilitatea de lărgire a tipurilor de grafice prin inserarea unor componente Axum
(program de grafică tehnică şi analiză date, produs tot de firma Mathsoft);
- inserări de imagini, desene executate cu programe ca Autocad, CorelDraw;
- animaţii 2D, 3D;
- mijloace rapide de reprezentare grafică: 2D Quick Plots.

17
• Integrare Windows
- integrare completă în Windows 9x, 2001, XP, Windows NT;
- interfeţe utilizator stil Microsoft, similare MS Office, inclusiv meniuri contextualed;
- suport pentru OLE2 client şi serverd;
- suport pentru “OLE Automation” pe baza limbajului VBScript sau JScript;
- suport complet pentru ActiveXd.
• Intrări/ieşiri date, integrare:
- filtre pentru date provenind din Matlab, Excel, fişiere ASCIId;
- componente dedicate pentru Excel, Matlab, Axum ş.a;
- integrarea prin mediul vizual MathConnex, cu surse de date şi aplicaţii din Mathcad,
Matlab, Axum, Excel, S-Plus.
• Manipularea şi conversia unităţilor de măsură:
- urmărire automată a unităţilor, conversie SI, MKS, CGS şi US;
- unităţi definite de utilizator.
• Instrumente de formatare a foii de lucru:
- modele (”templates” d) pentru documente, stiluri de formatare a regiunilor;
- formatare foaie de lucru, ”print preview” comparabile cu ale unor procesoare de texte;
- verificarea corectitudinii scrierii cuvintelor pentru limba engleză (”check spelling”).
• Programare:
- posibilităţi de programare bazate pe 10 comenzi;
- manipularea erorilor în timpul rulării;
- programarea cu expresii simbolice “live”.
• Integrare Web:
- suport e-mail bazat pe MAPId;
- definirea de hyperlinkd-uri locale sau Webd;
- conectarea la comunitatea utilizatorilor Mathcad prin “Collaboratory”.
• Help şi alte resurse de documentare:
- help bogat exemplificat, asigurat prin cuprins, index şi căutare;
- help senzitiv la context;
- help on-line, reactualizare bibliotecă Mathcad prin Web;
- “tips” d pentru comenzi meniu, butoane;
- “Resource Center” conţine o prezentare generală a Mathcad, tutoriale, sute de exemple
de aplicaţii, conectare Web la forumul internet al firmei MathSoft, suport tehnic.
- cărţi electronice “live” în diverse domenii, crearea acestora de către utilizator;
- din help şi din cărţile electronice se poate efectua “drag & drop” în aplicaţia curentă.
• Extensibilitate:
- notaţii matematice definite de utilizator;
- crearea de funcţii proprii, scrise în C şi C++ şi includerea lor în Mathcad prin DLLd-uri;
- funcţionalitate suplimentară prin pack-urid (de exemplu ”Optimization Extension Pack”);
Mathcad 2001 este disponibil în două ediţii: Mathcad Professional ediţie recomandată
aplicaţiilor tehnice curente şi Mathcad Premium care este ediţia completă.
Resurse minimale necesare rulării Mathcad 2001: procesor Pentium 133, CD-ROM,
Windows 95, Windows NT 4.0; 32 MB memorie RAM, recomandabil 64 MB; pentru help on-line
Internet Explorer 4.0.

18
2.2. DESKTOP-UL MATHCAD 2001 ( E)

După lansarea în execuţie a programului Mathcad 2001, este afişată fereastra principală
(figura 2.1) şi două ferestre opţionale “Resource Center” (figura 2.3) şi “Tip of the Day”. Controlul
ultimelor două se face prin meniul View Æ Preferences Æ General Æ Startup Options.
“Resource Center“ este o carte electronică, adiţională help-ului (vezi subcap. 2.2.2), iar “Tip of the
Day “ este o fereastră care afişează câte un sfat care uşurează exploatarea sistemului.

Fereastra principală are următoarea structură (figura 2.1):


ƒ foia de lucru (“worksheet”) în care utilizatorul efectuează calculele matematice, scrie
comentarii, introduce grafice etc.
ƒ în parte a superioară a foii există două bare, care sunt întotdeauna vizibile şi care au
poziţii fixe:
- bara de titlu, în care sunt afişate ediţia Mathcad şi numele documentului curent.
Dacă acesta nu a fost salvat, are numele implicit Untitled:x, x=1, 2 …
- bara meniurilor: File, Edit ... Help;
ƒ urmează un set de bare pe care utilizatorul le poate configura ca structură, vizibilitate şi
poziţie pe desktop:
- bara instrumentelor standard este formată din butoane care permit un acces
rapid la comenzile existente în bara meniurilor şi o componentă Zoom pentru
foia de lucru:
o primele butoane: New, Open, Save, Print, Print Previw, Check Spelling,
Cut, Copy, Paste, Undo, Redo se referă la operaţiile de editare, uzuale
pentru procesoarele de texte;
o al doilea grup: Align Across, Align Down, Insert Function, Insert Unit,
Calculate sunt comenzi specifice Mathcad, prin care se operează asupra
regiunilor foii de lucru
o al treilea set de butoane: Insert Hyperlink, Insert Component, Resource
Center, Help se referă la inserţii de hyperlink-uri, de componente, la
deschiderea Resource Center şi help-ului.
- bara de formatare este concepută în maniera programelor din familia Microsoft
Office;
- bara de instrumente matematice (abreviată în continuare BIM) conţine implicit:
Calculator, Graph, Vector & Matrix, Evaluation, Calculus, Boolean,
Programming, Greek Symbolic şi Symbolic Keyword;
- bara de stare are funcţia de a transmite scurte informaţii utilizatorului. De
exemplu în timpul editării unei ecuaţii textul afişat conţine indicaţii asupra
următorului pas de editare, la poziţionarea cursorului mouse-ului deasupra unui
buton se afişează o descriere sumară a funcţiei acestuia. În partea dreaptă a barei
de stare este afişată pagina curentă şi modul de lucru automat/manual.
Dacă se efectuează calcule ştiinţifice de uz general, fără pretenţii deosebite privitoare la
aspectul regiunilor text, este raţional să se configureze desktop-ul, ca în figura 2.1. În caz contrar
barele: de formatare, de instrumente matematice şi standard pot fi personalizate

19
Fig. 2.1 Fereastra principală a Mathcad 2001

20
Suplimentar
ƒ poate fi adăugată o riglă orizontală prin meniul View Æ Ruler. Efectuând pe ea un
clic cu ButD se deschide un meniu ”pull-down” în care se pot seta unităţile de lungime
ale riglei (inches, centimeters, picas, points), se poate opta pentru eliminarea ei
(comanda Hide), se pot seta paragrafe la fel ca în WinWord;
ƒ barele de instrumente standard, matematice, de formatare pot fi poziţionate pe
desktop prin ”drag & drop”. Pot exista două situaţii:
- dacă bara este plasată în câmpul foii de lucru se execută clic cu ButS pe zona
superioară albastră şi ţinând apăsat butonul, bara se aduce în poziţia dorită, după
care se eliberează butonul mouse-ului;
- dacă bara este poziţionată pe conturul foii de lucru, zona sensibilă este oriunde în
spaţiul barei neocupat de butoane sau de casete text.
ƒ structura barelor de instrumente standard, matematice, de formatare poate fi
modificată prin intermediul unor casete de dialog care sunt deschise prin clic cu ButD
oriunde în spaţiul barei şi alegerea din meniul ”pop-upd ”a comenzii Customize.

Indiferent de tipul barei, caseta de dialog amintită are două ferestre de editare care conţin:
una butoanele disponibile, cealaltă butoanele existente in bară. Între cele două casete se pot face
transferuri de elemente prin intermediul a două butoane Add şi Remove. Butoanele Move Up şi
Move Down se folosesc pentru modificarea poziţiei unui buton pe bară. Butonul Reset restaurează
structura şi poziţiile existente înainte de deschiderea casetei de dialog.

Datorită importanţei deosebite a paletei de instrumente matematice, în continuare se trec în


revistă principalele operaţii care se pot efectua. prin intermediul acesteia, urmând ca detalierile să se
facă progresiv în alte capitolele.

21
Tabel 2.1 Structura şi operaţiile efectuate de toolbar-ul matematic

Nr. Buton Structura Operaţii


1 După cum sugerează şi denumirea
această BIM are funcţionalitatea unui
calculator ştiinţific simplu: operaţii
Calculator aritmetice, funcţii trigonometrice etc.

2 Prin BIM Graph se pot construi grafice


2D în coordonate carteziene şi polare, se
poate efectua zoom, reprezentări grafice
Graph 3D a datelor, funcţiilor.

3 BIM Vector & Matrix conţine butoane


prin intermediul cărora se pot crea
structuri de vectori şi matrice şi manipula
Vector & datele organizate matriceal.
Matrix

4 Prin intermediul butoanelor BIM


Evaluation se pot efectua rapid evaluări
numerice, simbolice, defini variabile
Evaluatio globale, crea operatori unari şi binari ai
n utilizatorului.

5 BIM Calculus este destinat efectuării de


derivate, integrale, sume, produse, limite.

Calculus

6 BIM Boolean conţine butoanele


operatorilor logici (AND, OR, XOR,
NOT) şi relaţionali (>, < ….).
Boolean
7 Prin intermediul celor zece butoane ale
BIM-ului Programming se pot scrie
rapid instrucţiunile de bază condiţionale,
Program de ciclu, de control a execuţiei
ming programului şi de manipulare a erorilor.

22
8 BIM Greek conţine simbolurile literelor
greceşti mari şi mici.
Greek

9 Cu ajutorul butoanelor BIM-ului


Symbolic utilizatorul poate scrie rapid
egalul simbolic simplu şi cel
Symbolic personalizat, operatorii simbolici
generali, de manipulare a matricelor, de
calcul a transformatelor directe şi inverse
Laplace, Fourier şi Z.

2.3. HELP-UL ŞI ALTE SURSE DE DOCUMENTARE ( E)

2.3.1. Utilizarea Help-ului

Facilităţile oferite de help-ul Mathcad-ului diferă relativ puţin faţă de ale altor programe
integrate Windows, bazate pe hypertextd. Help-ul este sensibil la context şi activ în orice moment.
Principalele căi de a apela help-ul sunt:
1. Prin meniul Help şi comanda Mathcad Help se deschide o fereastră împărţită în trei
zone:
ƒ O bară a meniurilor care permite, printr-un set de butoane, efectuarea operaţiilor de
navigare prin ferestrele help-ului (Back, Forward, Home), tipărire, ascundere/afişare a
ferestrei cu tabd-uri, opţiuni referitoare la butoanele enumerate anterior şi la setarea
legăturii cu Internet-ul.
ƒ O fereastră cu trei tab-uri:
- Contents (conţinut), care este o carte electronică organizată pe capitole,
subcapitole;
- Index, care permite căutarea unor subiecte pe baza numelor predefinite;
- Search, care caută în întreg textul help-ului cuvinte sau combinaţii de cuvinte,
organizate până la nivelul de propoziţii.
ƒ O fereastră de afişare a textului help-ului, care în anumite cazuri poate face trimiteri
prin două componente plasate în partea inferioară la:
- o zonă Quick Sheet Example, care deschide un document Mathcad conţinând unul
sau mai multe exemple;
- un buton Related Topics, care deschide o fereastră în care sunt enumerate subiecte
înrudite.

23
2. Prin poziţionarea mouse-ului deasupra unui buton (evident nu se efectuează clic) sunt
furnizate următoarele informaţii sumare legate de funcţia acestuia:
- printr-un “hint” (sugestie) este descrisă pe scurt funcţiunea, sub forma unui mic meniu
pop-up plasat sub buton;
- în bara de stare este o afişată o descriere puţin mai detaliată.
- dacă suplimentar se apasă tasta F1 se deschide fereastra de ajutor.
3. Help-ul comenzilor meniului se obţine prin:
- [Shift]+[F1] când cursorul mouse-ului se transformă într-un semn de întrebare;
- plasând cursorul asupra comenzii meniu se obţine help-ul;
- pentru revenirea la forma implicită a cursorului se apasă tasta [Esc].
4. Pentru funcţiile predefinite, operatori scrişi pe foia de lucru, mesajele de eroare
existente în help se obţin prin poziţionarea cursorului pe elementul respectiv şi apăsarea tastei F1.

2.3.2. Resource Center

Metoda de învăţare prin exemple este susţinută de Resource Center (RC) sub forma unei
cărţi electronice compuse dintr-o colecţie on-line de tutoriale, exemple de probleme matematice
generale şi inginereşti rezolvate în Mathcad, în plus acesta asigură suportul tehnic şi integrarea
Web. RC poate fi deschis prin intermediul butonului cu pictograma unei cărţi deschise, plasat pe
bara de instrumente standard, sau prin meniul Help Æ Resource Center.

Fereastra RC are o structură a


barelor asemănătoare cu cea a ferestrei
principale a Mathcad-ului. Astfel în partea
superioară există o bară de meniuri şi una de
instrumente standard adaptate necesităţilor
RC, iar din zona centrală se pot deschide:
- o prezentare generală şi tutoriale
Mathcad 2001 (Overview &
Tutorials);
- exemplificări de aplicaţii Mathcad
şi tabele cu principalele relaţii
matematice, unităţi de măsură din
matematică, fizică, chimie,
mecanică, electricitate
(Quicksheets & Reference
Tables).
- exemplificări de aplicaţii mai
complicate care apelează la
schimb de date cu alte programe,
diverse aplicaţii: procesarea
semnalelor, din ingineria
mecanică, electrică, chimică,
construcţii, astronomie, statistică,
finanţe şi nu în ultimul rând
matematică.
Forma uzuală de prezentare este prin intermediul QuickSheet-urilor, care sunt documente
Mathcad. Acestea pot fi integrate în aplicaţiile curente ale utilizatorului, în totalitate sau parţial, prin
”drag & drop” sau ”Copy-Paste”.

24
2.3.3. Cărţile electronice

În accepţiunea Mathcad, o carte electronică (CE) este o colecţie organizată de foi de lucru
active, legăturile fiind realizate prin hipertext. Câteva cărţi sunt disponibile în biblioteca Web a
firmei Mathsoft, putând fi accesate prin RC (Web Library ), altele sunt disponibile comercial:
Marks’ Electronic Handbook for Mechanical Engineers, Roark’s Formulas for Stress and Strain,
Finite Element Beginnings, Electronic Gieks’: Engineering Formulas, Introduction to Ordinary
Differential Equations şi multe altele pentru ingineri chimişti, arhitecţi, finanţişti. Majoritatea
acestora se bazează pe cărţi consacrate publicate în format clasic.
CE salvate ca fişiere cu extensia *.hbk pot fi deschise prin meniul Help Æ Open Book, sau
dacă au fost instalate se găsesc în meniul HelpÆ Handbooks. Fereastra de afişare a CE are o bară
performantă de instrumente de navigare, căutare. După cum s-a amintit, foia CE este o foaie de
lucru Mathcad interactivă, în plus se pot face comentarii scrise care se pot salva sau nu, oricând
putându-se reveni la forma originală a cărţii. Utilizatorul îşi poate crea propria carte electronică
(vezi Help Æ Contents Æ Electronic Books and Extension Paks şi manualul utilizatorului).

2.3.4. Alte surse de documentare

Documentaţia standard, furnizată de firma Mathsoft sub forma de fişiere *.pdf (portable
document format, pentru citirea acestor documente se utilizează programul freeware Acrobat
Reader), constă din două manuale reunite într-un singur document mathcad.pdf (536 pagini) care se
găseşte pe CD-ul de instalare: ghidul utilizatorului Mathcad 2001 (”Mathcad User’s Guide”) şi
manualul de referinţă (”Mathcad Reference Manual”).

2.4. PRINCIPIILE DE LUCRU ŞI ELEMENTELE DE OPERARE


ÎN MATHCAD

2.4.1. Principiile de lucru

Mathcad-ul conservă convenţiile de scriere, citire pe suport de hârtie, operante în culturile


europene sau de origine europeană. Datorită acestui fapt şi a altor caracteristici, documentele
Mathcad se bucură de un înalt grad de ergonomicitate.
Câteva dintre cele mai importante principii de lucru în Mathcad sunt:
1. Concentrarea elementelor principale ale unui document: expresii, ecuaţii, grafice,
comentarii pe acelaşi suport ( foia de lucru în Mathcad similară foii de hârtie în varianta clasică).
Alte soft-uri matematice utilizează ferestre separate, specializate pentru editarea programului,
pentru afişarea rezultatelor, graficelor.
2. Mathcad-ul permite controlul vizibilităţii zonelor dintr-un document prin includerea
lor în blocuri de regiuni (”areas”). Astfel creşte mult lizibilitatea documentelor complexe: la primul
contact vizual, zonele de amănunt pot fi ascunse, ulterior acestea pot fi expandate şi analizate.
3. Principiul furnizării de către Mathcad a unor structuri predefinite tip cadru (”frame”)
pe care utilizatorul le particularizează prin completarea unor zone libere, editabile, numite
placeholder-e.

25
De exemplu, convenţia de scriere a funcţiilor este cea uzuală: numele funcţiei urmată de
două paranteze rotunde care cuprind lista argumentelor separate prin virgule. Dacă o funcţie
predefinită este selectată prin intermediul casetei de dialog specifice, aceasta este scrisă automat în
foia de lucru, în locul fiecărui argument existând câte un placeholder, pe care trebuie să-l
completeze utilizatorul. Placeholder-ele pot fi şterse dacă sunt în exces, adăugate dacă sunt
insuficiente şi în final completate. Pe acelaşi principiu, al completării placeholder-elor, se mai
bazează: reprezentarea grafică 2D şi 3D a funcţiilor, scrierea integralelor, derivatelor, limitelor,
sumelor, produselor, matricelor etc.
4. Expresiile matematice se scriu cu notaţiile uzuale folosite în matematică, simbolurile
respective fiind disponibile în BIM Math.
5. În mod implicit foia de lucru Mathcad este “live”: orice modificare efectuată de
utilizator, care afectează o variabilă sau funcţie, determină reevaluarea tuturor regiunilor
matematice vizibile plasate pe acelaşi rând la dreapta şi dedesubt. Această operaţie se poate evita
prin alegerea modului manual de lucru (meniu Math Æ debifare Automatic Calculation).
6. Scrierea implicită a rezultatului în dreapta simbolului de evaluare a expresiei, deci în
aceeaşi foaie de lucru, principiu aplicat în Mathcad şi la rezolvări de ecuaţii, sisteme.
7. Utilizatorul are o mare libertate de plasare a regiunilor matematice şi text în foia de
lucru. Evident trebuie respectată logica elaborării documentului şi luarea în considerare a modului
de calcul a foii: pe rânduri de sus în jos şi pe un rând de la stânga la dreapta.
8. Calităţile de interpretare contextuală ale Mathcad-ului simplifică efortul de editare
depus de utilizator. Exemple: nu este necesară o declarare a naturii variabilelor; în calculele
numerice natura unei variabile este dedusă de Mathcad funcţie de valoarea atribuită; în calculele
simbolice variabilele, nedefinite anterior evaluării unei expresii, sunt considerate ca variabile
simbolice (algebrice), iar cu cele definite se operează prin valorile lor.
9. Evaluările numerice şi cele simbolice utilizează două simboluri diferite de evaluare.
În acest mod simplu sunt activate procesorul numeric sau cel simbolic.

2.4.2. Elemente de operare în Mathcad

Obiectivul acestui subcapitol este de a familiariza utilizatorul cu câteva elemente


importante de operare în Mathcad, care să constituie baza pentru primele aplicaţii.

2.4.2.1. Editarea regiunilor în Mathcad

Foia de lucru este structurată în două tipuri de zone editabile, numite în Mathcad regiuni
(”regions”):
- regiunea matematică (”math region”), după cum îi sugerează denumirea, activă
matematic;
- regiunea text (”text region”), inactivă matematic (dacă nu conţine expresii matematice)
destinată comentariilor.
Regiunile pot fi privite ca module de construcţie a foii de lucru. După cum s-a amintit,
regiunile comunică între ele în ordinea de sus în jos, pe verticală, şi de la stânga la dreapta, pe
orizontală.

26
Introducerea regiunilor
Dacă se execută un clic cu ButS într-o zonă liberă a foii de lucru, apare în poziţia
respectivă un cursor cu fire reticulare, colorate în roşu (”crosshair”). Acest cursor special indică
locul unde se poate insera o regiune.
După apariţia cursorului reticular, sistemul consideră implicit regiunea ca fiind
matematică, deci utilizatorul poate începe direct să efectueze operaţiile specifice: un calcul
numeric, să definească o variabilă sau o funcţie, să scrie o expresie etc.
Dacă se doreşte ca regiunea să fie de tip text, există două posibilităţi de a o defini:
- din meniul Insert Æ Text Region;
- prin apăsarea tastei [“].
Operaţiile de selectare, repoziţionare, copiere, lipire, ştergere se efectuează ca în orice
mediu vizual de programare sub Windows: Delphi, Visual Basic, Visual C++ etc.

Selectarea, deselectarea regiunilor


Selectarea regiunilor se poate face în două scopuri:
1. pentru modificarea informaţiei dintr-o regiune;
2. pentru manipularea întregii informaţii conţinute de o regiune sau mai multe, prin
copiere, mutare, tăiere etc.
În primul caz, selectarea unei regiuni se efectuează printr-un clic în spaţiul dreptunghiular al
acesteia. Implicit, Mathcad-ul indică faptul că regiunea este selectată printr-un cadru dreptunghiular
reprezentat cu linie continuă.
În al doilea caz, ca efect al selectării, regiunea sau regiunile sunt încadrate de un dreptunghi
reprezentat cu linie întreruptă.
Deselectarea se efectuează printr-un clic în afara regiunii, sau grupului de regiuni.
Operaţia de selectare a unui grup de regiuni se poate face în următoarele moduri:
Etape ________________________________
Apăsaţi şi menţineţi apăsarea tastelor [Shift] sau [Ctrl].
Efectuaţi clic-uri succesive pe regiunile pe care doriţi să le selectaţi.
Metoda se aplică când regiunile sunt împrăştiate pe suprafaţa foii de lucru şi nu este posibilă
cuprinderea lor într-un singur dreptunghi de selecţie.

Etape ________________________________
1. Efectuaţi clic cu ButS într-o zonă liberă a foii şi menţineţi butonul mouse-ului apăsat.
2. Mişcaţi cursorul până la cuprinderea grupului de regiuni într-un dreptunghi
reprezentat cu linie întreruptă (dreptunghi de selecţie).
3. Eliberaţi butonul, ca urmare dreptunghiul de selecţie dispare, regiunile selectate fiind
încadrate individual cu dreptunghiuri reprezentate cu linii întrerupte.
Metoda este raţională dacă regiunile sunt grupate.

27
Etape ________________________________
1. Clic pe prima regiune.
2. Apăsaţi tasta [Shift] şi menţineţi-o în această stare.
3. Clic pe a doua regiune.
Prin operaţiile de mai sus sunt selectate toate regiunile cuprinse între prima şi a doua
regiune, deci metoda este similară, ca efect, cu cea anterioară.
_______________________________________________________________________________
Dacă se doreşte deselectarea unei regiuni, care face parte dintr-un grup selectat, se
efectuează următoarele operaţii:
Etape ________________________________
1. Apăsaţi [Shift] sau [Ctrl].
2. Efectuaţi un clic pe regiunea care doriţi să o deselectaţi.
În continuare, deselectarea altor regiuni din grup se face prin operaţia 2 menţinând tasta
[Shift] sau [Ctrl] apăsată .
_______________________________________________________________________________

Mutarea, copierea, tăierea, lipirea şi ştergerea regiunilor


Mutarea, copierea, lipirea şi ştergerea regiunilor presupune selectarea anterioară a acestora.
Repoziţionarea (mutarea) unei regiuni, sau a unui grup de regiuni, se efectuează în următoarea
succesiune de operaţii:
Etape ________________________________
1. Selectaţi regiunea/regiunile.
2. Plasaţi cursorul mouse-ului pe cadrul dreptunghiular al regiunii, sau deasupra uneia
dintre regiunile grupului selectat; forma cursorului se modifică într-o mână.
3. Clic şi menţineţi butonul mouse-ului apăsat.
4. Deplasaţi cursorul în poziţia dorită (”drag”).
5. Eliberaţi butonul mouse-ului (”drop”).
_______________________________________________________________________________

Repoziţionarea se poate efectua în altă zonă a unui document sau în alt document. În al
doilea caz, ambele documente trebuie să fie vizibile. Acestea pot fi organizate în cascadă, unul
lângă altul pe orizontală sau verticală (meniul Window Æ Cascade/Tile Horizontal/Tile
Vertical), sau poziţionate manual (se apasă butonul Restore din colţul N-E al foii, se
redimensionează foia de lucru, se plasează cursorul pe zona de titlu a foii de lucru şi se efectuează
mutarea).
Regiunile pot fi repoziţionate şi prin tăierea (”cut”) şi lipirea (”paste”) lor în altă poziţie:

28
Etape ________________________________
1. Selectaţi regiunea/regiunile.
2. Tăiaţi de pe foaie regiunea/regiunile selectate, printr-una din metodele:
- meniul Edit Æ Cut;
- comanda Cut din meniul pop-up, vizibil prin apăsarea tastei dreapta a mouse-ului
(cea mai productivă metodă);
- butonul, cu pictograma foarfece, de pe bara instrumentelor
standard.
3. Efectuaţi un clic pe foia de lucru într-o zonă neocupată, unde intenţionaţi să lipiţi
regiunea/regiunile.
4. Lipiţi printr-una din metodele:
- meniul Edit Æ Paste;
- comanda Paste din meniul pop-up;
- butonul având pictograma timbru pe scrisoare, din bara instrumentelor
standard.
_______________________________________________________________________________
Asemănător se poate efectua o multiplicare a regiunilor printr-o singură copiere (meniu
Edit Æ Copy, sau comanda Copy din meniul pop-up, sau butonul din bara instrumentelor
standard), urmată de lipiri multiple (”paste”).
Copierea şi tăierea regiunilor utilizează clipboardd-ul, care are funcţia de depozit temporar.
Spre deosebire de operaţia de tăiere (”cut”), cea de ştergere (”delete”) nu transferă informaţia în
clipboard, deci informaţia este nerecuperabilă, aceasta nu va mai putea fi lipită. Ştergerea se poate
efectua prin: meniul Edit Æ Delete sau apăsând tasta [Delete].
Rapid+Suplimentar___________________________
Operaţiile de copiere, tăiere, lipire şi ştergere pot fi efectuate şi prin următoarele combinaţii
de taste, operante în general, pentru orice program cu funcţii de editare text, integrat Windows:
- copierea: [Ctrl]+[C];
- tăierea: [Ctrl]+[X];
- lipirea: [Ctrl]+[V];
- ştergere: [Ctrl]+[D];

Pentru ca acestea să fie active, din meniul View Æ Preferences, pe pagina General a
casetei de dialog, trebuie selectată opţiunea “Standard Windows shortcut keys”, care este implicit
selectată
_______________________________________________________________________________

29
2.4.2.2. Operaţii elementare în regiunile matematice

Calcule simple în Mathcad


Foia de lucru poate fi utilizată şi pentru efectuarea unor calcule simple, similare celor făcute
cu un calculator standard de buzunar.
Etape ________________________________
1. Clic într-o zonă liberă a worksheet-ului Æ

2. Scrieţi expresia 2^2.5-5/52.96= Æ


_______________________________________________________________________________
Se observă că la inserarea unui operator (^ putere, - scădere, / împărţire) pe foia de lucru
apare un placeholder, în care utilizatorul scrie operandul care urmează (un număr, o variabilă, o
funcţie). La apăsarea tastei [=] expresia este evaluată şi dacă aceasta este corectă, se afişează
rezultatul în dreapta semnului =. După rezultat mai este afişat un placeholder care este destinat
dimensiunilor. Dacă nu se lucrează cu dimensiuni, acesta poate fi ignorat.

Atentie ________________________________
În timpul scrierii expresiei, apare un cursor colorat în albastru, care este format dintr-un segment
vertical, plasat după ultimul caracter scris, numit linie de inserţie (“insertion line”) şi un
segment orizontal, care subliniază caracterele până la operatorul anterior, numit linie de
subliniere (”underline”) (exemplu: ). Dacă se efectuează un clic pe o
expresie, cursorul mai sus amintit poate avea forma din exemplu, sau a caracterelor L, ⊥, funcţie
de poziţia cursorului mouse-ului relativ la operand. În documentaţia Mathcad acest cursor este
numit linie de editare orizontală (”horizontal editing line”), abreviată LEO. Poziţia LEO şi
lungimea de cuprindere sunt controlate cu tasta Space şi tastele săgeţi.
_______________________________________________________________________________
În expresia de mai sus, după ce a fost scris exponentul 2.5, LEO a fost coborâtă, prin tasta
[Space], pentru a scrie operatorul minus.
În locul tastelor operatori se pot utiliza butoanele barei de instrumente Calculator. Atragem
atenţia că pe acest toolbar există două butoane cu pictograme asemănătoare: = evaluare şi :=
definire, care evident au semnificaţii diferite.

Definirea variabilelor locale

Etape ________________________________
1. Clic într-o zonă liberă a worksheet-ului Æ

2. Scrieţi numele variabilei. Æ

30
3. Inseraţi simbolul definire (:=) din unul din Æ
toolbar-urile Calculator, Evaluation, ori mai rapid apăsaţi tasta [:].

4. Completaţi valoarea în placeholder. Æ


_______________________________________________________________________________
Observaţii:
- valoarea asignată variabilei poate fi un număr, ca în exemplul de mai sus, sau o expresie
numerică, sau o expresie hibridă, dependentă de alte variabile anterior definite şi de
numere;
- într-o regiune matematică poate fi definită o singură variabilă.

Definirea funcţiilor locale

Definirea unei funcţii se face asemănător definirii unei variabile, cu următoarele


deosebiri:
- în partea stângă a simbolului de definire, se scrie numele funcţiei şi lista argumentelor,
separate prin virgule, între paranteze rotunde (de exemplu: f(x,y) );
- expresia scrisă în partea dreaptă a simbolului de definire trebuie să fie dependentă de
argumentele funcţiei; aceasta mai poate conţine numere, funcţii predefinite, variabile
anterior definite (de exemplu: f(x,y):=x+y-a, a fiind o variabilă definită anterior).

Pentru exemplificare, se utilizează ecuaţia explicită a traiectoriei punctului material, care se


mişcă în câmp gravitaţional, fără frecare. Aceasta se poate scrie în Mathcad, în mai multe
moduri, două dintre ele fiind:
- ca o funcţie având argumentele: x, α, V0, g;
- ca o funcţie având doar argumentul x, considerând că variabilele α, V0, g au fost
definite anterior, etapele fiind explicitate în continuare.
Etape ________________________________
1. Definiţi variabilele g, α,V0 Æ

2. Scrieţi numele funcţiei şi argumentul x Æ


3. Inseraţi simbolul de definire din toolbar-ul
Calculator, sau mai rapid apăsaţi tasta [:]. Æ
4. Scrieţi expresia funcţiei
x*v0*tan(α)-0.5*g*(x/v0*cos(α))^2 Æ

_______________________________________________________________________________

Funcţia astfel definită, poate fi utilizată la fel ca orice altă funcţie predefinită în Mathcad,
pentru: determinarea ordonatei punctului material pe traiectorie, corespunzătoare unei abscise x

31
cunoscute; reprezentarea grafică a traiectoriei (vezi paragraful Grafice 2D), sau în orice expresie
poziţionată la dreapta pe orizontală, sau mai jos.
Calculul valorii funcţiei se efectuează parcurgând paşii:

Etape ________________________________
Scrieţi numele funcţiei, înlocuind valorile
argumentelor prin: numere, variabile definite
anterior, sau expresii Æ
Apăsaţi tasta [ = ], sau din bara de instrumente
Calculator apăsaţi butonul = (Evaluate Numerically) Æ
_______________________________________________________________________________

Calcule iterative în Mathcad


Pentru efectuarea calculelor iterative, pe lângă alte mijloace, se poate utiliza o variabilă specială,
numită “range variable”. Aceasta are valori în progresie aritmetică. Deoarece denumirea
descriptivă este greoaie: variabilă cu valori în progresie aritmetică, în continuare se
utilizează abrevierea VPA (variabilă în progresie aritmetică).
Forma completă şi simplificată a VPA:
nume VPA := valoare initială, urmatoarea valoare .. valoare finală.
nume VPA := valoare initială .. valoare finală.

În varianta completă, raţia progresiei aritmetice este diferenţa dintre al doilea şi primul
termen. Se poate lucra cu raţie pozitivă sau negativă. Raţia formei simplificate este implicit 1.

Etape ________________________________
1. Scrieţi numele VPA, introduceţi simbolul definire (:=) Æ

2. Scrieţi, în placeholder, prima valoare a progresiei Æ

3. Apăsaţi tasta virgulă [ , ] Æ

4. Scrieţi, în placeholder, a doua valoare a progresiei Æ

5. Apăsaţi tasta punct şi virgula [ ; ], sau din bara de


instrumente Calculator, apăsaţi butonul m .. n Æ

6. Scrieţi, în placeholder, ultima valoare a progresiei Æ

32
Pentru scrierea VPA simplificate, se elimină paşii 3 şi 4.

Orice expresie, dependentă de VPA, este evaluată succesiv pentru fiecare valoare a VPA.

Astfel, dacă doriţi să calculaţi ordonatele traiectoriei punctului material, pentru fiecare
dintre valorile VBA, definite mai sus, scrieţi: y(d)= . Se obţine rezultatul sub forma
unui vector coloană (vezi captura alăturată).

Atentie ____________________________
¾ În definirea VPA se pot utiliza numai numere reale, sau expresii cu valori reale.
¾ Nu introduceţi simbolul două puncte (.. ) prin dubla apăsare a tastei punct, ci doar prin
operatorul m .. n, aflat în BIM Matrix.
¾ Nu utilizaţi direct blocul de valori m .. n în funcţii, expresii, ci doar când definiţi o VBA;
de exemplu o evaluare de forma: y(50 .. 70)= nu este acceptată de sistem.
¾ Nu sunt permise VPA imbricate.
¾ VPA nu poate fi element al unui vector sau matrice.
_______________________________________________________________________________

Grafice 2D
Mathcad pune la dispoziţia utilizatorului o paletă largă de reprezentări grafice 2D şi 3D
a funcţiilor de una, respectiv două variabile, a seturilor de puncte şi a câmpurilor.

În 2D se pot face reprezentări grafice de funcţii explicite, parametrice, în sisteme de


coordonate carteziene sau polare.
Utilizatorul are la dispoziţie numeroase opţiuni de inserare a unui grafic 2D în foia de lucru
şi de completare a parametrilor de reprezentare a graficului. Una dintre acestea, care are o
productivitate mare ( 2D QuickPlots ), este prezentată mai jos, urmând ca în capitolul 8 să fie
detaliate şi celelalte.
Etape ________________________________
1. Scrieţi numele funcţiei, sau direct expresia funcţiei Æ

2 Introduceţi simbolul a rond (@) sau graficul cadru din toolbar-ul Graph:
sau din meniul Insert Æ Graph Æ X-Y Plot

Clic în exteriorul regiunii graficului sau apăsaţi tasta


[Enter]
_______________________________________________________________________________

33
Placeholder-ul, plasat median la stânga axei Y, este completat automat cu numele sau
expresia funcţiei, iar după efectuarea clic-ului este completat automat şi cel de pe axa X. Graficul
este reprezentat pentru x ∈ [− 10..10] , interval implicit, care poate fi modificat prin clic pe grafic şi
completarea celor două placeholder-e plasate la extremităţile axei X. De asemenea, efectuând un
dublu clic, în spaţiul graficului, se deschide o fereastră de dialog pentru formatarea acestuia.

Graficul 2D poate fi repoziţionat, tăiat,


copiat, lipit, şters ca orice regiune, în plus,
poate fi şi redimensionat, independent, pe
direcţie X, Y, sau simultan pe ambele direcţii,
prin intermediul celor trei zone senzitive din
partea de S-E a graficului, numite mânere
(”handles”).

Introducerea unui text

Etape ________________________________
Clic într-o zonă liberă a worksheet-ului. Æ
2.1. Apăsaţi tasta ghilimele [“],
sau
2.2 Alegeţi din meniul Insert Æ Text Region.
3. Scrieţi textul Æ
_______________________________________________________________________________

În comparaţie cu forma cursorului dintr-o regiune matematică, într-o regiune text cursorul îşi
modifică forma într-o bară verticală de culoare roşie. Convenţiile de editare sunt aproape
identice cu cele din WinWord. Formatarea poate fi făcută prin clic cu ButD, în regiunea text şi
alegerea din meniul pop-up a comenzilor referitoare la: fonturi, paragraf, stil etc.

În regiunile text se pot insera şi regiuni matematice fie prin Copy Æ Paste, fie prin scrierea
expresiei matematice, după cum urmează:

Etape ________________________________
1. Clic, în locul din regiunea text, unde doriţi introducerea regiunii matematice.
2. Alegeţi din meniul Insert Æ Math Region.
3. Scrieţi în placeholder expresia matematică.
_______________________________________________________________________________

Regiunea matematică, înglobată în text, este o regiune activă. Dacă se doreşte dezactivarea ei se
alege din meniul Format Æ Proprieties Æ Calculation Æ Disable Evaluation Æ OK. O

34
regiune matematică pasivă este marcată cu un mic dreptunghi negru plasat în poziţia unui
exponent.
Operaţii de tipărire, salvare, deschidere de documente Mathcad
Salvarea unui document Mathcad
Mathcad-ul salvează documentele în următoarele formate:
- formatul implicit având extensia *.mcd (mathcad document), sau varianta *.mct
(mathcad template) pentru modele de documente;
- se mai poate opta pentru salvarea în format *.rtf (rich text format) recunoscut de
majoritatea procesoarelor de texte;
- HTML (Hypertext Mark-up Language) care poare fi citit de browser-le Web;
- formatele versiunilor anterioare ale Mathcad-ului: 6, 7, 8 şi 2000.
Etape ________________________________
1. Meniul File Æ Save, sau [Ctrl]+[S], sau clic pe pictograma din bara
instrumentelor standard.
2. Dacă fişierul a mai fost salvat anterior, Mathcad efectuează salvarea fără alte operaţii
suplimentare din partea utilizatorului. Dacă fişierul nu a mai fost salvat anterior, în caseta
de dialog Save As se completează numele fişierului, se alege locul de salvare (”Save in”),
eventual, se alege tipul de fişier salvat, diferit de cel implicit (”Save as type”)
_______________________________________________________________________________

Deschiderea unui document Mathcad


Deschiderea unui document care a fost salvat anterior: meniul File Æ Open, sau
[Ctrl]+[O], sau pictograma din bara instrumentelor standard.
Deschiderea unui document nou: meniul File Æ New, sau [Ctrl]+[N], sau pictograma
din bara instrumentelor standard

Tipărirea unui document Mathcad

Pentru tipărirea documentelor, din bara instrumentelor standard, se apasă butonul sau
se utilizează comanda Print din meniul File.

Pentru analiza punerii în pagină, în acelaşi meniu se găseşte şi comanda Print Preview, sau se
efectuează un clic pe butonul din bara instrumentelor standard.

Amănunte privind setările necesare ale layout-ului foii de lucru, ale imprimantei, se găsesc în
subcapitolul 3.2

35
I FUNDAMENTE MATHCAD 2001

FOAIA DE LUCRU

_______________________________________________________________________________

3.1. MODELUL FOII DE LUCRU

Orice foaie de lucru Mathcad se bazează pe un fişier cu extensia *.mct care conţine
informaţiile asupra layout-ului (dimensiunea foii de lucru, orientarea, marginile, antete şi subsoluri)
şi formatărilor referitoare la regiuni (fonturi, stiluri ale regiunilor matematice, text, formatul
rezultatelor numerice, a valorilor, unităţile de măsură etc.)
În Mathcad se poate lucra pe:
- foaia albă de lucru implicită (“blank worksheet”), cu parametrii memoraţi în fişierul
normal.mct;
- după alte modele predefinite (“templates”);
- după modele create de utilizator.
O nouă foaie de lucru moşteneşte toate caracteristicile referitoare la layout şi la formatările
modelului. Prin acest mecanism se asigură constanţa parametrilor grafici pentru o aplicaţie dată.

3.1.1. Deschiderea unei noi foi de lucru

- meniul File Æ New, din fereastra de dialog alegeţi un model,


sau
- pictograma , din bara de instrumente standard, care deschide foia de lucru
implicită.

Crearea unui nou model al foii de lucru

Etape ________________________________
1. Porniţi de la o foaie de lucru căreia trebuie să-i setaţi următoarele caracteristici:
o proprietăţile implicite ale textului;
o stilurile matematice;
o stilurile textelor;
o antetul şi subsolul;
o marginile pentru tipărire;
o formatarea rezultatelor numerice;
o valorile variabilelor implicite;
o numele unităţilor de măsură de bază;
o sistemul de măsură implicit
o modul de calcul implicit.

36
Foia poate să mai conţină ecuaţii, texte şi alte obiecte pe care doriţi să le aveţi în model.
2. Meniul File Æ Save As.
3. În fereastra de dialog efectuaţi operaţiile:
o în câmpul Save as type, alegeţi, din lista afişată Mathcad Template (*.mct);
o în câmpul File Name, scrieţi numele modelului;
o în câmpul Save in, poziţionaţi-vă în subdirectorul Templates, aflat în directorul
unde se găseşte programul Mathcad 2001;
o în final, efectuaţi clic pe butonul Save.
_______________________________________________________________________________
Modelul, astfel creat, este disponibil în lista existentă în fereastra de dialog New. Dacă
modelul a fost salvat în alt loc, la deschidere va trebui apăsat butonul de răsfoire Browse, care are
asociată o fereastra de dialog asemănătoare celei standard Open.

3.1.2. Modificarea unui model

Etape ________________________________

1. Meniul FileÆOpen sau pictograma din bara instrumentelor standard.


2. În fereastra de dialog efectuaţi operaţiile:
o în câmpul Files of type, alegeţi din listă articolul Mathcad Template;
o în câmpul File Name, scrieţi numele modelului;
o în câmpul Look in, poziţionaţi-vă în subdirectorul unde se găseşte modelul;
o în final, clic pe butonul Open.

3. Modificaţi modelul.
4. Salvaţi modelul, cu acelaşi nume prin meniul File Æ Save, sau pictograma
sau dacă doriţi să-i schimbaţi numele prin File Æ Save As.
_______________________________________________________________________________

3.2. SETAREA LAYOUT-ULUI FOII DE LUCRU ( E)

Dacă se intenţionează tipărirea documentului Mathcad este indicat ca, înainte de elaborare
să se seteze parametrii foii de lucru funcţie de caracteristicile imprimantei.

37
3.2.1. Setarea dimensiunii foii de lucru, orientării, marginilor

Pentru setarea dimensiunii foii de lucru, se alege comanda Page Setup din meniul File.

În fereastra de dialog Page Setup


(figura alăturată) se poate alege una din
numeroasele dimensiuni predefinite, efectul
putându-se vedea în partea superioară a
ferestrei, printr-un preview.
Pe foia de lucru Mathcad, marginea
din dreapta a câmpului printabil al foii este
marcată de o linie verticală gri.
Prin cele două butoane radio Portait şi
Landscape, se stabileşte orientarea foii pe
lungime, respectiv pe lăţime.
Se pot seta şi distanţele, de la
marginile foii de hârtie, la marginile zonei
tipăribile.
Selectarea check-box-ului Print single
page width are ca efect tipărirea doar a zonei
care se află la stânga marginii dreapta a foii de
lucru. Efectuând un clic pe butonul Printer,
se deschide o fereastră, prin care se alege unul
din tipurile imprimantelor instalate pe PC.

3.2.2. Separatorii foii de lucru

Mathcad-ul lucrează cu două tipuri de separatori, pe verticală, ai foii de lucru:


1. Separatorii impliciţi (“soft page breaks”), plasaţi automat de către sistem funcţie de
marginile setate şi de imprimanta implicită. Sunt reprezentaţi prin linii întrerupte.
2. Separatorii suplimentari (”hard page breaks”) setaţi de utilizator prin comanda Page
Break, din meniul Insert. Aceştia apar pe foia de lucru, ca linii continue orizontale.
Separatorii suplimentari, după ce au fost selectaţi, pot fi repoziţionaţi, şterşi etc.
Indiferent de natură, separatorii determină, la tipărire, saltul la o pagină nouă.

3.2.3. Antete şi subsoluri

În general, antetul (”header”) şi subsolul (”footer”) sunt utilizaţi în documentele tipărite. În


aceste zone se plasează texte, sau imagini cum ar fi: numărul paginii, data calendaristică, logo-ul
companiei, titlul documentului, numele autorului etc.
Editarea antetelor şi a subsolurilor se face prin intermediul unei casete de dialog, care se
deschide la comanda Headers/Footers, din meniul Format.

38
Fereastra de dialog conţine două tab-uri identice, corespunzătoare celor două elemente,
fiecare fiind format din câte trei ferestre: Left, Center şi Right. Uilizatorul poate introduce texte
sau imagini, care vor apărea în foia tipărită, plasate la dreapta, centrat, la stânga.
Introducerea textelor se poate face pe mai multe căi:
- prin scriere directă în una, două sau toate cele trei ferestre;
- utilizând cele opt butoane, grupate sub numele Tools, prin care se pot scrie următoarele
texte predefinite:
- primele patru butoane, de pe primul rând, comandă scrierea unor informaţii
referitoare la documentul curent: numele documentului, calea, numărul paginii
curente, numărul total de pagini;
- următoarele patru butoane, de pe al doilea rând, facilitează scrierea unor
informaţii de natură temporală: data calendaristică, ora ultimei salvări, data, ora
curentă;
- butonul Format deschide o casetă de dialog în care se pot seta caracteristicile
textului: tipul şi mărimea fontului, culoarea, efecte de subliniere, modul de
aliniere a textului: stânga, centrat, dreapta.
Introducerea imaginilor, având ca sursă fişiere imagine în format *.bmp, se efectuează
prin butonul Image din grupul Tools, care deschide o casetă de tip Open..
Pentru a vedea efectul editării antetelor şi subsolurilor utilizaţi comanda Print Preview, din
meniul File, sau butonul din bara instrumentelor standard:

Atentie ________________________________
Înălţimea textului introdus în antet şi subsol trebuie să se încadreze în spaţiul dintre
marginea fizică a foii de hârtie şi marginea zonei de tipărire. În caz contrar se produce o trunchiere
a textului. În cazul depăşirii, înălţimii setate a antetului sau subsolului, utilizatorul este întrebat
dacă doreşte ca marginile să fie ajustate automat astfel încât să nu se producă trunchierea.
_______________________________________________________________________________

39
În zona Options pot fi setate:
- numerotarea paginilor;
- antet/subsol diferit pe prima pagină. Dacă se bifează checkbox-ul, apar două tab-uri
suplimentare destinate setărilor antetului, subsolului specifice primei pagini.
Numărul curent al paginii, antetul şi/sau subsolul pot fi încadrate de rame dreptunghiulare
selectând checkbox-urile Page, Header, Footer, grupate sub denumirea Frame.

3.3. FINISAREA ASPECTULUI FOII DE LUCRU ( E)

3.3.1. Alinierea regiunilor

Mathcad-ul permite alinieri rapide pe orizontală şi verticală prin: meniul Format Æ Align
Regions Æ Across/Down, sau prin intermediul butoanelor de pe bara instrumentelor standard.
Ambele funcţionează pe principiul alinierii faţă de regiunea mediană din grupul selectat.

buton

Alinieri se pot face şi prin intermediul riglei (comanda Ruler din meniul View), în
maniera WinWord. Dacă de efectuează un clic cu ButD în spaţiul riglei, din meniul pop-up se poate
comanda ascunderea riglei (Hide), se poate seta unitatea de măsură pe riglă (Inches, Centimeters,
Points, Picas) şi vizualiza, individual, liniile de ghidare (Show Guideline).
Etape ________________________________
1. Plasaţi tab stop-ul pe riglă, prin clic pe aceasta.
2. Clic pe tab stop cu ButD.
3. Alegeţi, din meniul pop-up, comanda Show Guideline, ca urmare, pe foia de lucru apare
o linie verde, verticală faţă de care se pot alinia regiunile.
_______________________________________________________________________________
Pe riglă pot fi plasat mai multe tab-stop-uri. La apăsarea succesivă a tastei [Tab], cursorul
reticular sare cu pasul determinat de tab-stop-uri.
Pentru îndepărtarea unui tab-stop acesta trebuie selectat prin clic, apoi ţinând apăsat ButS
acesta se deplasează într-unul din capetele riglei (”drag&drop”).

3.3.2. Separarea regiunilor suprapuse

Dacă există suprapuneri ale regiunilor, acestea pot fi separate prin două metode:
- se selectează regiunile suprapuse. Sistemul efectuează automat separarea pe verticală la
apelarea comenzii Separate Regions din meniu Format;
- dacă regiunile nu sunt suprapuse total, separarea se poate efectua individual prin
selectarea câte unei regiuni şi apoi mutarea ei manuală (”drag&drop”).

40
Dacă nu se doreşte separarea regiunilor, ci doar gestionarea vizibilităţii lor, după ce este
selectată o regiune, aceasta poate fi adusă în faţă, trimisă în spate prin comenzile existente în meniul
pop-up (Bring to Front, Send to Back ).
Pentru facilitarea acestor operaţii trebuie cunoscute dimensiunile reale ale regiunilor. Prin
meniul View Æ Regions fondul foii de lucru se colorează în gri, iar regiunile rămân albe.
Deselectând prin clic comanda Regions, se revine la starea iniţială.
Scara de reprezentare a foii de lucru poate fi modificată prin:
- meniul View Æ Zoom;
- meniul pull-down, al barei de instrumente standard

3.3.3. Introducerea, ştergerea de rânduri libere pe foia de lucru

Inserarea rândurilor

Etape ________________________________
1. Clic în zona liberă unde doriţi să inseraţi rânduri goale.
2. Apăsaţi tasta [Enter]. Toate liniile, de sub cursorul reticular, translatează cu un pas în
jos. Operaţia de apăsare a tastei [Enter] se poate repeta după necesităţi.
_______________________________________________________________________________

Ştergerea rândurilor

Etape ________________________________
3. Clic în zona liberă, deasupra liniei pe care doriţi să o ştergeţi. Asiguraţi-vă că pe linie nu
există regiuni, în caz contrar efectul următoarei operaţii este nul.
4. Apăsaţi tasta [Delete]. Se elimină o linie plasată sub cursorul reticular. Apăsarea tastei
[Delete] poate fi repetată.
_______________________________________________________________________________
Dacă se apasă tasta [Backspace], se şterg liniile plasate deasupra cursorului reticular.
Se pot insera sau şterge un număr specificat de linii:

Rapid ________________________________
1. Clic cu ButD, într-o zona liberă pe foia de lucru, unde doriţi să inseraţi, sau să ştergeţi
rânduri libere.
2. Alegeţi din meniul pop-up comanda Insert lines sau Delete lines.
3. În caseta de dialog introduceţi numărul de linii şi apăsaşi butonul OK.
_______________________________________________________________________________

41
3.3.4. Modificarea culorii fondului foii de lucru, regiunilor

Modificarea culorii fondului foii de lucru

Etape ________________________________
1. Meniul Format Æ Color Æ Background.
2. Alegeţi din caseta de dialog una din cele 48 de culori afişate, sau dacă nu vă satisfac,
apăsaţi butonul Define custom color şi creaţi-vă culoarea dorită, fie pe cale grafică, fie
numerică şi în final apăsaţi butonul OK.
_______________________________________________________________________________

Modificarea culorii fondului unei regiuni

Etape ________________________________
1. Clic cu ButS pe o regiune.
2. Meniul Format Æ Proprieties, sau meniul pop-up comanda Proprieties.
3. Din caseta de dialog, alegeţi tab-ul Display.
4. În regiunea Background, selectaţi Highlight region şi apoi apăsaţi butonul Choose
Color. Puteţi selecta şi bordurarea regiunii prin check-box-ul Show Border.
5. Alegeţi culoarea din caseta de dialog.
6. Apăsaţi butonul OK
_______________________________________________________________________________

3.4. STRUCTURAREA REGIUNILOR

Operaţiile uzuale de editare a regiunilor au fost detaliate în paragraful 2.4.2.1: inserarea,


selectarea, deselectarea, alinierea, mutarea, copierea, tăierea, lipirea şi ştergerea regiunilor.
În subcapitolul curent se tratează problemele legate structurarea regiunilor. Această operaţie
se poate face în mai multe scopuri: mărirea lizibilităţii documentelor Mathcad, asigurarea
confidenţialităţii prin parolare etc.
Alte mijloace, detaliate mai sus, care duc la mărirea expresivităţii foii de lucru, disponibile
în orice editor de text, inclusiv în Mathcad sunt: inserarea de linii goale între regiuni; marcarea prin
culoarea fondului, încadrarea, utilizarea de fonturi de mărimi şi culori diferite etc.
Blocurile de regiuni sunt formate din: regiuni text, matematice, grafice şi alte obiecte
grupate după criterii logice. Documentaţia originară Mathcad le numeşte suprafeţe (“areas”). În
prezenta lucrare, se utilizează termenul mai descriptiv: Bloc de Regiuni (BR).

42
3.4.1. Inserarea unui bloc de regiuni

Etape ________________________________
1. Clic într-o zonă liberă din apropierea regiunilor pe care vreţi să le structuraţi în BR.
2. Meniul Insert Æ Area. Ca urmare Mathcad-ul plasează pe foia
de lucru doi delimitatori, care arată ca în figura alăturată.
3. Selectaţi şi poziţionaţi după necesităţi delimitatorii şi/sau
regiunile, astfel încât delimitatorii să cuprindă regiunile structurate ca BR.
_______________________________________________________________________________
Nu sunt permise BR imbricate (BR în interiorul altor BR).

3.4.2. Proprietăţile blocului de regiuni

3.4.2.1 Ascunderea conţinutului (contractarea) blocului de regiuni

Etape ________________________________
1. Clic cu ButD al mouse-lui, în zona cuprinsă de BR, sau în proximitatea unui delimitator.
2. Alegeţi, din meniul pop-up, comanda Collapse
_______________________________________________________________________________
Sau mai complicat:

Etape ________________________________
1. Clic cu ButS în zona cuprinsă de BR.
2. Meniul Format Æ Area Æ Collapse.
_______________________________________________________________________________
Sau cel mai simplu:

Rapid ________________________________
Clic dublu în zona adiacentă a unuia dintre delimitatorii BR.
_______________________________________________________________________________

După contractare BR arată ca în captura alăturată

Operaţiile curente de editare a regiunilor expandate, pot fi efectuate şi asupra BR


contractate: selectare, mutare, copiere, tăiere, lipire, ştergere (de exemplu, pentru ştergere: selectare
urmată de [Ctrl]+[D], sau din meniul Edit Æ Delete).

43
Un BR contractat este calculabil, însă nu “live”. Pentru reactualizarea regiunilor matematice,
din interiorul BR este necesară expandarea BR şi apelarea comenzii Calculate Worksheet din
meniul Math, sau Calculate din acelaşi meniu, dacă zona expandată este vizibilă pe display.

Exemplu: În exteriorul BR se definesc două variabile x, y, în interiorul unui BR


se calculează o expresie dependentă de acestea. Dacă opţiunea Automatic
Calculation din meniul Math este selectată, şi BR este expandat, la modificarea
valorii uneia din variabile şi clic pe foaia de lucru, expresia este reevaluată. Dacă
BR este contractat, reevaluarea automată nu se produce.

3.4.2.2. Relevarea conţinutului (expandarea) blocului de regiuni

Etape ________________________________
1. Clic cu ButD în proximitatea simbolului BR contractat.
2. Alegeţi din meniul pop-up comanda Expand.
_______________________________________________________________________________
Asemănător operaţiei de contractare, expandarea se poate face şi prin comanda Expand, din
meniul Format Æ Area, sau mai rapid, prin dublu clic în zona adiacentă simbolului BR contractat.

3.4.2.3. Încuierea blocului de regiuni

Încuierea se poate face, în două stări ale BR: expandat sau contractat, cu parolare, sau fără.
Setările se fac prin intermediul unei casete de dialog, care se deschide pe două căi:

Etape ________________________________
1. Clic cu ButS în interiorul BR expandat, sau în zona simbolului BR contractat.
2. Meniul Format Æ Area Æ Lock.

Etape ________________________________
1. Clic cu ButD în interiorul BR expandat sau în proximitatea simbolului BR contractat.
2. Alegeţi din meniul pop-up a comanda Lock.
_______________________________________________________________________________

44
După cum s-a amintit parolarea este opţională. Dacă se utilizează o parolă, aceasta trebuie
introdusă de două ori. Reţineţi că parola este “case senzitive” (sensibilă la majuscule, minuscule).
Prin două checkbox-uri se pot seta: contractarea automată la încuierea BR, afişarea datei şi orei
când s-a realizat încuierea.
Dacă pe o foaie de lucru, se află mai multe BR, acestea pot fi încuiate folosind aceeaşi
parolă, sau parole diferite. Descuierea unui BR se face asemănător încuierii, selectând comanda
Unlock, fie din meniul Format Æ Area, fie din meniul pop-up.

3.4.2.3. Setări grafice ale blocurilor de regiuni

Etape ________________________________
1. Clic ButD în zona senzitivă a unuia din delimitatorii BR expandat, sau în proximitatea
simbolului BR contractat.
2. Alegeţi comanda Proprieties din meniul pop-up.

Caseta de dialog, pentru setări grafice ale BR, este asemănătoare cu cea asociată regiunilor
matematice, sau text fiind compusă din două tab-uri:
- tab-ul “Display”, prin care se poate alege o culoare a fondului delimitatorilor şi eventual se
poate opta pentru încadrarea BR;
- tab-ul “Area”, prin care se poate scrie un titlu al BR, opţiuni pentru afişarea liniilor
delimitatoare, a icoanei din partea stânga a BR, a numelui şi datei.

45
I FUNDAMENTE MATHCAD 2001

LUCRUL CU REGIUNILE MATEMATICE ŞI TEXT


_______________________________________________________________________________

4.1. LUCRUL CU REGIUNILE MATEMATICE

În subcapitolul 2.4. s-au tratat relativ sumar următoarele probleme: calculele simple în
Mathcad, definirea variabilelor, funcţiilor şi utilizarea VPA în calculele iterative. Presupunând că
aceste baze au fost asimilate, în acest subcapitol se sistematizează tipurile de numere cu care
operează Mathcad, se tratează problema construirii şi editării expresiilor, stilurile matematice.

4.1.1. Numerele în Mathcad ( E)

Într-o regiune matematică, orice expresie care începe cu un caracter numeric 0 ... 9 este
interpretată ca număr. Pentru ca acestea să fie recunoscute ca numere, de către Mathcad, trebuie
respectate reguli specifice de sintaxă.

4.1.1.1. Numere definite de utilizator

Numerele reale
Numerele reale, reprezentate în sistemul de numeraţie zecimal, sunt formate din caractere
numerice şi un punct zecimal. Pentru numere mari se poate utiliza şi exprimarea exponenţială, în
particular, formatul ştiinţific.
Exemple: 2136.452, 1.268E+5 (introdus ca: 1.268*10^5).

Atentie ________________________________
Nu utilizaţi, în scopul măririi lizibilităţii numărului real, mai multe puncte zecimale, sau
virgule. În ambele situaţii, sistemul vă va informa că nu poate interpreta expresiile respective.
_______________________________________________________________________________
Numerele întregi pot fi scrise pe foia de lucru în mai multe sisteme de numeraţie. Sistemul
de numeraţie zecimal este implicit, deci utilizează sintaxa matematică uzuală.
Suplimentar_______________________________
- Sistemele de numeraţie binar (baza=2, cu cifrele 0,1), octal (baza=8, cu cifrele 0,1,
2...7). hexazecimal (baza=16, cu cifrele 0,1, 2.... 9, a, b, c, d, e, f) utilizează în Mathcad sufixurile:
b sau B pentru binar, o sau O pentru octa şi h sau H pentru hexazecimal.
Exemple: 1101b, 32o, 2b3ch.

46
Atentie ________________________________
În anumite circumstanţe, sistemul introduce automat operatorul înmulţire între unul din
caracterele numerice şi unul din caracterele nenumerice listate mai sus: b, o şi h. Deoarece sistemul
nu poate interpreta expresia respectivă, în sensul unui întreg scris într-un sistem de numeraţie diferit
de cel zecimal, operatorul înmulţire trebuie şters manual.
_______________________________________________________________________________
În cadrul unei expresii se pot utiliza operanzi scrişi în diferite sisteme de numeraţie:

Exemplu:

_______________________________________________________________________________

Numerele complexe
Introducerea unui număr complex sub forma algebrică.

Etape ________________________________
1. Scrieţi partea reală.

2. Introduceţi operatorul + sau -.


3. Scrieţi partea imaginară.
4. Scrieţi, fără nici un spaţiu, după partea imaginară i sau j.
_______________________________________________________________________________
Pentru un număr imaginar se sar etapele 1 şi 2.
Unitatea imaginară i/j se scrie manual: 1i, 1j, sau poate fi culeasă de pe toolbar-ul
Calculator.
În mod implicit, Mathcad utilizează la afişarea unităţii imaginare simbolul i. Pentru
comutarea pe j se face modificarea în tab-ul Display Options, din meniul Format Æ Result.

4.1.1.2. Constante matematice predefinite

Tabel 4.1. Constante matematice predefinite în Mathcad

Simbolul Localizare pe toolbar Taste Observaţii


1 Calculus [Ctrl]+[Shift]+[z] În calculele numerice
are valoarea 10 307
2 e Calculator (e x) [e ] Valoarea e în calculele
numerice are 15 zecimale
3 Calculator sau Greek [Ctrl]+[Shift]+[p] Valoare π în calculele
numerice are 15 zecimale
[p] Æ [Ctrl] Æ [g]
4 % - [% ] Echivalent cu înmulţirea
0.01

47
Constantele, incluse în tabelul de mai sus, pot fi redefinite prin operatorul de definire “:=”,
la fel ca orice variabilă.
În afară de constantele matematice predefinite, concentrate în tabelul de mai sus, în
Mathcad se mai utilizează constante de sistem, predefinite .

Tabel 4.2. Constante de sistem, predefinite în Mathcad

Nume Valoare Funcţionalitate


implicită
1 TOL 0.001 Controlează precizia de evaluare numerică a integralelor
(TOLerance) definite şi a derivatelor, a blocurilor solve şi funcţiei root.
2 CTOL 0.001 Controlează precizia de evaluare a restricţiilor în blocurile solve,
(Constraints în operaţii de optimizare, prin funcţiile minimize, maximize,
TOLerance) find sau minner .
3 ORIGIN 0 Valoarea de start a indexului vectorilor/ matricelor de pe o foaie
de lucru
4 PRNPRECISSION 4 Numărul de zecimale cu care se scriu valorile numerice într-un
(PRiNt PRECISSION) fişier, prin intermediul funcţiei writeprn
5 PRNCOLWITDH 8 Lăţimea coloanelor la fişierele ASCII, scrise cu funcţia
(PRiNt COLumns’ writeprn
WIDTH)
6 CWD (Current string Afişează directorul curent de lucru, unde sunt salvate fişierele.
Working Directory) Implicit este directorul Mathcad-ului.

Redefinirea constantelor de sistem se efectuează prin meniul Math → Options → tab-ul


Built in Variables, amănuntele vor fi prezentate în subcapitolele care tratează funcţiile în care sunt
implicate.

4.1.2. Nume de variabile şi de funcţii ( E)

4.1.2.1. Nume predefinite de variabile şi de funcţii

În afară de numele unor constante matematice, sau de sistem (tabelele 4.1 şi 4.2) Mathcad
tratează numele unor unităţi de măsură predefinite, ca variabile predefinite.
Exemple: A-ampere, m-metru, s-secundă, etc. Dacă scrieţi într-o regiune matematică numele uneia
din variabilele exemplificate şi apăsaţi tasta [=] în partea dreaptă a operatorului egal rezultă:
.
De asemenea, sunt predefinite sute de funcţii, care pot fi inserate în foia de lucru prin
butonul f(x), sau meniul Insert Æ Function. (vezi cap. 6 din partea I)

48
4.1.2.2. Nume definite de utilizator ale variabilelor şi funcţiilor

Pentru a se evita confuziile, este indicat, ca înainte de definirea unei noi funcţii, să se
verifice dacă nu există o funcţie predefinită cu acelaşi nume.
Numele de variabile şi funcţii pot conţine următoarele caractere:
- litere mari sau mici;
- cifrele 0 ... 9;
- caracterul _ ;
- simbolul prim ‘ (a nu se confunda cu “ );
- simbolul procent %;
- simbolul infinit ;
- caracterele greceşti, care se pot insera din toolbar-ul Greek Symbol, sau prin
succesiunea de taste: [litera latină corespunzătoare cele greceşti] Æ [Ctrl] +[g ];
- Mathcad face distincţia între literele mari şi mici (în engleză “case senzitive”).
Exemplu: x este numele unei variabile diferită de X.
Restricţii în definirea numelor de variabile şi funcţii:
- cifrele 0 ... 9, nu pot fi folosite ca prim caracter;
- simbolul infinit poate fi folosit, doar ca prim caracter;
- caracterele care urmează după caracterul punct vor apare ca indice (în engleză
”subscript”). A nu se face confuzie între un nume de variabilă care conţine unul sau mai
multe caractere trecute ca indice şi indicele unei variabile indexate (vezi şi capitolul 7
Vectori şi matrice). Mathcad este senzitiv la scrierea subscript.
Exemplu: pe o foaie de lucru, o variabilă cu numele X1, unde 1 este un caracter scris
subscript este diferită de o variabilă X1 şi de o variabilă X1, unde 1 este indicele
vectorului X.
- Mathcad nu poate face deosebirea între nume de variabile şi de funcţii. În consecinţă,
evitaţi să folosiţi acelaşi nume pentru o variabilă şi o funcţie;
Exemplu: Dacă se definesc: o funcţie cu numele f(x) şi undeva la dreapta sau mai jos, o
variabilă cu numele f, numele funcţiei va putea fi folosit doar în spaţiul foii de lucru de
la prima definire la a doua, nu şi dedesubtul, sau la dreapta locului unde s-a definit
variabila.

4.1.3. Construirea şi editarea expresiilor ( E)

4.1.3.1. Construirea expresiilor

În procesul construirii unei expresii Mathcad se comportă ca un editor de texte, în plus,


asamblează automat diversele părţi ale acesteia folosind regulile de precedenţă şi alte câteva reguli
care simplifică introducerea expresiei la numitor, la exponenţi şi sub radical.
Pentru introducerea unei expresii trebuie controlată poziţia şi aria de cuprindere a liniei de
editare orizontală (LEO):
¾ LEO apare de la tipărirea primului caracter şi cuprinde tot şirul de caractere până ce se
introduce un operator, când sare la dreapta placeholder-ului asociat .
¾ Pentru a cuprinde şi partea de expresie scrisă anterior se apăsă de n ori tasta Space.
¾ Schimbarea direcţiei de cuprindere a LEO se efectuează prin intermediul tastelor săgeţi
stânga/dreapta.

49
Se pot aplica două metode de construire a expresiilor:
1. Se construieşte scheletul expresiei, format din operatori şi apoi se completează
placeholder-le cu operanzi.
2. Se construieşte expresia, scriind succesiunea de operanzi şi operatori.
Prima metodă este indicată când se scriu expresii complicate care au o structură neliniară, pe
când cealaltă este raţională pentru expresii relativ simple, cu structură liniară. Evident că în practică
se pot face combinări ale celor două metode.
x a +b + y
Exemplu: scrierea expresiei prin cele două metode.
z
Metoda 1
1. Apăsaţi tasta [ / ], sau culegeţi operatorul →
împărţire din toolbar-ul Calculator.
2. Apăsaţi tasta [∧], sau
clic pe butonul Xy, din toolbar-ul Calculator. →

3. Apăsaţi tasta Space. →

4. Apăsaţi tasta [+], sau


clic pe butonul + din toolbar-ul Calculator. →
Astfel a fost finalizat scheletul expresiei.

5. Clic pe primul placeholder, sau


poziţionaţi-vă pe el prin apăsarea succesivă →
a tastei săgeată stânga.

6. Scrieţi x. →

7. Apăsaţi tasta săgeată dreapta, sau clic pe


placeholder-ul exponent. →

8. Scrieţi a+b. →

50
9. Apăsaţi, de două ori, tasta săgeată dreapta, →
sau clic pe următorul placeholder.

10. Scrieţi y. →

11. Apăsaţi tasta săgeată dreapta, sau clic pe


placeholder-ul de la numitor. →

12. Scrieţi z la numitor. →

Metoda 2

1. Apăsaţi tasta [∧], sau


clic pe butonul Xy, din toolbar-ul Calculator. →

2. Scrieţi a+b în placeholder-ul exponent. →


3. Clic pe placeholder.

4. Scrieţi x. →

5. Apăsaţi tasta Space . →


6. Apăsaţi tasta [ + ] sau
clic pe butonul + din toolbar-ul Calculator. →

7. Scrieţi y. →

8. Apăsaţi tasta Space. →

9. Apăsaţi tasta [ / ], sau culegeţi operatorul


împărţire din toolbar-ul Calculator. →

10. Scrieţi z. →

51
Utilizarea operatorului de înmulţire

Atentie ________________________________
Pentru a se înlătura orice ambiguitate privitoare la interpretarea de către Mathcad a operaţiei
de înmulţire, se recomandă introducerea întotdeauna a operatorului de multiplicare (tasta [*] sau
butonul Multiplication [x] din toolbar-ul Calculator).

Exemple:
- Scrierea, într-o regiune matematică a secvenţei: un operator, apoi caracterul x urmat
imediat de caracterul y şi apoi alt operator, este interpretat de Mathcad ca numele unei
variabile xy, nu x multiplicat cu y. La fel se întâmplă, de exemplu, cu expresia a(x+y),
unde Mathcad consideră că s-a definit o funcţie cu .
- Scrierea unei secvenţe 3x este interpretată de Mathcad ca produs 3*x. Însă secvenţa x3
este interpretată ca nume de variabilă. Fac excepţie de la această regulă combinaţii de
genul 4i, 4j care sunt interpretate ca numere complexe, şi sufixele o şi h precedate de o
cifră, utilizate în scrierea în sistemele de numeraţie octa, respectiv hexazecimal.
_______________________________________________________________________________

Suplimentar_______________________________
Utilizatorul poate opta pentru diverse reprezentări ale operatorului înmulţire:

Etape ________________________________
1. Clic cu ButD după operandul care precede operatorul de multiplicare.
2. Selectaţi din meniul pop-up comanda View Multiplication As, care deschide un
submeniu conţinând mai multe variante de reprezentate a operatorului.
_______________________________________________________________________________

4.1.3.2. Editarea expresiilor

Controlul poziţiei şi cuprinderii liniei de editare orizontale (LEO)

- Cuprinderea unui nume, număr. Clic în zona numelui, numărului, urmat de o apăsare
a tastei Insert sau Space. Cursorul vertical se deplasează spre capătul mai apropiat,
cuprinzând întreg operandul. Dacă se mai apasă încă o dată tasta Insert, cursorul vertical
îşi mută poziţia la cealaltă extremitate a operandului.
- Deplasarea pe distanţa unui caracter se efectuează prin apăsarea o dată a uneia din
tastele săgeţi stânga, dreapta.
- Cuprinderea progresivă a unei expresii se realizează prin apăsări multiple ale tastei
Space. Direcţia de cuprindere este spre capătul cel mai apropiat. Procesul este ciclic:
după ce a fost cuprinsă toată expresia, dacă se apasă tasta Space se revine la poziţia de
start a LEO.

52
Modificarea unui nume de variabilă, funcţie sau a unui număr

Pentru modificarea unui operand acesta trebuie selectat printr-un clic.


Prin apăsarea unei taste caracter se adaugă un caracter la stânga cursorului vertical. Prin
intermediul tastei [Backspace] şi [Delete] se efectuează ştergeri la stânga, respectiv la dreapta.
Pentru înlocuirea unui nume/număr, care apare de mai multe ori într-o foaie de lucru, se
poate utiliza Edit → Replace. În cazul documentelor de dimensiuni mari, căutarea unui nume,
număr este facilitată de comanda Find din meniul Edit.
Se observă că toate aceste operaţii de editare sunt identice cu cele din Winword.

Inserarea unui operator între două caractere ale unui nume, număr

Inserarea unui operator între două caractere aparţinând unui nume de variabilă, funcţie, sau a
unui număr, se face simplu prin plasarea cursorului în poziţia de inserţie şi apăsând tasta
corespunzătoare operatorului, sau butonul din toolbar-ul Calculator.

Atentie ________________________________
La inserarea operatorului împărţire, toate caracterele, plasate la dreapta cursorului vor fi
transferate la numitor.
Anumiţi operatori ca: radicalul, modulul cuprind caracterele plasate la dreapta cursorului
vertical. La inserarea lor, între caractere, sistemul plasează la stânga un placeholder alb, care indică
faptul că utilizatorul trebuie să-l completeze cu un operator +, -, *, / pentru ca sistemul să ştie ce
operaţie să facă între cele două părţi. Exemplu: În expresie s-a scris greşit xy în loc de x ⋅ y

Etape ________________________________
1. Poziţionaţi cursorul între x şi y →

2. Apăsaţi pe butonul produs [ x ], din BMI Calculator →

3. Inseraţi operatorul modul ( “absolute value”) →

_______________________________________________________________________________

Aplicarea operatorului asupra unei expresii

Există două modalităţi de a aplica un operator asupra unei întregi expresii:


1. Introduceţi întreaga expresie între paranteze rotunde şi apoi aplicaţi operatorul.
(manipularea parantezelor este detaliată mai jos). După inserarea operatorului,
parantezele dispar.
2. Cuprindeţi toată expresia cu LEO, după care aplicaţi operatorul.
A doua metoda este mai rapidă.

53
Ştergerea unui operator

Etape ________________________________
1. Clic la dreapta operatorului. →

2. Apăsaţi tasta [ Backspace ]. →


sau
1. Clic la stânga operatorului. →

2. Apăsaţi tasta [ Delete ]. →

După ştergerea unui operator acesta poate fi înlocuit cu altul prin apăsarea tastei, sau a
butonului corespunzător din toolbar-ul Calculator.

Editarea parantezelor
Includerea unei expresii între paranteze rotunde:

Etape ________________________________
1. Selectaţi expresia pe care doriţi să o cuprindeţi între paranteze. →

2. Apăsaţi tasta [ ‘ ], sau clic pe butonul ( ) din toolbar-ul Calculator. →

_______________________________________________________________________________
Parantezele rotunde se pot insera şi individual prin tastele [ ( ] şi [ ) ].

Ştergerea parantezelor

Etape ________________________________
1. Plasaţi cursorul vertical la dreapta parantezei ( →

2. Apăsaţi tasta [ Backspace ] →


sau
1. Plasaţi cursorul vertical la stânga parantezei ). →

2. Apăsaţi tasta [ Delete ]. →


_______________________________________________________________________________

54
Aplicarea unei funcţii asupra unei expresii
Transformarea unei expresii, într-un argument al unei funcţii, se efectuează după cum urmează:

Elape ________________________________
1. Selectaţi expresia prin clic, →
apoi cuprindeţi întreaga expresie cu LEO. →
2. Scrieţi numele funcţiei, sau dacă este predefinită, introduceţi-o
din meniul Insert → Function sau butonul f(x) din bara
instrumentelor standard. →
_______________________________________________________________________________
Operaţiile de tăiere, copiere, lipire, ştergere a unor părţi din expresii se fac, ca în orice editor
de text, prin comenzile Cut, Copy, Paste, Delete din meniul Edit, sau prin butoanele barei de
instrumente standard, respectiv tasta [ Delete ] sau [ Backspace ].
Rapid ________________________________
Pentru mutări este mai productivă utilizarea proprietăţii ”drag and drop” decât succesiunea
de operaţii Copy → Paste. Aceasta este operantă în cadrul aceleiaşi regiuni matematice, sau între
regiuni matematice diferite.
Exemplu: Să presupunem că trebuie construită expresia: sin (ϖ ⋅ t + ϕ ) + cos(ϖ ⋅ t + ϕ ) . Se observă că
expresia este simplă, deci se va aplica metoda a doua de construire şi că funcţiile au acelaşi
argument, deci după scrierea primului argument, al doilea se copiază prin ”drag and drop”.
Etape ________________________________
1. Înseraţi funcţia sin prin meniul Insert → Function →

sau prin butonul f(x) din bara instrumentelor


2. Scrieţi argumentul apelând şi la fonturile →
din paleta Greek.
3. Apăsaţi tasta săgeată dreapta,
inseraţi operatorul + şi funcţia cos. →
4. Selectaţi (poziţionaţi cursorul în faţa primului
caracter şi cu tasta stânga a mouse-ului apăsată →
deplasaţi cursorul până după ultimul caracter)
argumentul funcţiei sin.
5. Eliberaţi tasta mouse-ului, apăsaţi tasta [ Ctrl ]
şi efectuaţi operaţia de mutare (clic pe argumentul
selectat şi deplasaţi cursorul până în zona →
parantezelor funcţiei cos), după care efectuaţi operaţia
plasare, prin eliberarea tastei mouse-ului (”drag&drop”)

55
4.1.4. Stilurile regiunilor matematice

Mathcad utilizează un stil predefinit, asociat foii albe (”blank worksheet”). Acesta implică
utilizarea anumitor fonturi, mărimi ale fonturilor, efecte, culori etc. în vizualizarea variabilelor,
constantelor (numerelor) şi se aplică tuturor regiunilor matematice ale unei foi de lucru.

4.1.4.1. Editarea stilului regiunilor matematice

După ce au fost scrise una sau mai multe expresii cu stilul implicit, acesta poate fi modificat
prin setarea stilului variabilelor şi/sau constantelor.
Etape ________________________________
1. Executaţi un clic pe o variabilă, sau constantă funcţie de obiectiv: modificarea stilului
variabilelor din foia de lucru, sau a constantelor.
2. Meniul Format → Equation.
Se deschide o fereastră de dialog, în care este selectat automat tipul obiectului Variables
sau Constants.
3. Clic pe butonul Modify, care deschide
o fereastră standard de dialog, pentru
setarea caracteristicilor fonturilor.
4. Alegeţi din lista Default Equation
Color culoarea fonturilor, pentru toate
regiunile matematice din foaia de lucru.
5. Clic pe butonul [ OK ].
_______________________________________________________________________________
O parte a proprietăţilor fonturilor utilizate, în regiunile matematice, pot fi modificate prin
instrumentele barei de formatare: tipul fontului, mărimea, îngroşarea, înclinarea, sublinierea.

4.1.4.2. Definirea stilului utilizatorului

Stilurile Variables şi Constants fiind implicite nu pot fi modificate, însă utilizatorul are
libertatea să definească alte stiluri.
Numele stilului curent este afişat în bara de formatare, ca urmare a unui clic pe un nume sau
un număr dintr-o regiune matematică, sau prin intermediul ferestrei de dialog Equation Format.
Utilizatorul poate folosi şi alte stiluri diferite de cele implicite din lista derulantă Style
Name, a casetei de dialog Equation Format.
Pentru definirea unui nou stil, se procedează după cum urmează:

56
Etape ________________________________
1. Meniul Format → Equation.
2. Clic pe săgeata din câmpul Math Style, pentru afişarea listei derulante a stilurilor.
3. Clic pe un stil neutilizat (Userx, unde x=1,2...).
4. În edit box-ul New Style Name completaţi numele noului stil.
5. Clic pe butonul [ Modify ] pentru a schimba caracteristicile fontului.
6. Apăsaţi tasta [ OK ].
_______________________________________________________________________________
Pentru a reutiliza stilul definit şi în alte sesiuni de lucru, acesta poate fi salvat ca model
(”template”, vezi subcapitolul 3.1).

4.1.5. Formatarea rezultatelor ( E)

În Mathcad prin formatarea rezultatelor se înţelege modul în care sunt afişate rezultatele
unor calcule numerice.

4.1.5.1. Formatarea unui rezultat

Pe o foaie de lucru rezultatele numerice sunt afişate în conformitate cu formatările


modelului operant. Pentru modificarea unui rezultat numeric se procedează după cum urmează:
Etape ________________________________
1. Clic în regiunea matematică a cărei formă de afişare a rezultatului doriţi să o modificaţi.
2. Meniul Format → Result. Ca urmare, se deschide o fereastra de dialog Result Format.

Rapid ________________________________
Caseta de dialog Result Format se deschide şi prin clic dublu pe regiunea matematică.
_______________________________________________________________________________
3. Fereastra de dialog Result Format conţine
patru tab-uri (vezi captura alăturată), a căror
conţinut este detaliat mai jos. După
completare, utilizatorul le poate valida, prin
butonul [ OK ], sau le poate seta ca implicite,
prin butonul [Set Default]

_______________________________________________________________________________

57
În tab-ul Formatul numerelor (”Number Format”) există cinci opţiuni listate într-o
fereastră: general (implict, celelalte sunt particularizări), zecimal (”decimal”), ştiinţific
(”scientific”), ingineresc (”engineering”) şi fracţii (”fracţion”).
1. Formatul general afişează un număr n în două variante (vezi figura 4.1):
Z
- notaţia exponenţială: semn X.Y x 10 , X, Y, Z ∈ N0, 0 ≥ X ≥ 10, număr
cifre X şi Y < 16, dacă numărul n satisface una din inegalităţile I n I ≤ 10 –z, n >
10 z, n < -10 z;
- notaţia zecimală: n rămâne în forma în care a fost inserat: semn A.B, A, B∈ N0,
număr cifre A şi B < 16, dacă n nu aparţine unuia din intervalele de mai sus.

e z e z e
z z z z
-∞ - 10 -1/10 0 1/10 10 ∞

z - afişare sub forma zecimală, e - afişare sub formă exponenţială

Se pot seta:
- numărul de zecimale afişate (”number of decimal places”), deci numărul de cifre
ale părţii Y (valoare implicită Y=3).
- valoarea de prag a exponentului Z (”exponential threshold”). Implicit Z=3,
valoarea Z poate fi interpretată ca un prag (”threshold”) care determină afişarea
numărului în notaţia zecimală, dacă nu este depăşit pragul, sau exponenţială în
caz contrar;
- afişarea/neafişarea zerourilor nesemnificative (”show trailing zeros”).

Tabel 4.3. Exemple de formatări ale rezultatelor în formatul general

Valoarea Numărul de Valoarea Neafişare Afişare zerouri


introdusă zecimale exponentului zerouri
1 456987123 3 3 4.57 x 108 4.570 x 108
2 456987123 5 3 4.56987 x 108 4.56987 x 108
3 456987123 0 0 5 x 108 5 x 108
4 456987123 3 12 456987123 456987123.000
5 -17.228963 3 3 -17.229 -17.229
6 -17.228963 5 1 -1.7229 x 101 -1.72290 x 101
7 -17.228963 5 7 -17.22896 -17.22896

Se observă că afişarea se face cu rotunjire, însă intern calculele se execută cu valoarea


maximă a preciziei specifică Mathcad (15 cifre semnificative).

58
2. În formatul zecimal rezultatul este afişat, întotdeauna, pe baza următoarei structuri:
semn X.Y, X, Y ∈ N0.
Se pot seta:
- numărul de zecimale afişate (”number of decimal places”);
- afişarea/neafişarea zerourilor nesemnificative (”show trailing zeros”).

Tabel 4.4. Exemple de formatări ale rezultatelor în formatul zecimal

Valoarea introdusă Număr Neafişare zerouri Afişare zerouri


zecimale
1 456987123 3 456987123 456987123.000
2 -17.228963 3 -17.229 -17.229
3 -17.228963 9 -17.228963 -17.228963000
4 123.1234567890123456789 15 123.123456789012 123.123456789012000
5 12345678901234567890123 15 1234567890123457 1234567890123457
0000000 0000000.0000000000
0000

Observaţie: Intern Mathcad lucrează cu 15 cifre semnificative. În consecinţă, dacă numărul de cifre
depăşeşte 15, Mathcad operează intern şi afişează doar primele 15 cifre, completându-le pe restul cu
zerouri (vezi exemplele 5 şi 6).

3. Formatul ştiinţific afişează întotdeauna rezultatul în structura exponenţială.

Se pot seta:
- numărul de zecimale afişate (”number of decimal places”), deci numărul de
cifre ale părţii Y;
- afişarea/neafişarea zerourilor nesemnificative (”show trailing zeros”);
- afişarea/neafişarea exponentului ca E+000 (”Show exponents as E+000”).

Tabel 4.5. Exemple de formatări ale rezultatelor în formatul ştiinţific

Valoarea Număr Neafişare zerouri Afişare zerouri Afişare format


introdusă zecimale E+000
neafişare zerouri

1 456987123 3 4.57 x 108 4.570 x 108 4.57E +008


2 456987123 5 4.56987 x 108 4.56987 x 108 4.56987E +008
3 456987123 0 5 x 108 5 x 108 5E +008
4 -17.228963 3 -1.723 x 101 -1.723 x 101 -1.723E +001
5 -17.228963 5 -1.7229 x 101 -1.72290 x 101 -1.7229E +001

59
4. Formatul ingineresc este o particularizare a formatului ştiinţific, care utilizează ca
exponenţi doar multipli de 3.

Tabel 4.6. Exemple de formatări ale rezultatelor în formatul ingineresc

Valoarea Număr Neafişare zerouri Afişare zerouri Afişare format


introdusă zecimale E+000
neafişare zerouri
6 6
1 456987123 3 457.987 x 10 457.987 x 10 457.987 E +006
2 456987123 5 4.5698712 x 106 4.5698712 x 106 4.5698712E +006
3 456987123 0 457 x 106 457 x 106 457E +006
0 0
4 -17.228963 3 -17.229 x 10 -17.229 x 10 -17.229E +000
0 0
5 -17.228963 5 -17.22896 x 10 -17.22896 x 10 -17.22896E +000

5. Formatul fracţionar afişează rezultatele sub formă de fracţie. Printr-un checkbox se


poate selecta sistemul mixt de afişare.

În tab-ul Opţiuni de afişare (”Display options”) se pot seta:


- tipul de afişare a matricelor: automat, matrice, tabel;
- expandarea/neexpandarea matricelor imbricate;
- simbolurile i sau j pentru rezultate imaginare;
- sistemul de numeraţie în care este afişat rezultatul: zecimal, binar, hexa sau octa.
Observaţie: ultimele două setări sunt operante doar pentru toată foia de lucru.

Tab-ul Afişarea unităţilor de măsură (”Unit Display”) conţine două check-box-uri, prin
care se poate opta pentru:
- afişarea unităţilor de măsură în notaţie uzuală; de exemplu 1/sec în loc de sec-1;
- simplificarea unităţilor; de exemplu 1N în loc de kg*m/sec2 .
Ambele opţiuni sunt implicit selectate (bifate).

Tab-ul Toleranţa (”Tolerance”) permite efectuarea a două setări:


- Pragul pentru afişarea părţii imaginare a numerelor complexe (”complex threshold”),
implicit are valoarea pc=10, intervalul de variaţie pc∈[0...63]. Interpretare: dacă
Re(z)/Im(z)>10 pc numărul complex este afişată numai prin partea reală, dacă
Im(z)/Re(z)>10 pc partea imaginară.
- Pragul de afişare a zeroului (”zero threshold”), implicit are valoarea pz=10, pc∈[0..
307]. Interpretare: dacă n < 10 –pc sistemul afişează 0. Opţiunea este operantă pentru
toată foia de lucru

4.1.5.2. Formatarea tuturor rezultatelor

După cum se observă, din analiza ferestrelor de dialog asociate setării individuale a
rezultatelor, anumite opţiuni sunt inaccesibile câmpurile valorilor fiind colorate în gri. Acestea sunt
operante pentru toată foia de lucru.

60
Pentru a formata toate rezultatele de pe foia de lucru se procedează ca mai sus, cu o singură
excepţie: în prima etapă se efectuează un clic pe o zonă liberă a foii.
Atentie ________________________________
Pentru a vedea valoarea cu care operează intern Mathcad efectuaţi clic pe număr şi apăsaţi
tastele [ Ctrl ] + [ Shift ] + [ N ]. Afişarea se face în extremitatea stângă a liniei de stare.
_______________________________________________________________________________

4.1.6. Definiri locale, globale, modul de procesare a foii de lucru

În 2.4.2.2. Operaţii în regiuni matematice s-a arătat cum se defineşte o variabilă şi o funcţie
locală. Mathcad operează cu două tipuri de variabile, funcţii:
1. Variabile, funcţii locale, care sunt vizibile la dreapta şi dedesubtul locului de definire.
2. Variabile, funcţii globale, vizibile oriunde în spaţiul foii de lucru.

4.1.6.1. Definiri locale

La stânga simbolului de definire locală (:=) se poate insera (vezi şi subcapitolul 4.1.2. Nume
de variabile şi funcţii):
¾ un nume de variabilă (de exemplu x), sau de funcţie (de exemplu f(x,y));
¾ un nume de variabilă cu indice subscript (de exemplu x1, a nu se confunda cu variabila
indexată, care este afişată foarte asemănător, indicele fiind puţin mai mic);

1
¾ un nume de variabilă cu indice superscript (de exemplu Y )

¾ o matrice sau vector cu elemente nume de variabile (de


exemplu modalitate elegantă de a defini simultan mai multe
variabile).

4.1.6.2. Definiri globale

Definirile globale se fac asemănător celor locale, cu deosebirea că se utilizează un operator


specific (≡), fie apăsând tasta [ ~ ], fie butonul din paleta Evaluation.
Vizibilitatea relativă, între definirile globale este identică cu cea a definirilor locale. În
consecinţă, se pot face definiri globale care pot să includă alte definiri globale efectuate la stânga pe
acelaşi rând sau mai sus.
Se pot defini mai multe variabile, funcţii globale cu acelaşi nume, ca şi în cazul definirilor
locale, însă o asemenea operaţie este neraţională.
O variabilă locală poate redefini o variabilă globală

4.1.6.3. Modul de procesare a foii de lucru

Procesarea informaţiei, cuprinse de o foaie de lucru, se face în două etape succesive:

61
1. Foia de lucru este parcursă de la stânga la dreapta şi de sus în jos, evaluându-se doar
definirile globale.
2. La a doua parcurgere, după aceeaşi traiectorie, Mathcad evaluează toate definirile locale
şi toate ecuaţiile.
Avându-se în vedere modul de scanare a foii, sunt explicabile regulile enunţate mai sus:
vizibilitatea nerestrictivă a variabilelor globale, vizibilitatea poziţional restrictivă a celor locale etc.
În procesul de scanare a foii de lucru Mathcad calculează tot ce poate, avertizând utilizatorul
asupra evaluărilor pe care nu le poate efectua, deoarece conţin variabile sau funcţii nedefinite. În
această situaţie Mathcad colorează în roşu variabila a cărei valoare nu o cunoaşte. Prin clic, în
regiunea matematică respectivă, se afişează un ”hint” cu următorul conţinut: această variabilă sau
funcţie nu este definită deasupra (“This variable or function is not defined above”).
Pentru remedierea situaţiei, utilizatorul trebuie fie să repoziţioneze variabilele care sunt
definite la dreapta, sau mai jos de regiunile unde sunt utilizate, sau să le definească şi să le
poziţioneze corect, dacă nu sunt definite.

4.1.7. Efectuarea calculelor numerice în Mathcad

Deoarece Mathcad 2001 are un nou motor matematic, mai rapid comparativ cu cel al
Mathcad 2000, este posibil ca anumite aplicaţii dezvoltate în variante anterioare 2001 să nu
ruleze corect. În consecinţă se poate opta pentru vechiul motor prin meniul Math Æ Options şi
selectarea butonului radio cu eticheta Backward Compatibility.

4.1.7.1. Controlul desfăşurării calculelor ( E)

Mathcad poate calcula o foaie în două moduri: automat sau manual. Utilizatorul este
informat asupra modului de calcul printr-un mesaj aflat în partea dreaptă a barei de stare: AUTO
sau Calc F9. Comutarea între acestea se face bifând/debifând, comanda Automatic Calculation din
meniul Math.
Modul de calcul automat este implicit, pentru modificarea acestei setări vezi meniul
Math → Options → tab-ul Calculation → checkbox-ul Recalculate Automatically.
Reactualizarea rezultatelor are loc când utilizatorul apasă tasta =, sau ori de câte ori efectuează un
clic în afara regiunii matematice în care există o operaţie de definire (simbolurile := sau ≡).
Etapele de calcul generate de un clic în exteriorul unei regiuni care conţine o definire, în
modul de lucru automat, sunt următoarele:
Etape ________________________________
1. Mathcad evaluează expresia din dreapta simbolului de definire, şi dacă totul este corect
efectuează asignarea valorii, la numele variabilei.
2. Mathcad memorează toate regiunile matematice de pe foaie, care sunt afectate de
operaţia de definire, sau modificare a unei definiri.
3. În continuare, se efectuează actualizările doar în zona vizibilă a foii. Dacă calculele sunt
laborioase, cursorul mouse-ului îşi schimbă forma într-un bec şi regiunea matematică care
este calculată la un moment dat este încadrată într-un dreptunghi verde. Dacă se comandă
tipărirea foii de lucru, sau se folosesc barele derulatoare orizontală sau verticală a
documentului, Mathcad actualizează automat rezultatele care intră în zona de vizibilitate.
Modul de lucru este avantajos pentru utilizator, deoarece acesta nu este obligat să aştepte
până ce sunt evaluate toate expresiile foii de lucru.

62
În modul de calcul manual, Mathcad nu face actualizări decât dacă utilizatorul comandă
acest lucru. Astfel, utilizatorul poate să facă rapid modificări în diverse regiuni matematice, să
insereze noi regiuni, să folosească fără probleme de aşteptare barele derulatoare.

Actualizarea rezultatelor se poate efectua în trei moduri: clic pe butonul = din bara
instrumentelor standard, selectarea comenzii Calculate din meniul Math, apăsarea tasta F9. La fel
ca şi în cazul calculului automat, Mathcad se limitează la actualizări doar în zona de vizibilitate.
Indiferent de modul de calcul, automat sau manual, Mathcad actualizează doar regiunile
matematice care sunt afectate de modificări. Acesta este un mod de calcul economic, însă se poate
forţa calculul tuturor regiunilor prin comanda Calculate worksheet din meniul Math.
Întreruperea calculelor se efectuează prin apăsarea tastei [ Esc ], ocazie cu care apare o
fereastră de dialog cu două butoane prin care se confirmă, fie suspendarea (butonul OK), fie
renunţarea la evaluare (butonul Cancel). Reluarea calculelor se face prin butonul = din bara
instrumentelor standard, comanda Calculate din meniul Math, sau tasta F9.

4.1.7.2. Efectuarea calculelor iterative ( E)

În Mathcad se pot efectua iteraţii în mai multe moduri:


- utilizând VPA (Variabilă cu valori în Progresie Aritmetică, în engleză “range
variables”), ca argument al unor funcţii .
- apelând la vectori definiţi prin intermediul VPA;
- prin programare (instrucţiunile ciclice for, while).
- folosind operatorul de vectorizare (vezi subcap. 7.6 din partea I).
VPA este definită în subcapitolul 2.4.2.2. “Operaţii elementare în regiunile matematice”.
Instrucţiunile ciclice sunt tratate în capitolul “Programarea în Mathcad”.
Calculele iterative, care utilizează direct sau indirect VPA, se bazează pe următoarea
proprietate Mathcad: dacă se foloseşte o VPA într-o expresie, acesta este evaluată pentru fiecare
valoare a VPA.
Exemplu:
Să presupunem că trebuie listate coordonatele carteziene ale spiralei Arhimede, dată prin
ecuaţia explicită în coordonate polare ρ=k*θ, într-un domeniu de variaţie a coordonatei
θ∈[θmin...θmax].

Metoda 1 utilizează direct VPA pentru definirea coordonatei θ şi funcţii


pentru ρ, x, y.
- definirea parametrului k, a funcţiei ρ;

- definirea funcţiilor coordonate x şi y;

- definirea numărului de puncte, a limitelor


intervalului;

- definirea, ca VPA, a coordonate unghiulare θ;

63
- afişarea listelor de valori ale coordonatelor x, y

Metoda 2 utilizează vectori pentru definirea coordonatelor θ, x, y.

VPA cu valori numere naturale şi raţie 1 se numeşte uzual variabilă indice. Prin
intermediul variabilei indice se poate defini un vector:
nume vector nume variabilă indice := expresie.
Indicele se obţine prin apăsarea tastei [.

- definirea nr. Puncte şi limite interval


- definirea variabilei indice

- definirea vectorului θ
- definirea parametrului k şi a vectorului ρ

- definirea vectorilor x, y

- afişarea listelor valorilor x, y (pentru economie


de spaţiu, s-a utilizat transpusa)

Se observă că, în ambele variante, numărul de puncte în care se calculează coordonatele


carteziene este m+1, unde m este numărul de subintervale.
Metoda a doua permite manipularea oricărei valori a vectorilor θ, ρ, x, y (de exemplu:
x1=0.254, y0=0,131. Atenţie, implicit valoarea primului indice este zero).

4.1.7.3. Recursivitatea în Mathcad

Ideea de bază a recursivităţii este similară cu cea a inducţiei matematice: dacă se poate
obţine f(n+1) din f(n), şi se cunoaşte f(0), atunci f este complet determinată.
O definire a unei funcţii recursive trebuie să aibă două părţi:
1) o condiţie iniţială, care previne ciclarea;
2) o definire a funcţiei în care se face apel către ea însăşi.
Deşi definirea recursivă este deosebit de concisă şi elegantă, este în acelaşi timp relativ
lentă în comparaţie cu rezolvarea problemei prin intermediul instrucţiunilor ciclice.

64
Exemplu:
Calculul permutărilor: Pn = n! = 1*2*3*...*n; 0!=1. În definirea recursivă: n! = n*(n-1)!.
Datorită condiţiei iniţiale este necesară utilizarea fie a funcţiei IF, fie a instrucţiunii IF din
paleta Programming.
Funcţia IF are sintaxa: IF(condiţie logică, valoare returnată când condiţia este
îndeplinită, valoare returnată când condiţia este neîndeplinită). În consecinţă funcţia recursivă
pentru calculul permutărilor are forma: perm(n):=if(n=0,1, n . perm(n-1)), unde pentru scrierea
condiţiei logice n=0, s-a utilizat “egalul logic” din toolbar-ul Boolean.
Definirea unei funcţii recursive, prin programare, se face în următoarele etape (pentru
amănunte vezi capitolul “Programarea în Mathcad”):
Etape ________________________________
1. Scrieţi numele funcţiei, argumentul n între paranteze,
simbolul de definire := →

2. Din paleta Programming, alegeţi Add line. →

3. Clic pe placeholder-ul din partea superioară,


din paleta Programming, alegeţi if. →

4. Clic pe placeholder-ul din partea inferioară,


din paleta Programming, alegeţi otherwise. →

5. În cele trei placeholder-e completaţi: relaţia


recursivă operantă când condiţia este satisfăcută, →
condiţia şi valoarea pentru cazul când condiţia
nu este îndeplinită
_______________________________________________________________________________

4.1.7.4. Mesaje de eroare în calcule numerice ( E)

Când Mathcad nu poate procesa informaţia cuprinsă într-o regiune matematică, sau în
placeholder-ele unui grafic, semnalizează acest lucru utilizatorului pe două căi: colorează în roşu
operatorul implicat şi marchează expresia printr-un scurt mesaj de eroare. Mesajul apare în timpul
scrierii expresiei, sau dacă se efectuează un clic pe zonă. În anumite cazuri, se pot obţine informaţii
detaliate asupra erorii dacă, după ce se efectuează clic pe regiune, se apasă tasta [ F1].
Dacă pentru calcule relativ complicate, dependente de numeroase definiri, utilizatorul nu
poate identifica sursa erorii, Mathcad oferă un mecanism de urmărire a relaţiilor de dependenţă.

65
Etape ________________________________
1. Clic cu ButD pe regiunea afectată de erori. Se deschide un meniu pop-up.
2. Alegeţi comanda Trace Error, care deschide o casetă de dialog cu patru butoane.

3. Apăsaţi unul din butoane, prin intermediul căruia puteţi să vă deplasaţi rapid la regiunea
imediat dependentă în aval, în amonte, la prima sau ultima regiune. Dacă anticipaţi că
salturile vor necesita calcule laborioase, treceţi pe modul de calcul manual.

Atentie ________________________________
Din considerente de eficienţă, în Mathcad 2000 se consideră, întotdeauna, că rezultatul
evaluării următoarelor expresii este zero: 0.x=0, 0/x=0. În ambele cazuri Mathcad 2000 nu
evaluează pe x, chiar dacă acesta este afectat de erori. Expresia 0/0 este evaluată 0. În Mathcad
2001 este analizată şi expresia x şi dacă apar erori este returnat un mesaj de eroare.

După corectarea erorilor, Mathcad calculează foia de lucru, cum s-a detaliat la subcapitolul
4.1.7.1. Controlul desfăşurării calculelor.

4.2. LUCRUL CU REGIUNILE TEXT

4.2.1. Editarea textelor ( E)

Operaţiile de selectare, repoziţionare, copiere, tăiere, lipire ale regiunilor text sunt identice
cu cele ale regiunilor matematice şi au fost detalite în subcapitolul 2.4.2.1.

4.2.1.1. Crearea unei regiuni text

După cum s-a amintit, în subcapitolul 2.4.2.1, inserarea unei regiuni text se poate face în
următoarele etape:

Etape ________________________________
- clic într-o zonă liberă a foii de lucru;
- meniul Insert Æ Text Region, sau apăsaţi tasta [“];
- începeţi să introduceţi textul care este încadrat într-o casetă a cărei dimensiuni se
modifică o dată cu evoluţia operaţiilor de editare;
- la terminarea introducerii textului, efectuaţi un clic în afara regiunii text curente.

66
Rapid ________________________________
După efectuarea unui clic în zona dorită a foii de lucru, începeţi să introduceţi textul direct
în regiunea matematică implicită. La prima apăsare a tastei [Space] regiunea matematică se
transformă în regiune text.
_______________________________________________________________________________
Dacă textul depăşeşte un rând, la atingerea marginii dreapta a foii de lucru, trecerea la următorul
rând se produce automat. Utilizatorul poate sări la un rând nou prin apăsarea tastei [Enter].

4.2.1.2. Controlul lăţimii regiunii text

Pentru a fixa lăţimea regiunii text se scrie în ea până la dimensiunea dorită, după care se
apasă tastele [Ctrl]+[Enter].
Modificarea manuală a lăţimii regiunii text se face prin selectarea regiunii urmată de
plasarea cursorului în proximitatea mânerului din dreapta, când cursorul se transformă într-o
săgeată dublă, şi apoi dragare.
O regiune text poate fi obligată să ocupe întrega lăţime a foii de lucru prin: clic cu ButD pe
regiune, urmată de alegerea din meniul pop-up a comenzii Proprieties şi din fereastra de dialog
asociată se bifează Occupy Page Width, din tab-ul Text.

4.2.1.3. Controlul suprapunerii cu alte regiuni, marcarea cu culoare de fond şi bordurarea

La introducerea mai multor linii, într-o regiune text, există riscul suprapunerii cu alte regiuni
plasate sub regiunea text curentă. Pentru evitarea acestui fenomen alegeţi Proprieties, din meniul
pop-up al regiunii, pe care o editaţi, sau din meniul Format şi în tab-ul Text, clic pe "Push Regions
Down As You Type". Ca efect regiunile sunt împinse automat în jos.
Din tab-ul Display se setează culoarea fondului regiunii text (”Highlight Region”) şi
afişarea unui cadru dreptunghiular (”Show Border”).

4.2.1.4. Căutarea şi înlocuirea unor caractere din regiuni text

Etape ________________________________
1. Meniul Edit Æ Find, care deschide o fereastră de dialog Find.
În linia de editare se scrie
caracterul sau grupul de caractere
căutate. Nu sunt permise ”wildcards” (#,
*). Opţiunile sunt limitate la căutările: pe
bază cuvânt întreg (”Match whole word
only”) sau subşir (”Match case”).
Sistemul de căutare nu sesizează

67
diferenţele între caracterele mici, mari (nu este „case senzitive”). Se mai poate selecta tipul de
regiune şi direcţia de căutare.
2. La clic, repetat, pe butonul Find Next, dacă sistemul găseşte caracterul/ele, le marchează
succesiv prin video invers.
_______________________________________________________________________________
Fereastra de dialog, pentru înlocuirea caracterelor, se deschide prin meniul Edit Æ Replace
şi conţine, în plus faţă de cea de căutare, o a doua linie de editare în care se trec/e caracterele/ul de
înlocuire.

4.1.2.5. Verificarea corectitudinii scrierii cuvintelor (”spell checking”)

Verificarea corectitudinii scrierii cuvintelor în engleză se poate efectua doar asupra


regiunilor text cuprinse într-o foie de lucru. Implicit Mathcad este dotat cu un dicţionar general al
limbii engleze, completat cu termeni matematici. La acesta utilizatorul poate adăuga termeni noi
Etape ________________________________
1. Selectaţi zona, din foia de lucru, pe care doriţi să o verificaţi.
2. Meniul Edit Æ Check Spelling, sau butonul din bara de instrumente standard

Dacă Mathcad găseşte, în foia


de lucru, un cuvânt care nu există în
dicţionarul său reacţionează în două
moduri:
- dacă identifică în dicţionarul
propriu cuvinte care se scriu
asemănănător le listează, utilizatorul
poate să aleagă unul din ele pentru
înlocuirea cuvântului analizat, prin apăsarea butonului [Change], sau să scrie o altă variantă
în linia de editare cu eticheta Change to;
- dacă Mathcad nu găseşte cuvinte asemănătoare fereastra de listare va rămâne albă.
Alte comenzi existente în caseta de dialog, care pot fi activate prin butoane, sunt:
- [Suggest] care listează alte alte cuvinte asemănătoare;
- [Add] care adaugă cuvântul la dicţionar;
- [Ignore] care obligă sistemul să ignore cuvântul curent şi să continue verificarea.

Verificările se pot face şi în dialecte ale limbii engleze: meniul View Æ Preferences Æ tab-
ul General.

68
4.2.2. Formatarea textelor ( E)

Implicit, în regiunile text, se lucrează pe baza setărilor determinate de modelul de lucru


Normal. Pentru modificarea fontului, stilului, culorii etc. se procedează după cum urmează:

Font, mărime, culoare

Etape ________________________________
1. Selectaţi caracterul sau grupul de caractere pe care doriţi să-l formataţi prin una din
următoarele metode:
- plasaţi cursorul la unul din capetele grupului de caractere, dragaţi şi când aţi ajuns în
poziţia finală eliberaţi butonul mouse-ului;
- un cuvânt poate fi selectat rapid, prin clic dublu pe el;
- un paragraf poate fi selectat rapid, prin clic triplu pe el;
Se pot face şi selecţii discrete, cu pasul: caracter, cuvânt sau linie:
- caracter: plasaţi cursorul la unul din capetele selecţiei şi apăsaţi [Shift] +[tasta
săgeata stânga sau dreapta];
- cuvînt: ca mai sus, cu apăsarea [Ctrl]+[Shift] +[tasta săgeata stânga sau dreapta];
- linie: ca mai sus, cu apăsarea [Ctrl]+[Shift] +[tasta Page Up / Page Down];
Ca urmare selecţia apare în video invers.
2. Meniul Format Æ Text, sau prin Font, din meniul pop-up asociat selecţiei, care
deschide o fereastră de dialog prin care se pot seta: fontul, mărimea, culoarea şi efecte ca
subliniere, tăiere cu o linie, plasare ca exponent sau indice. Fontul, mărimea, efectele de
întărire, înclinare şi subliniere pot fi setate şi prin intermediul barei de instrumente

standard .
_______________________________________________________________________________

Paragraful
Într-o regiune text un paragraf este creat de apăsarea tastei [Enter]. Dacă se apasă [Shift]+
[Enter] se produce saltul la o nouă linie, în cadrul aceluiaşi paragraf.
Proprietăţile unui paragraf pot fi setate prin următoarea succesiune de operaţii:
Etape ________________________________
1. Selectaţi paragraful (cel mai simplu prin clic triplu).
2. Meniul Format Æ Paragraph, sau clic cu ButD şi alegeţi din meniul pop-up
Paragraph, care deschide o fereastră de dialog.

69
Se poate seta distanţa (“indent”) de la
marginea din stânga la începutul paragrafului
(paragraful trebuie să fie aliniat la stânga)
sau de la marginea din dreapta la sfârşitul
paragrafului (paragraful trebuie să fie aliniat
la dreapta). Dacă derulaţi lista Special se pot
selecta: prima linie (”first line”) sau
următoarele (”hanging”). În linia de editare
By completaţi distanţa de indentare.
Din lista Bullets se pot alege simboluri
(”bullets”) sau numere care să preceadă paragraful. Acelaşi efect se poate obţine, prin cele două
butoane din bara de instrumente standard

Prin apăsarea butonului Tabs se deschide o casetă în care se introduce distanţa la care care
sare cursorul, când apăsaţi tasta [Tab]. Tabulatorii se pot seta şi prin intermediul riglei orizontale.

Prin butoanele radio Left, Right, Center sau butoanele din bara de instrumente
standard, se efectuează alinierea paragrafului la stânga, dreapta, centrat.
3. Validarea setărilor se face prin butonul [OK]
_______________________________________________________________________________

4.2.3. Stiluri ale regiunilor text

La deschiderea unei noi foi de lucru, Mathcad foloseşte în regiunile text setările din modelul
Normal. Pot fi aplicate şi alte stiluri, sau eventual modificate stiluri definite anterior, unor regiuni
text noi sau existente.
Aplicarea unui stil, asupra unui paragraf, se efectuează în următoarea succesiune de operaţii:
Etape ________________________________
1. Clic pe regiunea unde doriţi să aplicaţi un stil asupra unui paragraf.
2. Meniul Format Æ Style, sau clic cu ButD şi alegeţi din meniul pop-up Style. Se
deschide o fereastră de dialog care conţine lista stilurilor disponibile Acestea sunt
dependente de modelele foii de lucru.
3. Selectaţi unul din stilurile afişate şi apoi apăsaţi pe butonul [Apply].
_______________________________________________________________________________
Fereastra de dialog mai conţine butoanele: [New], [Modify], [Delete] şi [Close]. Primele
două deschid fereastra pentru definirea unui nou stil (captura de mai jos), respectiv pentru
modificarea unui stil.
Noului stil trebuie să i se asocieze un
nume. Acesta se poate baza pe un stil definit
anterior, ales de utilizator, din lista Based on.
Prin apăsarea butoanelor [Font],
[Paragraph] se deschid casete de dialog
specifice.
Caseta de dialog, pentru modificarea
unui stil, este asemănătoare cu cea descrisă
anterior.

70
I FUNDAMENTE MATHCAD 2001

UNITĂŢI DE MĂSURĂ

_______________________________________________________________________________

Lucrul cu unităţi de măsură este opţional în Mathcad, dar se recomandă a fi utilizat când este
posibil din cel puţin două motive: permite verificarea corectitudinii relaţiilor şi a rezultatelor, sunt
respectate convenţiile de lucru cu unităţi necesare în publicarea unor aplicaţii.
Mathcad lucrează implicit cu unităţile din Sistemul Internaţional (SI, care are următoarele
unităţi fundamentale: metri (m), kilograme (kg), secunde (s), amperi (A), Kelvin (K), candele (cd),
moli (mole)) dar se poate opta şi pentru alte câteva sisteme utilizate în diverse domenii ale ştiinţei şi
tehnicii: MKS (metri (m), kilograme (kg), secunde (sec), coulombi (C), Kelvin (K), CGS
(centimetri (cm), grame (gm), seconde (sec), coulombi (coul), Kelvin (K)), US (feet, pounds,
seconde, coulomb, Kelvin) sau niciunul. Pentru schimbarea sistemului de măsură vezi: meniul
Math Æ Options Æ tab-ul Unit System. Fiecare sistem de unităţi operează, pe lângă unităţile
fundamentale, cu unităţi derivate (expresii algebrice de unităţi fundamentate care utilizează
operatorii * şi / ), unele dintre acestea având denumiri speciale (de exemplu NÆ m . kg . s-2 ).
Mathcad recunoaşte marea majoritate a unităţilor prin abrevierile uzuale.
Utilizatorul are posibilitatea să lucreze şi cu propriile unităţi.
Din punct de vedere funcţional, unităţile de măsură în Mathcad sunt privite ca variabile
predefinite care multiplică variabilele pe lângă care sunt asociate.

5.1. ATAŞAREA UNITĂŢILOR DE MĂSURĂ

Etape ________________________________
1. Clic pe variabila sau constanta căreia doriţi să-i ataşaţi o unitate de măsură.
2. Apăsaţi tasta [ * ].
3. Scrieţi numele abreviat al unităţii de măsură în placeholder-ul care urmează după
operatorul de multiplicare
sau
Meniul Insert Æ Units, sau mai rapid butonul din
bara instrumentelor standard
În cazul ultimelor două variante se deschide caseta
de dialog Insert Unit.
În fereastra Dimension unităţile de măsură sunt
grupate pe categorii, care la rândul lor sunt detaliate în
fereastra Unit. Este afişat sistemul de măsură operant. Prin intermediul butoanelor contextuale

71
[OK], [Insert / Replace], se scrie în foia de lucru unitatea selectată, se inserează sau se înlocuieşte
unitatea.
_______________________________________________________________________________

Exemplul 1:

Exemplul 2:

În primul exemplu s-a utilizat acceleraţia gravitaţională normală (standard), implicită în


Mathcad g=9.80665 m/s2, pe când în exemplul secund s-a redefinit variabila g cu o valoare
aproximativă şi s-a scris manual unitatea de măsură. Se observă că în ambele cazuri Mathcad a
afişat rezultatul în unităţi fundamentale, nu în unitatea derivată N. Pentru a se evita acest fenomen
în meniul Format Æ Results Æ tab-ul Unit Dysplay bifaţi Simplify units when possible.

5.2. CONVERSIA ÎN UNITĂŢI NEFUNDAMENTALE

Etape ________________________________
1. Clic în zona placeholder-ului, unde este afişată unitatea de măsură.
2. Ştergeţi vechea unitate şi scrieţi-o pe cea nouă, sau mai rapid, apelaţi la fereastra de
dialog Insert Unit, descrisă mai sus, unde efectuaţi un clic dublu pe o unitate
nefundamentală.
3. Clic în afara zonei matematice pentru ca Mathcad să facă toate reactualizările (dacă
lucrează în modul de calcul automat).
_______________________________________________________________________________

5.3. DEFINIREA DE NOI UNITĂŢI

Etape ________________________________
1. Scrieţi numele noii unităţi de măsură.
2. Inseraţi simbolul de definire := (cel mai rapid prin [Shift]+[ : ]).
3. În placeholder introduceţi o expresie, sau un număr care reprezintă raportul dintre noua
unitate şi o unitate care deja este definită sau predefinită.
4. Apăsaţi tasta [ * ].
5. Inseraţi numele unităţii de referinţă.
_______________________________________________________________________________

72
Oriunde la stânga şi în jos de locul definirii, va fi operantă noua definire până la eventual o
nouă redefinire a unităţii de măsură.
Exemplu:

5.4. REDENUMIREA UNITĂŢILOR

Sunt relativ rare, cazurile când utilizatorul doreşte ca unităţile de măsură ale rezultatelor să
fie afişate explicit şi nu prin abrevieri. În Mathcad este posibilă redenumirea unităţilor.
Etape ________________________________
1. meniul Math Æ Options Æ tab-ul Dimensions.
2. Clic pe checkbox-ul “Display dimension names”.
3. Dacă doriţi să afişaţi, în foia de lucru, alte denumiri explicite ale unităţilor de măsură,
diferite de cele implicite, scrieţi-le în liniile de editare.
_______________________________________________________________________________

5.5. OSERVAŢII PRIVITOARE LA LUCRUL CU UNITĂŢILE DE MĂSURĂ

Ori de câte ori, se lucrează cu expresii care utilizează variabile, constante cărora li s-au
definit unităţi de măsură, sistemul face o analiză a corectitudinii expresiei, din punct de vedere a
unităţilor de măsură. Mathcad are capacitatea de a semnala erori de genul:
- variabile cu unităţi greşite;
- relaţii neomogene din punct de vedere al unităţilor de măsură;
- unităţi de măsură plasate ca indici sau exponenţi;
- erori de conversie a unităţilor.

Exemplul 1: Calculul corect al contracţiei unei lungimi în teoria relativităţii:

Exemplul 2: Acelaşi calcul, cu unitate greşită a vitezei v:

Unghiurile sunt măsurate implicit în radiani. Dacă doriţi să lucraţi în grade hexazecimale
introduceţi în placeholder-ul pentru unităţi abrevierea deg.

Exemplul3:

73
Evitaţi, să utilizaţi definiri ale căror nume să fie identice cu ale unor abrevieri de unităţi de
măsură.
Exemplul 4:

S-a definit, anterior utilizării unităţii de lungime metru (m), o variabilă cu numele m. În
consecinţă, deoarece unităţile de măsură în Mathcad sunt interpretate ca variabile predefinite, care
multiplică variabilele pe lângă care sunt ataşate, se anulează operarea cu unitatea de lungime metru.
Dacă lucraţi cu VPA (variabile “range”) cărora li se ataşează unităţi de măsură, acestea
trebuie scrise după fiecare termen din relaţia de definire, sau când este cazul, doar în expresia care
le utilizează.

Exemplu:

74
I FUNDAMENTE MATHCAD 2001

OPERATORI ŞI FUNCŢII PREDEFINITE


UTILIZAŢI ÎN CALCULELE NUMERICE
_______________________________________________________________________________

6.1. OPERATORI UTILIZAŢI ÎN CALCULE NUMERICE

6.1.1. Lucrul cu operatorii Mathcad

Mathcad pune la dispoziţia utilizatorului un spectru larg de operatori, plus posibilitatea


definirii unora noi. În prezentul subcapitol, sunt trecuţi în revistă majoritatea operatorilor folosiţi în
efectuarea calculelor numerice, cu excepţia celor matriceali, care sunt detaliaţi în capitolul următor
“Vectori şi matrice”.

Operatorii aritmetici: +, -, *, / pot fi inseraţi prin taste în orice tip de regiune, ceilalţi doar
în regiunile matematice, fie prin butoanele paletelor matematice, fie prin combinaţii de taste (vezi
hint-ul asociat butonului).
Operatorii au o structură formată dintr-un simbol matematic şi unul până la patru
placeholder-e, pe care utilizatorul trebuie să le completeze.

6.1.1.1. Modificarea aspectului operatorilor

Modificarea aspectului este limitată doar la şapte operatori uzuali, listaţi în tab-ul Display
din meniul Math Æ Options. Alegerea se poate face din câte două variante predefinite pentru
fiecare operator. După apasarea butonului [OK] efectul este vizibil în toată foia de lucru. Dacă
selectaţi o regiune matematică operatorii modificaţi sunt afişaţi cu simbolurile implicite.
Pentru modificarea individuală a unui operator, acesta trebuie selectat cu LEO, după care,
apăsând butonul din dreapta al mouse-ului se deschide meniul pop-up, în final alegându-se prin
bifare, un simbol din lista asociată.

6.1.1.2. Definirea de noi operatori

Operatorii şi funcţiile au de fapt aceeaşi funcţionalitate.


Diferenţele între funcţii şi operatori se rezumă la notaţii:
- funcţiile au nume iar operatorilor li se asociază simboluri;
- argumentele funcţiei sunt cuprinse între paranteze plasate după numele funcţiei (de
exemplu f(x,y)) pe când cele ale operatorului pot avea diverse poziţii relativ la operator
(de exemplu x simbol operator y).

75
Definirea unui nou operator
Pornind de la observaţiile de mai sus, un nou operator se defineşte ca o funcţie Mathcad:
Etape ________________________________
1. Scrieţi numele operatorului, urmat de o pereche de paranteze în care treceţi numele
argumentelor, separate prin virgule.
De obicei, operatorului nu i se asociază un nume, ci un simbol. Mathcad pune la
dispoziţia utilizatorului un set de simboluri, care nu sunt utilizate pentru alţi operatori
predefiniţi. Pentru inserarea unui nou simbol, se procedează după cum urmează:
- Resource Center Æ QuickSheets and Reference Tables Æ Extra Math Symbols
- Aduceţi simbolul în foia de lucru prin dragare sau Copy Æ Paste.
2. Inseraţi simbolul de definire := ;
3. Scrieţi expresia asociată operatorului.
_______________________________________________________________________________
Pentru facilitarea utilizării operatorilor nepredefiniţi în alte aplicaţii şi sesiuni de lucru,
aceştia pot fi memoraţi:
Etape ________________________________
1. Resource Center Æ QuickSheets and Reference Tables Æ Personal QuickSheets.
2. Meniul Book Æ Annotate Book.
3. Drag&Drop, sau definiţi noul operator.
4. Meniul Book Æ Save.
_______________________________________________________________________________
Când doriţi să utilizaţi un operator personal definit şi memorat ca mai sus, deschideţi
“Personal QuickSheets” şi dragaţi-l în foia de lucru.

Utilizarea unui nou operator


Operatorii care folosesc doar un operand se numesc unari, cei care utilizează doi operanzi
poartă numele de binari şamd. Din punct de vedere al poziţiei relative operator-operand, operatorii
unari se clasifică în două categorii: operatori prefix: operator – operand, operatori postfix:
operand – operator.
Utilizarea operatorilor personali se face prin intermediul a patru butoane existente în
f
paleta Evaluation fx xf xfy x y : prefix, postfix, infix şi arbore (tree).
Exemplul 1. A fost definit operatorul unar O pentru transformarea unui unghi din radiani în grade
hexazecimale: (x)O :=x . deg. Pentru a-l utiliza, se apasă butonul “postfix operator” din paleta
Evaluaţion, în cele două placeholder-re se completează valoarea operandului, simbolul operatorului
şi în final simbolul de evaluare: În acest caz, utilizarea formei operator postfix este conformă cu
notaţia matematică uzuală: 45O = 0.785 , dar se poate folosi şi operatorul prefix: O45 = 0.785.

76
6.1.2. Operatori aritmetici, logici şi relaţionali (E)

Operatorii aritmetici pot fi inseraţi prin taste sau prin butoanele barei de instrumente
Calculator.
Operatorii logici şi relaţionali pot fi inseraţi prin butoanele paletei Boolean, sau prin taste,
sau combinaţii de taste. Pentru operatorii ŞI, SAU se pot folosi şi simbolurile * (în engleză “and
gate”) în loc de ∧, respectiv + (”or gate”) în loc de ∨. Exemplu: (x<1)*(x>0), (x>1)+(x<0).
Expresiile logice returnează valoarea 1 când acestea sunt adevărate şi 0, în caz contrar.

6.1.3. Operatori pentru sume, produse (E)

Ca şi ceilalţi operatori, cei pentru sume şi produse pot fi inseraţi prin combinaţii de taste sau
prin butoanele paletei Calculus.

6.1.3.1. Sume, produse cu index unitar

Etape ________________________________
1. Clic pe foia de lucru, apoi clic pe butonul

2. Completaţi în placeholder-ul, din partea stângă a semnului =,


un nume de variabilă, care joacă rolul de index. Această definire Æ
este locală operând doar în calculul sumei.
3. În următorul placeholder scrieţi valoarea de start a indicelui,
iar în cel superior valoarea finală (pasul este implicit 1). Æ

4. Scrieţi în placeholder-ul, din dreapta simbolului sumă expresia,


apoi inseraţi simbolul de evaluare. Æ

Observaţii
Dacă expresia are mai mulţi termeni cuprindeţi-i între două paranteze rotunde.
Pentru introducerea sumelor multiple, în placeholder-le destinate expresiei, se inserează de
câte ori este necesar operatorul sumă.
Succesiunea etapelor de calcul a produselor cu index unitar este asemănătoare celei pentru
m
sumă, cu deosebirea utilizării operatorului ∏
n =1

77
6.1.3.2. Sume, produse cu index neunitar

Sumele cu index neunitar se calculează cu ajutorul VPA.

Etape ________________________________
1. Definiţi VPA Æ

2. Clic pe foia de lucru, apoi clic pe butonul Æ

3. Completaţi placeholder-ul inferior cu numele VPA Æ

4. Scrieţi expresia dependentă de index şi inseraţi simbolul =. Æ

6.1.3.3. Sume, produse cu condiţie logică asociată

Pentru sume care au indecşi, cu limite superioare variabile, se utilizează o funcţie


dependentă de limita superioară intervalului, ca în exemplul de mai jos:

6.1.4. Operatori pentru derivare (E)

6.1.4.1. Derivarea numerică

Dezvoltarea metodelor de calcul aproximativ a derivatelor s-a datorat unor necesităţi practice:
1. Nu se cunoaşte expresia analitică a lui funcţiei f, aceasta fiind definită tabelar cu ajutorul
valorilor f(xi) în punctele x0, x1, ...,xn din intervalul de definire.
2. Există funcţii, a căror expresie analitică se cunoaşte, pentru care derivatele sunt foarte
dificil de determinat, sau dacă pot fi determinate au expresii foarte complicate.
Fie o funcţie f: [a, b] Æ R, derivabiă pe [a, b]. Se pune problema determinării unei funcţii,
care să aproximeze derivata lui f pe [a, b] sau pe un subinterval din [a, b].

78
Aproximarea derivatelor cu diferenţe finite [LAR89]

Pornind de la definiţia derivatei, şi interpretarea ei ca pantă, renunţând la operaţia de trecere


la limită, se obţin trei relaţii de calcul aproximativ:
f ( x 0 + h) − f ( x 0 )
f(x) N y=f(x) f ' ( x) ≈ (6.1)
h

f ( x 0 ) − f ( x 0 − h)
M P f ' ( x) ≈ (6.2)
h

f ( x 0 + h) − f ( x 0 − h)
0 x0-h x0 x0+h x f ' ( x) ≈ (6.3)
2h
Fig. 6.1. Interpretarea geometrică a relaţiilor de
calcul aproximativ a derivatelor numerice
Relaţiile de mai sus, numite de aproximare cu diferenţe regresive, progresive, respectiv
centrale, calculează pantele dreptelor MP, PN şi MN. Se observă că panta tangentei la curbă, în
punctul P, este cel mai bine aproximată de panta coardei MN. Pentru determinarea erorii de calcul a
relaţiei de aproximare 6.3, se dezvoltă de două ori în serie Taylor funcţia f, în vecinătatea punctului
x0: f(x0+h), f(x0-h). Prin înlocuirea f(x0+h) şi f(x0-h) în 6.3, cu dezvoltările Taylor şi presupunând
că f’”(x) este mărginită pe (x0-h , x0+h), se obţine:
f ( x 0 + h) − f ( x 0 ) h2
f ' ( x0 ) = − ⋅ f ' ' ' (α ) (6.4)
h 6
unde α ∈(x0-h, x0+h).
Ultimul termen este eroarea de trunchiere. Se observă că micşorând pe h scade eroarea.
Dacă f(x0+h) şi f(x0-h) devin aproximativ egale creşte însă eroarea de rotunjire (pentru definirea
celor două erori vezi subcapitolul 1.1.1. “Sistematizarea erorilor de calcul numeric iterativ” din
partea II-a).
Se utilizează, în general, două procedee majore de derivare numerică: prin interpolare şi
prin dezvoltări în serie Taylor.

Derivarea numerică folosind interpolarea [DOD76, POS94]

Într-o primă etapă, se aproximează funcţia printr-un polinom de interpolare de tip: Lagrange,
Newton de prima sau a două speţă, Newton cu diferenţe divizate, Gauss, Stirling (pentru amănunte
vezi capitolul 6, partea a III-a ), după care se efectuează derivarea polinomului.
Fie f: [a, b] Æ R, derivabiă pe [a, b]. Se presupune că sunt cunoscute valorile yi=f(xi), în
punctele echidistante x0, x1, ...,xn, din intervalul de definire (acestea se numesc noduri de
interpolare). Deci se poate scrie: xi=x0+ih, i = 0, n , h fiind pasul.
În interpolare, se pune problema determinării unui polinom de grad mai mic sau egal cu n,
care să satisfacă condiţiile:

79
Pn(xi)=yi, i = 0, n (6.5)

Prin definiţie polinomul de interpolare Pn(x) ia aceleaşi valori ca şi f(x), în nodurile de interpolare.
Indiferent de natura polinomului de interpolare funcţia se poate scrie sub forma:
f(x)= Pn(x) +En(x) (6.6)
unde Pn(x) este polinomul, iar En(x) este eroarea de interpolare (restul).
Eroarea pentru derivata de ordinul unu se defineşte ca: E n ' ( x) = f ' ( x) − Pn ' ( x) . Cu ajutorul
polinomului Newton, de interpolare cu diferenţe finite la dreapta, se poate calcula eroarea derivatei
de ordinul unu:
hn
E n ' ( x 0 ) = (−1) n f ( n +1)
(ξ ), ξ ∈ [a, b] (6.7)
n +1

Suplimentar_______________________________
Expresia ∆f(x)= ∆y=f(x+h) - f(x) se numeşte diferenţă finită de ordinul întâi. Diferenţele
de ordin superior se definesc pe baza relaţiei: ∆nf(x)= ∆ny= ∆(∆n-1f(x)).
Pentru aproximare se alege polinomul Newton de interpolare de prima speţă (se mai
numeşte cu diferenţe finite la dreapta, deoarece acestea se definesc de la x0 la dreapta):
∆y ∆2 y 0 ∆n y 0
f ( x) ≈ Pn ( x) = y 0 + 0 ( x − x 0 ) + ( x − x 0 )( x − x1 ) + ... + ( x − x 0 )( x − x1 )...( x − x n )
1! h 2! h 2 n! h n
Efectuând înmulţirile, între paranteze şi derivând succesiv expresia, se obţin relaţiile de
calcul aproximativ ale derivatelor de ordin oarecare ale funcţiei f(x).
_______________________________________________________________________________
Derivarea numerică tinde să majoreze micile erori introduse la aproximarea funcţiei,
pe când, integrarea numerică are tendinţă inversă.

B y=f(x)

¬
A
y=Pn(x)

θ α

0 a b x

Fig. 6.2. Interpretarea geometrică a erorilor la derivarea de ordinul întâi şi la integrare numerică

80
Din figura de mai sus se observă că dacă aproximarea polinomială este suficient de precisă,
b b
dPn (a )
atunci ∫ Pn ( x)dx poate fi o aproximare foarte bună a ∫ f ( x)dx . Dar este posibil ca , care
a\ a
dx
df ( x)
este panta tangentei la graficul Pn(x), în punctul A, să aibă o valoare sensibil diferită de , care
dx
este panta tangentei la graficul f(x), în acelaşi punct. Aceste diferenţe cresc, în general, la derivatele
de ordin superior.

Derivarea numerică în cazul discret [LAR89]

xk x0 x1 ... xn
Fie funcţia y=f(x), dată prin tabela de valori: f(xk) f(x0) f(x1) ... f(xn)
Rezultate bune, în derivarea numerică, se obţin folosind un polinom de interpolare
P2(x)=c0+c1x+c2x2 cu abatere medie pătratică minimă, calculată pe baza a cinci puncte (xi, yi) unde
i=k-2, k-1, k, k+1, k+2:
1
y' ( xk ) ≈ (−2 y k − 2 − y k −1 + y k +1 + 2 y k + 2 ), k = 2,3,..., n − 2 (6.8)
10 ⋅ h
Pentru punctele situate la extremităţile tabelei, se utilizează relaţii deduse pe baza a patru
puncte:
1
y' ( x0 ) ≈ (−21 y 0 + 13 y1 + 17 y 2 − 9 y 3 )
20h
1
y ' ( x1 ) ≈ (−11 y 0 + 3 y1 + 7 y 2 + y 3 )
20h
....... (6.9)
1
y ' ( x n −1 ) ≈ (11 y n − 3 y n −1 − 7 y n − 2 − y n −3 )
20h
1
y' ( x0 ) ≈ (21 y n − 13 y n −1 − 17 y n − 2 + 9 y n − 3 )
20h

Derivarea numerică folosind dezvoltări în serie Taylor [POS92]

Se presupune că f: [a, b] Æ R admite pe domeniul de definiţie derivate cel puţin până la


ordinul trei. Ne propunem să determinăm valorile funcţiei f în xi∈[a,b], când sunt cunoscute valorile
funcţiei în xi-1, xi, xi+1 din [a,b]. În general, cele trei puncte, nu sunt echidistante: xi-1=xi-h,
xi+1=xi+αh, α≠1.
Se consideră dezvoltarea Taylor în jurul punctului xi:
x − xi ( x − xi ) 2 ( x − xi ) 3
f ( x) = f ( x i ) + f ' ( xi ) + f ' ' ( xi ) + f ' ' ' ( x i + θ x ), θ ∈ (0,1) (6.10)
1! 2! 3!
Dacă în dezvoltarea Taylor se face succesiv x=xi+1, x=xi-1 rezultă:
α ⋅h (α ⋅ h) 2 (α ⋅ h) 3
f ( x i +1 ) = f ( x i + h) = f ( x i ) + f ' ( xi ) + f ' ' ( xi ) + f ' ' ' (ξ i ), ξ i ∈ ( x i , x i +1 ) (6.11)
1! 2! 3!

81
h h2 h3
f ( xi −1 ) = f ( xi − h) = f ( xi ) − f ' ( xi ) + f ' ' ( xi ) − f ' ' ' (ξ i* ), ξ i* ∈ ( xi −1 , xi ) (6.12)
1! 2! 3!
Prin scăderea celor două relaţii, membru cu membru, se obţine:

[ ( )]
2
1
f ' ( xi ) = [ f ( xi +1 ) − f (xi −1 )] + (1 − α ) f ' ' ( xi ) h − h α 3 f ' ' ' (ξ i ) + f ' ' ' ξ i* (6.13)
(α + 1)⋅ h 2! 3! (1 + α )
Derivata de ordin unu poate fi aproximată cu primul termen, iar eroarea cu următorii doi:
1
f ' ( xi ) ≈ [ f ( x i +1 ) − f (x i −1 )] (6.14)
(α + 1) ⋅ h

ε = (1 − α ) f ' ' ( x i )
h

h2
2! 3! (1 + α )
[ ( )]
α 3 f ' ' ' (ξ i ) + f ' ' ' ξ i* , ξ i ∈ (x i , x i +1 ), ξ i* ∈ ( x i −1 , x1 ) (6.15)

Se observă că eroarea scade o dată cu scăderea h.


Se poate obţine relaţia aproximativă a derivatei de ordin doi, prin eliminarea derivatei de
ordin unu din relaţiile 6.11, 6.12. Urmând aceeaşi tehnică se pot obţine relaţii de calcul aproximativ
a derivatei de orice ordin.
Sugestie ________________________________
Se recomandă ca ori de câte ori este posibil să se evite derivarea numerică !
De exemplu, pentru calculul vitezei unui mobil este recomandat să se tabeleze acceleraţia şi
prin integrare să se determine viteza, decât să se procedeze la derivarea numerică pe baza datelor
din tabelul cu distanţele parcurse.
_______________________________________________________________________________

6.1.4.2. Operatori pentru derivarea numerică (E)

Mathcad poate fi utilizat pentru calculul derivatelor de ordin unu sau superior ale unei
funcţii, într-un punct dat. Pentru calculul derivatelor de ordin 0 ... 5, se utilizează algoritmul
Ridder, iar pentru ordine mai mari se pot folosi operatori de derivare imbricaţi.
Algoritmul Ridder calculează derivata de ordin unu cu o precizie de 7, 8 cifre
semnificative, dacă punctul de evaluare nu este prea aproape de un punct singular. Precizia
scade cu câte o cifră semnificativă pentru fiecare creştere a ordinului de derivare.

Derivata de ordin unu a unei funcţii monovariabilă

Etape ________________________________
1. Definiţi punctul în care doriţi să calculaţi derivata
( nume variabilă := valoare reală sau complexă ). Æ
2. Clic la dreapta, sau dedesubt.
3. Inseraţi operatorul de derivare, de ordin unu, din paleta Calculus, sau
apăsaţi tasta semn de întrebare [?] Æ

82
4. Completaţi în placeholder-ul inferior numele variabilei, anterior definită. Æ

5. Scrieţi în placeholder-ul median expresia funcţiei, sau numele funcţiei Æ


care va fi derivată. Acesta trebuie să fie o funcţie scalară.
Dacă expresia are mai mulţi termeni, includeţi-i între paranteze.

6. Inseraţi simbolul de evaluare şi clic în exteriorul regiunii. Æ


_______________________________________________________________________________

Derivata de ordin 2 ... 5 a unei funcţii monovariabilă

Etape ________________________________
1. Definiţi punctul în care doriţi să calculaţi derivata ( nume variabilă := cu condiţie logică
asociată valoare reală sau complexă)
2. Clic la dreapta, sau dedesubt
3. Inseraţi operatorul de derivare de ordin superior, din paleta Calculus, sau
apăsaţi [Ctrl]+[Shift]+ [?] Æ
4. Completaţi în primul placeholder inferior, numele variabilei anterior definită.
5. Scrieţi în al doilea placeholder, de la numitor, ordinul derivatei 0 ...5. Acesta este trecut
automat şi în placeholder-ul superior
6. Scrieţi în placeholder-ul median expresia funcţiei, sau numele funcţiei care va fi
derivată.
7. Inseraţi simbolul de evaluare şi clic în exteriorul regiunii matematice.
_______________________________________________________________________________

Derivata de ordin mai mare decât 5 a unei funcţii monovariabilă

Pentru calculul derivatelor de ordin mai mare decât 5 se pot utiliza operatori imbricaţi (în
placeholder-ul median al operatorului de derivare se inserează un nou operator de derivare şamd).

Exemplu:

83
Atentie ________________________________
Pentru calculul expresiilor unor derivate ale funcţiilor se utilizează derivarea simbolică (vezi
capitolul 12). Derivarea numerică returnează, întotdeauna, un număr.
În exemplul de mai jos, s-a definit o funcţie g(x) ca derivată a funcţiei f(x), şi s-a calculat
derivata în două puncte.

Exemplu:
_______________________________________________________________________________

Derivata la stânga, derivata la dreapta

Mathcad nu are operatori specifici pentru calculul derivatelor la stânga, dreapta. Utilizatorul
îşi poate defini cei doi operatori (subcapitolul 6.1.1.2. “Definirea de noi operatori”), sau poate să
utilizeze direct relaţiile corespunzătoare de calcul:

f ( x) − f ( x 0 ) f ( x) − f ( x 0 )
f d, ( x 0 ) = lim , f s, ( x 0 ) = lim (6.16)
x → x0 + x − x0 x → x 0 − x − x0

Calculul derivatei unei funcţii în mai multe puncte

Varianta 1: valorile punctelor în serie aritmetică

Etape ________________________________
1. Definiţi funcţia pe care doriţi să o derivaţi. Æ

2. Definiţi o VPA. Æ

3. Definiţi o funcţie de derivare Æ

4. Scrieţi funcţia de derivare cu argumentul definit la Æ


punctul 2.

Observaţie. Ordinea etapelor 2, 3 nu are importanţă.

_______________________________________________________________________________

84
Varianta 2: valorile punctelor nu sunt în serie aritmetică

Etape ________________________________
1. Definiţi funcţia pe care doriţi să o derivaţi. Æ

2. Definiţi un vector care conţine valorile în care


doriţi să evaluaţi derivata funcţiei. Æ

3. Definiţi o funcţie de derivare. Æ

4. Definiţi indexul vectorului ca VPA. Æ

5. Scrieţi funcţia de derivare, având ca argument, vectorul


definit anterior. Æ

Observaţie. Ordinea etapelor 2, 3 este oarecare.


_______________________________________________________________________________

Derivarea parţială numerică

Derivatele parţiale de ordinul unu şi superior se calculează cu aceiaşi operatori care se


folosesc pentru funcţiile monovariabilă.

Exemplu:

85
6.1.5. Operatori pentru integrare

6.1.5.1. Generalităţi despre integrarea numerică

Dacă o funcţie f(x) este continuă pe un interval [a,b] şi este cunoscută primitiva F(x), atunci
b
integrala simplă, definită I = ∫ f ( x)dx poate fi calculată cu formula Newton-Leibnitz:
a
b

∫ f ( x)dx = F (b) − F (a)


a

Motivele dezvoltării metodelor de integrare numerică sunt asemănătoare cu cele expuse la


derivarea numerică:
- Nu se cunoaşte expresia analitică a lui funcţiei f, aceasta fiind definită tabelar cu
ajutorul valorilor f(xi) în punctele x0, x1, ...,xn, din intervalul de definire, ceea ce face
lipsit de sens conceptul matematic de primitivă.
- Primitiva este foarte complicată.
- Primitiva nu poate fi exprimată cu ajutorul funcţiilor elementare.
În literatura de specialitate există foarte multe metode de calcul aproximativ al
integralelor, alegerea metodei făcându-se în funcţie de forma integrantului, domeniul de
integrare şi performanţele calculatorului.
n
În aceste situaţii, se recurge frecvent la o formulă de cuadratură: I ≈ I = ∑ Ai ⋅ f ( x i ) , care
i =1
exprimă valoarea integralei ca o combinaţie liniară de valori, ale funcţie de integrat, în puncte din
domeniul în care se face integrarea. În cazul integralelor duble se lucrează cu formule de cubatură.
O metodă simplă de calcul a integralelor definite, apelează la înlocuirea funcţiei printr-un
polinom de interpolare şi integrarea acestuia. Spre deosebire de derivarea numerică, unde există
tendinţa de majorare a micilor erori de aproximare a funcţiei, în cazul integrării numerice există
tendinţa de atenuare a acestora (vezi figura 6.2).
Metoda Monte Carlo se utilizează, de asemenea, cu succes în aproximarea integralelor. În
continuare se detaliază câteva din cele mai frecvent utilizate formule de cuadratură.

6.1.5.2. Formule de cuadratură pentru calculul integralelor

Metoda dreptunghiurilor [ROŞ79, AM77]

Intervalul [a,b] este divizat în noduri echidistante: a=x0<x1< … <xn-1<xn=b. Metoda


b
dreptunghiurilor constă în aproximarea integralei definite I = ∫ f ( x)dx , cu o sumă Riemann
a
n
σ d ( f ) = ∑ (x i − xi −1 ) f (ξ i ), ξ i ∈ [x i −1 , x i ]) , unde se ia, pentru punctul intermediar ξi din intervalul
i =1
[xi-1, xi] punctul xi-1 sau xi. Rezultă astfel două formule:
b−a
I≈ [ f (a) + f ( x1 ) + f ( x 2 ) + ... + f ( x n−1 )] (6.17)
n

86
b−a
I≈ [ f ( x1 ) + f ( x 2 ) + ... + f ( x n −1 ) + f (b)] (6.18)
n
Justificarea denumirii de metoda
dreptunghiurilor este că, dacă funcţia este
y pozitivă, fiecare termen f (ξ i )( x i − x i −1 ) al
sumei integrale reprezintă aria unui dreptunghi
(fig. 6.3)
B Se observă, că, dacă funcţia este
A crescătoare în [a, b] atunci 6.17 aproximează pe
I prin lipsă, iar 6.18, în exces.
Se demonstrează, că, dacă funcţia f este
derivabilă şi derivata sa f’ este mărginită, atunci
eroarea absolută εa satisface inegalitatea:
M (b − a )
b 2

0 a … xi xi+1 … b x εa = ∫
a
f ( x)dx − σ ≤
n
(6.19)

Fig. 6.3. Interpretarea geometrică a metodei unde M , = sup f ' ( x)


a ≤ x ≤b
dreptunghiurilor

Dacă se impune o eroare absolută limită ε a* , din relaţia de mai sus se poate deduce numărul
M , (b − a ) 2
de intervale n: n ≥ . În general, comparativ cu alte metode, cea a dreptunghiurilor
ε a*
necesită un număr relativ mare de intervale, deci un volum de calcule apreciabil, pentru a se obţine
o precizie impusă.

Metoda trapezelor [ROŞ79, AM77, DOD76, POS92]


Metoda trapezelor aproximează funcţia dată cu o funcţie poligonală (liniară pe intervale).
La fel ca la metoda dreptunghiurilor, intervalul [a,b] este divizat în noduri echidistante:
a=x0<x1< … <xn-1<xn=b. Să considerăm două sume integrale, luând punctele intermediare la
extremităţile stânga şi dreapta a intervalelor parţiale:
n −1

∑ f ( x )( x
i =0
i i +1 − xi ) (6.20)

n −1

∑ f ( x )( x
i =0
i +1 i +1 − xi ) (6.21)

Fiecare dintre acestea aproximează pe I. Media sumelor integrale 6.20 şi 6.21 este cuprinsă între
acestea şi deci aproximează şi ea pe I:
n −1
f ( xi ) + f ( x i +1 )
I ≈∑ ⋅ ( xi +1 − x i ) (6.22)
i =0 2
Dacă se iau intervale parţiale egale h= xi+1-xi=(b-a)/n, rezultă următoarea formulă de aproximare:
b
h n −1 h
I = ∫ f ( x)dx ≈ ⋅ ∑ ( y k + y k +1 ) = ( y 0 + 2 y1 + 2 y 2 + ... + 2 y n −1 + y n ) (6.23)
a
2 k =0 2
Interpretarea este simplă: Ik este aproximat prin aria trapezului haşurat, în figura de mai jos.

87
y f(xi+1)

f(xi) y=L1(x

y=f(x

0 xi xi+1 x
Fig. 6.4. Interpretarea geometrică a metodei trapezelor

Pentru calculul erorii formulei trapezelor, se calculează eroarea pentru fiecare interval şi
apoi aceste erori se însumează, în final obţinându-se:
(b − a ) 3
ε =− f " (ξ ), ξ ∈ (a, b ) (6.24)
12n 2
Dacă există M”>0, astfel încât M " = sup f " ( x) , atunci:
a ≤ x ≤b

M " (b − a ) 3
εa ≤ (6.25)
12n 2
Se observă că precizia de calcul este proporţională cu 1/n2, nu cu 1/n ca în cazul metodei anterioare.

Formula lui Simpson [ROŞ79, AM77, DOD76, POS92]

Formula trapezelor a fost obţinută aproximând funcţia integrant cu un polinom Newton de


grad unu. Dacă se foloseşte un polinom de grad doi (o parabolă) şi intervalul [a,b] se împarte într-un
număr par 2n de părţi egale, rezultă:

b
h n −1
I = ∫ f ( x)dx ≈ ∑ ( y 2i + 4 y 2i +1 + y 2i + 2 ) =
3 i =0
a (6.26)
h
= [ y 0 + y n + 4( y1 + y 3 + ... + y 2 n −1 ) + 2( y 2 + y 4 + ... + y 2 n − 2 )]
3

unde h=(b-a)/2n.
y y=f(x)

¬ M1
y=L2(x)
M0
M2
Fig. 6.5. Interpretarea
geometrică a metodei y2i y2i+1 y2i+2
Simpson

0 h h x
x2i x2i+1 x2i+2

88
Dacă funcţia f are derivată de ordinul patru mărginită pe intervalul de integrare, eroarea absolută
asociată formulei Simpson este:

M IV (b − a ) 5
εa ≤ (6.27)
2880n 4
unde M IV = sup f IV
( x)
a ≤ x ≤b

Comparând erorile metodelor trapezelor şi Simpson, pentru acelaşi număr de noduri, se


observă că ultima calculează mai precis integrala definită.

Metoda Romberg [MAR87, LAR89]

Metoda Romberg, utilizată de Mathcad la calculul integralelor definite, îmbunătăţeşte viteza


de convergenţă aplicând repetat o formulă de calcul în asociere cu înjumătăţirea intervalului h.
Să luăm în considerare formula trapezelor cu n=2 k.
Dacă se lucrează cu două puncte x0=0, x1=b, h=b-a, n=1, k=0, rezultă:
b−a
I0 = [ f (a) + f (b)] (6.28)
2
Dacă se înjumătăţeşte h: x0=0, x1=(b-a)/2, x3=b, h=(b-a)/2, n=2, k=1
b−a  b−a  1 b−a 
I1 =  f (a) + 2 f (a + ) + f (b) =  I 0 + (b − a ) f (a + ) (6.29)
4  2  2 2 
Continuând înjumătăţirea se obţine:
b−a  3
b−a  1  b−a 3 b−a 
I2 =
8  f ( a ) + f (b ) + 2 ∑
i =1
f ( a +
4
i )  =
 2
 I 1 + ∑
2 i =1
f (a +
4
i)

(6.30)

Prin inducţie rezultă:

1 b−a 
k
b − a 2 −1
k −1 ∑
Ik = I
 k −1 + f (a + k i) (6.31)
2 2 i =1 2 
Eroarea se calculează cu relaţia:

εk = −
(b − a )2 f ' ' (ξ ), ξ ∈ (a, b ) (6.32)
12 ⋅ 2 2 k
Dacă se presupune că f(x) are o derivată de ordinul doi mărginită în intervalul (a, b) relaţia de mai
sus arată că I0, I1, ... , Ik, ... converge spre valoarea exactă a integralei definite.

Implementarea Mathcad a metodei Romberg

Metoda Romberg, în implementarea Mathcad, utilizează formula trapezelor, face estimări


succesive ale integralei şi returnează o valoare când ultimele două estimări diferă cu mai puţin de
valoarea constantei de sistem predefinite TOL. Pentru valori mici ale variabilei TOL este posibil ca
iteraţiile să nu fie convergente, chiar dacă integrala are o valoare finită.
Numărul de iteraţii efectuat de implementarea Mathcad a procedurii Romberg este
predefinit. Dacă, după epuizarea acestor iteraţii nu este satisfăcută condiţia de convergenţă, sau

89
integrantul are singularităţi, pe unul sau ambele capete ale intervalului de integrare, Mathcad
comută pe metoda Romberg, cu interval deschis. Acesta nu utilizează evaluarea funcţiei în a şi b, ci
în vecinătatea acestora şi triplează numărul de subintervale la fiecare iteraţie. Dacă nici cu această
variantă nu este convergentă, Mathcad afişează un mesaj de eroare.
Mathcad nu poate în general să integreze funcţii care au singularităţi în interiorul
intervalului de integrare. De exemplu funcţiile “treaptă” sau ”dinţi de fierăstrău” au un număr mare
de discontinuităţi, situaţie care poate conduce la integrale neconvergente. În cazurile în care se
cunosc singularităţile, integrala definită se poate transforma într-o sumă de integrale care au limite
aceste puncte. Deseori o reprezentare grafică a funcţie ajută la identificarea singularităţilor.
În afară de metoda trapezelor, Simpson, Romberg se mai utilizează frecvent cuadraturile
Gauss (metodă care este remarcabilă prin precizia înaltă obţinută pe un număr relativ mic de puncte
de integrare), metodele de explorare Richardson, care accelerează convergenţa.

Calculul aproximativ al integralelor improprii

b
Integrala I = ∫ f ( x)dx se cheamă proprie dacă:
a
- intervalul de integrare [a, b ] este mărginit;
- funcţia f este continuă (mărginită) pe [a, b].
În caz contrar, integrala poartă numele de integrală improprie.
Metoda Kantorovici (metoda extragerii singularităţii funcţiei f(x)), pentru calculul
aproximativ al unei integrale improprii, constă în găsirea unei funcţii oarecare ϕ(x), care să aibă
aceleaşi singularităţi ca şi f(x), şi care să se preteze la integrări elementare. Funcţia diferenţă f(x)-
ϕ(x) trebuie să fie suficient de netedă pe [a,b].

Pentru calculul integralei de tip I = ∫ f ( x)dx , presupusă convergentă, se folosesc în
a
principal două tehnici de integrare:
1. Schimbarea variabilei în scopul transformării intervalului [a, +∞] într-un interval finit.
∞ b ∞
2. Separarea integralei în două integrale: I = ∫ f ( x)dx = ∫ f ( x)dx + ∫ f ( x)dx . Prima
a a b
integrală, presupusă proprie se calculează cu una din metodele expuse mai sus. Dacă b
este suficient de mare a doua integrală poate fi neglijată. Pentru a determina dacă b este
suficient de mare se poare calcula integrala, pentru o succesiune de limite b, 2b, 3b ... şi
alegerea kb, k=2, 3, ... când I(b) nu depinde sensibil de b. În alte cazuri, se cunoaşte
forma asimptotică a funcţiei f g (x)≈ f (x), pentru x suficient de mare, a doua integrală
se calculează analitic, prin substituţia funcţiei f cu g.
Pentru integrala I, pe interval mărginit, unde f(x) este infinită în unul, sau ambele capete,
există numeroase tehnici de tratare a singularităţilor:
- Prin eliminarea singularităţilor, apelând la integrarea prin părţi şi schimbare de variabilă.
1
e x dx
Exemplu de schimbare de variabilă: I = ∫ pentru care funcţia are valoare infinită la
0 x
1
x=0. Se efectuează substituţia u = x şi se obţine I = 2 ∫ e u du . Dacă se dezvoltă în serie funcţia
2

90
integrant şi se integrează termen cu termen se obţine I ca sumă a unei serii numerice convergente:
1
 u2 u4   1 1 
I = 2 ∫ 1 + + + ...  = 21 + + + ...  .
0 1! 2!   3 10 
- Metoda Simpson cu excluderea singularităţilor (de exemplu înlocuind limita a cu a-ε, unde
ε suficient de mic).
- Metoda Gauss, este în general cea mai potrivită pentru astfel de integrale, deoarece nu
necesită calculul funcţiei în a sau b, metoda corespunde unei aproximări polinomiale de grad înalt.
În schimb, acesta nu dă rezultate dacă funcţia oscilează puternic în jurul singularităţii.

6.1.5.3. Formule de cubatură pentru calculul integralelor [ DOD76]

Se consideră f : D Æ R2, D⊂R2, f este


integabilă pe D, D fiind un domeniu simplu y y=ϕ2(x)
definit de inegalităţile:
a ≤ x ≤ b, ϕ 1 ( x) ≤ y ≤ ϕ 2 ( x) , unde ϕ1, ϕ2 :
[a,b] Æ R sunt continue împreună cu
derivatele de ordinul întâi (fig. 6.6). D

Se pune problema aproximării


integralei I = ∫∫ f ( x, y )dxdy . y=ϕ1(x)
D
D este un domeniu simplu, I se scrie: 0 a b x
ϕ 2 ( x )
b 
∫∫ f ( x, y ) dxdy = ∫  ∫ f ( x, y )dy dx
 ϕ1 ( x )
(6.33) Fig.6.6. Domeniu de definiţie a
D a   funcţiei f(x,y)
ϕ 2 ( x)

Dacă se notează F ( x) = ∫ f ( x, y)dy , atunci:


ϕ1 ( x )
b
I = ∫∫ f ( x, y )dxdy = ∫ F ( x)dx (6.34)
D a

Se consideră o reţea de noduri (xi,yj), i=1,2,...,n; j=1,2, ...,m, (xi,yj)∈D. Dacă se aplică
integralei simple, din membrul drept al egalităţii 6.32, o formulă de cuadratură se obţine:
n

∫∫ f ( x, y )dxdy ≈ ∑ Ai F ( x i ) (6.35)
D i =1

unde
ϕ 2 ( xi )

F ( xi ) = ∫ f ( x , y)dy
ϕ1 ( xi )
i (6.36)

Dacă se aplică o formulă de cuadratură membrului drept al egalităţii 6.36 rezultă:

ϕ 2 ( xi ) mi

∫ f ( x i , y )dy = ∑ Bij f ( x i , y j ) (6.37)


ϕ1 ( xi ) j =1

Ţinând seama de cele două cuadraturi rezultă formula de cubatură:


n mi

∫∫ f ( x, y )dxdy = ∑ ∑ Ai Bij f ( x i , y j ) (6.38)


D i =1 j =1

91
Formula de cubatură a trapezelor
Se consideră integrala dublă definită pe un domeniu dreptunghiular:
b d
I = ∫ ∫ f ( x, y )dxdy (6.39)
a c

Se împarte dreptunghiul a ≤ x ≤ b. c ≤ y ≤ d într-un număr de m*n dreptunghiuri, cu laturi


b−a d-c
h= , k= . Valoarea aproximativă a integralei duble rezultă, prin aplicarea repetată a
n m
formulei trapezelor, pentru integrala simplă 6.20, în final obţinându-se:

I≈
hk
4
[
f ij + f i , j +1 + f i +1, j + f i +1, j +1 ] (6.40)

Formula de cubatură a lui Simpson

Procedând similar ca la formula trapezelor se obţine:

I≈
hk
9
[
f i −1, j −1 + f i +1, j −1 + f i −1, j +1 + f i +1, j +1 + 4( f i , j +1 + f i , j −1 + f i −1, j + f i +1, j ) + 16 f ij ] (6.41)

Şi în cazul integralelor duble, formula de cubatură a lui Simpson este mai precisă decât a
trapezelor, la acelaşi număr de noduri.

6.1.5.4. Operatori pentru integrarea numerică (E)

Cu Mathcad se pot calcula integrale definite, integrale curbilinii, integrale duble şi triple.
Pentru evaluarea integralelor în Mathcad, trebuie avut în vedere că:
- limitele intervalului de integrare sunt numere sau expresii reale, scalare sau indexate;
- expresia de integrat poate fi reală sau complexă, însă neapărat scalară;
- toate variabilele din componenţa integrandului, cu excepţia celei de integrare, trebuie să fie
definite la stânga, sau deasupra regiunii matematice curente;
- dacă variabilei de integrare i se asociază unităţi de măsură, trebuie ca şi limitele de
integrare să aibă aceleaşi unităţi.

Mathcad utilizează implicit procedura AutoSelect, care alege automat cea mai precisă
metodă de integrare din cele patru disponibile:
- metoda Romberg (vezi subcapitolul anterior);
- metoda adaptivă, care aplică o metodă de cuadratură adaptivă, când integrandul are
variaţii puternice, în intervalul de integrare.
- metoda Limită Infinită, care se utilizează pentru integralele improprii la care una sau
ambele limite nu sunt finite;
- metoda Punct limită singular utilizează un algoritm care, evită evaluarea limitelor de
integrare, în care integrandul nu este definit

92
Alegerea metodei de integrare numerică

Etape ______________________________
1. Evaluaţi integrala definită (vezi paragraful următor).
2. Clic cu ButD în stânga simbolului de evaluare, din zona integralei.

3. Selectaţi una din metodele de integrare afişate în meniul pop-


up.

4. Clic în exteriorul regiuni matematice, pentru a vedea rezultatul,


dacă opţiunea Automatic Calculation este selectată
_______________________________________________________________________________

Precizia de integrare numerică

Ca şi la derivarea numerică, algoritmii de integrare numerică returnează un rezultat, dacă


două evaluări succesive diferă cu mai puţin de valoarea constantei predefinite de sistem TOL.
După cum se ştie, aceasta are valoarea implicită 0.001. Micşorarea valorii TOL, obligă sistemul să
calculeze integrala cu precizie mai mare, dar timpul de calcul creşte, şi invers.
Dacă Mathcad eşuează în evaluarea unei integrale definite, afişează un mesaj de eroare prin
care utilizatorul este informat asupra cauzei: singularităţi ale funcţiei de integrat etc.

Calculul integralei definite

Etape ______________________________
1. Clic într-o zonă liber a foii de lucru.
2. Inseraţi simbolul integralei definite, din paleta Calculus, Æ
sau apăsaţi tasta [&].
3. Completaţi, în orice ordine placeholder-ele .
4. Inseraţi simbolul de evaluare.
5. Clic în exteriorul regiunii matematice pentru a vedea rezultatul, dacă opţiunea
Automatic Calculation este selectată.
_______________________________________________________________________________

93
Se pot face evaluări multiple ale integralei, dacă se utilizează, ca limite de integrare
expresii dependente de variabile indexate: Exemplu:

Calculul integralelor multiple

Pentru calculul unei integrale multiple se inserează simbolului integralei definite, de mai
multe ori, apoi se completează placeholder-ele.
Exemplu: Să se calculeze masa unei plăci cu grosime constantă, cu un contur patrulater curbiliniu
delimitat de a ≤ x ≤ b, c( x) ≤ y ≤ d ( x) . Densitatea ρ este proporţională cu distanţa de la origine.

Timpul de calcul al integralelor multiple este mai lung decât al celor simple. În
consecinţă, se recomandă, dacă este posibil, să se recurgă la integrale de ordin inferior.

Atentie ________________________________
Fie f(x,y) o funcţie definită şi mărginită pe un domeniu plan, notat cu D, închis şi mărginit.
Se consideră, pentru D, un interval I={(x,y), a≤ x≤b, c≤y≤d} şi f integrabilă pe I [ROŞ79].
Dacă f(x,y) este mărginită şi integrabilă pe I şi dacă:
d
a) pentru orice x∈[a,b] există integrala F ( x) = ∫ f ( x, y )dy
c

b) F(x) este integrabilă pe [a,b], atunci


b d

∫∫
I
f ( x, y )dxdy = ∫  ∫ f ( x, y )dy  dx
a c 
(6.42)

94
Similar, dacă domeniul este D plan, mărginit de o curbă închisă Γ, formată dintr-un număr
finit de arce netede, şi dacă o paralelă la Oy taie Γ numai în două puncte şi ϕ1(x), ϕ2(x), a≤ x≤b,
sunt ecuaţiile arcelor superior, respectiv inferior, se demonstrază:
Dacă f(x,y) definită pe D, este mărginită şi integrabilă pe D şi dacă:
ϕ2 ( x)

c) pentru orice x∈[a,b], există integrala F ( x) = ∫ f ( x, y)dy


ϕ1 ( x )

d) F(x) este integrabilă pe [a,b] atunci


b ϕ 2 ( x ) 
∫∫ f ( x, y )dxdy = ∫  ∫ f ( x, y )dy  dx
a  
(6.43)
I  ϕ1 ( x )
În Matcad, se utilizează fie convenţiile de notare, din membrul drept al relaţiilor 6.42
şi 6.43, fie mai concis fără paranteze. Dacă se aplică convenţiile de notare din partea stângă a
relaţiilor 6.42 şi 6.43 se obţin rezultate greşite.
Exemple:

În exemplele de mai sus, s-au calculat integrale duble, atât numeric cât şi simbolic.
Rezultatele eronate sunt evidente dacă nu se respectă convenţia amintită
_______________________________________________________________________________

Calculul integralelor curbilinii

După cum se ştie, integrala curbilinie este o extindere a integralei definite, în sensul că
intervalul de integrare [a,b] se înlocuieşte cu un arc de curbă AB. Integralele curbilinii de tipul I şi
II pot fi transformate în integrale definite, şi în consecinţă pot fi calculate în Mathcad.

95
6.2. FUNCŢII PREDEFINITE (E)

În acest capitol sunt detaliate următoarele probleme: modul de inserare a funcţiilor


predefinite, trecerea în revistă a principalelor grupe de funcţii predefinite care rezolvă anumite clase
de probleme. Funcţiile predefinite în Mathcad 2001 Professional sunt detaliate în capitolele
ulterioare.

6.2.1. Inserarea funcţiilor predefinite

Funcţiile predefinite, disponibile în Mathcad 2001, au ca surse:


- setul de bază al funcţiilor predefinite existent în ediţia ”Professional”;
- pachetele adiţionale instalate;
- funcţiile predefinite instalate de utilizator.
Indiferent de provenienţă, acestea se inserează prin una din căile:
- meniul Insert Æ Function;
- butonul f(x) din bara instrumentelor standard;
- manual (atenţie numele de funcţii sunt “case sensitive “).
Fereastra de dialog “Insert function” (fig. 6.7) are structura:
În stânga sunt listate categoriile de
funcţii predefinite. Dacă nu ştiţi cărei categorii îi
aparţine funcţia, lăsaţi nemodificată selecţia
implicită “All”, în caz contrar clic pe una din
ele.
În dreapta sunt listate alfabetic numele
funcţiilor. Dacă executaţi un clic pe numele unei
funcţii, în cele două ferestre din partea
inferioară, sunt afişate: formatul şi scurte
informaţii asupra rezultatului aplicării funcţiei.
Inserţia se efectuează prin butoanele [OK]
sau [Insert].

Rapid ______________________________
Dacă cunoaşteţi cel puţin primele caractere ale numelui funcţiei, introduceţi-le de la
tastatură şi lista derulatoare se va poziţiona automat în zona dorită. Anterior, selectaţi fereastra
“Funcţion Name” prin clic în interiorul ei, sau apăsaţi tasta [Tab] dacă este selectată fereastra
“Function Category”
_______________________________________________________________________________

6.2.2. Funcţii predefinite create de utilizator

Deoarece această problemă este de competenţa programatorilor avansaţi, depăşind


obiectivele acestui manual de iniţiere în Mathcad, în continuare se prezintă doar câteva elemente
generale.

96
Într-o primă etapă se scrie codul sursă al funcţiei în C sau C++ şi apoi se compilează pe 32
biţi. În continuare, se crează un DLL care se plasează în subdirectorul “Userfi” şi se adaugă o
intrare la user.xml, pentru ca noua funcţie să apară în caseta de dialog “Insert function”.

6.2.3. Principalele categorii de funcţii matematice predefinite.

Funcţii trigonometrice

Mathcad pune la dispoziţia utilizatorului funcţiile trigonometrice (categoria Trigonometric)


directe şi inverse, funcţii hiperbolice.
Atentie _____________________________
Funcţiile trigonometrice au argumente măsurate în radiani. După cum se ştie (vezi partea I,
subcap. 5.5 ) dacă doriţi să lucraţi cu argumente în grade hexazecimale trebuie introdusă unitatea
predefinită deg (de la ”degree” în engleză).
_______________________________________________________________________________

Funcţii logaritmice şi exponenţiale

Argumentul unei funcţii logaritmice, sau exponenţiale, trebuie să fie un scalar, real sau
complex. În Mathcad există trei funcţii de acest tip: exp(z) Æ ez, ln(z) cu z≠0 şi log(z,b) cu z≠0,
b≠0, dacă b este omis se consideră că baza este 10.

Exemplu: funcţia logaritm natural cu argument complex: ln(z) = ln(|z|) + i arg(z).

Alte funcţii:

Funcţii Bessel
Funcţii pentru numere complexe, vezi partea a II-a , cap. 18.
Funcţii specifice teoriei numerelor şi combinatoricii, vezi partea a II-a , cap. 19.
Funcţii de trunchiere şi aproximare, vezi partea a II-a , cap. 13.
Funcţii speciale
Funcţii pentru transformări discrete: Fourier, Wave
Funcţii specifice operării cu vectori şi matrice, vezi partea a I-a , cap. 7.
Funcţii pentru rezolvarea ecuaţiilor şi sistemelor şi optimizări, vezi partea a II-a , cap. 14, 15.
Funcţii statistice, probabiliste şi pentru analiza datelor, vezi partea a II-a , cap. 16,20.
Funcţii specifice operaţiilor financiare de nivel personal
Funcţii pentru rezolvarea ecuaţiilor şi sistemelor diferenţiale, vezi partea a II-a , cap. 17.

97
I FUNDAMENTE MATHCAD 2001

VECTORI ŞI MATRICE
_______________________________________________________________________________

În engleză vectorii şi matricele sunt numite arrays, în limba română termenul similar este
tablou. În continuare se va utiliza abrevierea V&M (Vectori şi Matrice).
Comparativ cu versiunile anterioare, Mathcad 2001 determină mult mai riguros matricele
singulare. Deci, este posibil ca o matrice considerată nesingulară, de exemplu în Mathcad 2000, să
fie declarată singulară, în versiunea 2001. Opţiunea pentru pentru un calcul riguros poate fi
dezactivată printr-un checkbox cu eticheta ”Use strict singularity checking for matrices” în meniul
Math ÆOptions ÆCalculation.
Atentie ________________________________
Implicit, în Mathcad primul indice al V&M este 0. Modificarea valorii implicite se
efectuează prin intermediul variabilei predefinite ORIGIN, care are valori întregi. Sunt posibile
două căi de modificare a valorii variabilei ORIGIN, cu efect asupra întregii foi de lucru:
1. Meniul Math Æ Options Æ tab-ul Built in variables.
2. Setarea variabilei ORIGIN ca variabilă globală. Atenţie, numele variabilei se scrie cu
majuscule.
_______________________________________________________________________________

7.1. CREAREA DE VECTORI ŞI MATRICE

7.1.1. Crearea V&M neimbricate

7.1.1.1. Crearea V&M prin definirea individuală a elementelor ( E)

Pentru definirea unui element al unui vector sau matrice, se utilizează funcţia subscript prin
tasta[ [ ], sau prin operatorul Xn, din paleta Vector and Matrix. Această metodă de generare este
mai productivă decât cea care utilizează butonul Matrix or Vector, dacă vectorul sau matricea este
rară (matricea are relativ multe elemente cu valoare zero comparativ cu cele având valori nenule).
Exemplu: Pentru elementul v5=2 al unui vector, se scrie: v[5:2. Elementele cu valori nule nu trebuie
definite. Vectorul va avea dimensiunea maximă determinată de cel mai mare indice introdus la
definirea individuală a elementelor, care poate fi făcută în orice ordine.

7.1.1.2. Crearea V&M prin comanda Matrix or Vector ( E)

Etape ________________________________
1. Meniul Insert Æ Matrix, sau butonul din paleta, sau combinaţia de taste
[Ctrl]+[M];

98
2. Introduceţi numărul de linii şi coloane (≤ 100
elemente), în zonele de editare Rows, respectiv
Columns.
3. Clic pe butonul OK, sau Insert.
4. Introduceţi în placeholder-e valorile numerice, expresii,
string-uri. Trecerea de la un placeholder la altul se face rapid prin apăsarea tastei [Tab].
_______________________________________________________________________________
Metoda este indicată pentru V&M de dimensiuni relativ mici.

7.1.1.3. Crearea V&M prin introducerea datelor într-un tabel ( E)

Etape ________________________________
1. Clic într-o zonă liberă a foii de lucru.
2. Meniul Insert Æ Component. În fereastra de
dialog alegeţi Input Table şi apoi apăsaţi
butonul [Finish]. În foaia de lucru este creat un
tabel gol, ca cel din figura alăturată.
3. Completaţi în placeholder-ul din stânga numele tabelului.
4. Clic în locaţiile tabelului şi completaţi-le cu valori numerice, sau complexe (nu expresii).
Dacă lăsaţi elemente necompletate acestea se consideră ca având valoarea zero.
_______________________________________________________________________________
Limitările practice, de dimensiuni, ale V&M introduse prin tabel sunt determinate de
memoria disponibilă a sistemului de calcul.

7.1.1.4. Crearea V&M prin VPA ( E)

99
Dacă funcţia este de două variabile se procedează ca în exemplele de mai sus, valorile
discrete fiind memorate într-o matrice bidimensională.

7.1.1.5. Crearea de matrice prin funcţiile Matrix, CreateMesh, CreateSpace.

Funcţia matrix(m, n, f) returnează o matrice mxn, unde m şi n sunt numerele de linii, respectiv
de coloane, f este numele unei funcţii de două variabile f(i,j), i = 0, m − 1 , j = 0, n − 1 .

Exemplu:

Funcţia CreateMesh(F (sau G, sau f1, f2, f3), [[umin], [umax], [vmin], [vmax], [nu], [nv],
[fmap]]) creează o matrice imbricată (vezi 7.1.2), din trei matrice cu elementele coordonatelor x, y,
z ale unei suprafeţe definite sub una din formele: F, G, f1, f2, f3.
Primul argument: funcţia F este sub forma unui vector coloană, având ca elemente
coordonatele x, y, z dependente de doi parametri, notaţi în general cu u şi v. Funcţia G este
reprezentarea analitică explicită a suprafeţei, iar f1, f2, f3 ecuaţiile parametrice.
Exemplu:
O suprafaţă sub formă parametrică:
x=f1(u,v)=u, y=f2(u,v)=v, z=f3(u,v)=sin(u)+cos(v), se scrie:
Următoarele argumente, încadrate în paranteze pătrate, sunt opţionale şi au valori scalare.
Primele patru sunt limitele variabilelor u, v. implicit umin=vmin=-5, umax=vmax=5. Următoarele
două nu, nv reprezintă numărul de puncte ale reţelei (“mesh”). Atenţie, numărul de celule ale reţelei
este (nu-1)*(nv-1). Implicit nu=nv=20.
Argumentul fmap, este o funcţie sub forma unui vector coloană, având ca elemente relaţiile de
transformare din alt sistem de coordonate în cel cartezian.
Funcţia CreateSpace(F (sau f1, f2, f3), [[tmin], [tmax], [nt], [nv], [fmap]])) returnează o matrice
imbricată, formată de trei vectori care reprezintă coordonatele x, y, z ale unei curbe spaţiale definite
de o funcţie F sub forma unui vector cu trei elemente, sau de f1, f2, f3 ecuaţiile parametrice ale
curbei.

Exemplu:

7.1.1.6. Crearea V&M prin citirea unui fişier

Pentru crearea V&M prin citirea unui fişier, Mathcad utilizează un obiect OLE, numit
componenta File Read/Write. Componentele sunt detaliate în partea a III-a a lucrării, în capitolul
“Managementul datelor”. Acest obiect, specializat realizează o legătură între foia de lucru şi o
sursă de date sau o altă aplicaţie. Astfel se pot citi date sub următoarele formate: Excel (*. xls),
Matlab (*.mat), Lotus 1-2-3 (*.wk*), ASCII (*.dat, *.prn, *.txt, *.csv). În mod particular, pentru
ultimul format se poate folosi şi funcţia writeprn.

100
Pentru a citi elementele unui vector sau matrice, acestea trebuie să existe pe un suport de
memorie externă, ca fişier ASCII. O cale simplă de creare a unui fişier, care conţine caractere
ASCII este utilizarea editorului de texte Notepad instalat de Windows (butonul [Start] Æ
Programms Æ Accessories Æ Notepad). De exemplu, să presupunem că matricea are două
coloane: pe prima fiind trecuţi timpii la care s-au făcut măsurătorile unui experiment şi pe a doua
valorile măsurate. În Notepad aceste date se scriu cu separator blank între linii, după care datele se
salvează ca fişier text.
Etape ________________________________
1. Clic într-o zonă liberă a foii de lucru.
2. Meniul Insert Æ Component. Din fereastra de dialog alegeţi File Read or Write, după
care apăsaţi pe butonul [Next].
3. În noua fereastră de dialog File Read or Write Wizard, selectaţi butonul radio Read
from File, apoi apăsaţi [Next].
4. În continuare, selectaţi din lista asociată, tipul fişierului (fişierul text este implicit),
scrieţi calea spre fişierul sursă de date, sau mai rapid apăsaţi butonul [Browse] şi prin
intermediul ferestrei de dialog specifice căutaţi fişierul, după care apăsaţi butonul
[Finish].
_______________________________________________________________________________
Ca urmare a acestor operaţii, pe foia de lucru este afişat obiectul alăturat. Utilizatorul
trebuie să completeze placeholder-ul din stânga cu un nume pentru V&M, după care datele cuprinse
în matrice pot fi prelucrate. În captura de mai jos, după “botezarea ” matricei cu numele a, aceasta a
fost afişată.

7.1.1.7. Crearea V&M prin import de date într-un tabel

Etape ________________________________
1. Creaţi un tabel gol (etapele 1, 2, 3 de la 7.1.1.3).
2. Selectaţi tabelul prin clic, după care mai executaţi un clic cu ButD şi din meniul pop-up
alegeţi comanda Import.
3. În fereastra de dialog Read from File, alegeţi fişierul din care se face importul de date şi
apăsaţi tasta [Open].

Atentie ________________________________
Spre deosebire de componenta File Read or Write, care citeşte fişierul de fiecare dată
când se comandă calcularea foii de lucru, în cazul Import, operaţia de citire se face doar o dată
când se crează matricea.
_______________________________________________________________________________

101
7.1.1.8. Generarea unor matrice speciale

Mathcad generează următoarele matrice speciale:


- funcţia identity(n) returnează o matrice identitate (matrice n x n, cu elemente 1, pe
diagonala principală);
- funcţia diag(v) (P) generează o matrice care are pe diagonală elementele unui vector v
cunoscut;
- funcţia tr(A) returnează suma elementelor diagonalei unei matrice pătrate A (“trace”-
urmă).

7.1.1.9. Generarea unor V&M din alte matrice

Funcţia augment(A, B, C, ...) returnează o matrice formată din alăturarea pe orizontală a


V&M, A, B, C, ... , care trebuie să aibă acelaşi număr de linii.
Funcţia stack(A, B, C, ...) returnează o matrice formată din alăturarea pe verticală a V&M,
A, B, C, ... , care trebuie să aibă acelaşi număr de coloane.
Funcţia submatrix(A, ir, jr, ic, jc) extrage din matricea A o submatrice care conţine toate
elementele dintre liniile ir, jr, şi coloanele ic, jc. Trebuie respectate condiţiile jr≥ir, jc ≥ic.

7.1.2. Crearea de V&M imbricate

Elementele V&M pot conţine la rândul lor alte V&M. Generarea V&M imbricat ( “nested”)
nu se poate face inserând în placeholder-ul elementului unui V&M, altă structură goală de V&M.
Cea mai simplă cale de creare a
V&M imbricate este prin definirea
individuală a elementelor sale. În exemplul
alăturat, se observă că elementele imbricate
pot fi neomogene structural: primul este o
matrice 2x2, restul sunt vectori 2x1.
Mathcad afişează implicit dimensiunile submatricelor imbricate. Pentru a vedea conţinutul
unei astfel de matrice este necesară afişarea individuală a elementelor. În acest scop din meniul
Format Æ Result Æ tab-ul Display Options, bifaţi “Expand nested arrays”.
Matricele imbricate pot fi asamblate din alte matrice prin crearea structurii goale (meniul
Insert Æ Matrix sau butonul din paleta Vector and Matrix) şi completarea placeholder-elor
goale cu numele V&M, anterior definite.

Exemplu:

Se observă că Mathcad ia în considerare numărul de linii, coloane ale matricei afişate,


ignorând faptul că acesta este formată din vectori, fapt important în calculele matriceale.
În aceeaşi manieră, în placeholder-e pot fi trecute direct funcţiile generatoare de submatrice,
sau de citire a elementelor dintr-un fişier.

102
Exemplu:

7.2. ACCESAREA ŞI AFIŞAREA VARIABILELOR INDEXATE

7.2.1. Accesarea elementelor V&M (E)

Elementele V&M pot fi accesate, fie global prin utilizarea numelui variabilei asociate, fie
individual utilizând operatorul subscript.
Operatorul subscript poate fi inserat în două moduri:
1. Clic pe butonul din paleta Vector and Matrix.
2. Prin apăsarea tastei [ [ ].
Dacă elementul accesat are mai mulţi indici aceştia se despart prin virgule.
Accesarea coloanelor unei matrice se face prin operatorul aflat pe paleta Vector and
Matrix. În placeholder-ul inferior se scrie numele matricei, iar în cel superior indicele coloanei.

Accesarea liniilor unei matrice necesită transpunerea ei (operatorul din paleta Vector
and Matrix).

Exemplu:

7.2.2. Afişarea elementelor V&M (E)

V&M cu dimensiunea mai mică decât 11, sunt afişate sub forma completă, tablourile mai
mari sunt afişate ca tabele fiind vizibilă doar zona din colţul N-E. Prin barele de defilare, poate fi
vizualizată orice porţiune. Pentru a redimensiona partea vizibilă dintr-un tabel, acesta trebuie
selectat şi apoi folosite mânerele de redimensionare.
Un tabel poate fi afişat ca V&M şi invers:
Etape ________________________________
1. Clic pe tabel.
2. Meniul Format Æ Result.
3. Alegeţi din lista Matrix display style, a tab-ului Display Options, opţiunea Matrix.
4. Apăsaţi pe butonul [OK].
_______________________________________________________________________________
Tabelele foarte mari nu sunt afişate în format V&M.
Elementele matricelor imbricate pot fi accesate, dacă se utilizează paranteze pentru
înlăturarea confuziilor.

103
În exemplul de mai sus, după ce scrieţi MI0, cuprindeţi întreaga întreaga expresie cu LEO şi
la introducerea celei de a doua serii de indici sistemul va insera automat paranteze.

7.3. CĂUTAREA DE VALORI ÎN V&M

În Mathcad 2001 au fost introduse patru funcţii: lookup, hlookup, vloop şi match care
permit căutarea de valori în V&M şi returnarea rezultatului tot în formă matriceală.
Notaţii:
- z valoarea căutată (reală, complexă sau şir de caractere);
- A, B V&M cu valori reale, complexe, şiruri de caractere, cu compoziţie omogenă, sau
nu;
- r, c sunt întregi ORIGIN ≤ r ≤ ORIGIN+n−1, ORIGIN ≤ c ≤ ORIGIN+n−1.
Cele patru funcţii sunt utile în procese de căutare în tabele, care au pe prima linie şi coloană
valori şir de caractere, cu semnificaţia de cap de tabel (vezi exemplul de la funcţia lookup).
Funcţia lookup(z, A, B) caută în V&M, A, o valoare dată z (reală, complexă sau şir de
caractere) şi returnează valoarea/ile găsite într-o altă matrice B, în aceleaşi poziţii, în care a fost
găsită/e valoarea z.

Exemplu:

În tabloul stoks se caută pe coloana a 4-a valorea 2.25 şi este returnată valoarea “2/99”cu
coordonatele: linia unde a fost găsită valoarea z şi prima coloană.
Funcţia match(z, A) caută în V&M, cu numele A, o valoare z şi returnează indecşii
poziţiilor găsite în A. Dacă găseşte mai multe valori, le afişează ca vector imbricat, în ordinea
parcurgerii matricei A pe rânduri de la stânga la dreapta. Pentru a vizualiza indicii bifaţi Expand
nested arrays din meniul Format ÆResult Æ tab-ul Display Options.

Exemplu:

104
Funcţia hlookup(z, A, r) caută în prima linie a V&M cu numele A, o valoare z şi returnează
valoarea/ile găsită/e din coloana/ele respectivă/e, pe linia specificată r.

Exemplu:

În primul exemplu, pe prima linie a matricei b se caută valoarea 1 şi este returnată valoarea
-5 având locaţia: coloana 0, unde se află 1, linia 2 specificată ca parametru actual; în al doilea
exemplu este returnat un vector, deoarece valoarea 6 este găsită de două ori pe prima linie.

Funcţia vlookup(z, A, c) este asemănătoare funcţiei hlookup, cu deosebirea că investigaţia


se face pe prima coloană şi se returnează valorile specificate de pe coloana c.

7.4. COPIEREA, LIPIREA ELEMENTELOR V&M (E)

Copierea elementelor V&M diferă funcţie de modul de afişare: forma V&M, sau forma
tabel. Dacă un rezultat este afişat V&M, se poate efectua copierea tuturor elementelor sale.

Etape ________________________________
1. Selectaţi vectorul, sau matricea şi cuprindeţi-o cu LEO.
2. Meniul Edit Æ Copy, sau clic cu ButD şi din meniul pop-up, alegeţi Copy.
3. Clic unde doriţi să efectuaţi lipirea: într-o zonă liberă a foii de lucru, sau într-un
placeholder.
4. Dacă doriţi să lipiţi în altă aplicaţie, alegeţi Paste din meniul Edit al aplicaţiei ţintă.
Dacă lipirea se face în aceeaşi foaie de lucru, alegeţi Paste din meniul Edit al foii

curente, sau butonul din bara instrumentelor standard.


_______________________________________________________________________________
Dacă un rezultat este afişat sub forma de tabel, se poate efectua copierea tuturor elementelor
sale, sau doar a unei submatrice sau vector.
Etape ________________________________
1. Clic pe elementul submatricei din colţul N-V, sau S-E.
2. Dragaţi în direcţia dorită.
3. Clic cu ButD pe submatricea selectată, din meniul pop-up alegeţi Copy Selection.
4. Operaţia de lipire se execută ca mai sus.
_______________________________________________________________________________
Copierea unei linii, coloane complete a unui tabel se face selectând-o prin clic pe numărul
de ordine de pe bordura tabelului, urmată de alegerea comenzii Copy. Selectarea unui tabel se face
prin clic pe zona nenumerotată din colţul N-V a bordurii.

105
7.5. MODIFICAREA DIMENSIUNILOR V&M (E)

În afară de modificare a dimensiunilor V&M, prin funcţiile stack şi augment (vezi 7.1.1.9. ),
Mathcad pune la dispoziţia utilizatorului şi alte mecanisme.

Inserarea de linii

Etape ________________________________
1. Clic pe elementul situat deasupra zonei unde doriţi să adăugaţi
una sau mai multe linii.

2. Meniul Insert Æ Matrix.


3. În caseta de dialog “Insert Matrix” specificaţi câte linii doriţi
să inseraţi, completând cu valoarea 0, editbox-ul coloanelor.

4. Clic pe butonul [Insert].

_______________________________________________________________________________
Ştergerea de linii se face în aceeaşi succesiune de operaţii ca la adăugare, cu deosebirea că
se apasă butonul [Delete].
Inserarea, ştergerea de coloane se face asemănător liniilor, la dreapta elementului
selectat.

7.6. FUNCŢII VECTORIALE ŞI MATRICEALE

7.6.1. Funcţii de analiză matriceală

7.6.1.1. Mărimea vectorilor şi matricelor (E)

Funcţia rows(A) returnează numărul de linii ale V&M.


Funcţia cols(A) furnizează numărul de coloane ale V&M.
Funcţiile rows şi cols pot avea ca argument numele unei matrice sau vector, sau chiar un
vector sau o matrice. Dacă A este scalar ambele funcţii returnează 0.
Funcţia length(V) furnizează numărul de elemente ale vectorului V.
Funcţia last(V) returnează ultimul indice al vectorului.

106
Funcţia min(A,B,C...) şi max(A,B,C...) sunt funcţii care determină minimul, respectiv
maximul din lista de argumente, care pot fi V&M, dar şi scalari sau şiruri de caractere. Evident, că
argument poate fi şi un singur vector sau o singură matrice.

7.6.1.2. Rangul matricelor (E)

Funcţia rank(A) furnizează rangul unei matrice. După cum ştie rangul unei matrice Amxn,
este un scalar 1 ≤ k ≤ min(m,n) care reprezintă numărul de linii, sau coloane liniar independente.
Funcţia rref(A) returnează rangul matricei, indicând coloanele ce constituie minorul al cărui
determinant este nenul.

7.6.1.3. Inversa unei matrice (E)

Funcţia geninv(A), inversa generalizată a unei matrice, returnează inversa la stânga a


matricei mxn, m ≥ n cu elemente reale (invA * A=I). Funcţia aplicată unei matrice pătrate,
furnizează acelaşi rezultat ca şi operatorul Inverse de pe paleta Vector and Matrix.

Exemplu:

7.6.1.4. Sortări ale elementelor V&M

Funcţiile de sortare, a elementelor V&M se găsesc în fereastra de dialog Insert Function, în


categoria Sorting, nu în Vector and Matrix.
Funcţia csort(A,n) (“sort” este prefixat cu c, de la ”column”- coloană) sortează ascendent
elementele unei coloane n. Evident că sortarea se face pe linii, care rămân neschimbate ca şi
compoziţie, fiind modificată doar poziţia lor în matrice.
Funcţia rsort(A,n) (“sort” este prefixat cu r, de la ”row”- linie) sortează ascendent
elementele unei linii n.
Funcţia sort(A) sortează ascendent elementele unui vector.
Funcţia reverse(A) inversează ordinea elementelor unui vector sau liniilor unei matrice.

Exemple

107
7.6.1.5. Calculul normelor vectorilor şi matricelor

Normele sunt scalari care dau o măsură a “mărimii” elementelor unei matrice sau vector. În
biblioteca Mathcad există patru tipuri de norme care se aplică unor matrice pătrate:
- Funcţia norm1(A) returnează norma L1 a matricei A, calculând cea mai mare sumă a
modulelor elementelor de pe coloană.
- Funcţia norm2(A) returnează norma L2 a matricei A, calculează cea mai mare valoare
singulară a matricei A.
- Funcţia norme(A) returnează norma euclidiană a matricei A. În acest scop se utilizează
n m
relaţia A e = ∑∑a
i =1 j =1
2
ij

- Funcţia normi(A) returnează norma infinită a matricei A, calculând cea mai mare sumă a
modulelor elementelor de pe linie.

7.6.1.6. Condiţionarea unei matrice (E)

Elemente teoretice referitoare la calitatea condiţionării unei soluţii se găsesc în partea a II-a
a lucrării. Numărul de condiţionare a unei matrice cu elemente coeficienţii necunoscutelor unui
sistem de ecuaţii liniare indică sensibilitatea soluţiei sistemului la perturbaţii asupra coeficienţilor.
O matrice bine condiţionată este relativ insensibilă la mici perturbaţii.
Mathcad 2001, ediţia Professional calculează condiţionarea matricelor prin patru funcţii:
cond1(A), cond2(A), conde(A), condi(A). Acestea sunt bazate pe normele L1, L2, euclidiană şi
infinită, conform relaţiilor: condx( A) = normx( A) − norm( A −1 ), x = 1, e, i (vezi tabelul 14.1).
Valori relativ mari, în general de ordinul miilor, ale numărului de condiţionare, sunt
asociate unor matrice rău condiţionate.

7.6.2. Descompunerea şi factorizarea matricelor

7.6.2.1. Valori şi vectori proprii

Dacă A este o matrice pătrată de ordin n, cu elemente reale, un număr λ∈C se numeşte
valoare proprie a matricei A dacă există un vector nenul x∈Cn, astfel încât Ax=λx. Vectorul x se
numeşte vector propriu a lui A, asociat valorii proprii λ [LAR89]. Valorile şi vectorii proprii au o
deosebită importanţă în simplificarea calculelor matriceale, în determinarea soluţiilor particulare ale
sistemelor de ecuaţii diferenţiale ordinare [DOD76].
Funcţia eigenvals(A) returnează un vector cu valorile proprii ale matricei pătrate A.
Funcţia eigenvec(A,z) retrurnează un vector propriu normalizat, asociat valorii proprii z.
Funcţia eigenvecs(A) este o generalizare a funcţiei eigenvec(A,z), care furnizează o matrice
conţinând pe coloane toţi vectorii proprii normalizaţi ai matricei A. Coloana i este un vector propriu
asociat valorii proprii i returnate de eigenvals(A).
Funcţiile genvals(M,N) şi genvecs(M,N) sunt funcţii corespondente celor prezentate anterior,
aplicabile în cazul problemei generalizate a valorilor proprii.

108
7.6.2.2. Calculul valorilor singulare

Funcţia svds(A) (singular values decomposition) returnează un vector având ca elemente


valorile singulare ale matricei A.
Funcţia svd(A) (singular value decomposition) returnează o matrice formată din două
submatrice U şi V plasate una sub alta. Cele două matrice satisfac ecuaţia A=U diag(s) VT, unde s
este vectorul returnat de svds(A).
În ambele cazuri, A este o matrice reală, cu dimensiuni mxn, m≥n.

7.6.2.3. Factorizări

Factorizarea Cholesky este realizată de funcţia cholesky(A), care returnează o matrice


superior triunghiulară, nesingulară L, care satisface relaţia: LLT=A. Matricea A este simetrică.
Această factorizare este o metodă directă de rezolvare a ecuaţiilor liniare AX=B, cu A matrice
pozitiv definită [GHI97].
Factorizarea LU (Lower-Upper) se efectuează cu funcţia lu(A) care returnează o matrice
formată din trei matrice pătrate P, L şi U, având aceeaşi dimensiune ca şi matricea pătrată A şi care
satisfac ecuaţia PA=LU. Matricele sunt asamblate pe orizontală în ordinea P-L-U. L şi U sunt
matricea inferior triunghiulară, respectiv superior triunghiulară. Factorizarea LU se utilizează în
calculul inversei unei matrice, determinanţilor, rezolvarea ecuaţiilor liniare.
Factorizarea QR se realizează prin intermediul funcţiei qr(A), care returnează o matrice
formată din: matricea ortonormală Q de dimensiune n (primele n coloane), şi o matrice superioară
(următoarele coloane) triunghiulară R, care satisfac ecuaţia: A=QR. A poate fi vector sau matrice
reală. Factorizarea QR se utilizează la rezolvarea sistemelor de ecuaţii liniare cu mai multe
necunoscute decât ecuaţiile [GHI97].

7.7. OPERATORI VECTORIALI ŞI MATRICEALI (E)

Majoritatea operatorilor pentru V&M se găsesc pe paleta Vector and Matrix putând fi
accesaţi şi prin intermediul tastelor.
Operatorii de însumare +, scădere -, pot fi inseraţi prin apăsarea tastelor corespunzătoare
sau prin simbolurile respective din paleta Calculator. Matricele, vectorii, care se însumează, sau se
scad trebuie să aibă aceleaşi dimensiuni. În membrul stâng al evaluării pot fi adunate, scăzute
oricâte matrice. Printre operanzi pot fi şi scalari reali sau complecşi.
Înmulţirea a două matrice se face cu operatorul * după regula “linii pe coloane”. Atenţie,
la dimensiunile operanzilor: Amn*Bnp=Cmp. Dacă unul din operanzi este scalar, se efectuează
înmulţirea fiecărui element al matricei cu scalarul respectiv.
Împărţirea unei matrice cu un scalar nenul utilizează operatorul /.
Ridicarea la putere a unei matrice pătrate An se efectuează cu operatorul ^, utilizat şi la
operaţia similară aplicată numerelor reale, sau complexe. Pentru n întreg pozitiv, A este înmulţită
cu ea însăşi de n ori.
Cazuri particulare:
- A0=I, unde I este matricea identitate cu dimensiunea matricei A;

109
- A1=A;
- A-1 returnează inversa matricei A.
Pentru efectuarea produsului scalar a doi vectori se utilizează operatorul * sau din
paleta Vector and Matrix. Evident, cei doi vectori trebuie să aibă acelaşi număr de elemente.
Operatorul produsului vectorial este , aflat tot pe paleta Vector and Matrix. Cei doi
vectori trebuie să aibă câte trei elemente, reprezentând proiecţiile vectorilor pe cele trei axe.
Modulul unui vector se calculează cu operatorul plasat pe paleta Vector and Matrix.
Transpusa unui vector, matrice este obţinută ca urmare a aplicării operatorului .
Determinantul unei matrice pătrate se calculează cu operatorul .
Operatorul de calcul a inversei unei matrice pătrate este . Acelaşi efect se obţine prin
ridicarea la putere –1 (nume matrice pătrată ∧ -1), sau prin aplicarea funcţiei geninv.
Pentru calculul negativei unei matrice se scrie operatorul – în stânga numelui matricei

Suma elementelor unui vector se efectuează cu operatorul .

Operatorul de vectorizare , din paleta Vector and Matrix, modifică sensul uzual al
operatorilor specifici V&M, aceştia aplicându-se fiecărui element al operanzilor. Vectorizarea
permite efectuarea calculelor numerice, sau simbolice în paralel.
Pentru a aplica operatorul de vectorizare asupra unei expresii cuprindeţi-o cu LEO, după care

apăsaţi butonul , sau combinaţia de taste [Ctrl]+[-].


Exemplu. Calculul în paralel a soluţiilor mai multor ecuaţii de gradul doi ax 2 + bx + c = 0 , în
scopul ridicării graficului dependenţei soluţiilor la variaţia coeficientului a într-un interval dat.

Problema de mai sus se putea aborda şi prin intermediul VPA, sau analitic determinând
derivatele simbolice ale funcţiilor soluţii.
Aplicarea vectorizării are următoarele efecte asupra unor operaţii specifice V&M:

- modulul fiecărui element al V&M:

110
- înmulţirea element cu element a matricelor

7.8. REPREZENTAREA GRAFICĂ A VECTORILOR ŞI MATRICELOR

7.8.1. Reprezentarea grafică a vectorilor

În exemplul alăturat, s-a


definit o VPA, cu numele i, a cărei
limite sunt primul şi ultimul indice
al vectorului v.
După inserarea cadrului unui
grafic 2D, în coordonate
carteziene, în placeholder-ul
ordonatei s-a scris numele
vectorului v, iar în abscisă numele
indexului i.
Pentru reprezentarea grafică a
elementelor vectorului, s-a ales
simbolul romb (abrevierea dmnd
de la “diamond” în tab-ul Traces al
ferestrei de dialog Formatting
Currently Selected X-Y Plot) şi s-
a selectat “points”, pentru Type.
În vederea unei reprezentări
sugestive, s-a lăţit banda abscisei cu 20%: în placeholder-ele abscisei s-au inserat valorile: a-e, b+e,
unde variabila e, are ca valoare 10% din xmax-xmin.
Succesiunea de comenzi utilizate mai sus asigură o oarecare generalitate, în sensul că se poate
reprezenta orice vector cu numele v, indiferent de indicele de început.

7.8.2. Reprezentarea grafică a matricelor

O matrice bidimensională poate fi reprezentată prin graficului 3D Scatter Plot ( din


paleta Graph), unde axele X, Y sunt indicii i şi j, iar pe Z sunt reprezentate valorile elementelor
matricei (pentru amănunte vezi subcap. 9.2.2).

111
I FUNDAMENTE MATHCAD 2001

ŞIRURI DE CARACTERE
_______________________________________________________________________________

În Mathcad, un şir de caractere (SC) (în engleză “string”) este format dintr-o secvenţă de
caractere plasate între ghilimele duble (“ ”). Convenţia de încadrare a SC între ghilimele se
întâlneşte şi la alte limbaje, de exemplu în Turbo Pascal se utilizează ghilimele simple, la fel în
Matlab. Numărul de caractere este limitat doar de memoria disponibilă. La afişarea unui SC
caracterele componente apar pe o singură linie.
Şirul de caractere numerice (SCN) conţine caractere care formează un număr real, complex,
(vezi 4.1.1. “Numerele în Mathcad”). Spaţiile libere plasate după primele ghilimele, sau înaintea
ultimelor sunt ignorate la evaluarea acestui tip de SC.
Exemple: “-6.256 ”, “3.25 e-12 ”, “4.2+5i ”.

8.1. DEFINIRI

8.1.1. Definiri de variabile cu valori SC

Etape ________________________________
1. Clic într-o zonă liberă a foii de lucru, scrieţi numele unei variabile. Æ

2. Inseraţi simbolul de definire (tasta [:]). Æ

3. În placeholder-ul din dreapta simbolului de definire, inseraţi


ghilimelele duble, prin apăsarea tastei [“]. Æ

4. Scrieţi, între ghilimele, orice combinaţie de litere,


numere, caractere. Æ

5. Apăsaşi tasta [Enter], sau clic în exteriorul zonei matematice.


_______________________________________________________________________________

112
8.1.2. Definiri de funcţii cu argumente SC

Definirea funcţiilor cu argumente SC se face asemănător variabilelor. În exemplul de mai


jos, s-a definit o prin programare o funcţie, care calculează secundele existente într-un număr
oarecare de ore, minute, secunde. Argumentul are un format fix: ore:minute:secunde, fără spaţii
goale, cu introducerea cifrei zero dacă orele, minutele sau secundele, lipsesc. În definirea funcţiei
hms2s(t) (hours minutes seconds to seconds) s-au utilizat câteva funcţii specifice, care sunt
detaliate în subcapitolele următoare.

- p1, p2 -poziţiile separatorilor

- h, m, s - subşirurile orelor,
minutelor, secundelor

- valoarea returnată de funcţie


- utilizarea funcţiei anterior definite

Funcţia de mai sus s-ar fi putut defini, mai concentrat, fără variabilele locale, intermediare
p1, p2 etc.

8.1.3. Definiri de vectori, matrice cu elemente SC

Definirea vectorilor şi matricelor cu elemente SC se efectuează prin metodele detaliate în


subcapitolul 7.1. “Crearea de vectori şi matrice”, respectând, pentru SC, convenţia de utilizare a
separatorilor ghilimele duble.

Exemplu:

8.2. FUNCŢII PENTRU OPERAREA CU SC

8.2.1. Funcţii generale

Funcţia IsString(x) returnează 1 dacă x este SC şi 0 în caz contrar.


Funcţia strlen(x) (în engleză “string length”) furnizează numărul de caractere ale SC, x.
Funcţia search(s,ss,p) returnează poziţia de start a subSC ss, din SC s, căutarea pornind de
la poziţia p. Dacă ss nu există în s funcţia furnizează valoarea –1. Vezi exemplul de la 8.1.2.
Funcţia substr(s,p,n) (în engleză “substring”) extrage un subşir format din n caractere,
începând de la dreapta caracterului cu număr de ordine p. Primul caracter este numerotat cu 0. Vezi
exemplul de la 8.1.2.

113
Funcţia concat(S1, S2, S3,...) returnează un SC compus din alăturarea mai multor SC, S1-S2-
S3-..., vezi exemplul de mai jos.
Funcţia erorr(s) afişează SC s, ca mesaj de eroare. Funcţia este frecvent utilizată în
programarea Mathcad.
Exemplu: S-a dezvoltat exemplul de la 8.1.2. cu protecţie la formatul incorect al argumentului.

8.2.2. Funcţii de conversie

Funcţia num2str(x) returnează un SCN corespunzător lui x, care poate fi o constantă


numerică, o expresie numerică.
Funcţia str2num (x) efectuează conversia SCN Æ număr, deci inversul conversiei efectuate
de funcţia num2str.

Exemple:

Funcţia str2vec(x) returnează un vector a cărui elemente sunt codurile ASCII, ale
caracterelor SC x.
Funcţia vec2str(v) efectuează conversia inversă funcţiei prezentate anterior. V este un vector
conţinând codurile ASCII ale caracterelor care formează un SC. Reamintim, că acestea sunt numere
întregi cu valori cuprinse între 0 ...255.

114
Exemple:

8.3. OPERATORI PENTRU SC

Operatorii relaţionali pot avea operanzi SC.

Exemple:
Se aplică regulile acceptate şi în alte limbaje: compararea
se face caracter cu caracter, pe baza codurilor ASCII ale
caracterelor SC.

În exemplul alăturat, ss < sd =1, deoarece primele patru


caractere sunt identice, diferă doar codurile elementelor cu poziţia
cinci. Codul ASCII al caracterului l este mai mare decât cel al
caracterului c.

115
I FUNDAMENTE MATHCAD 2001

REPREZENTĂRI GRAFICE ÎN MATHCAD


_______________________________________________________________________________

9.1. REPREZENTĂRI GRAFICE 2D ( E)

În Mathcad se pot reprezenta, în grafică 2D, funcţii sau expresii dependente de o singură
variabilă reală şi date X-Y ca puncte în plan.
Curbele plane pot fi definite analitic, in următoarele forme [MUR62]:
- ecuaţia implicită F(x,y)=0;
- ecuaţia explicită y=f(x),unde f(x) este uniformă, continuă si admite o derivată continuă,
pentru x ∈[a...b];
- ecuaţii parametrice x=f1(t), y=f2(t), unde f1, f2 stabilesc o corespondenţă biunivocă între
punctele care aparţin curbei şi mulţimea valorilor parametrului real t. Funcţiile f1, f2 admit derivate
de ordinul întâi continue, care nu se anulează simultan.
Mathcad poate, de asemenea, reprezenta curbe plane şi expresii monovariabilă care nu
respectă condiţiile enumerate anterior. Mai mult, intervalul de definire a variabilei poate avea limite
infinite.

9.1.1. Etapele reprezentării unor grafice 2D cu parametri impliciţi

În prealabil, se definesc funcţia, setul de funcţii, după care indiferent de natura graficului se
parcurg următoarele etape:

Etape ________________________________
1. Selectaţi locul de inserare, prin clic, într-o zonă liberă a foii de lucru. Graficul va fi
inserat cu colţul N-V în punctul selectat.
2. Inseraţi cadrul graficelor 2D, fie prin meniul Insert Æ Graph Æ X-Y Plot sau Polar

Plot, fie prin butoanele , respectiv , din paleta Graph.

Rapid ________________________________
Prin procedura 2D QuickPlots se poate insera rapid un grafic 2D: se scrie numele funcţiei
monovariabilă sau expresia dependentă de o variabilă, urmată de caracterul @, sau clic pe butonul
, sau . Ca efect, Mathcad afişează cadrul X-Y Plot sau Polar Plot cu placeholder-ul
corespunzător funcţiei, completat cu numele funcţiei, sau expresiei şi cu placeholder-ul variabilei

116
necompletat. Dacă executaţi un clic, în afara spaţiului graficului sau dacă se apasaţi tasta [Enter],
sistemul completează automat numele variabilei şi afişează un grafic cu limitele implicite ale
variabilei [ –10, 10], pentru X-Y Plot, [0, 2π], pentru Polar Plot.
_______________________________________________________________________________
3. Dacă nu aţi utilizat metoda 2D QuickPlots, completaţi cele două placeholder-e
corespunzătoare funcţiei, sau expresiei (plasat median în dreapta), şi variabilei (plasat median în
partea inferioară a graficului). Graficul 2D permite completarea ambelor placeholder-e cu numele
unor funcţii, sau direct cu expresii evident de aceeaşi variabilă reală (vezi subcap. 9.1.4).
4. Clic în afara spaţiului graficului sau apasaţi tasta [Enter]. Este afişat graficul 2D având
parametri impliciţi.
_______________________________________________________________________________

9.1.2. Setarea domeniului reprezentării grafice 2D

Valorile extreme de pe fiecare axă definesc domeniul reprezentării grafice 2D. După cum s-a
amintit, la reprezentările în coordonate carteziene, Mathcad consideră ca interval implicit al
variabilei –10 ... 10, iar la reprezentările polare 0 .. 2π. Aceste intervale sunt de multe ori
inadedecvate, utilizatorul putându-le modifica după necesităţi.
Setarea domeniului reprezentării unui grafic 2D se poate face pe mai multe căi, funcţie de
natura graficului:
1. O primă cale este setarea valorilor limitelor variabilei prin intermediul placeholder-elor.
1.1. Pentru grafice X-Y Plot completaţi în placeholder-ele limitelor de reprezentare pe
abscisă şi/sau ordonată, valorile dorite, sau definiţi variabile a căror nume le inseraţi în
placeholder-ele respective. Dacă se setează limitele variabilei, Mathcad reprezintă grafic
doar zona corespunzătoare cuprinsă între valorile minime, maxime ale funcţie, sau
expresiei reprezentate. Pentru a vizualiza placeholder-ele amintite selectaţi graficul X-Y
Plot.

În captura de mai sus se află graficul 2D QuickPlots a unei expresii, deci cu


limitele implicite ale variabilei x∈[-10 ... 10] şi reprezentarea aceleiaşi expresii cu
modificarea limitelor implicite, în x∈[2 ... 5].
Odată fixat domeniul de reprezentare, dacă se efectuează un dublu clic în spaţiul
graficului se deschide fereastra de dialog Formatting Curently Selected X-Y Plot. În
tab-ul X-Y Axes, pe coloanele X-Axis, Y-Axis există câte un checkbox Autoscale

117
selectat. Dacă acesta se deselectează, graficul va fi reprezentat mai “strâns”, în sensul că
se va termina exact la valoarea setată a limitelor, comparativ cu celălalt caz, când se
lărgeşte banda de reprezentate la cea mai apropiată valoare semnificativă.

În figura de mai sus, s-au capturat: în stânga, un grafic în care opţiunea Autoscale
este selectată, în dreapta opţiunea respectivă este selectată, doar pentru axa X. În cele
patru placeholder-e se poate insera şi simbolul +∞ sau -∞, caz în care sistemul ia în
considerare numerele reale maxime admise +10307 , respectiv -10307.

1.2. Pentru grafice Polar Plot, posibilităţile sunt mai limitate, deoarece graficul este
reprezentat implicit pentru unghiuri 0 … 2π, putând fi setate doar limitele razei.
Valorile respective se trec în cele două placeholder-e din partea dreaptă, superioară a
graficului.

Î
n

f
i
g
u
r
a

d
e
Mai sus sunt reprezentate două grafice ale
aceleiaşi spirale Arhimede ρ=2*θ. Primul a fost
creat cu metoda 2D QuickPlots, la al doilea s-au
modificat valorile limitelor razei: rmin=5, rmax=10.
Reprezentarea polară nu are opţiunea Autoscale.
2. O altă cale este utilizarea VPA pentru setarea
variabilei funcţiei sau expresiei.
În exemplul alăturat s-a definit o VPA, care este
argumentul funcţiei reprezentate. Pentru un pas
relativ mare, graficul nu are un aspect neted
deoarece Mathcad reprezintă punctele şi le uneşte cu
segmente de dreaptă. În graficul curent s-a utilizat
un pas π/n, cu n=100, definit anterior.

118
9.1.3. Multigrafice 2D

Pe un acelaşi grafic 2D pot fi reprezentate


maximum 16 curbe, folosind ca separator virgula,
atât între funcţii/expresii, cât şi între argumente,
variabile.
În figura alăturată s-au reprezentat două
funcţii cu argumente diferite. Dacă funcţiile au
aceeaşi variabilă, ca argument, este suficient să se
scrie doar o singură dată numele variabilei.

9.1.4. Reprezentarea curbelor definite prin ecuaţii parametrice

Curbele parametrice pot fi reprezentate completând placeholder-ele abscisei şi ordonatei cu


funcţii, sau expresii dependente de aceeaşi variabilă reală, ca în figurile de mai sus, unde sunt
reprezentate curbele Lissajous. Dacă doriţi să reprezentaţi doar porţiuni de curbe definiţi
parametrul ca VPA (vezi exemplul de mai sus).

9.1.5. Reprezentarea V&M şi a numerelor imaginare

Pentru reprezentarea grafică a vectorilor şi matricelor vezi subcapitolul 7.7.

119
Punctul M(x,y) se numeşte imaginea
geometrică a numărului complex z=x+iy.
După cum se cunoaşte, pentru a reprezenta
geometric numerele complexe se consideră un plan
raportat la un sistem de axe ortogonale XOY. În
acest scop se utilizează funcţiile Re(z) şi Im(z) care
returnează partea reală, respectiv imaginară a unui
vector sau număr (vezi capitolul 18).
În exemplul alăturat sunt reprezentate patru
numere complexe extrase din vectorul v.

9.1.6. Formatări în reprezentările carteziene

Modificarea setărilor implicite ale


reprezentărilor grafice 2D, se efectuează prin dublu
clic, fie într-o zonă neadiacentă axelor, fie în
proximitatea axelor.
În primul caz se deschide o fereastră cu mai multe tab-uri: X-Y Axes, Traces (”trasee”),
Labels (”etichete”), Default (“implicit”). În al doilea caz Mathcad deschide ferestre specifice
setărilor axelor carteziene.

Pentru exemplificare în figura de mai sus s-a capturat un grafic X-Y Plot şi tab-ul X-Y Axes
asociat. Tab-ul este structurat în două coloane de checkbox-uri X-Axis şi Y-Axis, cu aceleaşi
semnificaţii ale proprietăţilor pentru fiecare axă şi un câmp cu numele Axes Style.
Opţiunile pentru axe sunt:
• Log Scale afişează o scară logaritmică a axei;
• Grid Lines afişează o grilă pentru axa respectivă;
• Numbered* asociază fiecărei linii de grid valoarea numerică a distanţei faţă de axa X sau Y;
• Autoscale* a fost detaliat la 9.1.2;

120
• Show Markers permite plasarea pe grafic a maximum două linii orizontale şi două
verticale. Dacă opţiunea este selectată pentru o axă, pe cadrul graficului apar două
placeholder-e. În acestea se scriu valorile numerice ale abscisei, sau ordonatei liniilor de
marcare. Pentru afişarea liniei efectuaţi un clic în afara graficului, sau alegeţi comanda
Calculate din meniul Math, dacă doriţi să nu părăsiţi graficul.
• Auto Grid* afişează automat o grilă. Dacă opţiunea nu este activă, în editbox-ul Number of
Grids, utilizatorul poare introduce valoarea dorită.
• Semnificaţia opţiunilor Boxed*, Crossed şi None se referă la modalităţile de afişare a axelor
de coordonate. Cele trei posibilităţi de afişare sunt selectabile prin butoane radio.

• Equal Scales introduce aceeaşi unitate de măsură a distanţelor pe ambele axe.

Opţiunile marcate mai sus cu * sunt implicite.

Opţiunile din tab-ul Traces se referă la grafica


fiecărei curbe reprezentate Acestea sunt numerotate în
ordinea introducerii trace1, trace2 ...
Elementul de trasare a graficelor (coloana
Symbol) se poate face cu următoarele simboluri: x
(x’s), + (+’s), simboluri pătrate (”box”), romburi
(”dmnd” - diamond), o (o’s) sau fără utilizarea nici
unui simbol (”none”).
Linia de trasare (coloana Line): continuă
(”solid”), scurtă întreruptă (”dot”), lungă întreruptă
(”dash”), puncte (”dadot”).
Culoarea (coloana Color): roşu (red), albastru
(blue), verde (grn-green), magenta (mag-magenta),
cian (cya - cyan), maro (brn-brown), negru (blk -
black), alb(wht-white).
Tipul de reprezentare (coloana Type): linie (“lines”), puncte (”points”), bare de eroare
(”error”), care se utilizează în compararea a două grafice, bare (”bars”), scară (”step”), grafic
desenat (”draw”), tijă (”stem").

121
Grosimea curbei (coloana Weight): 1 ... 9 şi p. Ultima opţiune se referă la reprezentarea cu
o grosime de un pixeld, care este posibil să nu aibă nici un efect la tipărire, dacă imprimanta nu are
rezoluţie corespunzătoare. Comanda Weight are efect şi asupra simbolurilor diferite de “none.”. Se
pot ascunde argumentele funcţiei prin comanda Hide Argument, sau legenda prin Hide Legend.
Tab-ul Labels (etichete) permite inserări de texte ca: titlu plasat sus sau jos, etichete de axe
În figura alăturată este
reprezentată o astroidă prin
ecuaţiile parametrice. A fost
adăugat prin tab-ul Labels un
titlu. Săgeata a fost capturată
din Winword, adusă prin
copiere şi lipire în foia de lucru
şi în final dragată până în
poziţia dorită. Asemănător s-a
procedat cu textul “punct de
întoarcere” care a fost creat într-
o regiune text şi apoi dragat.
Ultimul tab Default
(implicit) permite modificarea
setărilor implicite Mathcad.

9.1.7. Formatări în reprezentările polare

Setările reprezentărilor polare sunt asemănătoare celor carteziene.

În captura de mai sus se observă elementele specifice din tab-ul Polar Axes şi setările
corespunzătoare pentru reprezentarea unei lemniscante.

122
9.1.8. ZOOM şi afişarea coordonatelor cursorului în graficele 2D,
în coordonate carteziene sau polare

9.1.8.1. ZOOM în graficele 2D

Etape ________________________________

1. Selectaţi graficul, prin clic.

2. Din paleta Graph, clic pe butonul


sau meniul Format Æ Graph Æ Zoom Æ
ca efect este afişată o ferestră de dialog
X-Y Zoom sau Polar Zoom.
3. Clic într-unul din colţurile regiunii pe care doriţi
să o măriţi.
4. Cu ButS apăsat deplasaţi cursorul spre celălalt colţ al regiunii. Se observă că, în cele
patru editbox-uri sunt afişate coordonatele colţurilor regiunii dreptunghiulare selectate,
butoanele Zoom şi Unzoom sunt activate.
În continuare, după ce eliberaţi butonul mouse-ului, sunt disponibile următoarele opţiuni:
5.1. Dacă apăsaţi pe butonul Zoom al ferestrei de dialog în cadrul graficului, va fi detaliată
regiunea selectată. Puteţi reveni la graficul iniţial dacă apăsaţi butonul Unzoom, fără
părasirea ferestrei de dialog, sau Cancel cu părasirea acesteia.
5.2. Dacă apăsaţi butonul OK, se închide fereastra de dialog şi detalierea rămâne
permanentă.
5.3. La apăsarea butonului Full View, graficul revine la setarea implicită a abscisei.
_______________________________________________________________________________

În figura de mai sus sunt reprezentate următoarele stări: graficul iniţial, selecţia zonei de
mărit, detalierea acesteia.

123
9.1.8.2. Afişarea coordonatelor cursorului în graficele 2D

Etape ________________________________
1. Selectaţi graficul prin clic.

2. Din paleta Graph, clic pe butonul ,


sau meniul Format Æ Graph Æ Trace . Æ

3. Efectuaţi un clic pe suprafaţa activă a graficului, cursorul se transformă într-un


colimator, iar în editbox-urile X-Value şi Y-Value apar coordonatele curente. Acestea
pot fi copiate (transferate în clipboard). Dacă se selectează opţiunea Track Data Points
colimatorul se deplasează doar pe curbă.
_______________________________________________________________________________

Determinarea coordonatelor unor puncte ale graficului este utilă în calculele iterative (vezi
partea a II-a).
Se cunoaşte că, pentru determinarea numerică a soluţiilor unei ecuaţii, maximelor,
minimelor algoritmii trebuie să pornească de la un punct, care este indicat să fie cât mai apropiat de
soluţie. În consecinţă prin mecanismul de mai sus se pot determina cu o precizie suficientă (aceasta
poate fi mărită prin ZOOM) coordonatele aproximative ale punctului de start.

9.2. REPREZENTĂRI GRAFICE 3D ( E)

Grafica 3D Mathcad permite reprezentarea suprafeţelor şi curbelor spaţiale, a datelor sub


forma a mai multe tipuri de grafice carteziene:
- 3D Scatter Plot (“to scatter”- a împrăştia, a dispersa) utilizat pentru reprezentarea grafică
în spaţiu a mulţimilor de puncte.
- Surface Plot folosit pentru reprezentarea suprafeţelor şi curbelor spaţiale.
- Contour Plot reprezintă suprafeţele sub forma liniilor curbelor de nivel.
- 3D Bar Plot foloseşte paralelipipedul dreptunghic ca element de reprezentare grafică 3D.
- Vector Field Plot utilizat pentru reprezentarea câmpurilor de vectori.

Reprezentarea primelor patru tipuri se bazează pe o reţea de puncte P(x,y,z) unite prin:
elemente de arie plane, prin segmente de dreaptă, sau neunite şi reprezentate ca puncte sau
paralelipipede cu înălţimea egală cu cota (coordonata z). Fiecare formă de reprezentare grafică se
utilizează în funcţie de natura obiectului geometric reprezentat: suprafeţe, curbe mulţimi de puncte.

124
În Mathcad 2001 nu există posibilitatea reprezentării 3D a datelor în alte sisteme de
coordonate diferite de cel cartezian. Dacă funcţiile se referă la coordonate sferice sau cilindrice,
acestea pot fi convertite în coordonate carteziene: dublu clic pe grafic, în caseta de dialog 3D Plot
Format, alegeţi tab-ul Quick Plot Data şi în câmpul Coordinate System, selectaţi “Spherical” sau
“Cylindrical”.

9.2.1. Reprezentarea graficelor 3D cu parametri impliciţi prin QUICK PLOT ( E)

În prima etapă, se defineşte funcţia, setul de funcţii, pe care doriţi să le reprezentaţi în


grafică 3D. Acestea sunt diferite, fiind dependente de natura ecuaţiei/lor care definesc
seturi de puncte, suprafeţe sau curbe spaţiale. Indiferent de natura, graficului pentru
reprezentarea 3D se parcurg următoarele etape:

Etape ________________________________
1. Selectaţi locul de inserare, prin clic într-o zonă liberă a foii de lucru. Graficul va fi
inserat cu colţul N-V, în punctul selectat.

2. Inseraţi cadrul graficelor 3D, fie prin meniul Insert Æ Graph Æ Surface Plot, sau
Contour Plot, sau 3D Bar Plot, sau 3D Scatter Plot, sau Vector Field Plot, fie prin butoanele

, din paleta Graph.

3. În placeholder-ul din colţul S-V al cadrului graficului 3D, scrieţi numele funcţiei
explicite a suprafeţei, sau numele funcţiilor parametrice despărţite prin virgule, între paranteze
rotunde. În cazul reprezentărilor 3D, Mathcad nu acceptă scrierea directă a expresiei în placeholder.

4. Clic în afara spaţiului graficului, sau apasaţi tasta [Enter]. Este afişat graficul 3D cu
parametri impliciţi (x, y ∈[-5 ...5], pentru suprafeţele exprimate prin ecuaţii explicite, u, v ∈[-5
...5], pentru suprafeţele exprimate prin ecuaţii parametrice. În ambele cazuri pasul reţelei de
reprezentare este constant şi egal cu 0.5). Pentru QuickPlot, opţiunea Autoscale, din tab-ul Axes a
ferestrei de dialog 3D Plot Format este activă, deci se iau în considerarea domeniile implicite.

În reprezentatea 3D nu există un mecanism rapid de reprezentatare 3D, similar 2D


quickPlots, care să scutească utilizatorul de completarea placeholder-elor.

9.2.2. Reprezentarea graficelor 3D cu parametri impliciţi prin 3D PLOT WIZARD ( E)

3D PLOT WIZARD se deschide prin: meniul Insert Æ Graph Æ 3D Plot Wizard.


“Vrăjitorul” (“wizard”) este compus dintr-o succesiune de ferestre de dialog, prin care se pot seta
principalele caracteristici de formă şi culoare ale unui grafic 3D.

125
După cum se observă din capturile de mai sus, setările se fac prin intermediul unor butoane
radio (în capturi au fost lăsate neschimbate setările implicite). Efectul poate fi văzut într-o fereastră
asociată fiecărei casete de dialog. Prin butoanele Back, Next se trece de la o fereastră la alta în
sensul dorit.
Setările de mai sus şi multe altele pot fi efectuate şi prin caseta de dialog 3D Plot Format.

126
9.2.3. Reprezentarea 3D a datelor ( E)

Datele, care sunt numere reale pot fi organizate în mai multe forme, uzuale fiind:
- Forma matriceală:
o indecşii liniilor şi coloanelor (i, j) sunt reprezentaţi pe abscisă şi pe ordonată, iar
elementele matricei reprezintă cotele (coordonatele z) (vezi captura a de mai
jos);
o matricea are structura Nx3, pe fiecare linie fiind plasate coordonatele câte unuia
din cele N puncte (vezi captura b).

În captura b, se observă că în placeholder s-au scris coloanele matricei B şi că Mathcad


vizualizează paralelipipedul de dimensiune minimă care cuprinde setul de puncte.

- Forma vectorială, unde se se lucrează


cu trei vectori, cu acelaşi număr de linii,
vectorii conţinând unul coordonatele x, altul y şi
ultimul z (vezi figura alăturată).

În exemplele de mai sus matricele,


vectorii au fost creaţi prin paleta ”Vector and
Matrix”, evident că se putea folosi oricare
dintre metodele de generare, detaliate în
subcapitolul 7.1.

127
9.2.4. Reprezentarea suprafeţelor ( E)

9.2.4.1. Principii de reprezentare a suprafeţelor ( E)

O porţiune simplă de suprafaţă este mulţimea punctelor M(x,y,z) din spaţiu, ale căror
coordonate satisfac relaţiile [MUR62]:
1. F(x,y,z)=0, ecuaţia implicită.
2. Z=f(x,y), ecuaţia explicită.
 x = f 1 (u , v)

3.  y = f 2 (u , v) , ecuaţiile parametrice.
 z = f (u , v)
 3

unde funcţiile de mai sus satisfac condiţiile:


- F, f, f1, f2, f3 sunt funcţii reale, uniforme şi continue;
- F, f, f1, f2, f3 admit derivate de ordin I, continue;
- f1, f2, f3 stabilesc o corespondenţă biunivocă şi bicontinuă între punctele M şi perechile
ordonate (u,v) unde u,v sunt parametri reali.
Mathcad poate vizualiza orice funcţie de două variabile reale, ca porţiune de suprafaţă
(Surface Plot), set de bare (3D Bar Plot), curbe de nivel (Contour Plot), set de puncte (3D Scatter
Plot), “petice” (Patch Plot), chiar dacă conţine puncte singulare (punctele care nu satisfac
condiţiile de regularitate [MUR62]).
O suprafaţă, definită printr-o ecuaţie explicită Z=f(x,y) cu x∈[xmin ... xmax], y∈[ymin ...
ymax] este reprezentată de către Mathcad după cum urmează:
- intervalele [xmin ... xmax], [ymin ... ymax] sunt împărţite în nx - 1, ny - 1 subintervale
egale pe fiecare axă. Astfel se obţine în planul XY o reţea de nx x ny puncte;
- fiecărui nod din reţea i se asociază o valoare care reprezintă cota (coordonata Z = f(x,y));
- valorile Z sunt memorate intr-o matrice cu nx linii, ny coloane;
- nodurile adiacente formează vârfurile unui element de arie.
O reprezentare, prin set de bare, este compusă din paralelipipede dreptunghice cu latura
implicită 0.5, o bară având ca înălţime valoarea nodului i,j.
În cazul reprezentării prin curbe de nivel Mathcad interpolează liniar valorile matricei sub
forma curbelor de nivel. Implicit contururile z sunt plasate în planul XY. Elementul de pe linia şi
coloana zero este poziţionat în colţul S-V.

9.2.4.2. Setarea domeniului reprezentării 3D a suprafeţei (E)

Setarea domeniului reprezentării 3D a suprafeţei prin utilizarea ferestrei de dialog 3D Plot Format

Suprafeţele definite prin ecuaţii explicite, reprezentate prin 3D Quick Plots, au domeniile
implicite ale axelor X şi Y, setate între -5 şi +5, cu grid 20 x 20, sub forma cadru de sârmă
(“wireframe”), care implică un consum minim de memorie. Domeniile variabilelor x, y pot fi
modificate în tab-ul Quick Plot Data, din fereastra de dialog 3D Plot Format, care se deschide

128
prin dublu clic pe grafic, sau prin intermediul tab-urilor X-Axis, Y-Axis, Z-Axis, debifând
Autoscale şi setând limitele intervalului axei/lor. Atenţie, opţiunea Autoscale are în cazul 3D, alt
sens decât în 2D. Reprezentarea 3D cu Autoscale activ utilizează domeniile x, y implicite.
Setarea domeniului reprezentării suprafeţelor definite prin ecuaţii parametrice diferă de cel
al suprafeţelor explicite. Parametrii u, v pot fi setaţi în tab-ul Quick Plot Data, pe când domeniul
de reprezentare pe axe, în tab-urilor X-Axis, Y-Axis, Z-Axis. Deci, dacă Autoscale este selectat
suprafaţa este reprezentată în volumul xmin, xmax, ymin, ymax, zmin, zmax determinat de
domeniul u∈[umin, umax], v∈[vmin, vmax].
La alte reprezentări, cum ar fi datele, domeniile şi grid-urile pot fi modificate de utilizator
prin intermediul tab-urilor X-Axis, Y-Axis, Z-Axis debifând Autoscale şi setând limitele
intervalului axei. În acest caz tab-ul Quick Plot Data este dezactivat.

Setarea domeniului reprezentării 3D a suprafeţei prin funcţia CreateMesh

CreateMesh(F (sau G, sau f1, f2, f3), s0, s1, t0, t1, sgrid, tgrid, fmap)
Funcţia returnează o matrice imbricată, formată din trei matrice care reprezintă coordonatele
x, y, z ale unei suprafeţe, definite prin ecuaţia explicită F (de exemplu F(x,y)=x+y2), sau parametric
u + v
 
printr-o funcţie “vectorială” G (de exemplu G =  u − v  ) sau prin trei funcţii f1, f2, f3 (de exemplu
 u ⋅v 
 
x(u,v)=u+v, y(u,v)=u-v, z(u,v)=uv). Toate funcţiile au argumente reale.
Restul argumentelor sunt opţionale şi au semnificaţiile:
- s0 şi s1 sunt limitele inferioară, respectiv superioară a intervalului pentru primul
argument al funcţiei, implicit au valorile –5, respective +5 ;
- t0 şi t1 sunt limitele inferioară, respectiv superioară a intervalului pentru al doilea
argument al funcţiei, implicit au valorile –5, respective +5 ;
- sgrid, tgrid sunt numărul de noduri în care se împarte intervalul primului argument,
respectiv al doilea. Implicit au valoarea 20;
- fmap este o funcţie “vectorială”, care conţine trei funcţii de transformare din alt sistem
de coordonate în cel cartezian.

129
În figura de mai sus, a fost reprezentată suprafaţa f(x,y) = x*y ignorându-se argumentul
fmap. Se observă conţinutul matricei imbricate, generate de CreateMesh. În placeholder se poate
trece direct funcţia CreateMesh cu valorile parametrilor actuali, fără a utiliza matricea
intermediară.

Setarea domeniului reprezentării grafice 3D prin generarea matricelor asociate funcţiilor


parametrice

După cum se observă, din


exemplul alăturat, este mai simplu să
se utilizeze funcţia CreateMesh.

9.2.4.3. Reprezentarea poliedrelor uniforme

În scopul reprezentării poliedrelor uniforme, se utilizează două funcţii:


1. Polyhedron(S), care generează un poliedru, argumentul S fiind string-ul numelui
poliedrului, numărul de cod sau simbolul Wythoff.
Exemple: Polyhedron("cube"), Polyhedron("#6"), Polyhedron("3|2 4")
2. PolyLookup(n) returnează un vector, care conţine numele, numele dual şi simbolul
Wythoff al poliedrului, corespondente numărul de cod al poliedrului n (vezi captura de
mai jos).

130
9.2.5. Reprezentarea curbelor ( E)

9.2.5.1. Definirea analitică a curbelor

Un arc de curbă spaţială este definit analitic, sub următoarele forme [MUR62]:
 F ( x, y , z ) = 0 x ∈ (a 1 , b1 )
-  ecuaţiile implicite (intersecţia a două suprafeţe implicite);
G ( x, y, z ) = 0 y ∈ (a 2 , b2 )

 z = f ( x, y ) x ∈ (a 1 , b1 )
-  ecuaţiile explicite (intersecţia a două suprafeţe explicite);
 z = g ( x, y ) y ∈ (a 2 , b2 )

 x = f 1 (t )

-  y = f 2 (t ) t ∈ (a, b ) ecuaţiile parametrice.
 z = f (t )
 3

unde funcţiile F,G, f, g, f1, f2, f3 satisfac condiţiile:


- sunt funcţii reale, uniforme şi continue;
- funcţiile f1, f2, f3 stabilesc o corespondenţă biunivocă şi bicontinuă între punctele curbei
şi mulţimea valorilor parametrului t;
- admit derivate de ordinul I continue.
Mathcad poate vizualiza orice arc de curbă spaţială sub forma 3D Scatter Plot, chiar dacă
conţine puncte singulare (puncte care nu satisfac condiţiile de regularitate [MUR62]).

9.2.5.2. Setarea domeniului reprezentării 3D a curbelor (E)

Avându-se în vedere, că sub forma explicită şi implicită o curbă spaţială rezultă din
intersecţia a două suprafeţe, posibilităţile de setare a reprezentării grafice 3D a curbei rezultă din
cele ale suprafeţelor (vezi 9.2.4.2 ).
În cazul curbelor definite parametric mijloacele de setare a domeniului reprezentării 3D sunt
asemănătoare celor utilizate la suprafeţe.

Setarea domeniului reprezentării 3D a suprafeţei prin utilizarea ferestrei de dialog 3D Plot Format

Intervalul de variaţie al parametrului curbei spaţiale (implicit –5 ... +5), ca şi numărul de


noduri ale curbei (implicit 20) se setează în tab-ul QuickPlotData, a ferestrei de dialog 3D Plot
Format.
Domeniul de reprezentare pe axe se setează deselectând Autoscale în tab-urilor X-Axis, Y-
Axis, Z-Axis şi completând cu valorile dorite cele două editbox-uri. Dacă Autoscale este selectat,
curba este reprezentată în volumul xmin, xmax, ymin, ymax, zmin, zmax determinat de domeniul
t∈[tmin, tmax].

131
Setarea domeniului reprezentării 3D a suprafeţei prin funcţia CreateSpace

CreateSpace(F (sau f1, f2, f3), t0, t1, tgrid, fmap) este asemănătoare ca funcţionalitate şi
ca sintaxă cu funcţia CreateMash. Aceasta returnează un vector imbricat, format din trei vectori
care reprezintă coordonatele x, y, z ale unei curbe definite parametric printr-o funcţie “vectorială” F
(în exemplul alăturat aceasta este notată cu H(t)), sau prin trei funcţii f1, f2, f3 (de exemplu x(t)=t,
y(t)=t2, z(t)=t-5). Toate funcţiile au argumente reale.

Restul argumentelor sunt opţionale şi


au semnificaţia:
- t0 şi t1 sunt limitele inferioară, respectiv
superioară a intervalului argumentului t al
funcţiei. Implicit au valorile –5 ... +5 ;
- tgrid este numărul de noduri în care se
împarte intervalul argumentului. Implicit are
valoarea 20;
- fmap este o funcţie “vectorială” care
conţine trei funcţii de transformare din alt
sistem de coordonate, în cel cartezian.

Setarea domeniului reprezentării grafice 3D prin generarea vectorilor asociaţi funcţiilor parametrice

În exemplul alăturat, s-a utilizat o VPA


notată i, prin care se generează numărul de
noduri ale elicei, s-a definit un vector ti pentru
parametru şi alţi trei vectori Xi, Yi, Zi pentru
cele trei coordonate ale nodurilor curbei
spaţiale.
După cum se observă, este mai simplu
să se utilizeze funcţia CreateSpace.

132
9.2.6. Reprezentarea câmpurilor de vectori ( E)

Un câmp de vectori este reprezentat în Mathcad prin asocierea fiecărui punct din plan a
câte unui segment cu săgeată, a cărui lungime este proporţională cu intensitatea câmpului şi având
direcţia liniei de câmp, care trece prin acel punct.
Unele din cele mai frecvent întâlnite forme de definire analitică a câmpului vectorial sunt
definirea discretă şi cea prin funcţii.

9.2.6.1. Definirea discretă a câmpului vectorial

Cîmpul vectorial este reprezentat în m x n puncte, unde m, n sunt numărul de linii,


respectiv coloane ale unei matrice cu elemente complexe, sau a doua matrice cu aceleaşi
dimensiuni. Submatricea părţii reale conţine proiecţiile vectorilor pe axa X, cea imaginară pe Y. În
cazul lucrului cu două matrice fiecare are ca elemente proiecţiile vectorilor pe cele două axe
carteziene.

9.2.6.2. Definirea câmpului vectorial prin funcţii

Dacă se cunosc funcţiile proiecţiilor câmpului pe axele X şi Y (în exemplul care urmează
având numele prx, pry), generaţi două matrice cu valorile discrete ale câmpului, în domeniul plan
dorit.

133
Observaţie. Capturile de mai sus nu respectă poziţia reală de pe foia de lucru. Reprezentarea
câmpului trebuie să se afle sub linia definirii matricelor X, Y.

Câmpul mai pot fi reprezentat printr-o suprafaţă, sau prin liniile de contur ale intensităţii
acestuia. În cazul exemplului de mai sus, intensitatea este: f ( x, y ) = prx( x, y ) 2 + pry ( x, y ) 2 .

9.2.6.3. Setări grafice specifice reprezentării Vector Field Plot

Pentru setarea culorii săgeţii vectorului de câmp, se procedează după cum urmează:

Etape ________________________________
1. Clic dublu pe reprezentarea grafică a câmpului de vectori.
2. În caseta de dialog 3D Plot Format, selectaţi tab-ul Appearance.

134
3. Utilizaţi una din opţiunile:
• Fill the arrows (umple săgeata) cu solid color (culoare uniformă), sau cu colormap
(culori în “degradè”).
• Remove color from the arrows (îndepărtează culoarea săgeţii).
4. Apasaţi butonul "Apply", pentru preview, sau "Close", ori "OK" pentru a închide caseta
de dialog.
_______________________________________________________________________________

Setarea grosimii cozii vectorului se efectuează tot în tab-ul Appearance, în câmpul Line
Options, opţiunile No Lines, sau Wire Arrows, unde se pot seta grosimi.

9.2.7. Formatări ale reprezentărilor grafice 3D ( E)

Pentru a deschide fereastra de dialog 3D Plot Format efectuaţi un dublu clic pe oricare din
graficele 3D: Surface Plot, Contour Plot, 3D Bar Plot, 3D Scatter Plot, Vector Field Plot, Patch
Plot, sau doar un clic în zona placeholder-ului şi alegeţi din meniul Format Æ Graph comanda
3DPlot.
Tab-urile ferestrei amintite diferă funcţie de natura graficului reprezentat. Structura
generală este aproximativ aceeaşi, anumite zone, elemente de setare fiind inactive în circumstanţe
particulare, sau pot avea chiar o structură diferită. În continuare, descrierea tab-urilor este axată pe
cazul reprezentării suprafeţelor şi sunt relevate doar diferenţele specifice.
Caseta de dialog conţine nouă tab-uri, o parte din setări cum ar fi cele legate de domeniul
reprezentării, sau ai vectorilor câmpului au fost descrise în subcapitolele anterioare, restul sunt
detaliate în continuare.

9.2.7.1. Tab-ul General

Zona Plot este


compusă din şase butoane radio
prin care se pot selecta tipurile de
grafice 3D.

În zona View se setează


unghiurile de rotaţie ale reperului
cartezian (Rotation, Tilt, Twist)
şi factorul mărire (valori
supraunitare), micşorare a
graficului (valori subunitare).

Zona Axes Style conţine


trei butoane radio, prin care se
selectează grafica axelor
(Perimeter, Corner, None) şi un checkbox Equal Scales, prin care se selectează aceeaşi unitate de
lungime pe fiecare axă.

135
Zona Frames permite afişarea unui cadru în jurul graficului (Show Border) şi încadrarea
într-un paralelipiped (Show Box). În ambele cazuri se poate selecta culoarea liniei.
Dacă în aceeaşi fereastră sunt reprezentate mai multe grafice 3D, numărul de tab-uri este
multiplicat corespunzător.

9.2.7.2. Tab-ul Axes

Tab-ul Axes conţine alte trei


subtab-uri: X-Axis, Y-Axis, Z-Axis cu
aceleaşi comenzi. În zona Grids se pot
selecta Draw Lines, pentru a vizualiza
grila pe axă, Draw Ticks, pentru
diviziunile pe axă. Dacă Auto Grid
este activă, sistemul alege automat o
grilă, în caz contrar se pot seta:
culoarea liniilor, numărul şi grosimea
lor.
Zona Axis Format permite
afişarea valorilor prin care trec liniile
grilei (Show Number), culoarea şi
grosimea liniilor axelor (Axis Color,
Axis Weight).
Zona Axis Scale conţine o
comandă Auto Scale, care dacă nu este activă permite modificarea domeniului de vizualizare pe
axă. În caz contrar, domeniul este cel setat în tab-ul Quick Plot Data.

9.2.7.3. Tab-ul Appearance

Tab-ul Appearance conţine câte


un sub-tab pentru fiecare funcţie
reprezentată 3D în acelaşi grafic.
În zona Fill Options se pot seta:
- Fill Surface: umplerea
elementelor de arie ale funcţiei cu
culoarea setată în zona Color
Options.
- Fill Contours: afişează culori
diferite pe intervale ale axei Z.
- No Fill: nu asociază nici o
culoare suprafeţei reprezentate.
- comenzile Alternate Mesh şi
Smooth Shading (ambele corelate cu Fill Surface) se referă la utilizarea unor elemente de arie
triunghiulare, respectiv la utilizarea unei colorizări în “degradè”.
- Zona Color Options permite, prin comanda Colormap, alegerea automată de către sistem a
culorilor calde pentru zonele cu cote înalte şi a culorilor reci pentru cele joase, iar prin Solid Color,
o culoare unică aleasă de utilizator.

136
9.2.7.4. Tab-ul Lighting

Efectele de iluminare, prin surse de lumină de diverse culori, sunt implicit dezactivate din
considerente de economie de memorie. Pentru a fi activate, selectaţi checkbox-ul Enable Lighting,
din zona Lighting. Se poate alege lumina difuză a ambientului, ca şi diverse scheme de iluminare
predefinite. Poziţia şi culoarea fiecărei surse este definită în sub-tab-urile Light1 … Light8.
Pot fi activate pâna la opt surse de lumină printr-un grup de butoane radio On / Off.
În zona Light Color pot fi setate:
culoare de difuzie (Diffuse Color), care
măreşte luminozitatea suprafeţei şi cea
reflectată (Specular Color). Ambele au un
efect major asupra aspectului suprafeţei. De
obicei, lumina reflectată este albă şi se
utilizează pentru efectul de strălucire (vezi
tab-ul Advanced)
Zona Light Location permite
setarea poziţiei reflectorului, inclusiv
plasarea ei la infinit, pe o direcţie oarecare.

9.2.7.5. Tab-ul Title

Tab-ul Title conţine un editbox şi trei butoane radio, care permit ascunderea textului, sau
poziţionarea în partea superioară, sau inferioată a graficului 3D.

9.2.7.6. Tab-ul Backplanes

Tab-ul Backplanes conţine trei sub-tab-uri X-Y Backplane, Y-Z Backplane, X-Z
Backplane, cu structură identică.
Comanda Fill Backplane umple fundalul cu culoarea selectată în Color, eventual
bordurează cu Backplane Border.
Zonele Grids şi Subgrids permit desenarea liniilor grilei (Draw Lines), marcarea
diviziunilor pe axe (Draw Ticks), cu o anumită culoare (Line Color) şi grosime (Line Weight).

9.2.7.7. Tab-ul Special

Tab-ul Special şi tab-ul Appearance conţin câte un sub-tab pentru fiecare funcţie
reprezentată 3D în acelaşi grafic. Un sub-tab este structurat în mai multe zone:
- În zona Contour Options, se pot seta parametrii tipului de reprezentare, prin curbe
de nivel. Implicit este selectată comanda Auto Contour, care lucrează cu curbe de nivel de
cotă (perpendiculare pe axa Z). Dacă nu este activă, se poate seta seta un număr de curbe
diferit de cel implicit 15. Comanda Fill umple fiecarea curbă de nivel cu câte o culoare,
după o schemă selectată în tab-ul Advanced, prin comanda Choose Colormap. Draw
Lines reprezintă curbele de nivel.

137
- Zona Bar Plot Layout permite reprezentarea graficului Bar Plot sub formele:
matrice (Matrix), stivă (Stack), sau felii (Side by Side). De asemenea, se mai poate seta
spaţierea barelor (Spacing).

- Zona Interpolated Mesh este activă dacă suprafaţa este generată prin interpolare, având
la bază o reţea de puncte. În acest caz, este reprezentată suprafaţa de interpolare care aproximează
setul de puncte. Pentru a schimba densitatea reţelei utilzate pentru interpolare, modificaţi numărul
de linii şi coloane din cele două edit-box-uri Rows şi Columns.
- Zona Connectivity controlează modul de conectare a punctelor, în cazul când sunt
selectate Data Points, din tab-ul General şi Lines, din tab-ul Appearance:
• Row Order – în ordinea existentă în vectori;
• Increasing X – în ordinea valorilor x, crescătoare.
• Increasing Y - în ordinea valorilor y, crescătoare.
• Increasing Z - în ordinea valorilor z, crescătoare.
Din lista Line, se alege tipul liniei de conectare a punctelor (“solid”- solid, “dashed” - linie
întreruptă, “dotted” - linie punctată, “da-dot” – linie-punct).

9.2.7.8. Tab-ul Advanced

- Zona Advanced View Options conţine patru opţiuni:


• Enable Fog, care simulează efectul de ceaţă;
• Perspective, în corelaţie cu valoarea din edit-box-ul Viewing Distance (distanţa
de plasare a observatorului, valori 1 … 99).
• Verticale Scale, cu valori 1 … 100, schimbă amplitudinea pe axa z.

- În zona Plot1, există trei opţiuni:


• Shininess – strălucirea reprezentării, cu valori 1 … 128.
• % Transparency – transparenţa, cu valori 0% … 100%.
• Poligon Offset – acurateţea reprezentării liniilor şi suprafeţelor colorate, cu valori 1
… 10.

- Zonele Colormap şi Choose Colormap permit alegerea mai multor scheme de colorare,
funcţie de: X crescător (Increasing X), Y crescător (Increasing Y), Z crescător (Increasing Z),
respectiv de combinaţii ale unor culori predefinite: Rainbow (curcubeu) … Topagraf.

138
9.3. EDITĂRI ALE GRAFICELOR, REDIMENSIONĂRI, ROTIREA ŞI
ZOOM-UL GRAFICELOR 3D (E)

Operaţiile de mutare, copiere, tăiere, lipire a unor grafice individuale sau grupuri sunt
identice cu cele ale oricărei regiuni text, sau matematice.
Redimensionarea graficelor 2D şi 3D se face prin intermediul celor trei mânere de tragere,
care permit modificarea dimensiunilor graficului pe abscisă, ordonată, respectiv proporţional pe
ambele direcţii.
Rotirea unui grafic 3D se poate face precis prin specificarea unghiurilor (vezi tab-ul
General al casetei de dialog 3D Plot Format), sau imprecis în etapele:
Etape ________________________________
1. Clic pe graficul 3D.
2. Ţineţi apăsată tasta dreapta a mouse-ului şi trgeţi în direcţia dorită.
3. Eliberaţi tasta mouse-ului, când aţi atins orientarea convenabilă.
_______________________________________________________________________________
Se poate imprima graficului 3D o mişcare continuă de rotaţie, în jurul unei axe:
Etape ________________________________
1. Clic pe graficul 3D.
2. Ţineţi apăsată tasta [Shift], când apăsaţi tasta mouse-ului.

3. Trageţi în direcţia dorită.

4. Eliberaţi tasta mouse-ului.


_______________________________________________________________________________
Oprirea mişcării se realizează, printr-un clic în interiorul graficului 3D.
Pentru zoom-ul aproximativ se procedează asemănător ca la operaţia de rotire continuă, dar
cu apăsarea tastei [Ctrl], iar cel precis prin tab-ul General, zona View.

9.4. ANIMAŢII

În Mathcad 2001 se pot crea şi vizualiza scurte animaţii (clip-uri) prin intermediul variabilei
predefinite FRAME. O valoare a acesteia reprezentă indexul unei secvenţe a animaţiei.
Principiul este: se include variabila FRAME în definirea unei variabile argument de funcţie,
sau mai general, într-un obiect matematic, şi se memorează o succesiune de secvenţe, care ulterior
sunt rulate cu frecvenţa dorită.
O animaţie poate fi salvată în format AVI, şi apoi poate fi vizualizată în Mathcad prin
meniul View Æ Playback, sau în exteriorul Mathcad, cu orice player care suportă formatul amintit
(de exemplu Windows Media Player: în Windows buton Start Æ Programs Æ Accessories Æ
Entertainment).

139
Pentru o mai uşoară asimilare a metodologiei de animare, în continuare, aceasta se
exemplifică pe un cerc cu rază crescătoare.
Etape ________________________________
1. Creaţi o expresie, un grup de expresii,sau un grafic care să depindă de variabila
FRAME. Comanda Automatic Calculation (meniul Math ) trebuie să fie activă.
În captura de mai jos cercul este definit parametric, în coordonate polare. Raza depinde de
variabila predefinită FRAME şi este reprezentat prin 24 de puncte “diamonds”.

2 Meniul View Æ Animate ... deschide o casetă de dialog, ca cea din figura de mai jos.

3. Selectaţi porţiunea din foaia de lucru pe


care doriţi să o animaţi. Aceasta poate să
conţină mai multe reprezentări grafice.
4. Setaţi limitele variabilei FRAME şi
frecvenţa de memorare a secvenţelor.
5. Apăsaţi pe butonul Animate. În
fereastra preview a casetei, se văd secvenţele
înregistrate. La sfârşitul procesului se deschide
un player pentru animaţia creată.
6.
_______________________________________________________________________________

Animaţia poate fi salvată numai în format avi, prin intermediul butonului Save As. Fişierul
animaţiei are, în general, o mărime considerabilă. Butonul Options deschide o fereastră de dialog,
în care se poate seta metoda şi parametrii comprimării.

140
I FUNDAMENTE MATHCAD 2001

INSERAREA ŞI EDITAREA OBIECTELOR


ŞI FIŞIERELOR IMAGINE
_______________________________________________________________________________

După cum s-a amintit Mathcad 2001 este complet integrat în Windows 9x, 2000, Windows
NT. Acesta asigură suport pentru OLE2d şi pentru protocolul OLE Automationd. Capitolul curent
se focalizează pe obiectele împachetated (embedded) şi legated (linked). Prin intermediul ultimelor
se realizează o conectare statică, spre deosebire componente, care permit o conectare dinamică
(vezi partea a III-a Managementul datelor şi a programelor în Mathcad 2001, capitolul Schimbul de
date).

10.1. INSERAREA OBIECTELOR ÎN FOIA DE LUCRU (E)

Pentru a insera un obiect într-o foaie de lucru Mathcad, acesta trebuie să fie o aplicaţie
compatibilă OLE2d. Mai jos, sunt descrise trei metode generale de inserare a obiectelor şi câteva,
specifice imaginilor.

10.1.1. Inserarea prin comanda OBJECT

Utilizarea comenzii Object permite inserarea unui obiect existent ca fişier, sau creat după
inserare.
Pentru crearea unui obiect nou (inexistent în momentul inserării), se parcurg etapele:
Etape ________________________________
1. Clic într-o zonă liberă a foii de lucru.
2. Meniu Insert Æ Object deschide caseta de dialog Insert Object, în care butonul radio
Create New este implicit selectat.
3. În fereastra Object Type sunt afişate toate programele compatibile OLE2, care sunt
instalate pe calculat. Se selectează unul dintre ele.
4. Se poate bifa checkbox-ul Display as icon, dacă nu doriţi ca în foaia de lucru să fie
afişat obiectul, ci doar icoana lui.
5. Clic pe butonul OK.
_______________________________________________________________________________

141
Ca urmare a acestor operaţii, în foia de lucru se deschide o fereastră specifică programului
selectat, în care se creează obiectul dorit. La terminare se închide aplicaţia sursă. Obiectul astfel
creat este un obiect împachetat (integrat în foia de lucru Mathcad).
Pentru crearea unui obiect existent la momentul inserării, care a fost anterior salvat într-un
fişier, se parcurg etapele:

Etape ________________________________
1 şi 2, descrise mai sus.
3. Se selectează butonul radio Create from file.
4. Ca urmare fereastra de dialog Insert Object se transformă şi în locul listei aplicaţiilor
compatibile OLE2, apar trei componente: o casetă de editare a căii spre fişierul sursă, un
buton Browse (răsfoire), un checkbox Link. În caseta de editare se poate scrie direct calea şi
numele fişierului, sau acesta se poate localiza prin fereastra Browse, deschisă prin clic pe
butonul cu acelaşi nume. Dacă nu se bifează checkbox-ul Link (opţiunea implicită) obiectul
inserat va fi împachetat (embedded), în caz contrar legat (linked).
5. Clic pe butonul OK.
_______________________________________________________________________________

Un obiect legat (linked) nu face schimb dinamic de date cu foia de lucru Mathcad. Dacă
obiectul se modifică, ulterior efectuării legăturii, acest lucru nu se reflectă în foia Mathcad. Pentru
realizarea unor conectări dinamice se utilizează alte mecanisme, cum ar fi componentele, sau
referinţele (vezi capitolul 21).

10.1.2. Inserarea prin lipire

Metoda Copy Æ Paste se utilizează, în general, când se doreşte inserarea doar a unei părţi
dintr-un obiect şi nu a întregului fişier.
Etape ________________________________
1. Deschideţi aplicaţia sursă, din care doriţi să extrageţi obiectul.
2. Selectaţi şi apoi copiaţi obiectul din aplicaţia sursă. În general, pentru orice program
integrat Windows, operaţia de copiere se efectuează prin comanda Copy, din meniul
Edit, sau prin combinaţia de taste [Ctrl]+[C].
3. Clic într-o zonă liberă a foii de lucru. Mathcad.
4. Meniul Edit Æ Paste, sau Paste Special.
_______________________________________________________________________________
Dacă se optează pentru comanda Paste, lipirea se face în funcţie de natura regiunii ţintă şi
de cea a datelor. Câteva din cazurile cele mai frecvente sunt :
- dacă datele de natură numerică, existente în clipboard, sunt organizate matriceal iar ţinta
este un placeholder gol al unei regiuni matematice, datele sunt organizate ca matrice;

142
- un obiect împachetat, dacă aplicaţia sursă suportă OLE;
- o imagine, dacă obiectul din clipboard este un fişier grafic (*.bmp, *.jpg, *. gif ... sau în
formatul grafic *. wmf (Windows Metafile Format)).
În cazul utilizării comenzii Paste Special, se deschide o fereastră de dialog, având o
structură dependentă de natura obiectului copiat în clipboard.

De exemplu, pentru o porţiune de text copiată dintr-un fişier *.doc (captura de mai sus) este
indicată calea sursei; într-un câmp de editare sunt listate formatele ce pot fi utilizate la inserarea
obiectului, de asemenea se poate selecta prin două butoane radio, tipul de inserţie: împachetat
(Paste), sau legate (Paste Link).

10.1.3. Inserarea prin DRAG & DROP

Etape ________________________________
1. Aranjaţi pe desktop, una lângă alta, foaia de lucru Mathcad şi fereastra aplicaţiei sursă
care suportă OLE2.
2. Selectaţi obiectul din aplicaţia sursă.
3. Mutaţi cu ButS apăsat, obiectul selectat în foia de lucru Mathcad (etapa “drag”).
4. Ajunşi în poziţia dorită, eliberaţi butonul mouse-ului (etapa “drop”).
_______________________________________________________________________________

Spre deosebire de metoda Copy Æ Paste, în acest caz obiectul inserat poate fi doar împachetat.

10.1.4. Inserarea imaginilor

Imaginile statice pot fi inserate prin cele trei metode generale, prezentate mai sus,dar şi
prin metode specifice.

143
10.1.4.1. Inserarea imaginilor în format bmp, gif, jpg

Etape ________________________________
1. Clic într-o zonă liberă a foii de lucru.

2. Meniul Insert Æ Picture,sau clic pe butonul , din paleta Matrix.


3. În placeholder-ul ferestrei pentru afişarea imaginii, se trece calea şi numele fişierului
bitmap, ca string (exemplu: “C:\My Documents\My Pictures\figura1.bmp”).
4. Clic în exteriorul ferestrei.
_______________________________________________________________________________

Deoarece fişierul imagine este legat prin cale, în cazul în care i se schimbă directorul şi/sau
numele, nu va mai fi văzut de către Mathcad. În această situaţie, trebuie refăcută manual
actualizarea căii şi/sau numelui. Dacă se modifică fişierul imagine, pentru a vedea efectul în foaia
de lucru Mathcad, se execută comanda Calculate Worksheet, din meniul Math.

10.1.4.2. Inserarea imaginii unei matrice

Orice matrice bidimensională poate fi văzută în


Mathcad, ca imagine formată din n x m pixeli (n-numărul de
linii ale matricei, m-numărul de coloane), cu o adâncime de
256 de nuanţe de gri (0-negru, 255-alb). Operatorul Picture,
ignoră valorile zecimale şi face o reducere modulo 256 pentru
cele din exteriorul intervalului 0 .. 255.
Alăturat, cu titlu de exemplu, este prezentată o
aplicaţie care generează un pătrat cu griuri în degrade,
simetrice faţă de diagonala principală.

10.2. EDITATREA UNUI OBIECT (E)

Mecanismul OLE de editare a obiectelor depinde de tipul inserare: împachetat, legat şi


dacă programul în care a fost creat obiectul suportă mecanismul “in-place activation”.
Dacă obiectul este împachetat, şi este activ mecanismul “in-place activation”, la execuţia
unui clic dublu pe obiect, se produc următoarele transformări:
- anumite elemente ale meniului şi barelor de instrumente ale programului gazdă iau forma
programului în care a fost generat obiectul;
- obiectul este plasat într-o fereastră de editare, încadrată într-o ramă haşurată.
În cazul de mai sus, se încadrează Mathcad, cu obiecte create în MSOffice: Word, Excel etc.
Dacă obiectul este împachetat şi dacă programul în care a fost creat obiectul nu suportă
mecanismul “in-place activation”, se creează o copie a obiectului, care este plasată într-o fereastră
de editare a programului sursă a obiectului. La fel se întâmplă şi dacă obiectul este legat.

144
Operaţiile de editare a legăturii unui obiect sunt: actualizarea legăturii, tăierea sau
schimbarea fişierului cu care este legat obiectul. Acestea sunt efectuate prin intermediul unei
ferestre de dialog Links, care se deschide prin comanda Links, din meniul Edit.

10.3. PROCESAREA IMAGINILOR

10.3.1. Citirea fişierului imagine şi conversia într-o matrice

Primul pas în procesarea imaginilor constă în citirea acestora şi transpunerea lor într-o
matrice. În formă matriceală, imaginea poate fi prelucrată la nivel de pixel, prin funcţiile şi
operatorii specifici lucrului cu matrice.
În Mathcad există un set de funcţii care citesc un fişier imagine tip: BMP, GIF, JPG,
PCX, TGA şi creează o reprezentare matriceală, aplicând diverse filtre.

Tabel 10.1. Funcţii pentru citirea fişierelor grafice

Format
Nr.
Funcţia fişier Matricea returnată
crt.
imagine
Reprezentarea matriceală, în nuanţe
1. READBMP(“fişier”) de gri. Fiecare element reprezintă un
bmp
pixel, căruia i se asociază o valoare
întreagă 0-negru ... 255-alb.
Matricea este formată din trei
submatrice augmentate, de aceleaşi
dimensiuni, continând informaţii
2. READRGB(“fişier”) pentru culorile roşu, verde şi
bmp
albastru, în această ordine. Valorile
aparţin intervalului 0 ... 255. Fiecărui
pixel i se asociază câte trei valori
corespunzătoare celor trei culori

145
Tabel 10.1. (continuare) Funcţii pentru citirea fişierelor grafice

Nr. Format
Funcţia fişier Matricea returnată
crt.
imagine
Reprezentarea matriceală, în nuanţe
3 bmp, gif, de gri. Fiecare element reprezintă un
READ_IMAGE(“fişier”)
jpg, pcx, tga pixel, căruia i se asociază o valoare
întreagă 0-negru ... 255-alb.
Crează o matrice în care informaţiile
despre culori sunt reprezentate de
4 READ_HLS(“fişier”) bmp, gif, valori corespunzătoare pentru
READ_HSV(“fişier”) jpg, pcx, tga nuanţăd (hue), strălucired (lightness),
saturaţied (saturation), respectiv
nuanţă, saturaţie şi valoared (value).
Cele trei funcţii extrag doar
READ_RED(“fişier”) componentele roşu, verde şi albastru.
5 bmp, gif,
READ_GREEN(“fişier”) Cele trei matrice returnate sunt
jpg, pcx, tga
READ_BLUE (“fişier”) cuprinse în matricea returnată de
funcţia READRGB
Extrag doar valorile corespunzătoare
READ_HLS_HUE(“fişier”)
6 bmp, gif, nuanţei, strălucirii şi saturaţiei. Cele
READ_HLS_LIGHT(“fişier”)
jpg, pcx, tga trei matrice returnate sunt cuprinse în
READ_HLS_SAT(“fişier”)
matricea funcţiei READ_HLS
Extrag doar valorile corespunzătoare
READ_HSV_HUE(“fişier”)
7 bmp, gif, nuanţei, saturaţiei şi valorii. Cele trei
READ_HSV_LIGHT(“fişier”)
jpg, pcx, tga returnate sunt cuprinse în matricea
READ_HSV_SAT(“fişier”)
returnată de funcţia READ_HSV

Observaţie: toate numele de funcţii, cuprinse în tabelul de mai sus, se scriu cu majuscule,
argumentul fişier este un string care conţine calea şi numele fişierului imagine.

10.3.2. Procesări ale imaginilor

10.3.2.1. Procesări ale imaginilor prin intermediul funcţiilor şi operatorilor matriceali

Pe matricea imaginii se pot efectua operaţii asupra pixelilor, în sensul măririi


luminozităţii, constrastului, rotiri şamd.

Mai jos se găsesc trei aplicaţii simple, care procesează imagini în nuanţe de gri:

1. roteşte imaginea cu 900, prin utilizarea operatorului transpusa unei matrice;


2. transformă o imagine în negativul ei, prin relaţia de transformare nij=255-mij, care
asociază fiecărui pixel nuanţa de gri complementară;
3. modifică luminozitatea prin însumarea cu o valoare pozitivă pentru luminare sau una
negativă pentru întunecare Tij=f+Mij. Procesarea se face prin intermediul unui program.
Argumentele funcţiei sunt: matricea imagine şi procentul de modificare a luminozităţii.

146
Pixelii transformaţi, care au valori care depăşesc intervalul 0 ... 255, iau valorile limită
ale capetelor intervalului: 0-negru, 255-alb.

10.3.2.2. Procesări ale imaginilor prin intermediul paletei Picture Toolbar

În biblioteca Mathcad 2001 nu există funcţii specializate de procesare a imaginilor.


Imaginile pot fi procesate rudimentar
prin intermediul unui paletei Picture
Toolbar, care se deschide efectuând
un clic pe regiunea imagine (vezi
captura alăturată).
Aceasta conţine butoane cu
următoarele posibilităţi de procesare:
- modificarea poziţiei şi orientării
imaginii;
- zoom;
- modificarea contrastului;
- selecţii;
- afişarea poziţiei pixelilor;
- valorile RGB (Red, Green, Blue)
ale pixelului selectat.

147
10.3.3. Salvarea imaginilor modificate

În scopul salvării imaginilor se utilizează funcţiile concentrate în tabelul de mai jos.

Tabel 10.2. Funcţii pentru salvarea fişierelor grafice

Format
Nr.
Funcţia fişier Matricea returnată
crt.
imagine
1. WRITEBMP(“fişier”) Crează un fişier BMP, în nuanţe de gri, dintr-
bmp
o matrice imagine.

2. WRITERGB(“fişier”) Crează un fişier BMP color, în format roşu-


bmp
verde-albastru, dintr-o matrice imagine
Crează un fişier BMP color, în care imaginea
3. WRITE_HLS(“fişier”) bmp este memorată în format HLS (nuanţă-
strălucire-saturaţiei)
Crează un fişier BMP color, în care imaginea
4. WRITE_HSV(“fişier”) bmp este memorată în format HSV (nuanţă-
saturaţiei-valoare)

Observaţii:
- toate numele de funcţii, cuprinse în tabelul de mai sus, se scriu cu majuscule;
- argumentul fişier este un string care conţine calea şi numele fişierului imagine;
- funcţiile de mai sus, se folosesc sub forma: WRITE_…:=nume_matrice.

148
I FUNDAMENTE MATHCAD 2001

PROGRAMAREA ÎN MATHCAD
_______________________________________________________________________________

Programarea în Mathcad 2001 Professional se bazează, ca şi versiunea 2000, pe zece


instrucţiuni, care aparent au o funcţionalitate relativ limitată, dacă se compară cu posibilităţile de
programare existente în alte medii matematice care au cam aceeaşi complexitate globală, şi mult
mai limitată, în comparaţie cu a mediilor generale de programare. În realitate, cu setul de zece
instrucţiuni, la care se adaugă numeroasele funcţii disponibile în biblioteca Mathcad şi cu şi
structurile de mare eficienţă cum ar fi matricele imbricate, se pot elabora programe sofisticate.

Instrucţiunile de programare pot fi apelate prin intermediul paletei Programming , sau


prin meniul View Æ Toolbars Æ Programming.

11.1. PROPRIETAŢI GENERALE ALE PROGRAMELOR


MATHCAD ( E )

1. Un program Mathcad este format din cu două structuri:


- o parte, care este identică cu cea a unei funcţii, plasată la stânga operatorului de asignare
numerică;
- o parte, situată în dreapta operatorului de asignare, unde se efectuează operaţii specifice.
2. Un program Mathcad poate apela orice funcţie predefinită în Mathcad, sau creată de
utilizator, variabile definite de utilizator, alte programe, cu respectarea condiţiilor de
vizibilitate valabile într-o foaie de lucru.
3. În programele Mathcad se pot utiliza instrucţiuni repetitive (FOR, WHILE) şi condiţionale
(IF, OTHERWISE), care măresc mult flexibilitatea programării, comparativ cu cazul în
care nu se recurge la acestea.
4. Instrucţiunile de programare se introduc doar prin intermediul paletei Programming, sau
prin hot keys, nu prin scrierea lor caracter cu caracter.
5. Ca orice expresie, un program Mathcad returnează o valoare de natură scalară, vectorială,
matriceală, matriceală imbricată sau string. Aceasta este, in general, returnată de ultima
instrucţiune executată de program. Sunt posibile mai multe ieşiri din program, prin
întreruperea programului, cu instrucţiunea RETURN.
6. O variabilă definită într-un program este locală programului, deci nu este vizibilă in
exteriorul corpului acestuia.
7. În programele Mathcad poate fi aplicată recursivitatea.

Intr-un program Mathcad nu sunt posibile:

1. Folosirea operatorului de asignare , pentru definirea locală a unei funcţii, dar este posibil
a se apela în corpul programului o funcţie anterior definită în foia de lucru, sau o funcţie
predefinită, ori utilizarea ca parametru formal a numelui unei funcţii.

149
2. Utilizarea funcţiei WRITEPRN, dar este posibilă utilizarea READPRN (citirea unui fişier
ASCII care conţine elementele unui tablou).
3. Utilizarea variabilelor in progresie aritmetică (range), în afară de cazul utilizării lor în
componenţa instrucţiunii FOR

11.2. ELEMENTE DE EDITARE A PROGRAMELOR MATHCAD (E)

Liniile programului:

- operatorul de adăugare a unei linii la corpul programului Mathcad este sau


tasta [ ] ] ;
- pe fiecare linie se scrie doar o instrucţiune;
- ştergerea unei linii selectate, se efectuează cu tasta [Bksp];
- asupra liniilor unui program se pot efectua operaţii de ştergere (“delete”), tăiere (”cut”),
copiere (”copy”), lipiere (”paste”);

Atribuirea

- operatorul de asignare (atribuire) se poate utiliza doar in corpul unui program


Mathcad. Acesta se insereaza din paleta Programming, sau cu tasta [ { ];
- operatorul de definire :=, nu poate fi utilizat în corpul unui program Mathcad.

Pentru exemplificare, mai jos se detaliază etapele implementării unui program de calcul al
ecuaţie de gradul doi. Se consideră că cei trei coeficienţi ai ecuaţiei ax 2 + bx + c = 0 , sunt
argumentele subrutinei având numele ecgr2.
Etape ________________________________
1. Scrieţi numele funcţiei şi lista parametrilor formali. Æ

2. Inseraţi operatorul de asignare numerică. Æ

3. Inseraţi operatorul Ad Line. Æ


4. Pe prima linie, scrieti numele unei variabile
locale d, care va memora valoarea discriminantului,
inseraţi operatorul de asignare şi scrieţi expresia. Æ

5. Inseraţi, din paleta Matrix, un vector cu


două elemente, în care apoi scrieţi expresiile
soluţiilor. Æ

_______________________________________________________________________________

150
Observaţii
- programul are caracter didactic, în consecinţă nu s-a urmărit scrierea unui minim de cod
(o variantă mai simplă nu utilizează variabila locală d);
- deoarece programul trebuie să returneze două valori, s-a folosit ca element de ieşire un
vector cu două elemente;
- variabila locală d este vizibilă doar în corpul programului.
Utilizarea unui program, definit într-o foaie de lucru se face respectând regulile de
vizibilitate. Se scrie numele programului, urmat de lista parametrilor actuali, între paramteze
rotunde, folosind ca separatori virgulele. După cum se ştie, există o corespondenţă poziţională
strictă între parametri actuali şi cei formali.

11.3. INSTRUCŢIUNI

11.3.1 Instrucţiunea condiţională (E)

Inserare

Instrucţiunea IF din paleta Programming, sau tasta [ } ]

Sintaxa
forma simplificată:
valoarea dorită daca condiţia este adevarată IF condiţia (expresia booleană)

forma completă:
valoarea dorită daca condiţia este adevarată IF condiţia (expresia booleană)
valoarea dorită daca condiţia nu este adevarată OTHERWISE

Observaţii
În zonele din stinga cuvintelor IF, sau OTHERWISE, pot fi mai multe linii. Instrucţiunea IF-
OTHERWISE este echivalentă instrucţiunii IF THEN ELSE din Turbo Pascal, Delphi ...

Exemplu
Utilizarea instrucţiunii condiţionale în definirea unor funcţii pe domenii:

151
 yc + R 2 − ( x − xc )2 daca x − xc ≤ R
f ( x) = 
 ycdaca x ∈ (− ∞....R ) ∪ (R....∞ )

S-au utilizat notaţiile:


- xc, yc coordonatele
centrului cercului
- R- raza
S-a definit o funcţie g cu
patru parametri formali:
- x – abscisa
- xc, yc, R

11.3.2. Instrucţiuni repetitive (E)

11.3.2.1 Instrucţiunea FOR

Inserare
Instrucţiunea FOR din paleta Programming, sau combinaţia de taste [Ctrl]+["].
Sintaxa
Contorul este uzual o VPA (variabilă “range”):

FOR nume indice ∈ valoare initiala a indicelui, a doua valoare .. valoare finala

expresia care se evaluează repetat


Se utilizează, mai rar, şi alte contoare:

FOR nume indice ∈ vector sau listă scalari sau listă de VPA sau listă de vectori

expresia care se evaluează repetat

Observaţii
Instrucţiunea FOR se utilizează când este cunoscut numărul de cicluri.
Dacă contorul este o VPA, acesta se inserează cu operatorul m..n, din paleta Calculator, sau
cu tasta [ ; ]

152
Exemplu:

Funcţie care generează un vector cu n elemente, având valori aleatoare în intervalul xmin ..
xmax. Reamintim, că funcţia rnd(x) returnează un numar intreg, aleator cu distribuţie uniformă,
cuprins între 0 si x.

11.3.2.2 Instrucţiunea WHILE

Inserare
Instrucţiunea WHILE din paleta Programming sau [Ctrl]+]

Sintaxa

WHILE condiţie (expresie booleană)


expresia care se evaluează repetat, dacă condiţia este satisfacută

Observaţii

Instrucţiunea WHILE se utilizează dacă nu se cunoaşte numarul de cicluri, ieşirea din


calculele repetitive făcându-se când nu mai este îndeplinită condiţia. Aceasta trebuie să se refere la
o variabilă, expresie care se modifică în corpul ciclului. Dacă iniţial condiţia nu este satisfacută
expresia nu este evaluată niciodată, deoarece WHILE este o instrucţiune repetitivă cu test iniţial.
Expresia care se evaluază repetat poate cuprinde mai multe instrucţiuni (mai multe linii). În
biblioteca de funcţii Mahcad 2001 nu există instrucţiunea REPEAT cu funcţionalitatea din Turbo
Pascal, Delphi …

Exemplu:


1
Calculul seriei ∑ 1+ i
i =1
2
cu precizia impusă ε (diferenţa între doi termeni succesivi ai seriei

mai mică decit ε. ).


S-a definit o funcţie care calculează o serie oarecare, definită printr-o funcţie. Deoarece la
fiecare iteraţie se adaugă un termen al seriei, condiţia este a (i ) > ε

153
11.3.3. Instrucţiuni pentru controlul execuţiei programului (E)

Mathcad pune la dispoziţia utilizatorului trei instrucţiuni cu rol de întrerupere a rulării


programului, enumerate mai jos, în ordinea descrescătoare a efectului:
1. RETURN întrerupe programul;
2. BREAK întrerupe un ciclu;
3. CONTINUE întrerupe o iteraţie.
Instrucţiunile RETURN, BREAK, CONTINUE se inserează din paleta Programming sau
cu combinaţiile de taste: [Ctrl]+ [I], respectiv [Ctrl]+ [{], respectiv [Ctrl]+ [[].
Ca şi în cazul celorlalte instrucţiuni de programare este interzisă inserarea prin tastatură
literă cu literă.

11.3.3.1. Instrucţiunea RETURN

Instrucţiunea RETURN permite întreruperea rularii programului şi returnarea unei


valori calculate, oriunde în corpul programului.

Sintaxa

RETURN expresia sau şirul de caractere care se returnează

Deseori, instrucţiunea RETURN se utilizează în combinaţie cu instrucţiunea IF


RETURN expresie returnată IF condiţia (expresia booleană)

Exemplu
Extragerea dintr-un vector a primului element care este mai mare decât o valoare dată.

154
11.3.3.2. Instrucţiunea BREAK

Instructiunea BREAK se utilizeazã în corpul instructiunilor ciclice FOR, sau WHILE


pentru intreruperea ciclului şi executarea instrucţiunii imediat urmatoare după ciclu.
Sintaxa

Instrucţiunea BREAK se utilizează în combinaţie cu instrucţiunea IF:


BREAK IF condiţia (expresia booleană)

Exemplu [RMM00]

Extragerea dintr-un vector, a unui subvector, care conţine primul grup de termeni pozitivi.
Dacă vectorul începe cu un numãr negativ, nu se extrage nici un subvector.

155
11.3.3.3. Instrucţiunea CONTINUE

Instrucţiunea CONTINUE se utilizează în corpul instrucţiunilor ciclice, pentru


întreruperea unei iteraţii a ciclului şi executarea instrucţiunii imediat urmatoare din ciclu.

Sintaxa
La fel ca instrucţiunile anterioare, CONTINUE se utilizează în combinaţie cu instrucţiunea IF:
CONTINUE IF condiţia (expresia booleană)

Exemplu [RMM00]
Extragerea unui subvector, care conţine toţi termenii pozitivi, dintr-un vector dat de
dimensiune oarecare.

11.3.4. Instrucţiuni pentru gestiunea erorilor

11.3.4.1. Instrucţiunea ON ERROR

Instrucţiunea ON ERROR este destinată manipularii erorilor neprevizibile. Aceasta are


funcţionalitatea unei instrucţiuni condiţionale.

Inserare
Paleta Programming sau [Ctrl]+[ , ]
Sintaxa
expresie, funcţie evaluată dacă există eroare ON ERROR
expresie, funcţie evaluată daca NU există eroare
Exemplu:
Definirea unei funcţii pentru calculul expresiei 1/x, care pentru valori x<ε, returnează valoarea 1/ ε

156
11.3.4.2. Instrucţiunea ERROR

Afişează scurte mesaje, stabilite de utilizator (“tip” sau “hint”), dacă nu sunt îndeplinite
anumite condiţii.

Inserarea se face din paleta Programming.


Sintaxa
Instrucţiunea ERROR se utilizează de obicei în combinaţie cu instrucţiunea IF:
ERROR ('' mesaj stabilit de utilizator'') IF condiţia (expresia booleană)

Exemplu

Definirea unei funcţii protejate pentru calculul combinărilor


La efectuarea
unui clic pe regiunea
unde se evaluează
funcţia cu argumentele
greşite 3, 5, apare un
mesaj de eroare.

Pentru protecţia programelor, sunt utile funcţiile care verifică tipul variabilelor actuale
IsScalar, IsArray, IsString. Acestea au ca argumente numele unei variabile sau expresii şi
returnează 0 pentru fals, sau 1 pentru adevărat.

11.4. SUBPROGRAME ŞI RECURSIVITATE

11.4.1. Subprograme (E)

Mathcad 2001 Professional permite utilizarea subprogramelor, care pot fi imbricate pe


oricâte nivele. Subrutinele sunt recomandate în scopul stăpânirii complexităţii programării. Un
program astfel structurat este mult mai lizibil, se poate testa şi depana mult mai uşor, în plus dă
posibilitatea refolosirii codului.

Exemplu
Exemplul de mai jos are un caracter didactic, calculând combinări pe baza unui subprogram
pentru permutări (în biblioteca Mathcad există funcţia predefinită combin(n,k)).

157
11.4.2. Recursivitatea în Mathcad

Deşi utilizarea recursivităţii în definirea unei funcţii permite scrierea unui cod minimal,
resursele de memorie nu sunt eficient utilizate.
O funcţie definită recursiv trebuie să conţină două părţi: o definire a funcţiei dependentă de
o valoare anterioară a argumentului şi o condiţie iniţială, pentru a evita ciclarea.

Exemplu
Definirea recursivă a unei funcţii pentru calculul permutărilor [RMM0].

158
I FUNDAMENTE MATHCAD 2001

CALCULE SIMBOLICE ÎN MATHCAD


_______________________________________________________________________________

În general, efectuarea de calcule simbolice, pe calculatoare numerice, decurge mult mai greu
comparativ cu cele numerice. În particular, procesorul simbolic Mathcad are anumite limitări în
raport cu cel numeric:
- numeroase probleme pot fi rezolvate în Mathcad doar numeric (de exemplu în matematică
nu există relaţii algebrice generale de rezolvare a polinoamelor de grad mai mare de 4);
- multe probleme rezolvate simbolic au rezultate atât de complicate încât utilizatorul este
nevoit sa apeleze la demersul numeric.
Mathcad poate evalua o expresie, în modul simbolic, pe trei căi:
1. Utilizând "egalul simbolic" ( , echivalentul egalului numeric = , vezi toolbar-ul
Evaluation, sau Symbolic Keyword, sau inserat prin combinaţia de taste [Ctrl] + [.] ).
2. Utilizând meniul Symbolics.
3. Apelând la metoda "Symbolic Optimization", care realizează o colaborare între
procesorul simbolic şi cel numeric, şi care are ca efect o eficientizare a calculelor numerice
complicate.
Există o deosebire de esenţă între utilizarea comenzilor din meniul Symbolics şi cele
similare din Symbolic Keyword Toolbar (vezi 12.6): în primul caz procesorul simbolic nu ia în
considerare definirile anterioare de funcţii, variabile, în cazul secund acestea sunt active.

12.1. EGALUL SIMBOLIC (E)

Egalul simbolic (ES) , se utilizează ca echivalent al egalului numeric (=), returnând în


general expresii.
Când se evaluează simbolic, Mathcad-ul verifica toate variabilele şi funcţiile conţinute de
expresie, tratându-le în doua moduri:
- dacă acestea au fost definite, le utilizează cu valorile respective;
- pe cele găsite nedefinite, le tratează simbolic (algebric).
Exista doua excepţii de la acesta regulă, când Mathcad ignoră definirile anterioare:
- variabilele sunt definite recursiv;
- variabilele sunt definite ca VPA (“range variables”).

ES poate fi inserat în trei moduri:


- din toolbar-ul "Evaluation";
- din toolbar-ul "Symbolic Keyword";
- prin combinaţia de taste [Ctrl] + [.].

159
Exempule

1. Evaluarea simbolică a unei funcţii.


- definirea variabilei a şi a funcţiei f(x);

- evaluări numerice ale funcţiei;

- evaluarea simbolică a funcţiei.

Se observă că alternanţa între regiunile în care se evaluează simbolic, numeric este oarecare,
singura restricţie fiind de natură logică.

2. Utilizarea ES pentru evaluarea unei expresii

3. Utilizarea punctului zecimal obligă procesorul simbolic să evalueze o valoare oarecare numeric.

4. Excepţii: dacă expresia conţine variabile care a fost definite recursiv, sau ca VPA procesorul
simbolic nu ia in considerare definirile amintite.

12.2. EGALUL SIMBOLIC PERSONALIZAT (E)

Mathcad permite personalizarea egalului simbolic, în sensul adăugării de către utilizator a


unei operaţii specifice, care acţionează asupra rezultatului evaluării. În continuare, acesta este numit
egal simbolic personalizat (ESP), în engleză “customizing the symbolic equal sign”.
ESP poate fi inserat din:
- paleta "Symbolic Keyword Toolbar"
- paleta "Evaluation Toolbar"
- prin tastele: [Ctrl]+[Shift].

Succesiunea operaţiilor pentru evaluarea simbolică personalizată:

160
Etape ________________________________
Metoda 1
1. Scrieţi pe foia de lucru expresia, cuprindeţi-o în totalitate cu LEO (linia de editare
orizontală).
2. Inseraţi ESP.
3. În placeholder scrieţi operaţia simbolică dorită (factor, expand....), eventual adăugaţi un
placeholder, prin tasta [ , ], dacă este necesar (vezi operaţiile float sau expand etc).
4. Rezultatul se obţine prin apăsarea tastei Enter, sau prin clic în afara zonei matematice.

Metoda 2 (mai rapidă, mai sigură).


1. Scrieţi expresia, se cuprinde cu LEO (linia de editare orizontală) toată expresia.
2. Selectaţi din "Symbolic Keyword Toolbar", operaţia simbolică dorită.
3. În structura apărută pe foaia de lucru, efectuaţi, dacă este nevoie, operaţii de editare
4. Rezultatul se obţine prin apăsarea tastei Enter, sau prin clic în afara zonei matematice.
_______________________________________________________________________________

Principalele operaţii simbolice predefinite, care personalizează egalul simbolic, sunt


discutate în continuare.

12.3. OPERAŢIILE SIMBOLICE PREDEFINITE ÎN MATHCAD 2001 (E)

- COMPLEX returnează, când este posibil, o expresie sub forma algebrică a numărului
complex a+ib.

- FLOAT, sub forma: float, m returnează valoarea reală rotunjita la m cifre. Dacă se ignoră
argumentul m rotunjirea se face la valoarea implicită 20.

- SIMPLIFY aduce expresia la o formă mai mai puţin complicată efectuând simplificări,
prin aplicarea identităţilor trigonometrice.

161
- EXPAND, sub forma: expand, subexpresie, expandează toate puterile şi produsele de
sume, din expresia aflată la stânga comenzii, cu excepţia celei cuprinse în subexpresie. Acesta din
urmă este opţională, dacă se omite, este expandată toată expresia.

- FACTOR efectuează operaţia inversă, pe care o execută comanda EXPAND.

- CONVERT, PARFRAC, var descompune o expresie tip fracţie în sumă de fracţii


parţiale. În placeholder-ul notat mai sus cu var, se specifică variabila sau variabilele, după care se
face descompunerea.

În al exemplul doi, s-a adăugat comanda float,2, după ce a fost selectată cu LEO comanda şi
expresia, s-a apasat tasta [,]. Descompunerile se fac pe baza unor expresii liniare sau pătratice reale.
Acelaşi efect, se obţine dacă după introducerea primei comenzi apăsaţi combinaţia de taste
[Ctrl]+[Shift]+[.], sau comanda Add line, din toolbar-ul Programming. În consecinţă, este
adăugată o linie de program, iar în placeholder-ul liber se scrie a doua comandă.

Evident că, utilizarea a două comenzi pentru personalizarea egalului simbolic, poate fi
aplicată şi la alte comenzi diferite de parfrac.

- COEFFS sub forma: coeffs, var returnează un vector, care conţine coeficienţii unui
polinom, în ordinea crescătoare a exponentului variabilei.

162
- COLLECT sub forma: collect, var scrie o expresie polinomială sub forma unui polinom
dependent de variabila trecută în placeholder-ul notat cu var.

- SUBSTITUTE sub forma generală: substitute, var1=expr1, var2=expr2, ... (atenţie se


utilizează egalul logic), substituie var1 cu expresia expr1, var2 cu expresia expr2, şamd. În
particular, se poate face doar o substituţie, var poate fi numai o variabilă.

- SOLVE sub forma generală: solve, lista variabile, rezolva simbolic un sistem sau o
ecuaţie.

Rezolvarea simbolică, numerică a ecuaţiilor şi sistemelor este detaliată în partea a II-a.

- SERIES sub forma: series, var1=valoare1, var2=valoare2,...,m (atenţie se utilizează


egalul logic), dezvoltă expresia într-o serie sau polinom Taylor în jurul punctelor: valoare1,
valoare2 ... până la ordinul m.Valorile şi ordinul sunt opţionale, implicit valoare1=valoare2=....=0
şi m=6.

163
Suplimentar_______________________________
Pentru a afla eroarea, într-un punct al aproximării prin serie Taylor, se efectuează operaţiile:
Etape ________________________________
- se defineşte funcţia (în exemplul de mai jos f(x):=sin(x)+cos(x));
- se defineşte o funcţie, care va avea ca termeni dezvoltarea Taylor (în exemplu serT(x):=);
- se încadrează cu LEO, doar numele funcţiei, din partea dreaptă a egalului de definire (serT(x));
- se selectează din "Symbolic Keyword Toolbar" operatorul series se completează argumentele;
- se efectuează clic, în afara regiunii Math, pentru a se produce evaluarea seriei;
- se calculează eroarea.

Se observă că într-o singură regiune matematică, s-a definit funcţia serT(x), prin preluarea
rezultatului unei operaţii simbolice.
- ASSUME sub forma: assume, restricţii impune restricţii asupra variabilelor expresiei.
Pentru restricţii egalitate se foloseşte egalul logic var=valoare reală, pentru intervale
var=RealRange(a,b).

Paleta “Symbolic Toolbar Keyword” mai conţine operatori de transformare: fourier,


invfourier, laplace, invlaplace, ztrans, invztrans.

164
12.4. MODIFICATORI AI OPERATORILOR SIMBOLICI (E)

Modificatorii permit particularizări ale variabilelor asupra


cărora acţionează unii operatori simbolici. Aceştia pot fi selectaţi din
paleta Symbolic Keyword prin comanda Modifier care deschide
subpaleta reprezentată alăturat. În general modificatorul este separat de
operator printr-o virgulă.
Modificatorii asociaţi operatorului assume sunt:
- var=real;
- var=RealRange(a,b).
Modificatorii asociaţi operatorului simplify:
- assume=real, presupune că toate variabilele sunt reale;
- assume=RealRange(a,b), presupune că variabilele sunt reale şi aparţin intervalului a,b;
Operatorul trig simplifică expresiile trigonometrice folosind identităţile: sin(x)2+cos(x)2=1
şi sinh(x)2+cosh(x)2=1.

Mai sus, s-a utilizat funcţia csgn(z), care returnează: 0 dacă z=0; 1 dacă Re(z)>0 sau (Re(z)=0 şi
Im(z)>0); -1 în celelalte cazuri.

12.5. UTILIZAREA A MAI MULTOR OPERATORI SIMBOLICI ÎNTR-O REGIUNE


MATEMATICĂ (E)

După cum s-a văzut, în exemplele anterioare, Mathcad permite efectuarea succesivă a mai
multor operaţii simbolice. Funcţie de modul de afişare a rezultatelor, acestea se împart în:
Metoda 1 permite vizualizarea rezultatelor intermediare.
Etape ________________________________
- introduceţi expresia şi cuprindeţi-o cu LEO;
- inseraţi ESP, completaţi argumentele necesare;
- apăsaţi tasta Enter pentru a vedea primul rezultat simbolic;
- clic pe primul rezultat şi introduceţi un nou ESP, primul rezultat dispare temporar;
- apăsaţi tasta Enter pentru a vedea primul şi al doilea rezultat simbolic şamd.
_______________________________________________________________________________
Exemplificare metoda 1

165
Metoda 2 permite doar vizualizarea rezultatului final.

Etape ________________________________
- introduceţi expresia si cuprindeţi-o cu LEO;
- inseraţi separatorul virgulă, sau folosiţi combinaţia de taste [Ctrl]+[Shift]+[.];
- inseraţi ESP, completaţi argumentele necesare;
- scrieţi cel de al doilea ESP, completaţi argumentele necesare;
şamd.
- in final, apăsaţi tasta Enter pentru a vedea rezultatul.
_______________________________________________________________________________

Exemplificare metoda 2:

12.6. OPERAŢII SIMBOLICE PRIN INTERMEDIUL MENIULUI SYMBOLIC (E)

Comenzile din meniul Symbolics nu sunt "live", deci nu iau


în considerare definirile anterioare ale variabilelor.
Prin meniul, mai sus amintit, se poate acoperi marea majoritate
a operaţiilor simbolice, apelabile prin “Symbolic Keyword Toolbar”.
Implicit, rezultatul operaţiei simbolice este plasat sub expresia
care este evaluată, însă poziţia acestuia este controlabilă prin comanda
Evaluation Style, din meniul Symbolics, care deschide o casetă de
dialog.

Exemplu

166
5

∑ (x − a ) , cu LEO, a fost selectată comanda Symbolically, din


i
După cuprinderea întregii expresii
i =0
submeniul Evaluate, al meniului Symbolics. Evaluarea se poate face şi prin combinaţia de taste
[Shift]+[F9].

Dintr-o expresie complexă se poate evalua simbolic, doar o subexpresie selectând-o cu LEO.
Exemplu

Pentru evaluarea simbolică doar a subexpresiei (w-2)2 s-a


efectuat o selectare a acesteia cu LEO, urmată de comanda Expand, din
meniul Symbolics.

12.7. OPTIMIZAREA CALCULELOR NUMERICE PRIN INTERMEDIUL


OPERAŢIILOR SIMBOLICE

Dacă procesările numerice sunt foarte complicate, există posibilitatea de a forţa procesorul
numeric să colaboreze cu cel simbolic, prin intermediul comenzii Optimization din meniul Math.

Etape ________________________________
1. Scrieţi expresia sub forma: variabilă := expresie;
2. Alegeţi Optimization, din meniul pop-up, asociat regiunii matematice curente.
3. Rămânând în regiunea matematică
- dacă, procesorul simbolic găseşte o formă mai simplă a expresiei, o furnizează
procesorului numeric şi marchează acest fapt printr-un asterisc roşu, plasat în
dreapta expresiei;
- dacă, procesorul simbolic nu găseşte o formă mai simplă, plasează un asterisc
albastru.
4. Pentru vizualizarea rezultatului, efectuaţi un dublu clic pe asterisc, sau alegeţi din meniul
pop-up, comanda Show pop-up
_______________________________________________________________________________
În general pe această cale, dacă procesorul simbolic găseşte o formă simplificată a expresiei,
se obţin rezultate mai rapid.
Dacă doriţi ca întreaga foaie să fie optimizată, alegeţi comanda Optimize, din meniul Math.

Exemplu

În exemplul de mai sus, capturat din Mathcad, prima integrală triplă a fost rezolvată
numeric, a doua prin intermediul metodei Optimization.

167
¾ PRECIZIA CALCULELOR ITERATIVE

¾ REZOLVAREA ECUAŢIILOR

¾ REZOLVAREA SISTEMELOR DE ECUAŢII

¾ OPTIMIZĂRI PRIN PROGRAMARE MATEMATICĂ

¾ INTERPOLĂRI

¾ REGRESII

¾ EXTRAPOLARE

¾ AJUSTAREA DATELOR

¾ REZOLVAREA ECUAŢIILOR DIFERENŢIALE

¾ CALCULE ÎN COMPLEX

¾ COMBINATORICĂ

¾ STATISTICĂ ŞI PROBABILITĂŢI
II CALCULE NUMERICE ÎN MATHCAD

PRECIZIA CALCULELOR ITERATIVE

_______________________________________________________________________________

Capitolul tratează câteva probleme legate de efectuarea calculelor cu numere aproximative


şi pune la dispoziţia cititorului recomandări, sau instrumente care să-i permită controlul erorilor de
calcul.

13.1. ELEMENTE DE TEORIA ERORILOR

13.1.1. Sistematizarea şi definirea erorilor de calcul numeric iterativ

13.1.1.1. Sistematizarea erorilor de calcul numeric iterativ ( E)

Erorile care apar în rezolvarea iterativă, numerică a problemelor matematice, se clasifică în


următoarele categorii [BEU92, DOD76]:
1. Erorile de problemă, care sunt datorate adoptării unor ipoteze simplificatoare în scopul
reducerii complexităţii formulării modelului matematic.
2. Erorile de metodă sunt specifice algoritmilor aplicaţi. Acestea pot fi micşorate prin
alegerea metodei celei mai adecvate de rezolvare.
3. Erorile de măsură (inerente) sunt datorate impreciziei de măsurare a valorile datelor
iniţiale ale problemei. Acestea nu pot fi cunoscute exact, dar nu pot depăşi o eroare
maximă, corespunzătoare preciziei aparatului de măsură folosit.
4. Erorile de rotunjire apar datorită reprezentării numerelor cu un număr finit de cifre
semnificative exacte. Acestea depind de particularităţile hardware ale calculatorului, de
modul de reprezentare internă a diferitelor tipuri de date. În anumite circumstanţe, există
un proces de cumulare a erorilor de rotunjire.
5. Erorile de trunchiere (reziduale) sunt generate de întreruperea unui proces iterativ
teoretic, infinit.
În general, metodele numerice permit controlul erorilor de tip 2, 4, 5.

13.1.1.2. Definiri ale erorilor ( E)

Cifre semnificative
Se numesc cifre semnificative ale numărului aproximativ a, cifrele nenule, cifrele nule
cuprinse între cifre nenule, sau cele care indică ordinul de mărime [DOD76, TOD76].

Exemplu: a=0,050300 are, ca cifre nesemnificative, primele două şi ultimele trei.

169
Eroarea absolută
Fie a valoarea aproximativă, rezultată prin măsurare, observaţii, sau calcule, a valorii
adevărate A. Diferenţa ε = A-a poartă numele de eroare, iar εa = IA-aI eroare absolută.
Eroarea relativă
Numim eroare relativă, raportul dintre eroarea absolută εa şi valoarea absolută a lui A,
ra=εa /IAI. Eroarea relativă este mai completă, din punct de vedere informaţional, decât cea
absolută.
Eroarea relativă aparentă
În cele mai multe cazuri nu se cunoaşte A, deci nu poate fi calculată eroarea absolută. În
aceste cazuri fie se foloseşte eroarea relativă aparentă: r’a=εa/ IaI, fie eroare absolută limită
[DOD76, TOD76], definită mai jos.
Eroarea absolută limită
Se numeşte eroare absolută limită (admisibilă) a numărului aproximativ a, notată cu ε*a ,
maximum admisibil al erorii absolute. În general ε*a se calculează cu una sau două cifre
semnificative.
ε a = A − a ≤ ε*a (13.1)
Din relaţia de mai sus rezultă:
a − ε*a ≤ A ≤ a + ε*a

ceea ce înseamnă, că a − ε*a aproximează A prin lipsă, iar a + ε*a prin adaos.
Eroarea relativă limită
Se numeşte eroare relativă limită expresia:
ε*a
ra* = (13.2)
a − ε*a

13.1.1.3. Numărul de cifre exacte ale unui număr aproximativ

În baza 10 valoarea adevărată A se scrie:


A=am10m+am-110m-1+am-210m-2+ ... +am-n+110m-n+1+ ....
iar cea aproximativă a:
a=bm10m+bm-110m-1+bm-210m-2+ ... +bm-n+110m-n+1+ ....
Dacă numărul a are n zecimale exacte, rezultă că eroarea absolută nu depăşeşte jumătate de
unitate din cea de a n-a cifră, socotită de la stânga la dreapta:
1
εa = A − a ≤ ⋅ 10 m− n +1
2 (13.3)
În consecinţă, primele n cifre (bm, bm-1, bm-2, ... bm-n+1) sunt exacte.

Exemplu: numărul exact A=125,96, numărul aproximativ a=125,00. Conform relaţie de mai sus
ε a = A − a = 0.04 < 0.5 ⋅ 0.1 . Cum m=2, m-n-1=-1, rezultă n=4 (a are patru cifre exacte).

În practică, se utilizează mult mai frecvent relaţia între eroarea relativă şi numărul de cifre
exacte.

170
13.1.1.4. Relaţia între eroarea relativă şi numărul de cifre exacte

În cazul aplicării regulilor de rotunjire, cu completare, se demonstrează propoziţia [DOD76,


TOD76, TIR72]:
Dacă un număr aproximativ a are n cifre exacte, eroarea relativă ra satisface relaţia:
n −1
1 1
ra ≤ ⋅  ,n ≥ 1 (13.4)
2 ⋅ bm  10 
unde bm este prima cifră semnificativă.

3−1
1 1 1
Exemplu: A=π, a=3.14. Cum n=3, b3=3 rezultă: ra ≤ ⋅  = = 0.0016666 ≈ 0.16%
2 ⋅ 3  10  600
În cazul rotunjirii fără completare, se utilizează relaţia:
n −1
1 1
ra ≤ ⋅  ,n ≥ 1 (13.5)
bn  10 

13.1.2. Ce este o metodă iterativă ? ( E)

Metoda iteraţiei, sau a aproximărilor succesive, constă în obţinerea unui şir de valori care, în
anumite condiţii, poate să fie convergent către soluţia căutată. Valoarea x0, se numeşte valoare de
start şi se obţine printr-un procedeu mai puţin precis decât cel folosit ulterior, pentru rafinarea ei
[POS94].
Într-o formă mai riguroasă, metoda iterativă se defineşte [DOD76]:

Suplimentar_______________________________
Considerăm f:XÆY, X ⊂ Rn, Y ⊂ Rn, şi ecuaţia sau sistemul f(x)=0, care într-o vecinătate
Vα⊂ X, are o rădăcină unică x=α. Se notează cu x0, aproximaţia iniţială a rădăcinii (x0 trebuie să se
afle în Vα şi este oarecare).
Se numeşte formulă (şir) de iterare, pentru determinarea rădăcinii α, un şir de forma:
xk=ϕk(x0, x1, ..., xk-1)
care satisface condiţiile:
xk Æ α când k Æ ∞
Funcţia ϕk depinde de f şi chiar de rangul termenilor din şir. Dacă, nu depinde de rangul
termenilor din şir, formula de iterare se numeşte de tip staţionar xk=ϕ(x0, x1, ..., xk-1). În cazul
formulei de iterare de ordinul întâi şi staţionare, datorită dependenţei de forma: xk=ϕ(xk-1), după ce
s-a calculat xk nu mai este nevoie să se reţină în memorie xk-1.
În aceste sisteme iterative, ecuaţia f(x)=0 se pune sub forma echivalentă (cel puţin în
vecinătatea Vα⊂ X):
f(x)=0 ⇔ α=ϕ(α)
Teorema cu punct fix, pentru contracţii garantează, în anumite condiţii, convergenţa
şirului de iterare, existenţa şi unicitatea soluţie [DOD76].

171
Geometric, metoda iteraţiei are următoarea interpretare: intersecţia dintre curbele y=x şi
y=ϕ(x) reprezintă soluţia x=α. În figurile de mai jos, se pleacă din punctul (x0, ϕ(x0)), prin linia
poligonală desenată punctat s-a reprezentat procesul convergenţa spre α. Dacă Iϕ’(x)I ≥ 1 procesul
iterativ poate să fie divergent, dacă Iϕ’(x)I = 1 poate cicla.

y y
y=ϕ(x)
y=x y=x

y=ϕ(x)

ϕ(x0)=x1
ϕ(x0)=x1
ϕ(x1)=x2

0 α x2 x1 x0 x 0 x1 x3 α x2 x0 x

Se demonstrează [POS94], că nu este necesară o precizie mare de calcul, de la primele


iteraţii, deoarece rotunjirile, sau unele erori minore nu au influenţă asupra preciziei finale.
După un număr relativ mare de iteraţii, eroarea de trunchiere are o pondere foarte mică şi în
consecinţă o continuare a calculelor nu duce la o îmbunătăţire a acurateţei soluţiei [POS94].

13.1.3. Criterii de oprire a iteraţiilor [POS94]

13.1.3.1. Calitatea condiţionării soluţiei

Fie o ecuaţie f(x)=0, pentru care presupunem că xn este o aproximare a rădăcinii simple, x=α
(f(α)=0, f’(α)≠0).
O estimare a erorii absolute ( ε a = xn − α ), independentă de metoda de rezolvare, se poate
face cu relaţia:
f ( xn )
xn − α ≤ , M ≤ f'( x ), x∈ J (13.6)
M
unde J este intervalul care are limitele xn şi α.
Dacă se notează f ( xn ) valoarea calculată şi afectată de erori a f ( xn ) , se poate scrie:
f ( x n ) = f ( x n ) + δ ( x n ) , δ ( x n ) fiind eroarea de rotunjire, care are valoarea limită notată cu .
δ
δ( xn ) ≤ δ , δ este independentă de x.

În cel mai bun caz, când f ( xn ) = 0 rezultă că f ( xn ) ≤ δ .

172
Dacă variaţia f’(x) în vecinătatea rădăcinii x=α nu este prea mare, din relaţia 13.6 rezultă:
δ δ
xn − α ≤ ≈ (13.7)
M f'( x )
Se observă că dacă numitorul relaţiei 13.7 are o valoare mică, rezultă o valoare mare a
δ δ
erorii absolute limită ( ε*a = ≈ ) şi în acest caz, se spune că problema determinării soluţiei
M f'( x )
α este prost condiţionată, adică perturbaţiile slabe, care afectează datele de intrare (coeficienţii
ecuaţiei sau ecuaţiilor dacă se rezolvă un sistem), produc perturbaţii mari în soluţie, deci soluţia
este instabilă. Dacă, numitorul are o valoare mare problema este bine condiţionată şi soluţia este
stabilă. Calitatea condiţionării problemei nu depinde de algoritm ci este de natură matematică.
Problemele cu rădăcini multiple sunt, în general, prost condiţionate, iar ε a se calculează cu
1
 δ⋅ p  p
relaţia: ε a =  ( p )  (13.8)
 f (α ) 
 
unde p este ordinul de multiplicitate al rădăcinii α.

13.1.3.2. Criterii de oprire a iteraţiilor

Relaţiile 13.6 şi 13.7 utilizate pentru oprirea iteraţiilor au o valoare practică scăzută,
deoarece trebuie cunoscută valoarea f’(x) în vecinătatea rădăcinii x=α, care este necunoscută.
Se observă că, dacă xn Æ α de la o iteraţie n diferenţele xn − xn−1 descresc până ce
xn − α ≈ ε*a . În continuare, erorile de rotunjire au ponderea majoră. Ca urmare, putem stopa iteraţiile
şi accepta, ca soluţie xn, dacă sunt satisfăcute simultan condiţiile:
 xn+1 − xn ≥ xn − xn−1
 (13.9)
 xn − xn−1 < δ

unde, δ este o toleranţă nu prea strânsă, care se utilizează pentru ca procesul iterative să nu se
termine, înainte ca xn să fi ajuns în apropierea lui α.
Condiţiile 13.9, asociate unor algoritmi cu convergenţă rapidă, acţionează în sensul
împiedicării terminării iteraţiilor pentru rădăcinile prost condiţionate, caz în care, eroarea absolută
limită este mare.

13.1.4. Rotunjirea numerelor ( E)

Rotunjirea este operaţia de reţinere, a unui număr mai mic de cifre semnificative, dintr-un
număr aproximativ, prin eliminarea tuturor cifrelor de la un anumit rang şi înlocuindu-le, când este
cazul, cu cifre zero, eventual modificându-se şi valoarea ultimei cifre reţinute.
Regulile uzuale de rotunjire cu completare sunt [TIR72,TOD76]:
1. Dacă prima cifră, la care se renunţă, este mai mare decât 5, atunci ultima dintre
zecimalele (cifrele) păstrate se măreşte cu o unitate.
Exemplu: 159.28 Æ 159.3
2. Dacă prima cifră, la care se renunţă, este mai mică decât 5, atunci ultima dintre

173
zecimalele (cifrele) păstrate se menţine nemodificată.
3. Dacă prima dintre cifrele abandonate, este egală cu 5 şi printre cifrele la care se renunţă
există cifre nenule, atunci ultima cifră păstrată se măreşte cu o unitate.
Exemplu: 159.45157 Æ 159.5; 159.45024 Æ 159.5.
4. Dacă prima dintre cifrele abandonate este egală cu 5, dar toate celelalte, care urmează
sunt nule, atunci ultima cifră păstrată rămâne neschimbată, dacă este pară şi se măreşte
cu o unitate, dacă este impară Regula numerelor pare se bazează pe următorul
raţionament: numerele pare se divid exact cu mai multe numere decât cele impare, deci
sunt mai puţin afectate de erori.
Exemplu: 159.4500 Æ 159.4; 159.7500 Æ 159.8.
Rotunjirea fără completare se utilizează mai rar, şi constă, doar din eliminarea cifrelor
semnificative începând de la un rang oarecare.

13.1.5. Eroarea absolută şi relativă a unei funcţii de mai multe variabile ( E)

Fie f:XÆR, X⊂Rn, derivabilă parţial pe X, (x1, x2, ..., xn) un punct interior din X, derivatele
∂f
parţiale ,i = 1,2,...,n , fiind continue. Fie ε x1 ,ε x2 ,...,ε xn erorile absolute limită ale argumentelor
∂xi
funcţiei, considerate cunoscute.
Eroarea absolută, eroarea absolută limită, eroarea relativă, eroarea relativă limită a unei
funcţii se calculează cu relaţiile [DOD76]:
n
∂f
ε f = f ( x1 + ε x1 , x 2 + ε x2 ,..., xn + ε xn ) − f ( x1 , x 2 ,..., x n ) ≤ ε*f = ∑ ∂x
1 i
⋅ ε*xi (13.10)

εf n
∂ (ln f ) *
rf =
f
≤ r *f = ∑
1 ∂xi
⋅ ε xi (13.11)

13.1.6. Erorile operaţiilor aritmetice elementare

Erorile absolute şi relative ale operaţiilor aritmetice elementare: suma, diferenţa, produs, cât
se deduc din particularizările relaţiilor generale 13.10 şi 13.11.

13.1.6.1. Eroarea sumei

Fie x1, x2, ..., xn numerele aproximative afectate de erorile absolute ε x1 ,ε x2 ,...,ε xn . Se
consideră suma lor: S = ± x1 ± x2 ± ... ± xn , care este o funcţie de n variabile.
ε S = ± ε x1 ± ε x2 ± ... ± ε xn ≤ ε x1 + ε x2 + ... + ε xn (13.12)
Eroarea absolută a unei sume de n numere aproximative nu depăşeşte suma erorilor
absolute ale acestor numere
ε S* = ε x*1 + ε x*2 + ... + ε x*n
(13.13)
Eroarea absolută limită a sumei a n numere aproximative este egală cu suma erorilor
limită ale numerelor.
Eroarea absolută limită a sumei nu poate fi mai mică decât eroarea absolută limită a
termenului cel mai puţin exact din sumă. Ceilalţi termeni ai sumei, care sunt mai precişi nu au o
pondere esenţială în precizia rezultatului (sumei).

174
Eroarea relativă a sumei se calculează cu: relaţia
εS
rS = (13.14)
S
ε xi
În practică, erorile relative rxi = sunt de acelaşi ordin de mărime. Dacă unul din
xi
termenii sumei este mult mai mare, atunci acesta va avea ponderea majoră în calculul erorii relative
a sumei respective.

13.1.6.2. Eroarea produsului

Fie x1, x2, ..., xn numerele aproximative afectate de erorile absolute ε x1 ,ε x2 ,...,ε xn . Se
consideră produsul lor: P = x1 ⋅ x2 ⋅ ... ⋅ xn , care este o funcţie de n variabile. Prin logaritmare,
diferenţiere şi trecere la mărimi finite rezultă:
n
rP* = ∑r
1
*
xi (13.15)

Eroarea relativă limită a produsului este egală cu suma erorilor relative limită.
Eroarea relativă a produsului unor numere aproximative, diferite de zero, nu
depăşeşte suma erorilor relative ale numerelor aproximative.

13.1.7. Problema directă şi inversă a erorilor

În calculele cu numere aproximative se întâlnesc frecvent două tipuri de probleme:


1. Problema directă a erorilor: se cunosc erorile numerelor cu care se efectuează un
calcul oarecare, se cere determinarea preciziei rezultatului.
2. Problema indirectă a erorilor: se impune precizia rezultatului şi se cere determinarea
erorilor numerelor, cu care se efectuează calculul. Acest tip se întâlneşte în proiectare.
Problema directă poate fi rezolvată plecând de la observaţia că, deoarece erorile absolute ale
termenilor au valori mici, derivatele de ordinul doi şi superior pot fi neglijate, în procesul
dezvoltării în serie. În consecinţă, rezultă:
ε f = f ( x1 + ε x1 , x2 + ε x2 ,..., xn + ε xn ) − f ( x1 , x2 ,..., xn ) ≈ df ( x1 , x2 ...xn )
n
 ∂f  n
∂f (13.16)
= ∑  ∂x
1
 ⋅ ε xi ≤ ε*f =
i 
∑ ∂x
1 i
⋅ ε*xi

Problema indirectă este mai dificil de rezolvat. O variantă [TIR72] pleacă de la ipoteza că
erorile absolute ale numerelor au ponderi egale în eroarea totală a funcţiei, calculul erorilor absolute
limită făcându-se cu relaţia:
xi ⋅ ε*f
ε*xi = n
(13.17)
∂f
∑1
xi ⋅
∂xi

13.1.8. Recomandări privind controlul preciziei calculelor numerice ( E)

Pentru a se evita greşelile de calcul şi a se obţine soluţiile cu un efort de calcul rezonabil se


recomandă respectarea regulilor detaliate mai jos [UMM00, HRI91].
Precizia calculelor trebuie să corespundă preciziei datelor iniţiale.
Precizia rezultatului final nu poate fi mai mare decât a datelor iniţiale.

175
În acest sens, se acţionează pe următoarele direcţii:
¾ trebuie evaluată precizia datelor iniţiale, pentru a nu cădea în greşeala de a nu calcula cu un
număr suficient de cifre semnificative, sau de a îngreuna calculele, prin păstrarea unui
număr excedentar de cifre semnificative;
¾ trebuie evaluată eroarea relativă a rezultatului pe baza erorilor relative ale datelor iniţiale,
de preferinţă, înainte de efectuarea calculului propriu-zis;
¾ în general, eroarea rezultatului final este determinată de eroarea relativă a mărimii care este
cea mai imprecisă;
¾ în rezultatul final, trebuie păstrate atâtea zecimale câte zecimale are eroarea absolută;
¾ dacă calculul se face etapizat, trebuie evaluate erorile relative ale fiecărui rezultat parţial
(intermediar). În general rezultatele intermediare se calculează cu cel mult două cifre
semnificative, în plus, faţă de numărul de cifre semnificative ale rezultatului final. Acestea
se elimină prin rotunjire, doar în rezultatul final.
¾ erorile relative se dau şi se calculează cu una sau două cifre semnificative;

13.1.9. Recomandări privind calculele iterative ( E)

Referitor la calculele iterative efectuate de funcţiile predefinite, sau în general din aplicaţiile
create de utilizator se recomandă:
¾ când folosiţi funcţii predefinite care utilizează metode numerice verificaţi întotdeauna
rezultatul returnat de funcţie. Pentru calculele complicate, dacă există dubii asupra
corectitudinii rezultatului, aplicaţi şi alte funcţii similare (deseori Mathcad oferă această
facilitate) sau rezolvaţi problema simbolic.
¾ în cazul în care funcţia eşuează în obţinerea unui rezultat, încercaţi să declaraţi problema
într-o altă formă;
¾ studiaţi metoda/ele numerice utilizată/e de funcţia care vă returnează un rezultat
nesatisfăcător. Help-ul indică numele metodei şi sursa bibliografică. De multe ori nu sunt
respectate anumite restricţii de aplicare. Sunt situaţii când Mathcad încercă să rezolve
problema prin mai mulţi algoritmi, selectându-l pe care îl consideră cel mai potrivit. Este
cazul integrării numerice, când se poate opta pentru un algoritm sau pentru autoselectare;
¾ prin intermediul setării valorii variabilei predefinite TOL utilizatorul poate ajunge la un
compromis între precizie de evaluare a funcţiei şi viteza de obţinere a rezultatului. Dacă
există restricţii egalităţi/inegalităţi se operează cu valoarea variabilei predefinite CTOL.
¾ eficenţa metodele iterative este puternic dependentă de alegerea punctului de start x0. Se
recomandă ca acesta să fie cât mai aproape de soluţie.

13.2. FUNCŢII CARE EFECTUEAZĂ TRUNCHIERI ŞI APROXIMAŢII

Mathcad 2001 pune la dispoziţia utilizatorului o funcţie de rotunjire round şi trei funcţii care
efectuează operaţii de trunchiere: floor, ceil şi trunc. Toate operează asupra numerelor reale şi se
găsesc la categoria Truncation and Round off, în caseta de dialog Insert Function, care se
deschide la: apăsarea butonului f(x) din bara de instrumente, prin meniul Insert Æ Function, sau
prin combinaţia de taste [Ctrl]+[E].
Funcţia round(x,n) rotunjeşte un număr real x la n zecimale. Dacă n întreg este pozitiv
rotunjirea operează la dreapta punctului zecimal, dacă este negativ operează la stânga punctului
zecimal, şi dacă se omite acesta este considerat n=0 şi funcţia rotunjeşte la întreg.
Funcţiile trunc(x), ceil(x) şi floor(x) trunchiază un număr real x prin îndepărtarea părţii
zecimale, respectiv prin trunchierea la cel mai mic întreg ≥ x , respectiv la cel mai mare întreg ≤ x .

176
II APLICAŢII ÎN MATHCAD 2001

REZOLVAREA ECUAŢIILOR ŞI SISTEMELOR


_______________________________________________________________________________

Rezolvarea problemelor specifice ingineriei conduce, în multe cazuri, la determinarea


rădăcinilor ecuaţiilor, sau la calculul soluţiilor sistemelor de ecuaţii. Pentru a veni în sprijinul
utilizatorilor mediului de programare, firma MathSoft pune la dispoziţie un pachet de funcţii
predefinite, destinat soluţionării acestui tip de probleme. Utilizarea acestor funcţii permite:
a. rezolvarea numerică iterativă a ecuaţiilor algebrice;
b. rezolvarea numerică iterativă a ecuaţiilor transcendente;
c. rezolvarea numerică a sistemelor de ecuaţii liniare;
d. rezolvarea numerică iterativă a sistemelor de ecuaţii neliniare;
e. rezolvarea simbolică a ecuaţiilor şi sistemelor de ecuaţii.

14.1. REZOLVAREA NUMERICĂ ITERATIVĂ


A ECUAŢIILOR ALGEBRICE

O ecuaţie de forma:
f(x) = 0 (14.1)
se numeşte algebrică dacă funcţia f(x) este un polinom sau poate fi adusă la formă polinomială.
Toate ecuaţiile care nu sunt algebrice se numesc transcendente.
Forma generală a unei ecuaţii algebrice este, deci:
a n ⋅ x n + a n −1 ⋅ x n −1 + L + a i ⋅ x i + L + a1 ⋅ x + a 0 = 0 , (14.2)
unde:
- n, reprezintă gradul ecuaţiei;
- ai, reprezintă coeficienţii ecuaţiei, i ∈ 0 ,n , an ≠ 0 . Aceştia pot fi reali sau complecşi;
- x, reprezintă variabila sau necunoscuta ecuaţiei.

O altă formă, sub care se poate reprezenta o ecuaţie algebrică de gradul n, este forma
normală:
x n + bn−1 ⋅ x n−1 + L + bi ⋅ x i + L + b1 ⋅ x + b0 = 0 , (14.3)

Această formă se obţine din forma generală (14.2) prin împărţire cu an .


O ecuaţie algebrică de gradul n cu o necunoscută are întotdeauna n rădăcini, [MEM80].
Aceste rădăcini nu trebuie să fie toate diferite. Dacă o rădăcină se repetă de 2, 3, … , k ori, se zice

177
că ea este o rădăcină dublă, triplă, multiplă de ordinul k. Dacă coeficienţii, ai, sunt numere reale şi
dacă ecuaţia are o rădăcină complexă a + i ⋅ b , atunci ecuaţia admite ca rădăcină şi valoarea
complexă conjugată a − i ⋅ b .
Notând cu x j , j ∈ 1, n , cele n rădăcini ale ecuaţiei, se poate obţine, din (14.3), o nouă formă
de reprezentare a ecuaţiei de gradul n, ca un produs de factori liniari:
(x − x1 )⋅ (x − x2 ) ⋅ L ⋅ (x − x j )⋅ L ⋅ ⋅(x − xn ) = 0 . (14.4)

Această ultimă formă de reprezentare a ecuaţiilor algebrice poartă denumirea de formă factorizată.
Pentru rezolvarea ecuaţiilor algebrice, în sensul obţinerii tuturor celor n soluţii, în Mathcad
este predefintă:

• Funcţia polyroots:
o Sintaxa funcţiei: polyroots(v);
o Argumentele funcţiei: ¬ v – reprezintă un vector, de dimensiuni n+1 linii × 1 coloană, ce
conţine valorile coeficienţilor ecuaţiei algebrice, ai, scrişi sub forma:
 a0 
a 
 1
 
v =  aM  . (14.5)
i
 
M 
an 

o Valoarea returnată: un vector, de dimensiuni n linii × 1 coloană, ce conţine valorile


aproximative ale celor n rădăcini ale ecuaţiei.
o Observaţii:
a. Funcţia polyroots poate fi utilizată:

Etape ________________________________
1. Clic într-o zonă liberă a foii de lucru.
2. Se defineşte vectorul coeficienţilor ecuaţiei algebrice, v. La realizarea acestei etape
trebuie, neapărat, avut în vedere faptul că pot exista ecuaţii algebrice la care lipsesc
anumite puteri ale necunoscutei x. Acest lucru semnifică faptul că acel termen, al
ecuaţiei, are valoarea coeficientului egală cu zero. În plus, semnul unui termen al
ecuaţiei este dat de semnul coeficientului numeric respectiv.
3. Se apelează funcţia polyroots direct sau se defineşte o variabilă a vectorului rezultat.
Etapa a doua poate fi omisă dacă se introduce direct, ca argument al funcţiei polyroots,
vectorul coeficienţilor.
______________________________________________________________________________________________

Exemplul 1: Să se rezolve ecuaţia algebrică de gradul şase:


− x 6 − 2 ⋅ x 4 + 4 ⋅ x 3 − 1 .5 ⋅ x 2 + 3 = 0

178
 3 
 
 0 
 −1.5 
- vectorul coeficientilor: v :=  4 
 3   
   −0.724   −2 
0
   −0.719 − 1.74i   0 
  −1.5      1 
−0.719 + 1.74i   − 
polyroots   4   = 
   0.462 + 0.855i  - se apeleaza functia polyroots.
  −2    0.462 − 0.855i 
 0    SOL := polyroots ( v ) sol := polyroots ( v )
 1   1.238 
 −  sol = −0.724
 −0.724  0
 −0.719 − 1.74i  sol = −0.719 − 1.74i
1
  sol = −0.719 + 1.74i
 −0.719 + 1.74i  2
SOL =
 0.462 + 0.855i  sol = 0.462 + 0.855i
3
 0.462 − 0.855i  sol = 0.462 − 0.855i
  4
 1.238  sol = 1.238
5

b. Pentru a defini vectorul argument al funcţiei polyroots se poate utiliza operatorul de calcul
simbolic . Se procedează în felul următor:

Etape ________________________________
1. Clic într-o zonă liberă a foii de lucru.
2. Se defineşte expresia ecuaţiei algebrice f(x).
3. Se tastează operatorul de calcul simbolic :
6 5 4 3 2
x + x − 14⋅ x − 5⋅ x + 19⋅ x + 34⋅ x + 24 coeffs , →

4. Se completează placeholder-ul cu simbolul variabilei ecuaţiei algebrice, după care se


execută un clic în foaia de calcul sau se tastează [Enter]:
 24 
 
 34 
 19 
x + x − 14⋅ x − 5⋅ x + 19⋅ x + 34⋅ x + 24 coeffs , x →  −5 
6 5 4 3 2
 
 −14 
 1 
 
 1 
5. Prin operaţii de copiere şi lipire, vectorul astfel obţinut poate fi utilizat ca argument al
funcţiei polyroots.
______________________________________________________________________________________________________________________

c. Pentru rezolvarea numerică a ecuaţiilor algebrice funcţia polyroots utilizează două procedee
diferite:
- metoda LaGuèrre;
- metoda companionului matriceal.

179
Implicit, funcţia polyroots utilizează metoda
La Guèrre. Dacă se doreşte calculul soluţiei ecuaţiei
prin metoda companionului matriceal se dispune
cursorului în interiorul identificatorului funcţiei
polyroots şi din meniului pop-up, ce apare în urma unui
clic pe butonul din dreapta al mouse-ului se alege
opţiunea Companion Matrix.

d. Cele două metode de rezolvare, utilizate de funcţia polyroots, sunt metode iterative. În
multe situaţii, rezolvarea unei ecuaţii, printr-un procedeu, poate conduce la soluţii care
diferă (diferenţele nu sunt semnificative) de soluţiile obţinute prin cel de-al doilea
procedeu. Din acest motiv, în cazul ecuaţiilor de ordin superior, sau a celor care prezintă
rădăcini multiple se recomandă utilizarea ambelor metode. Rădăcinile astfel obţinute se
testează prin înlocuirea lor în expresia ecuaţiei algebrice şi în funcţie de rezultatul obţinut
se aleg valorile convenabile pentru rădăcini.

Exemplul 2: Să se rezolve ecuaţia algebrică de gradul cinci:


x 5 − 3.5 ⋅ x 4 + 3.25 ⋅ x 3 − 1.125 ⋅ x 2 + 3.375 ⋅ x − 3.375 = 0 .

- expresia ecuatiei algebrice:


5 4 3 2
F( x) := x − 3.5⋅ x + 3.25⋅ x − 1.125⋅ x + 3.375⋅ x − 3.375
- determinarea vectorului coeficientilor:
 −3.375 
 3.375 
 
−1.125 
x − 3.5⋅ x + 3.25⋅ x − 1.125⋅ x + 3.375⋅ x − 3.375 coeffs , x → 
5 4 3 2
 3.25 
 −3.5 
 
- determinarea solutiilor ecuatiei prin metoda LaGuerre:  1 
  −3.375  
  3.375    −0.500000065581− 0.866025442682i
 0.500000058999 0.86602542541i
  − +

−1.125  
polyroots   = 1.496910757836 + 0.005362691362i
  3.25    1.496918252261− 0.00536267409i 
  −3.5  
   
 1.506171114483 
 1 
- testarea solutiilor obtinute:  1.34248× 10− 6 + 2.58833i× 10− 7 
  −0.500000065581− 0.866025442682i   −6 −9
  0.500000058999 0.86602542541i   1.12671× 10 − 7.26888i× 10 
 − +

F  1.496910757836+ 0.005362691362i  =  1.12304× 10− 6 + 1.81963i× 10− 9 
 
  1.496918252261− 0.00536267409i    1.12100 10− 6 1.70997i 10− 9 
   × + ×

 1.506171114483 
 1.12212× 10
−6 

180
- determinarea solutiilor ecuatiei prin metoda companionului matriceal:

  −3.375   −0.5 − 0.866025403784i


  3.375    
 
  
−0.5 + 0.866025403784i

  −1.125  
polyroots =  1.499996447388+ 0.000006153238i
  3.25    1.499996447388− 0.000006153238i
  −3.5    
   1.500007105225 
 1 
- testarea solutiilor obtinute:
 −2.65921× 10− 12 − 7.40297i× 10− 12 
 −0.5 − 0.866025403784i   − 12 − 12 
 −0.5 + 0.866025403784i
  −2.65921× 10 + 7.40297i× 10 
 
F  1.499996447388+ 0.000006153238i  =  − 15 
1.77636× 10
 
  1.499996447388− 0.000006153238i   − 15 
  
1.77636× 10

 1.500007105225 
 − 15 
 1.33227× 10 

Se observă că, pentru exemplul considerat metoda, metoda companionului matriceal este
mai precisă decât La Guèrre.
e. În situaţiile în care soluţiile obţinute nu sunt convenabile, din punctul de vedere al preciziei
obţinute, valorile rădăcinilor pot fi rafinate prin utilizarea funcţiei root. Această funcţie
este prezentată în subcapitolul 14.2.
f. Valorile exacte, ale soluţiilor unei ecuaţii algebrice, se pot determina prin utilizarea
calculului simbolic disponibil în Mathcad (vezi subcapitolul 14.5).

14.1.1. Metoda La Guèrre

Metoda La Guèrre reprezintă un procedeu numeric iterativ utilizat pentru calculul soluţiilor
unei ecuaţii algebrice şi presupune parcurgerea următoarelor etape, [RMM01]:
1. Definirea vectorului coeficienţilor ecuaţiei algebrice, v, ce urmează a fi rezolvată.
2. Se alege, drept soluţie iniţială, coeficientul termenului liber, v0, al ecuaţiei.
3. Se construieşte un şir a cărui limită este o rădăcină a ecuaţiei algebrice. Expresia
termenului general al acestui şir este prezentată în continuare:
 −2 
1 
 
- vectorul coeficientilor ecuatiei algebrice: v :=  5 
1 
 
2 
4

i
- expresia ecuatiei algebrice: P( v , x) := v ⋅x
i
i=0
4

i− 1
- expresia derivatei de ordinul I: d ( v , x) := v ⋅ i⋅ x
i
i=1
4

i− 2
- expresia derivatei de ordinul II: d2( v , x) := v ⋅ i ⋅ ( i − 1) ⋅ x
i
i =2

181
d ( v , x) 2 d2( v , x)
Se definesc urmatoarele cantitati: G( v , x) := H( v , x) := G( v , x) −
P( v , x) P( v , x)

d1( v , x) := G( v , x) + (
( 4 − 1) ⋅ 4 ⋅ H( v , x) − G( v , x)
2 )
(
d2( v , x) := G( v , x) − ( 4 − 1) ⋅ 4 ⋅ H( v , x) − G( v , x)
2)
d ( v , x) := if( d1( v , x) > d2( v , x) , d1( v , x) , d2( v , x) )
4
a( v , x) :=
d ( v , x)

- solutia initiala: g := v ==> g = −2


0 0 0
- numarul total de iteratii: Nr := 6 i := 1 .. Nr j := 0 .. Nr
- expresia sirului ce are ca limita solutia ecuatiei: g := g
i i− 1 (
− a v,g )
i− 1
- valorile calculate ale sirului ce converge spre radacina ecuatiei:

 −2 
 
 −0.156252 0 2 4 6 8
 −0.666878 gj
g =  −0.715241
  2
 −0.715225
 −0.715225
 0.715225 4
− 
j
- valorile calculate ale polinomului :

 40  50
 
 −2.037

 −0.344  P( v , gj)
 −4 
P( v , g ) =  1.186 × 10 
 − 15 
 −4.774 × 10  2 0 2 4 6 8
 0 
 
 0  j

(
P v,g
last( g) )=0
  −2  
 1   −0.715 
  −0.142 − 1.666i
- calculul solutiilor ecuatiei polyroots   5   = 
utilizand functia polyroots:  1   −0.142 + 1.666i
   
 0.5 
 2 

4. Se determină o rădăcină, x1 , a ecuaţiei algebrice.


5. Se simplifică ecuaţia cu expresia x − x1 :

182
fn( x )
= f n−1( x ) . (14.6)
x − x1
Dacă presupunem că ecuaţia de rezolvat este de forma (14.4) se observă că ecuaţia
rezultată, f n −1( x ) , este tot o ecuaţie algebrică, dar de grad inferior.
6. Se reia algoritmul, de la pasul 1, pentru ecuaţia (14.6) astfel obţinută, până se calculează
toate cele n rădăcini ale ecuaţiei iniţiale.

14.1.2. Metoda companionului matriceal

Această metodă, [RMM00], de calcul a rădăcinilor unei ecuaţii algebrice de ordinul n,


presupune determinarea rădăcinilor ca valori proprii ale matricei:
0 0 L 0 L 0 − a0
1 0 L 0 L 0 − a1
0 1 L 0 L 0 − a2
M M L M L M M .
0 0 L 1 L 0 − ai
M M L M L M M
0 0 L 0 L 1 − an−1

Valorile ai , i ∈ 0 ,n − 1 reprezintă coeficienţii ecuaţiei algebrice, de gradul n, mai puţin


coeficientul termenului ce conţine necunoscuta la puterea n.

Exemplul 3: Să se rezolve ecuaţia algebrică de gradul şase:


x 6 + x 5 − 14 ⋅ x 4 − 5 ⋅ x 3 + 19 ⋅ x 2 + 34 ⋅ x + 24 = 0 .
- expresia ecuatiei algebrice:
6 5 4 3 2
P( x) := x + x − 14⋅ x − 5⋅ x + 19⋅ x + 34⋅ x + 24
- vectorul coeficientilor ecuatieii algebrice:
 24   24 
   
 34   34 
 19   19 
P( x) coeffs , x →  −5  ==> v :=  −5 
   
 −14   −14 
 1   1 
   
 1   1 
- se definesc tablourile:
j := 0 .. length ( v ) − 2 i := 0 .. length ( v ) − 3
C := v
j j
A := identity ( length ( v ) − 2) 0 0 0 0 0 −24 
1 0 0 0 0 −34 
F
0, i
:= 0  
0 1 0 0 0 −19 
G := augment ( stack ( F , A ) , −C) ==> G=
0 0 1 0 0 5
0 0 0 1 0 14

 
0 0 0 0 1 −1 

183
- calculul valorilor proprii ale tabloului G:
 −0.5 + 0.866i
 −0.5 − 0.866i 
  valorile obtinute
 −1  reprezinta radacinile
r := eigenvals ( G) ==> r=
 2  ecuatiei algebrice
 3

 
 −4 
 −4 
 −1 
 
 −0.5 − 0.866i 
- calculul solutiilor ecuatiei polyroots ( v ) =
utilizand functia polyroots:  −0.5 + 0.866i
 2

 
 3 

14.2. REZOLVAREA NUMERICĂ ITERATIVĂ


A ECUAŢIILOR TRANSCENDENTE

Ecuaţiile transcendente au fost denumite astfel de către matematicianul Leonhard EULER,


„quod algebrae vires transcendent”, deoarece rezolvarea lor este mai dificilă decât cea a ecuaţiilor
algebrice. Din această categorie de ecuaţii fac parte: ecuaţii exponenţiale, ecuaţii logaritmice,
ecuaţii trigonometrice etc.
În Mathcad acest tip de ecuaţii se rezolvă prin intermediul funcţiei root. Datorită
algoritmilor, pe care îi utilizează, root reprezintă o funcţie cu un grad mare de generalitate, ce poate
fi folosită la rezolvarea ecuaţiilor cu o necunoscută, indiferent de tipul lor.
În funcţie de numărul argumentelor cu care este apelată, funcţia root permite calculul
numeric iterativ al soluţiilor unei ecuaţii în două variante:

o Sintaxa funcţiei: root(f(x), x);


root(f(x), x, a, b);
o Argumentele funcţiei: ¬ x – reprezintă variabila ecuaţiei. Acestei variabile, anterior apelării
funcţiei root, i se va atribui o valoare iniţială pe baza căreia se calculează numeric soluţia
ecuaţiei;
¬ f(x) – reprezintă funcţia, a cărei rădăcină dorim să o calculăm, din
condiţia:
f(x) = 0; (14.7)
¬ a, b – reprezintă limita inferioară, respectiv cea superioară, a < b , a
intervalului în care se caută soluţia ecuaţiei;

o Valoarea returnată: soluţia numerică aproximativă, sol, a ecuaţiei (14.7), care respectă condiţia:
f ( sol ) ≤ TOL (14.8)

o Observaţii:
a. Funcţia root, varianta cu două argumente, poate fi utilizată respectând următorii paşi:

184
Etape ________________________________
1. Clic într-o zonă liberă a foii de lucru.
2. Se defineşte expresia funcţiei f ( x ) , a cărei soluţie urmează a fi calculată.
3. Se precizează valoarea iniţială a variabilei x. Această valoare iniţială reprezintă o primă
aproximaţie a soluţiei ecuaţiei. Succesul rezolvării depinde de alegerea adecvată a
soluţiei iniţiale. De aceea se recomandă ca valoarea de start să fie cât mai apropiată de
soluţie. Pentru ecuaţiile transcendente nu se cunoaşte a priori numărul de soluţii.
Prin reprezentarea grafica a funcţiei, f ( x ) , se pot obţine
informaţii despre numărul şi poziţionarea acestora.
De asemenea, odată reprezentată grafic funcţia, prin
utilizarea facilităţilor de afişare a coordonatelor cursorului
în graficele 2D, vezi subcapitolul 9.1.8.2., se poate
determina cu suficientă precizie valoarea iniţială a soluţiei
ecuaţiei.
4. Se apelează funcţia root.
______________________________________________________________________________________________

Exemplul 4: Să se rezolve ecuaţia transcedentală:


(x − 1)1.8 − 0.9 ⋅ e +5= 0.

x
1.8 2
f ( x) := ( x − 1) − 0.9⋅ e +5 - expresia functiei.

10

0 2 4 6 8 10
f ( x)

10

20

x
x := 7.03 - precizarea valorii initiale.

y := root ( f ( x) , x) - apelarea functiei root


==> y = 7.047 - solutia ecuatiei

Verificare: −4
f ( y ) = −5.77 × 10

b. O altă modalitate de utilizare a acestei funcţii constă în posibilitatea introducerii în mod


direct a expresiei funcţiei f ( x ) , ca primul argument al funcţiei root. În cele ce urmează
este prezentat acest mod de utilizare al funcţiei root, pentru rezolvarea ecuaţiei din
exemplul 4.

185
x := 7.03 - precizarea valorii initiale.

 x 
 1.8 2 
y := root ( x − 1) − 0.9⋅ e + 5 , x - apelarea functiei root
==> y = 7.047 - solutia ecuatiei

Verificare: −4
f ( y ) = −5.77 × 10

c. În cazul funcţiei root, varianta cu două argumente, există câteva posibilităţi de utilizare
necorespunzătoare. În continuare sunt prezentate greşelile frecvente, ce pot apare, în
utilizarea acestei funcţii:
x 2 - expresia functiei.
f ( x) := 2 − 3⋅ x − 1

1. Rezolvarea ecuatiei f(x)=0:

t := 6.5 root ( f ( t) , t) = 7.349

2. Utilizarea necorespunzatoare a functiei root:

Cazul 1: x := 6.5
1 ( ( 1) 1) =
root f x , x

Cazul 2: y := 6.5 root ( f ( x) , y ) =

Cazul 2: z := 6.5 root ( f , z) =

Cazul 3: root ( f ( x) , 6.5) =

d. Dacă se caută o rădăcină complexă a ecuaţiei, valoarea iniţială trebuie să fie un număr
complex.

Exemplul 5: Să se rezolve ecuaţia:


x 6 + x 5 − 14 ⋅ x 4 − 5 ⋅ x 3 + 19 ⋅ x 2 + 34 ⋅ x + 24 = 0 .

6 5 4 3 2
P ( x) := x + x − 14 ⋅ x − 5 ⋅ x + 19 ⋅ x + 34 ⋅ x + 24

Valori initiale: Apelarea functiei root: Valorile radacinilor:

x := 1 + i Sol0 := root ( P ( x) , x) Sol0 = −0.5 + 0.8660254i


x := 1 − i Sol1 := root ( P ( x) , x) Sol1 = −0.5 − 0.8660254i

e. Varianta funcţiei root, cu patru argumente, nu necesită precizarea unei valori iniţiale,
pentru calculul soluţiei unei ecuaţii. Intervalul [a,b] ce conţine soluţia ecuaţiei trebuie, în
schimb, specificat sub forma unor valori ale celor două argumente suplimentare. În acest
caz trebuie să fie respectate condiţiile:
ƒ intervalul [a,b] trebuie ales astfel încât să conţină doar o singură rădăcină;
ƒ f ( a )⋅ f ( b ) < 0 .

186
x
1.8 2
g ( x) := ( x − 1) + 5 − 0.9⋅ e - expresia functiei.

x := 7.01 - precizarea valorii initiale.

y := root ( g ( x) , x) - apelarea funcitiei root

==> y = 7.047 - solutia ecuatiei

f. Dacă o ecuaţie are mai multe rădăcini, pentru a le determina, este necesar să utilizăm
funcţia root cu diferite valori iniţiale. În aceste condiţii valorile iniţiale, pentru calculul
tuturor soluţiilor, se pot determina prin reprezentarea grafică a funcţiei.

Exemplul 6: Să se rezolve ecuaţia:


( )
ln x 2 + 1 − 2 ⋅ sin x = 3.8 .

(2 )
F( x) := ln x + 1 − 2 sin ( x) − 3.8

F ( x)
20 10 0 10 20

x
Valori initiale: Apelarea functiei root: Valorile radacinilor:

t := −18.0 r := root ( F( t) , t) r = −17.539885


0 0
t := −16.9 r := root ( F( t) , t) r = −16.899798
1 1
t := −12.15 r := root ( F( t) , t) r = −11.943153
2 2
t := −10.15 r := root ( F( t) , t) r = −9.825561
3 3
t := −6.50 ==> r := root ( F( t) , t) r = −6.326164
4 4
t := 5.90 r := root ( F( t) , t) r = 6.224365
5 5
t := 8.95 r := root ( F( t) , t) r = 9.104562
6 6
t := 12.95 r := root ( F( t) , t) r = 13.331971
7 7
t := 14.50 r := root ( F( t) , t) r = 14.787230
8 8

g. Precizia de calcul a soluţiei unei ecuaţii poate fi controlată prin utilizarea variabilei
predefinite TOL, din condiţia (14.8). Această variabilă poate lua valori în intervalul [0,1].

187
Valoarea implicită a acestei variabile
este 10-3. Pentru a modifica precizia de
rezolvare a unei ecuaţii există două metode:
• prin supradefinirea, în foaia de calcul, a
valorii variabilei TOL. Valoarea minimă
recomandată a acestei variabile este 10-15.
Modificarea valorii variabilei TOL se
efectuează înaintea apelării funcţiei root;
• prin modificarea valorii Convergence
Tolerance (TOL), din fereastra de dialog
a tab-ului Built-In Variables, ce apare
ca urmare a alegerii opţiunii Options
meniul Math.

h. În anumite circumstanţe, stabilirea unei valori mici a variabilei TOL, sau alegerea unei
valori iniţiale îndepărtate de soluţia ecuaţiei, pot conduce la compromiterea rezolvării
ecuaţiei. În general, micşorarea valorii lui TOL are ca efect creşterea timpului de calcul
necesar pentru obţinerea soluţiei.

Exemplul 7: Să se rezolve ecuaţia transcedentală:


( )
5⋅ ex − 4 = x ⋅ex .

i. Pentru o ecuaţie care are mai multe rădăcini şi la care am determinat o valoare r a unei
soluţii, căutarea unei noi rădăcini se poate realiza prin ecuaţia echivalentă, [UGM00]:
f(x)
=0 (14.9)
(x−r)
Acest procedeu, împreună cu scăderea valorii variabilei TOL, poate fi utilizat cu succes
pentru a calcula două rădăcini foarte apropiate ale unei ecuaţii.
j. Dacă funcţia f(x) are o pantă mică în vecinătatea soluţiei, valoarea calculată a rădăcinii
poate rezulta cu o precizie relativ scăzută. În acest caz, pentru îmbunătăţirea preciziei de
rezolvare se poate micşora valoarea variabilei TOL, sau se va căuta rădăcina ecuaţiei,
[RMM00]:
f(x)
=0. (14.10)
f ′( x )
Mai jos este prezentat modul de utilizare al ecuaţiei (14.10) pentru calculul rădăcinilor
ecuaţiei din exemplul anterior.

188
(x )
F( x) := 5 ⋅ e − 4 G( x) := x ⋅ e
x
H( x) := F( x) − G( x)

− 10
TOL ≡ 10 root ( H( k) , k , 4.5, 5) = 4.8422076548

− 15
TOL := 10 root ( H( k) , k , 4.5, 5) =

800

F( x)

G( x)
600

4.6 4.7 4.8 4.9 5


x

d  ( )
5 ⋅ e − 3 − x ⋅ e  → 4 ⋅ exp( x) − x ⋅ exp( x) substitute , x
x x
k → 4 ⋅ exp( k) − k ⋅ exp( k)
dx
(k )
5⋅ e − 3 − k⋅ e
k
simplify → ( −5 ⋅ exp( k) + 15 + k ⋅ exp( k) ) ⋅
exp( −k)
4 ⋅ exp( k) − k ⋅ exp( k) ( −4 + k)

k := 4.8422

root ( −5 ⋅ exp( k) + 15 + k ⋅ exp( k) ) ⋅


exp( −k) 
, k = 4.88681923318
 ( −4 + k) 

k. Funcţia root, împreună cu valori mici, atribuite variabilei TOL, poate fi utilizată pentru
rafinarea soluţiilor ecuaţiilor algebrice. În continuare este prezentată foaia de calcul care
ilustrează această procedură, în cazul ecuaţiei algebrice din exemplul 2.

- expresia ecuatiei polinomiale


5 4 3 2
F( x) := x − 3.5⋅ x + 3.25⋅ x − 1.125⋅ x + 3.375⋅ x − 3.375
- determinarea solutiilor ecuatiei prin metoda LaGuerre:

  −3.375  
  3.375    −0.500000065581− 0.866025442682i
 −0.500000058999+ 0.86602542541i
   
  −1.125  
polyroots =  1.496910757836+ 0.005362691362i
  3.25  
  −3.5    1.496918252261− 0.00536267409i 
   
 1.506171114483 
 1 
- testarea solutiilor obtinute :
 1.34248× 10− 6 + 2.58833i× 10− 7 
  −0.500000065581− 0.866025442682i   −9
  −0.500000058999+ 0.86602542541i  −6
 1.12671× 10 − 7.26888i× 10 
 
F  1.496910757836+ 0.005362691362i  =  1.12304× 10− 6 + 1.81963i× 10− 9 
 
  1.496918252261− 0.00536267409i    1.12100× 10− 6 + 1.70997i× 10− 9 
   
 1.506171114483 
 1.12212× 10
−6 

189
-rafinarea solutiei x =1.506171114483

− 15
TOL := 10
y := 1.506171114483
sol := root ( F( y ) , y ) ==> sol = 1.5000037304
Verificare: F( 1.50000) = 0.0000000000

l. Funcţia root poate fi utilizată şi la rezolvarea unei familii de ecuaţii, ce depinde de un


parametru, ale cărui valori sunt cunoscute.

Exemplul 8: Să se rezolve ecuaţia:


1 − x − a + (1 − x )− a = 0 ,
pentru următoarele valori ale parametrului a: 0.4; 0.5; 0.8; 1.0; 1.5; 2.2.

− 10
TOL := 10
−a −a - expresia functiei
F( x, a) := 1 − x + ( 1 − x)

 0.4 
 0.5 
 
0.8 
a :=  - valorile parametrului a
 1.0 
 1.5 
 
 2.2  i := 0 .. length ( a) − 1

Solutia initiala: Rezolvarea ecuatiei in functie


de diferitele valori ale parametrului a
y := 0.3

i ( ( i) )
sol := root F y , a , y
 0.161612
 0.219952
 
 0.336723
Solutiile familiei de ecuatii: sol =
 0.381966
 0.442219
 
 0.475402

m. Funcţia root poate fi utilizată pentru definirea, de către utilizator, a unor noi funcţii. În cele
ce urmează este prezentată o foaie de calcul Mathcad unde funcţia root este utilizată pentru
definirea funcţiei inverse. Acest lucru este posibil prin rezolvarea succesivă, pentru diferite
valori ale variabilei x, a ecuaţiei:
f(x)= x (14.11)

Exemplul 9: Să se determine inversa funcţiei:


t
F ( t ) = t − 10 ⋅ sin  .
5

190
− 14
TOL := 10
p := 0 -solutia initiala

I( x) := root  p − 10⋅ sin 


p  
  − x, p - definirea functiei inverse.
  5  
q := −5 , −4.9995.. 5

5
4

2
t
t − 10 sin 
 5
I( q) 4 2 0 2 4
r

−5

−5 t , q, r 5

n. Metodele numerice, de calcul a rădăcinii unei ecuaţii, utilizate de funcţia root – varianta cu
două argumente, sunt:
ƒ metoda coardei;
ƒ metoda Mueller
şi
ƒ metoda Ridder;
ƒ metoda Brent,
în cazul variantei cu patru argumente.
La apelarea funcţiei root algoritmii intră, în acţiune, în ordinea enumerării lor. Dacă prima
metodă iterativă nu este convergentă, sau nu se poate determina rădăcina cu precizia
impusă, atunci se trece automat la utilizarea celei de a doua metode. Dacă nici în acest caz
nu este posibilă obţinerea soluţiei cu nivelul de precizie cerut, Mathcad-ul afişează un
mesaj de eroare.
Acelaşi mesaj de eroare poate apare şi în situaţiile următoare, [RMM01]:
ƒ ecuaţia nu are soluţie relativ la domeniul ei de definiţie;
ƒ valoarea iniţială furnizată funcţiei root este prea departe de rădăcina ecuaţiei;
ƒ funcţia f(x) are un punct de extrem local (punct de maxim sau de minim) în
vecinătatea soluţiei ecuaţiei;
ƒ funcţia f(x) are un punct de discontinuitate în vecinătatea soluţiei ecuaţiei;
ƒ ecuaţia are rădăcini complexe, iar valoarea iniţială a fost precizată cu valoare
reală.

191
14.2.1. Metoda coardei

Sub această denumire se întâlnesc două metode, diferite, de calcul numeric iterativ a soluţiei
unei ecuaţii, [MEM80]:
• metoda falsei poziţii (sau metoda secantei);
• metoda coardei cu punct fix.

14.2.1.1. Metoda falsei poziţii

Presupunem că ecuaţia (14.7) are o rădăcină reală, xr, izolată în intervalul [a,b] şi că f’(x)
este continuă şi păstrează semnul pentru x∈[a,b].
Având o aproximaţie iniţială, x0, a rădăcinii xr, prin această metodă se poate construi un şir
xi, i ∈1,n , a cărui limită este:
lim xn = xr . (14.12)
n →∞

Se procedează în felul următor:


ƒ Se alege, vezi fig. 14.1, un nou punct x1, din condiţia, [MEM80], [ŞAB83]:
f ( x1 ) < f ( x0 ) (14.13)

f(x) M0(x0,f(x0))

M1(x1,f(x1))

M4(x4,f(x4))

a x0 x1 x4 x3 b

0 x2 x
xr
M3(x3,f(x3))

M2(x2,f(x2))

Fig. 14.1 Metoda falsei poziţii, sau metoda secantei

Cele două puncte de pe curba y = f(x), M0(x0, y0 = f(x0)) şi respectiv M1(x1, y0 = f(x1)), se
unesc printr-o dreaptă de ecuaţie:
x1 − x y −y
= 1 . (14.14)
x1 − x0 y1 − y0
Ecuaţia (14.14) se poate scrie sub forma:

192
y0 ⋅ ( x − x1 ) y1 ⋅ (x − x1 )
y= − . (14.15)
x0 − x1 x1 − x0
ƒ Următorul punct, x2, al şirului ce converge la limită spre rădăcina ecuaţiei, se alege la
intersecţia dreptei M 0 M 1 cu axa Ox. Abscisa acestui punct se determină pe baza ecuaţiei
(14.15), din condiţia:
 x = x2
 . (14.16)
y = 0
După o serie de transformări, rezultă:
x1 ⋅ y0 − x0 ⋅ y1
x2 = . (14.17)
y0 − y1

ƒ Se trasează secanta prin punctele M 1M 2 . Următorul punct, x3, al şirului ce converge la limită
spre rădăcina ecuaţiei, se alege la intersecţia dreptei M 1M 2 cu axa Ox. Se obţine, procedând
asemănător ca în cazul punctului x2, abscisa:
x2 ⋅ y1 − x1 ⋅ y 2
x3 = . (14.18)
y1 − y 2
ƒ Se determină punctul x4 etc.
ƒ Expresia generală a şirului ce converge la limită spre rădăcina ecuaţiei rezultă:
xn ⋅ y n−1 − xn−1 ⋅ y n xn ⋅ f ( xn−1 ) − xn−1 ⋅ f ( xn )
xn+1 = = . (14.19)
y n−1 − y n f ( xn−1 ) − f ( xn )

ƒ După fiecare iteraţie se calculează f ( xi ), i ∈1,n şi se testează dacă:

f ( xi ) ≤ ε , (14.20)

unde ε reprezintă precizia impusă pentru rezolvarea ecuaţiei. Dacă condiţia (14.20) este
îndeplinită algoritmul de calcul este forţat să se oprească, iar valoarea xi, este returnată drept soluţie
a ecuaţiei.

14.2.1.2. Metoda coardei cu punct fix

Presupunem că ecuaţia (14.7) are o rădăcină reală, xr, izolată în intervalul [a,b] şi că f’(x)
este continuă şi păstrează semnul pentru x∈[a,b].
Pornind de la o aproximaţie iniţială, x0, a rădăcinii xr, această metodă permite construirea un
şir xi, i ∈1,n , a cărui limită este xr, procedând în felul următor, [MEM80], [LAR89]:
ƒ Se alege, vezi fig. 14.2, un nou punct x1, din condiţia (14.13). Cele două puncte de pe curba
y = f(x), M0(x0, y0 = f(x0)) şi respectiv M1(x1, y0 = f(x1)), se unesc printr-o dreaptă de ecuaţie:
x1 − x y −y
= 1 . (14.21)
x1 − x0 y1 − y0
ƒ Următorul punct, x2, al şirului ce converge la limită spre rădăcina ecuaţiei, se alege la
intersecţia dreptei M 0 M 1 cu axa Ox. Abscisa acestui punct se determină pe baza ecuaţiei
(14.21), din condiţia:

193
 x = x2
 . (14.22)
y = 0
Rezultă, după o serie de transformări:
x1 ⋅ y0 − x0 ⋅ y1 x −x
x2 = = x1 − y1 ⋅ 0 1 . (14.23)
y0 − y1 y0 − y1

ƒ Se trasează coarda prin punctele M 0 M 2 . Următorul punct, x3, al şirului ce converge la limită
spre rădăcina ecuaţiei, se alege la intersecţia dreptei M 0 M 2 cu axa Ox. Se obţine, procedând
asemănător ca în cazul punctului x2, valoarea abscisei:
x0 − x 2
x3 = x 2 − y 2 ⋅ . (14.24)
y0 − y 2

f(x)

M0(x0,f(x0))

M1(x1,f(x1))

x2 x3 x4

x1 x0 x
M4(x4,f(x4)) xr
M2(x2,f(x2)) M3(x3,f(x3))

Fig. 14.2 Metoda coardei cu punct fix

ƒ Se determină punctul x4 etc.


ƒ Expresia generală a şirului ce converge la limită spre rădăcina ecuaţiei rezultă:
x0 − x n x0 − x 2
xn+1 = xn − y n ⋅ = xn − f ( xn ) ⋅ . (14.25)
y0 − y n f ( x0 ) − f ( x n )

ƒ La fiecare iteraţie se calculează f ( xi ), i ∈1,n şi se testează dacă:

f ( xi ) ≤ TOL , (14.26)

unde TOL reprezintă o variabilă Mathcad predefinită. Valoarea implicită a acestei variabile
este 10-3. Dacă condiţia (14.26) este îndeplinită algoritmul de calcul este forţat să se oprească,
iar valoarea xi, este returnată drept soluţie a ecuaţiei.
Metoda coardei cu punct fix, cu diferite implementări, este utilizată de funcţia root, pentru
calculul numeric iterativ al rădăcini unei ecuaţii.

194
14.3 REZOLVAREA NUMERICĂ A SISTEMELOR
DE ECUAŢII LINIARE

Rezolvarea sistemelor de ecuaţii este una din cele mai frecvente aplicaţii care apare în
calculul numeric. Există numeroase fenomene care au ca model matematic sistemele de ecuaţii, sau
generează sisteme de ecuaţii. Metodele de rezolvare a sistemelor de ecuaţii liniare pot fi grupate în
trei categorii:
ƒ cu ajutorul matricei inverse;
ƒ cu ajutorul metodei eliminării;
ƒ cu ajutorul tehnicilor iterative.
Se consideră sistemul de n ecuaţii liniare, cu n necunoscute:
a11 ⋅ x1 + a12 ⋅ x2 + L + a1n ⋅ xn = b1
a ⋅ x + a ⋅ x + L + a ⋅ x = b
 21 1 22 2 2n n 2
 M M M M
 . (14.27)
ai1 ⋅ x1 + ai 2 ⋅ x2 + L + ain ⋅ xn = bi
 M M M M

an1 ⋅ x1 + an 2 ⋅ x2 + L + ann ⋅ xn = bn
Sistemul (14.27) se poate scrie sub formă matriceală:
A⋅ x = b , (14.28)
unde s-a notat:
a11 a12 L a1i L a1n  x1   b1 
a21 a22 L a2i L a2 n x  b 
 2  2
M M L M L M M  M 
A= ; x =  ; b =   . (14.29)
ai1 ai 2 L aii L ain  xi   bi 
M M L M L M M  M 
   
an1 an 2 L ani L anjn  xn  bn 
Sistemul (14.29) are o soluţie unică dacă şi numai dacă determinantul lui A este diferit de
zero, adică dacă matricea A este nesingulară. Când matricea A este nesingulară, atunci există
matricea inversă A-1, astfel că:
A−1 ⋅ A = A ⋅ A−1 = I , (14.30)
unde I este matricea unitate de ordinul n.
Rezolvarea sistemului de ecuaţii (14.27) cu ajutorul matricei inverse se bazează pe
proprietatea (14.30). Dacă înmulţim ecuaţia (14.28), la stânga cu A-1 şi ţinând seama că I⋅x = x, se
obţine:
x = A−1 ⋅ b . (14.31)
În Mathcad rezolvarea sistemelor de ecuaţii liniare, prin metoda matricei inverse, se
realizează foarte simplu prin utilizarea operatorilor specializaţi pentru calculul tablourilor de date.
x + y + z = 1

Exemplul 10: să se rezolve sistemul de ecuaţii liniare, 2 ⋅ x + 3 ⋅ y + 4 ⋅ z = 5 .
4 ⋅ x + 9 ⋅ y + 16 ⋅ z = 25

195
- se definesc tablourile de date:

1 1 1   1
A :=  2 3 4  b :=  5 
   
4 9 16   25 
- se calculeaza solutia sistemului, prin metoda matricei inverse:
1 
x =  −3 
−1 ==>
x := A ⋅b rezulta solutia sistemului
 
3 
1
Verificare: A⋅x =  5 
 
 25 

Cea de-a doua posibilitate oferită de Mathcad, pentru rezolvarea sistemelor liniare de
ecuaţii, constă în utilizarea funcţiei specializate lsolve:
o Sintaxa funcţiei: lsolve(A, b);
o Argumentele funcţiei: ¬ A – reprezintă matricea coeficienţilor, (14.29), celor n necunoscute
ale sistemului de ecuaţii (14.33);
¬ b – reprezintă vectorul termenilor liberi, (14.29).
o Valoarea returnată: un vector, avînd n linii × o coloană, ce conţine soluţiile celor n necunoscute
ale sistemului de ecuaţii.
o Observaţii:
a. Modul de utilizare al funcţiei lsolve rezultă din foaia de calcul prezentată mai jos.
2 ⋅ x + 3 ⋅ y + z + t = 10
 x + 2 ⋅ y − 3 ⋅ z + t = −8

Exemplul 11: Să se rezolve sistemul de ecuaţii liniare,  .
− x − y + 2 ⋅ z + 3 ⋅ t = 25
3 ⋅ x − y + z + 2 ⋅ t = 26

- se definesc tablourile de date:

 2 3 1 1
  10 
1 2 −3 1   −8 
A := b :=
 −1 −1 2 3   25 
3   26 
 −1 1 2   
- se calculeaza solutia sistemului:

 x 
 y  := lsolve ( A , b) ==> rezulta solutia sistemului: x = 2.76471
z
t  y = −1.86275
 
z = 4.27451
 x   10  t = 5.78431
y −8
Verificare: A⋅  = 
z  25 
t   26 
   

196
b. Funcţia lsolve se utilizează pentru rezolvarea sistemelor liniare de n ecuaţii cu n
necunoscute. Rezolvarea sistemelor de ecuaţii supradeterminate, de n ecuaţii cu m
necunoscute, unde m < n, se poate realiza prin utilizarea funcţiei Find.
c. Dimensiunile maxime, ale sistemelor liniare de ecuaţii, ce pot fi rezolvate prin utilizarea
funcţiei lsolve sunt 50 de ecuaţii cu 50 de necunoscute pentru Mathcad varianta Premium
şi 500 de ecuaţii cu 500 de necunoscute în cazul Mathcad-ului varianta profesională.
d. Precizia de rezolvare a sistemului de ecuaţii depinde de valoarea numărului de condiţionare
a matricei A şi de complexitatea sistemului. Numărul de condiţionare oferă informaţii
despre precizia cu care poate fi inversată o matrice. În Mathcad există câteva funcţii
predefinite, având ca argument un tablou pătratic, care calculează condiţionarea unei
matrice pe baza diferitelor norme existente. Aceste funcţii sunt prezentate în tabelul 14.1.
Valori mari ale numărului de condiţionare indică faptul că matricea este aproape singulară,
deci precizia de calcul, a soluţiilor sistemului de ecuaţii, este slabă.
e. Algoritmul de rezolvare, implementat funcţiei lsolve, are la bază metoda lui Crout.

Tabelul 14.1 Funcţii pentru determinarea condiţionării matricelor

Nr. Sintaxa
Valoarea returnată Observaţii
crt. funcţiei
Funcţia norm1(A) returnează
Valoarea de condiţionare a matricei A valoarea normei L1:
1. cond1(A) calculată cu ajutorul normei L1:
 n−1 
norm1(A)⋅norm1(A-1) norm1( A ) = max  ∑ Ai , j  .

j =0 ,n −1 i =0

Valoarea de condiţionare a matricei A
calculată cu ajutorul normei L1: Funcţia norm2(A) returnează
2. cond2(A)
valoarea normei L2.
Norm2(A)⋅norm2(A-1)
Funcţia normi(A) returnează
Valoarea de condiţionare a matricei A valoarea normei infinite:
3. condi(A) calculată cu ajutorul normei infinite:
 n−1 
normi(A)⋅normi(A-1) normi ( A ) = max  ∑ Ai , j 
i =0 ,n −1 j =0 
 
Funcţia norme(A) returnează
Valoarea de condiţionare a matricei A valoarea normei euclidiene:
4. conde(A) calculată cu ajutorul normei euclidiene: 1
 n−1 n−1 2
norme(A)⋅norme(A-1) norme ( A ) =  ∑∑ Ai2, j 
 i =0 j =0 
 

14.3.1. Metoda lui Crout

Această metodă exactă de rezolvare a sistemelor liniare se aplică matricei A, a sistemului de


ecuaţii (14.27) şi constă în descompunerea lui A într-un produs de două matrice T şi S, inferior şi
respectiv superior triunghiulare, [POS94]:
T ⋅ S = A, (14.32)

197
unde:
T ≡ tij , i ∈1, n , j ∈1, n;
1 dacã i = j

tij = 0 dacã i < j ;
t dacã i > j
 ij . (14.33)
S ≡ sij , i ∈1, n , j ∈1, n;
0 dacã i > j
sij =  .
 sij dacã i ≤ j

Pentru a exemplifica modul de identificare al elementelor tij şi sij se consideră cazul unui
sistem de patru ecuaţii cu patru necunoscute. În acest caz, folosind relaţiile (14.33), rezultă:
1 0 0 0 s11 s12 s13 s14
t 21 1 0 0 0 s22 s23 s24
T= , S=
t31 t32 1 0 0 0 s33 s34
t 41 t 42 t 43 1 0 0 0 s44
şi
s11 s12 s13 s14
t21 ⋅ s11 t21 ⋅ s12 + s22 t21 ⋅ s13 + s23 t21 ⋅ s14 + s24
T ⋅S = .
t31 ⋅ s11 t31 ⋅ s12 + t32 ⋅ s22 t31 ⋅ s13 + t32 ⋅ s23 + s33 t31 ⋅ s14 + t32 ⋅ s21 + s34
t41 ⋅ s11 t41 ⋅ s12 + t42 ⋅ s22 t41 ⋅ s13 + t42 ⋅ s23 + t43 ⋅ s33 t41 ⋅ s14 + t42 ⋅ s24 + t43 ⋅ s34 + s44
(14.34)
Considerăm matricea A de forma (14.29) şi prin identificare din ecuaţia (14.34), obţinem:
s1 j = a1 j , pentru j ∈1, n ;
ai1
ti1 = , pentru i ∈ 2, n ;
a11
k −1
. (14.35)
skj = akj − ∑ t kp ⋅ s pj dacã k ≤ j , k ≥ 2;
p =1

1  k −1 
tik = ⋅ aik − ∑ tip ⋅ s pk  dacã i > k , k ≥ 2.
skk  p =1 
Relaţiile (14.35) pot fi utilizate la calculul matricelor T şi S, indiferent de numărul de
necunoscute a sistemului de ecuaţii.
În continuare se defineşte s1,n +1 = b1 ; ai ,n +1 = bi şi se utilizează cea de-a treia ecuaţie din
relaţiile (14.35), cu j = n + 1, pentru a construi o nouă coloană matricei S, (si,n+1). Această nouă
coloană, pe care o notăm cu b(n), se foloseşte împreună cu matricea iniţială S la determinarea
soluţiilor sistemului de ecuaţii, din condiţia (14.28). Dacă se înlocuieşte, în ecuaţia (14.28), relaţia
(14.32), rezultă:
T ⋅ S ⋅ x = T ⋅ b( n ) . (14.36)
Înmulţind, apoi, ecuaţia (14.36), la stânga, cu T-1 obţinem:
S ⋅ x = b( n ) . (14.37)

198
Relaţia (14.37) stă la baza calculului soluţiilor sistemului liniar de ecuaţii. Se utilizează relaţiile:
 bn(n )
 xn =
 snn
 . (14.38)
 x = 1 ⋅  b (i ) − 
n

 i sii  i ∑ sij ⋅ x j , i = n − 1, n − 2,L ,2,1.


  j = i +1 
Semnificaţia relaţiilor (14.38) rezultă din metoda de eliminare lui Gauss. De aceea în continuare va
fi prezentată această metodă tradiţională de rezolvare a sistemelor liniare de ecuaţii.

14.3.2. Metoda de eliminare a lui Gauss

Asemenea metodei lui Crout şi metoda de eliminare a lui Gauss este o metodă exactă de
calcul a soluţiilor unui sistem liniar de ecuaţii. Singurele erori care pot să apară sunt erori de
rotunjire. De aceea, în cazul sistemelor cu un număr mare de ecuaţii, soluţiile sunt numere
aproximative. În plus, expresiile soluţiilor obţinute, prin utilizarea celor două metode, sunt identice.
Se preferă, totuşi, utilizarea metodei lui Crout datorită faptului că ea reduce considerabil numărul
de elemente intermediare ce trebuie memorate.
Ideea metodei de eliminare a lui Gauss constă în reducerea sistemului dat la un sistem cu
matrice triunghiulară şi apoi explicitarea succesivă a necunoscutelor, [MAR87], [DOD76].
Pentru simplificarea expunerii principiului acestei metode considerăm, la început sistemul:
a11 ⋅ x1 + a12 ⋅ x2 + a13 ⋅ x3 + a14 ⋅ x4 = b1
a ⋅ x + a ⋅ x + a ⋅ x + a ⋅ x = b
 21 1 22 2 23 3 24 4 2
 . (14.39)
a ⋅ x + a ⋅ x
 31 1 32 2 33 3 34 4 + a ⋅ x + a ⋅ x = b3
a41 ⋅ x1 + a42 ⋅ x2 + a43 ⋅ x3 + a44 ⋅ x4 = b4

Fie a11 ≠ 0 , atunci prin împărţirea primei ecuaţii cu a11, avem:


a1 j
x1 + b12 ⋅ x2 + b13 ⋅ x3 + b14 ⋅ x4 = b15 ; b12 = , j >i. (14.40)
a11
Folosind (14.40) se elimină x1 din ecuaţiile (2÷4) ale lui (14.39):
a22(1) (1) (1) (1)
⋅ x2 + a23 ⋅ x3 + a24 ⋅ x4 = a25
 (1) (1) (1) (1)
a32 ⋅ x2 + a33 ⋅ x3 + a34 ⋅ x4 = a35 , (14.41)
 (1) (1) (1) (1)
a42 ⋅ x2 + a43 ⋅ x3 + a44 ⋅ x4 = a45

unde:
aij(1) = a1 j − ai1 ⋅ b1 j ; i , j ≥ 2 . (14.42)
(1)
Analog, dacă a22 ≠ 0 , rezultă:

(1) (1) (1) (1) a2(1j)


x2 + b23 ⋅ x3 + b24 ⋅ x4 = b25 ; b2 j = (1) , j > 2. (14.43)
a22
Eliminând pe x2 din ecuaţiile (2÷3) ale lui (14.41), avem:

199
(2 )
a33 (2 ) (2 )
⋅ x3 + a34 ⋅ x4 = a35
 (2 ) , (14.44)
a43 ⋅ x3 + a44(2 ) (2 )
⋅ x4 = a45
unde:
aij(2 ) = aij(1) − ai(12) ⋅ b2(1j) ; i , j ≥ 3 . (14.45)
(2 )
Dacă a33 ≠ 0 , rezultă:

(2 ) (2 ) (2 ) a3(2j)
x3 + b34 ⋅ x4 = b35 ; b3 j = (2 ) , j > 3. (14.46)
a33
Eliminând pe x3 din ecuaţiile (14.44), obţinem:
(3 ) (3)
a44 ⋅ x4 = a45 , (14.47)
unde:
aij(3) = aij(2 ) − ai(32 ) ⋅ b3(2j ) ; i , j ≥ 4 . (14.48)

În final s-a obţinut un sistem echivalent cu matricea triunghiulară, A*:


1 b12 b13 b14
0 1 (1 )
b 23 (1 )
b 24 a ij(k )
A* = (2 ) , bij(k ) = pentru j > i, k = 0 ,1,2 ,L , (14.49)
0 0 1 b34 a ii(k )
0 0 0 1
cu vectorul termenilor liberi, b(n):
b15 
 (1) 
(n ) b25 
b =  (2 )  (14.50)
b35 
b (3) 
 45 
şi cu soluţia:
 (3)
a45
x
 4 = (3)
 a44
 (2 ) (2 )
 x3 = b35 − b34 ⋅ x4 . (14.51)
 (1) (1) (1)
 x2 = b25 − b23 ⋅ x3 − b24 ⋅ x4
x = b − b ⋅ x − b ⋅ x − b ⋅ x
 1 15 12 2 13 3 14 4
Soluţia sistemului liniar de ecuaţii (14.27) se poate obţine prin rezolvarea sistemului
echivalent:
A* ⋅ x = b ( n ) , (14.52)
unde A* şi b(n) se obţin din matricea A şi respectiv vectorul b, prin procedeul eliminării gaussiene
utilizând relaţii de tipul (14.40) ÷ (14.52).
În plus, se constată, analizând relaţiile (14.38) şi (14.51), că metoda lui Crout şi metoda de
eliminare a lui Gauss sunt echivalente din punctul de vedere al expresiilor ce se utilizează pentru
calculul soluţiilor sistemului de ecuaţii. Avantajul metodei lui Crout este că reduce considerabil
numărul de valori intermediare ce trebuie memorate în procesul de rezolvare.

200
14.4. REZOLVAREA NUMERICĂ ITERATIVĂ
A SISTEMELOR DE ECUAŢII NELINIARE

Forma generală a unui sistem de ecuaţii neliniare este:


 f1 (x1 , x2 ,K , xi ,K , xm ) = 0
 f ( x , x ,K , x ,K , x ) = 0
 2 1 2 i m
M
 f ( x , x ,K , x ,K , x ) = 0 , (14.53)
 j 1 2 i m
M

 f p (x1 , x2 ,K , xi ,K , xm ) = 0
unde:
ƒ xi , i = 1,m - reprezintă cele m necunoscute ale sistemului de ecuaţii;
ƒ f j ( x1 , x2 ,K , xi ,K , xm ), j = 1, p , - reprezintă p ≥ m expresii matematice ce depind de cele m
variabile, xi
Rezolvarea numerică, a unui sistem de neliniar de ecuaţii, reprezintă o problemă complexă.
Se face apel în acest caz la o serie de algoritmi de calcul deosebit de puternici şi cu un grad mare de
generalitate. În Mathcad, rezolvarea numerică a unei astfel de probleme, se realizează pornind de la
o aproximaţie iniţială, a soluţiei, prin intermediul a două funcţii:

o Sintaxa funcţiilor: Find( x1 , x2 ,K , xi ,K , xm );


Minerr( x1 , x2 ,K , xi ,K , xm );

o Argumentele funcţiei: ¬ xi , i = 1,m – reprezintă variabilele sistemului de ecuaţii. Acestor


variabile, anterior apelării funcţiei Find/Minerr, li se vor atribui valori iniţiale pe baza cărora
se calculează soluţia sistemului de ecuaţii, din condiţiile (14.53);
o Valoarea returnată: un vector, sol, cu m linii × o coloană, ce conţine valorile soluţiilor
numerice aproximative, soli , i = 0 ,m − 1 , ale sistemului de ecuaţii (14.53). Soluţiile calculate
respectă condiţiile:
 f1 (sol0 , sol1 ,K , soli ,K , sol m−1 ) < TOL
 f (sol , sol ,K , sol ,K , sol ) < TOL
 2 0 1 i m −1
M
 f (sol , sol ,K , sol ,K , sol ) < TOL , (14.54)
 j 0 1 i m −1
M

 f p (sol0 , sol1 ,K , soli ,K , sol m−1 ) < TOL

În cazul utilizării funcţiei Minerr, dacă condiţiile (14.54) nu pot fi îndeplinite, vectorul sol
conţine soluţiile numerice aproximative, ale sistemului de ecuaţii (14.53), calculate din condiţia
minimizării erorii pătratice:
err12 + err22 + L + err j2 + L + errp2 → min , (14.55)

unde s-a notat prin:

201
err1 = f1 (sol0 , sol1 ,K , soli ,K , sol m−1 )
err = f (sol , sol ,K , sol ,K , sol )
 2 2 0 1 i m−1
M
err = f (sol , sol ,K , sol ,K , sol ) , (14.56)
 j j 0 1 i m−1
M

errp = f p (sol0 , sol1 ,K , soli ,K , sol m−1 )

o Observaţii:
a. Utilizarea funcţiilor Find şi/sau Minerr se realizează respectând următorii paşi:

Etape ________________________________
1. Clic într-o zonă liberă a foii de lucru.
2. Se precizează valorile iniţiale ale variabilelor xi. Aceste valori iniţiale reprezintă o primă
aproximaţie a soluţiilor sistemului de ecuaţii. Tot cu această ocazie se declară şi
variabilele sistemului de ecuaţii. Succesul rezolvării depinde de alegerea adecvată a
soluţiilor iniţiale. De aceea se recomandă ca valorile de start să fie cât mai apropiate de
soluţia sistemului de ecuaţii.
3. Într-o zonă matematică a foii de calcul, se tastează cuvântul Given. Acesta informează
sistemul că pe foaia de lucru există un „bloc de rezolvare” (solve block) care necesită o
tratare specifică. Cuvântul Given şi identificatorul funcţiei Find/Minerr pot fi scrise cu
litere mici, cu majuscule sau combinate.
4. Se precizează cele p condiţii sub formă de ecuaţii. Scrierea acestor ecuaţii se realizează
prin utilizarea operatorului relaţional de identitate, nu simbolul egal. Acesta se obţine
prin acţionarea butonului , din paleta Boolean, sau prin tastarea [Ctrl]+[=].
5. Se apelează funcţia Find, sau Minerr. Zona din foaia de calcul, cuprinsă între cuvântul
Given şi funcţia Find, sau Minerr, poartă denumirea de bloc de tip solve. Blocul de
rezolvare poate conţine şi alte funcţii ca: Maximize, Minimize sau Odesolve.
______________________________________________________________________________________________________________________

x2
Exemplul 12: Să se determine punctele de intersecţie ale parabolei y = − 3 ⋅ x − 3 şi dreapta de
4
ecuaţie y = − x + 3 .
 y − x2 4 + 3⋅ x + 3 = 0
Sistemul de ecuaţii neliniare, corespunzător problemei din exemplul 12, este  .
y + x − 3 = 0

x := −1
y := 5
Given
2
x
y− + 3x + 3 0
4
y −x + 3 Blocul de tip solve

Sol1 := Find( x, y )
Sol1 = −2.325
0
Sol1 = 5.325
1

202
x := 10
- solutiile initiale
y := 1
Given
2
x
y− + 3x + 3 0 Blocul de tip solve
4
y −x + 3
Sol2 := MiNERr( x, y )
Sol2 = 10.325
0
Sol2 = −7.325
1

20
2
x1
− 3x1− 3 - semnificatia geometrica a
4 solutiei sistemului de ecuatii
− x1+ 3

Sol11
10 0 10 20
Sol21

20

x1, x1, Sol10 , Sol20

b. Dacă un sistem de ecuaţii are mai multe rădăcini, pentru a le determina, este necesar să
utilizăm funcţia Find/Minerr cu diferite valori iniţiale. În aceste condiţii se poate
determina soluţia cea mai apropiată de fiecare valoare iniţială. Acest lucru se poate observa
din exemplul anterior.
c. Dacă sistemul de ecuaţii are rădăcini complexe valorile iniţiale trebuie să fie numere
complexe. Valorile de start aproximative nu mai pot fi determinate, în acest caz, prin
reprezentarea grafică a funcţiilor.

Exemplul 13: să se calculeze soluţiile sistemului de ecuaţii:


2 ⋅ x = − y 2
 .
sin x + tgx = 2

x := i
- solutiile initiale
y := 2 − i

Given
2
2⋅ x −y
Blocul de tip solve
sin ( x) + tan ( y ) − 2 0

 1.07596 + 1.46759i
Find( x, y ) =  
 2.93518 − 2.15193i

203
d. Diferenţe între funcţiile Find şi Minerr pot să apară doar la rezultatele returnate. Şi anume,
în situaţiile în care condiţiile (14.54) nu pot fi îndeplinite, funcţia Find returnează un mesaj
de eroare. În aceleaşi condiţii, utilizarea funcţiei Minerr conduce la obţinerea unei soluţii,
care îndeplineşte condiţia (14.55). Precizia de calcul a soluţiei conţinute în vectorul
returnat de funcţia Minerr, poate fi apreciată prin valoarea variabilei predefinite ERR.
Valoarea acestei variabile este calculată pe baza relaţiei:
ERR = err12 + err22 + L + err j2 + L + errp2 . (14.57)

 y − x ⋅ sin x = −2.5
Exemplul 14: să se determine soluţia sistemului de ecuaţii  , situată în intervalul
 y − 2 ⋅ x = −18
x ∈ (0,10 ) .

F1( x) := x ⋅ sin 
x
 + 2.5 F2( x) := −2 ⋅ x + 18
 2

− 10
TOL := 10
10

F1( x)

F2( x)

6.094 0

Utilizarea functiei Find


10
0 2 4 6 8 10
x := 3
x, x, 5.538
y := 4 Given
F1( x) − y 0
F2( x) − y 0
x≥ 0 x < 10 ==> Find( x, y ) =
Utilizarea functiei Minerr
x := 3
y := 4 Given
F1( x) − y 0
F2( x) − y 0
x≥ 0 x < 10  x1 
:= MinErr( x, y ) ==> x1 = 5.538 si y 1 = 6.094
 y1 
Determinarea erorii de calcul: ERR = 3.18035
( )
e1 := F1 x1 − y 1
( )
e2 := F2 x1 − y 1
2
err := e1 + e2
2 ==> err = 3.18035

e. Funcţia Find, sau Minerr, poate oferi o alternativă, la rezolvarea unei ecuaţii, în situaţiile
în care funcţia specializată root nu conduce la rezultatele aşteptate, din punctul de vedere
al preciziei de rezolvare, deoarece acestea au la bază alţi algoritmi. Utilizarea funcţiei Find
sau Minerr, în această situaţie, se realizează tot sub forma unui bloc de tip solve.

204
Exemplul 15: Să se rezolve ecuaţia:
r
n!
∑ k!⋅(n − k ) ! ⋅ x k ⋅ (1 − x )n−k = 0.075 ,
k =0

pentru următoarele valori ale paramet rilor: n = 20 şi r = 15

n := 20 r := 15 - valorile parametrilor ecuatiei.


Expresia ecuatiei:
r
n! n− k

k
F( x) := ⋅ x ⋅ ( 1 − x) − 0.075
k!⋅ ( n − k)!
k =0

CAZUL I: − 6 - precizia de rezolvare a ecuatiei


TOL := 10

z := 0.4 - solutia initiala

root ( F( z) , z) = - fuctia root nu poate rezolva ecuatia cu precizia impusa

CAZUL II: − 13 - precizia de rezolvare a ecuatiei


TOL := 10

t := 0.4 - solutia initiala


Given
F( t) 0 Find( t) = 0.88335975 .

f. Funcţia Find/Minerr poate fi utilizată la rezolvarea unei familii de sisteme de ecuaţii


neliniare, ce depind de un parametru al cărui valori sunt cunoscute.
 x2 y2
 + =a
Exemplul 16: Să se rezolve sistemul de ecuaţii  3 6 ,
x + y = a
 2
pentru următoarele valori ale parametrului a: 1; 2; 3; 5; 6; 19.

x := 1
y := 1
Given

2 2
x y
+ a
3 6
a
x+ y
2
P( a) := Find( x, y )

Solutia sistemului de ecuatii, pentru a=1; 2; 3; 5; 6; 19

 1.561   2.845   4.162 


P( 1) =   P( 3) =   P( 6) =  
 −1.061   −1.345   −1.162 

 2.277   3.768   7.403 


P( 2) =   P( 5) =   P( 19) =  
 −1.277   −1.268   2.097 

205
g. Funcţia Find/Minerr poate fi utilizată la rezolvarea ecuaţiilor matriceale.

100 50
Exemplul 17: Să se rezolve ecuaţia matriceală: − X ⋅ A ⋅ X + X T ⋅ C + B T ⋅ X = , unde,
50 100
0 0 0 1 1 0
matricele A, B şi C sunt de forma: A = , B= , C= ,
0 1 0 −1 0 0

0 0
A := 
0 1  1 0
 B :=   C :=  
0 1  0 −1  0 0

X := identity ( 2) - solutiile initiale

Given
T T  100 50 
− X⋅ A ⋅ X + X ⋅ C + B ⋅ X  
 50 100 

Find( X) = 
 −50.503 99.75  - solutia ecuatiei matriceale

 −1.509 −0.501 

h. Algoritmii de rezolvare numerică a sistemelor de ecuaţii neliniare, care sunt utilizaţi de


funcţia Find/Minerr, permit şi rezolvarea sistemelor combinate de ecuaţii şi inecuaţii.
Modul de utilizare al funcţiei Find/Minerr, în această situaţie, este acelaşi ca şi în cazul
sistemelor de ecuaţii. Precizarea inecuaţiilor, în interiorul blocului de tip solve, se face prin
utilizarea operatorilor relaţionali, din paleta Boolean, , sau, a operatorilor

Booleeni: .
Sunt permise, de asemenea, şi constrângeri duble de forma: − 1 ≤ x < 5.
În continuare este prezentat modul de rezolvare al problemei din exemplul 12, sub forma
unui sistem de ecuaţii şi inecuaţii. Pentru delimitarea celor două soluţii ale sistemului de ecuaţii s-au
introdus condiţii suplimentare, sub forma unor inegalităţi.
x := 8
- solutiile initiale
y := −1
2
x
Given y− + 3x + 3 0
4
y −x + 3
x< 5 Sol1 := Find( x, y ) ==> Sol1 = −2.324555
0
x := 10
- solutiile initiale Sol1 = 5.324555
y := −4 1
2
x
Given y− + 3x + 3 0
4
y −x + 3
x> 5 Sol2 := Find( x, y ) ==> Sol2 = 10.324555
0
Sol2 = −7.324555
1

206
i. Utilizarea, cu succes, a blocului de tip solve este restrictivă în privinţa expresiilor ce apar
între cuvântul Given şi funcţia Find/Minerr.
Astfel, nu sunt permise:
• constrângeri care utilizează operatorul relaţional, , (diferit);
• utilizarea variabilelor de tip şir;
• atribuiri, prin utilizarea operatorilor: şi .
De asemenea, un bloc de tip solve nu poate conţine, în interiorul lui, un alt bloc de tip
solve, sau numai funcţia Find/Minerr.
Dacă necesităţile de calcul presupun utilizarea funcţiei Find/Minerr în interiorul unui bloc
de tip solve, această situaţie poate fi rezolvată printr-o atribuire de forma, [UGM00]:
h ( x, y ) := Find( x, y ).
Funcţia h( x , y ) , astfel definită, poate fi utilizată în interiorul unui bloc de tip solve.
j. Precizia de calcul, a soluţiei unui sistem de ecuaţii, poate fi controlată prin utilizarea
variabilei predefinite TOL, din condiţiile (14.54). Dacă sistemul ce urmează a fi rezolvat
conţine şi restricţii sub forma unor inecuaţii, precizia de calcul a soluţiei unei inecuaţii
poate fi controlată prin utilizarea variabilei predefinite CTOL.
Să presupunem că inegalităţile sunt de forma:
h( x ) < ct . (14.58)
În acest caz, se evaluează diferenţa dintre membrul stâng şi membrul drept, iar precizia de
rezolvare se consideră corespunzătoare dacă este îndeplinită condiţia:
h( sol ) − ct . < CTOL (14.59)
Aceste două variabile pot lua valori în intervalul [0,1], iar valoarea implicită a lor este 10-3.
Pentru a modifica precizia de rezolvare a unui sistem de ecuaţii există două modalităţi:

I. prin supradefinirea, în foaia de calcul,


a valorii variabilelor TOL şi CTOL.
Valoarea minimă recomandată a
acestor variabile este 10-15.
Modificarea valorii variabilelor TOL
şi CTOL se efectuează înaintea
definirii blocului de tip solve;
II. prin modificarea valorilor
Convergence Tolerance (TOL) şi
Constraint Tolerance (CTOL), din
fereastra de dialog a tab-ului Built-
In Variables, ce apare ca urmare a
alegerii opţiunii Options meniul
Math.

k. În anumite circumstanţe, stabilirea unor valori mici ale variabilelor TOL şi CTOL, sau
alegerea unor valori iniţiale îndepărtate de soluţia sistemului de ecuaţii, pot conduce la
compromiterea rezolvării sistemului. În general, micşorarea valorilor lui TOL şi CTOL are
ca efect creşterea timpului de calcul necesar pentru obţinerea soluţiei.

207
l. Dată fiind complexitatea deosebită a problemelor de rezolvare a sistemelor de ecuaţii şi
inecuaţii, metodele numerice de calcul a soluţiilor, utilizate de funcţia Find/Minerr,
acţionează specific funcţie de natura sistemului. Aceste metode au la bază:
ƒ algoritm pentru rezolvarea sistemelor liniare;
ƒ algoritm pentru rezolvarea sistemelor cvadratice. Acest algoritm este disponibil
doar în situaţia în care Mathcad-ul conţine Expert Solver-ul, ca urmare a
instalării pachetului opţional Solving and Optimisation Extension Pack;
ƒ algoritmi pentru rezolvarea sistemelor neliniare, prin:
o metoda gradientului conjugat;
o metoda Levenberg-Marquardt;
o metode quasi-Newton.
La apelarea funcţiei Find/Minerr, Mathcad-ul identifică tipul sistemului
de ecuaţii (liniar, cvadratic sau neliniar) şi alege algoritmul
corespunzător. Acest lucru este posibil ca urmare a faptului că opţiunea
AutoSelect, din meniul contextual ce apare ca urmare a unui clic pe
butonul din dreapta al mouse-ului, în condiţiile în care cursorul se găseşte
dispus pe identificatorul funcţiei Find/Minerr, este selectată în mod
implicit.
În cazul sistemelor de ecuaţii şi inecuaţii neliniare,
algoritmii de rezolvare intră în funcţiune în
ordinea prezentării lor din meniu. Prima dată, este
utilizată metoda gradientului conjugat. Dacă
această metodă iterativă nu este convergentă, sau
nu se pot determina rădăcinile cu precizia impusă,
atunci se trece automat la utilizarea metodei
Levenberg-Marquardt etc.
Dacă, prin nici una din cele trei metode disponibile, nu este posibilă obţinerea soluţiei cu
nivelul de precizie cerut, Mathcad-ul afişează un mesaj de eroare, „No solution was found.
Try changing the guess value or the value of TOL or CTOL”.
Acelaşi mesaj de eroare poate apare şi în situaţiile următoare:
ƒ sistemul de ecuaţii nu are soluţie relativ la domeniul lui definiţie;
ƒ valorile iniţiale furnizate funcţiei Find sunt prea departe de rădăcinile sistemului
de ecuaţii;
ƒ sistemul de ecuaţii are rădăcini complexe, iar valorile iniţiale au fost precizate cu
valori reale;
ƒ algoritmul de rezolvare a atins un punct din care nu se mai poate reduce eroarea
de rezolvare a sistemului;
ƒ algoritmul de rezolvare a atins un punct din care nu se mai poate determina o
direcţie de căutare a soluţiilor;
ƒ algoritmul de rezolvare a atins limita de acurateţe pentru calculul soluţiei.
m. Algoritmii de rezolvare a sistemelor de ecuaţii pot fi aleşi, de către utilizator, prin setarea
lor manuală. Se procedează în felul următor:

Etape ________________________________
1. Se dispune cursorul pe identificatorul funcţiei Find/Minerr.
2. Se execută un clic pe butonul din dreapta, al mouse-ului.
3. Se deselectează opţiunea AutoSelect din meniul contextual ce apare.

208
4. Se selectează, printr-un clic, algoritmul de rezolvare dorit.
5. În situaţia utilizării algoritmilor specifici rezolvării sistemelor
neliniare de ecuaţii şi inecuaţii, şi anume, în cazul metodei
gradientului conjugat şi metodei quasi-Newton, prin alegerea
meniului Advanced Options ..., se pot seta, din meniul
contextual aferent, o serie de opţiuni privind controlul
suplimentar al:
ƒ modului de calcul al derivatelor;
ƒ modului de determinare al direcţiilor şi
paşilor de căutare a soluţiei;
ƒ modului de utilizare al restricţiilor
sistemului de ecuaţii pentru
determinarea paşilor de căutare a
soluţiilor.
Alegerea opţiunii Derivative estimation –
Forward permite calculul derivatelor utilizate
în procesul de căutare al rădăcinilor pe baza
unor relaţii de tipul:
f ( x0 + h ) − f ( x0 )
df ( x0 ) = , (14.60)
h
iar opţiunea Derivative estimation – Central
permite calculul derivatelor pe baza unor relaţii
de tipul:

f ( x 0 + h ) − f ( x0 − h )
df ( x0 ) = , (14.61)
2⋅h
Alegerea opţiunii Variabile estimation – Tangent determină paşi de căutare a soluţiilor în
direcţia tangentei:
 d
 x0 + h ⋅ dx f ( x0 , y0 )
 0
 (14.62)
y + h⋅ d
f ( x0 , y 0 )
 0 dy0
la hipersuprafaţa obţinută pe baza unei relaţii de tipul (14.90), iar opţiunea Variabile
estimation – Quadratic determină paşi de căutare a soluţiilor în direcţia:
 d h2 d 2
x
 0 + h ⋅ f ( x 0 , y 0 ) + ⋅ f ( x0 , y 0 )
 dx0 2 dx02
 (14.63)
2 2
y + h⋅ d h d
f ( x0 , y 0 ) + ⋅ 2 f ( x 0 , y 0 )
 0 dy0 2 dy0

Alegerea opţiunii Linear variabile check determină ca algoritmul de calcul să ia în
considerare, la determinarea derivatelor, doar partea liniară a expresiilor sistemului de
ecuaţii. Această aproximaţie conduce la simplificarea calculelor.
______________________________________________________________________________________________________________________

n. Dimensiunile maxime, ale sistemelor neliniare de ecuaţii, ce pot fi rezolvate prin utilizarea
funcţiei Find/Minerr sunt 50 de ecuaţii cu 50 de necunoscute pentru Mathcad varianta

209
Premium şi 200 de ecuaţii cu 200 de necunoscute în cazul Mathcad-ului varianta
profesională. În condiţiile în care este instalat Expert Solver-ul, se pot rezolva sisteme
liniare, sau cvadratice de 1000 de ecuaţii cu 1000 de necunoscute şi sisteme neliniare de
250 de ecuaţii cu 250 de necunoscute.

14.4.1. Metoda Newton

Pentru a evidenţia semnificaţia geometrică a acestei metode de calcul iterativ al rădăcinilor


vom prezenta, la început, metoda Newton în cazul rezolvării unei ecuaţii, de forma (14.7).
Presupunem că ecuaţia are o singură rădăcină reală, xr, în intervalul [a,b], iar derivatele f’(x)
şi f”(x) sunt funcţii continue şi păstrează semn constant pentru x∈[a,b]. În aceste condiţii, procedeul
iterativ de tip Newton oferă o relaţie de recurenţă, [MEM80], [LAR89]:
f ( xn )
xn+1 = xn − , (14.64)
f ′( xn )
unde x0, reprezintă aproximaţie iniţială a rădăcinii xr şi lim xn = xr .
n →∞

Aşa cum arată şi numele, metoda tangentelor propune aproximarea rădăcinii cu şirul xi,
determinat prin intersecţia tangentelor duse la curbă, în punctele M0, M1, M2, … , Mi, … cu axa Ox.
Pentru a determina expresia termenului general al şirului (14.64) se procedează în felul
următor:
ƒ Se porneşte din punctul M0, de pe curba f(x), corespunzător abscisei x0, care reprezintă valoarea
iniţială a rădăcinii. Ecuaţia tangentei la curbă, în acest punct, este:
y − f ( x0 ) = f ′(x0 ) ⋅ ( x − x0 ) . (14.65)

f(x)
M1(x1,f(x1))

M2(x2,f(x2))

M3(x3,f(x3))

x0 x4 x3 x2 x1

M0(x0,f(x0))

Fig. 14.3 Metoda lui Newton, sau metoda tangentelor


ƒ Se determină punctul x1, de intersecţie a tangentei cu axa Ox, din condiţia:
 x = x1
 . (14.66)
y = 0

210
Rezultă, după o serie de transformări:
y0
x1 = x0 − . (14.67)
f ′( x0 )
ƒ Se determină punctul x2, de intersecţie a tangentei cu axa Ox. Procedând asemănător ca în cazul
punctului x1, obţinem:
y1
x2 = x1 − . (14.68)
f ′( x1 )
ƒ Pornind de la valoarea x2 se calculează un nou termen al şirului, x3 şi aşa mai departe, până se
ajunge la un termen xn, care este de forma (14.64).
ƒ La fiecare iteraţie se testează precizia rădăcinii aproximative, xn, cu relaţia (14.8). Când această
condiţie este îndeplinită, termenul corespunzător, al şirului, este considerat drept rădăcină a
ecuaţiei.
Generalizând metoda lui Newton unidimensională, în cazul unui sistem de două ecuaţii cu
două necunoscute, [MEM80]:
 f1( x1 , x2 ) = 0
 , (14.69)
 f 2 ( x1 , x2 ) = 0
se înlocuiesc suprafeţele f1( x1 , x2 ) = 0 şi f 2 ( x1 , x2 ) = 0 prin planele lor tangente, în vecinătatea
punctului determinat şi se ia ca aproximaţie următoare punctul în care dreapta de intersecţie a celor
două plane taie z = 0.
Utilizând din nou pe n drept indice, planele tangente sunt:

 z = f x (
n −1 n −1
, x + ) (
∂f1 x1n−1 , x2n−1
⋅ x − x
)(
n −1
+ ) (
∂f1 x1n−1 , x2n−1
⋅ x2 − x2n−1
)( )
1 1 2 1 1
 ∂x1 ∂x2
 . (14.70)
( ) (
n −1 n −1
)( )
n −1 n −1
 z = f x n−1 , x n−1 + ∂f 2 x1 , x2 ⋅ x − x n−1 + ∂f 2 x1 , x2 ⋅ x − x n−1 ( )( )
 2 1 2
∂x1
1 1
∂x2
2 2

Rezolvând sistemul (14.70), de ecuaţii liniare, în raport cu x1 − x1n −1 şi x2 − x2n−1 împreună cu
condiţiile suplimentare:
z = 0
 n
 x1 = x1 , (14.71)
 n
 x2 = x2
se obţine expresia şirului ce converge spre soluţia sistemului de ecuaţii:
  ∂f ( x , x ) ∂f (x , x ) 
  f 2 (x1 , x2 ) ⋅ 1 1 2 − f1 ⋅ 2 1 2 
 x1n = x1n−1 +  ∂ x ∂x
2 2 
  ∂f1 (x1 , x2 ) ⋅ ∂f 2 (x1 , x2 ) − ∂f1 (x1 , x2 ) ⋅ ∂f 2 (x1 , x2 ) 
  ∂x1 ∂x2 ∂x2 ∂x1  x1 = x1n −1
 x2 = x2n −1
 . (14.72)
  ∂f 2 (x1 , x2 ) ∂f1 ( x1 , x2 ) 
 n  f1 ( x1 , x2 ) ⋅ ∂x1
− f 2 (x1 , x2 ) ⋅
∂x1 
n −1
x
 2 = x +  
 ∂f1 (x1 , x2 ) ⋅ ∂f 2 (x1 , x2 ) − ∂f1 (x1 , x2 ) ⋅ ∂f 2 (x1 , x2 ) 
2

  ∂x1 ∂x2 ∂x2 ∂x1  x1 = x1n −1
 x2 = x2n −1

211
Dacă se notează cu J(x1,x2), Jacobianul sistemului de ecuaţii:
∂f1 ( x1 , x2 ) ∂f1 ( x1 , x2 )
∂x1 ∂x2
J ( x1 , x2 ) = , (14.73)
∂f1 ( x1 , x2 ) ∂f1 ( x1 , x2 )
∂x1 ∂x2
expresiile (14.70) se pot scrie sub forma matriceală:
( ) ( )
x n = x n -1 − J -1 x n -1 ⋅ f x n -1 . (14.74)
-1 n-1
În relaţia (14.74), prin J (x ) s-a notat inversa matricei Jacobiene.
Considerăm în continuare cazul unui sistem de m, m > 2, ecuaţii cu m necunoscute:
 f1 (x1 , x2 ,K , xi ,K , xm ) = 0
 f (x , x ,K , x ,K , x ) = 0
 1 1 2 i m

M
 . (14.75)
 f i (x1 , x2 ,K , xi ,K , xm ) = 0
M

 f m (x1 , x2 ,K , xi ,K , xm ) = 0
Folosind o notaţie vectorială, adică considerăm vectorul x, ca fiind vectorul necunoscutelor:
x1
x2
M
x= , (14.76)
xi
M
xm
şi funcţia vectorială f(x), de forma:
f1 ( x )
f2( x )
M
f(x) = , (14.77)
fi ( x )
M
fm( x )
sistemul de ecuaţii (14.75) se poate scrie sub o formă concisă:
f(x) = 0 . (14.78)
Extinderea procedeului iterativ de tip Newton pentru sistemul de ecuaţii (14.75) se face în
mod natural, adică, relaţia de recurenţă corespunzătoare acestui caz este tot de forma expresiei
(14.74).
Pornind de la relaţia (14.74) se poate imagina o serie de alte procedee iterative, pentru
determinarea soluţiei unui sistem de ecuaţii, considerând relaţia de recurenţă sub forma, [ŞAB83]:
x n = x n- 1 + Λ ⋅ f x n- 1 , ( ) (14.79)

212
unde Λ este o matrice nesingulară. Aceste modele poartă denumirea de procedee Newton
modificate (pseudo-Newton sau quasi-Newton).
Astfel, dacă utilizăm relaţia (14.79), sistemul de ecuaţii (14.78) se poate scrie în forma
matriceală:
x = x + Λ ⋅ f (x ) . (14.80)
Dacă notăm cu g(x) expresia:
g( x ) = x + Λ ⋅ f ( x ) , (14.81)
obţinem relaţia de recurenţă:
( )
x n = g x n-1 . (14.82)
Ecuaţia (14.82) reprezintă relaţia de recurenţă a metodei contracţiei.
Dacă derivăm ecuaţia (14.81), rezultă:
g ′( x ) = I + Λ ⋅ f ′( x ) , (14.83)
unde I reprezintă o matrice unitate. Dacă în continuare se determină matricea Λ din condiţia
g ′( x ) = 0 , adică:
I + Λ ⋅ f ′( x ) = 0 , (14.84)
rezultă valoarea lui Λ:
Λ = -[ f ′( x )] .
−1
(14.85)
Cu Λ astfel determinat, rezultă:
g( x ) = x - [ f ′( x )] ⋅ f ( x ) ,
−1
(14.86)
şi putem scrie expresia generală a unui nou şir iterativ, ce converge la limită spre soluţia sistemului
de ecuaţii (14.78):

[ ( )]
x n = x n-1 - f ′ x n−1
−1
( )
⋅ f x n-1 , (14.87)
Ecuaţia (14.87) reprezintă expresia şirului iterativ cunoscut sub denumirea de metoda
Newton modificată.
Fiecare pas în metoda lui Newton presupune calculul derivatei f’(x) care, în spaţiul
m-dimensional, este o matrice cu m2 elemente. Calculul numeric al derivatei este, în general, mult
mai dificil şi mai laborios decât calculul valorilor funcţiei vectoriale f (x). De aceea, putem păstra
ecuaţia (14.74) neschimbată şi aproximăm derivatele prin diferenţe:
∂f ( x ) f ( x + hi ⋅ ei ) − f ( x )
= , (14.88)
∂xi hi

unde ei este vectorul axei i şi h un parametru vectorial m-dimensional cu componentele


hi ≠ 0 , i ∈1,m . Notând cu J(x,h) jacobianul calculat cu ajutorul diferenţelor (14.88), putem scrie
direct relaţia de recurenţă a altui procedeu pseudo-Newton:

( ) ( )
x n = x n -1 − J -1 x n -1 ,h ⋅ f x n -1 . (14.89)

213
14.4.2. Metoda gradientului

Considerăm sistemul de ecuaţii neliniare, (14.75), care poate fi scris matriceal sub forma
(14.78). Presupunem că funcţiile f i (x1 , x2 ,K , xi ,K , xm ) = 0 , i ∈1,m sunt reale şi continuu
diferenţiabile pe domeniul lor comun de definiţie. Considerăm funcţia, [BEU92], [MAR87]:
m
U ( x ) = ∑ [ f i ( x )] = f ( x ) , f ( x ) ,
2
(14.90)
i =1

unde s-a notat prin f ( x ) , f ( x ) produsul scalar al vectorului f ( x ) cu el însuşi.

Se observă că dacă vectorul x este soluţie a sistemului de ecuaţii (14.78) atunci, U(x)=0.
Deci, prin intermediul relaţiei (14.90) am redus problema rezolvării sistemului (14.78) la o
problemă de calcul a minimului funcţiei U(x).
Pornind de la această constatare, putem aborda problema rezolvării sistemului de ecuaţii
prin căutarea soluţiei în direcţia gradientului.
Pentru a prezenta semnificaţia geometrică a gradientului, de unde rezultă şi principiul
metodei gradientului, considerăm cazul tridimensional şi o funcţie scalară ϕ( x ) = ϕ( x1 , x2 , x3 ) .
r r r
Variaţia dϕ a funcţiei ϕ pentru dx = dx1 ⋅ i + dx2 ⋅ j + dx3 ⋅ k este:
∂ϕ ∂ϕ ∂ϕ
dϕ = ⋅ dx1 + ⋅ dx2 + ⋅ dx3 . (14.91)
∂x1 ∂x2 ∂x3
Această expresie poate fi privită ca produsul scalar dintre vectorul dx şi un vector:
∂ϕ r ∂ϕ r ∂ϕ r
gradϕ = ∇ϕ = ⋅i + ⋅j+ ⋅k , (14.92)
∂x1 ∂x2 ∂x3
numit gradientul funcţiei ϕ.
Variaţia funcţiei corespunzătoare variaţiei vectorului de poziţie dx va fi atunci:
dϕ = grad ϕ ⋅ dx . (14.93)
Dacă se alege direcţia dx astfel încât dx să fie o suprafaţă de nivel, ϕ = const. , atunci ϕ nu
se schimbă şi deci dϕ = 0 , adică vectorul grad ϕ este perpendicular pe suprafeţele de nivel
ϕ = const.
Dacă dx face cu gradientul unghiul θ, atunci:
dϕ = gradϕ⋅ dr = gradϕ ⋅ dr ⋅ cos θ, (14.94)

deci funcţia creşte cel mai repede în direcţia gradientului, când θ = 0.


Dacă se cere găsirea minimului funcţiei ϕ( x ) = ϕ(x1 , x2 , x3 ) , atunci trebuie să rezulte o
îmbunătăţire la o deplasare a punctului x în direcţia opusă gradientului.
Revenind acum la cazul m-dimensional şi la determinarea minimului funcţiei U(x),
extinderea problemei se face în mod natural, [POS94], [MEM80]:
I. fie x rădăcina lui (14.78) şi x0 o primă aproximaţie. Prin x0 trece o suprafaţă de nivel
a lui U(x). Dacă punctul x0 este suficient de aproape de rădăcină atunci, în condiţiile
impuse, suprafaţa de nivel U(x)=U(x0) poate fi asimilată cu un elipsoid;

214
II. pornind din punctul x0 şi deplasându-ne după normala la suprafaţa U(x)=U(x0), vezi
fig. 14.4 vom întâlni o altă suprafaţă de nivel U(x)=U(x1), a unui punct x1;

x2
U(x0)
M1

M0
x0 M2 U(x1)
1
x M3
U(x3)
3 U(x2)
x
x2

0 x1

Fig. 14.4 Metoda gradientului pentru funcţia U(x1,x2)

III. plecând din punctul x1 şi mişcându-ne după normala la suprafaţa de nivel


U(x)=U(x1), vom întâlni o altă suprafaţă de nivel U(x)=U(x2), a unui punct x2, etc.
IV. deoarece U(x0) > U(x1) > U(x2) > …, urmând această cale ne apropiem rapid de
punctul de minim al lui U care corespunde rădăcinii căutate, x, a sistemului (14.78).
Dacă notăm gradientul funcţiei U(x) prin vectorul:
 ∂U ∂U ∂U ∂U ∂U 
∇U ( x ) =  L L , (14.95)
 ∂x1 ∂x2 ∂x3 ∂xi ∂xm 
din triunghiurile OM0M1, OM1M2, etc. Deducem că:
x n+1 = x n − λ n ⋅ ∇U ( x ), n ∈1,n . (14.96)

Dacă căutarea soluţiei se realizează cu o relaţie de tipul (14.96), în care λ n = λ , adică


mărimea pasului de căutare este constantă şi cu o valoare fixată iniţial, această metodă poată numele
de metoda gradientului.
Se poate căuta soluţia prin alegerea optimă a lui λ n la fiecare pas. Această metodă poartă
numele de metoda celei mai rapide descreşteri. Nu există o metodă unică pentru determinarea
valorii pasului λ n . O cerinţă naturală pentru calculul lui λ este minimizarea funcţiei:

( )
F ( λ ) = U x n - 1 − λ ⋅ ∇U ( x n - 1 ) , (14.97)
după fiecare pas.

14.4.3. Metoda Levenberg – Marquardt

Metoda Levenberg-Marquardt pentru rezolvarea sistemelor neliniare de ecuaţii se poate


încadra în categoria metodelor Newton modificate. Ea constă în parcurgerea următoarelor
etape,[RMM01]:
1. se alege o soluţie iniţială, x0;

215
2. se parcurg p paşi de tip Newton prin utilizarea relaţiei de recurenţă (14.74). Numărul de paşi
p este determinat, de la caz la caz, din condiţia preciziei de inversare numerică a
Jacobianului, J-1(x p).
3. se testează la fiecare pas condiţia de oprire:
f i (ui ) ≤ TOL, i ∈1,m . (14.98)
Se pot constata următoarele situaţii:
• Dacă condiţia (14.98) este îndeplinită, la pasul k ≤ p, algoritmul se opreşte şi
returnează vectorul xk drept soluţie a sistemului de ecuaţii;
• Dacă condiţia de oprire (14.98) nu este îndeplinită se parcurge un nou pas de tip
Newton;
• Dacă, după parcurgerea a p paşi, condiţiile (14.98) nu sunt îndeplinite, se trece
automat la un nou algoritm pentru rafinarea soluţiei aproximative x p obţinute:
( ) (
x p = x p -1 − J -1 x p -1 ⋅ f x p -1 . ) (14.99)
4. se rafinează soluţia iniţială, x 0=x p, prin metoda gradientului, căutându-se o soluţie iterativă
de forma ecuaţiei (14.96) în care parametrul λ i se calculează la fiecare iteraţie ca, valoarea
care minimizează ecuaţia (14.90). Dacă se analizează relaţiile (14.90) şi (14.97) se poate
concluziona că, îndeplinirea acestei condiţii, pentru parametrul λ i , este echivalentă cu
minimizarea funcţiei reziduurilor:

( )
m
Φ x1i −1 , x2i −1 ,L , xmi −1 ,λ i = ∑ ri2−1, j (λ i ), (14.100)
j =1

unde s-a notat prin ri −1, j (λ i ) reziduul calculat la iteraţia i-1, pentru ecuaţia j:

( )
ri −1, j (λ i ) = f j x1i −1 , x2i −1 ,L , xmi −1 ,λ i . (14.101)

14.4.4. Metoda gradienţilor conjugaţi

Metoda gradienţilor conjugaţi face parte din categoria tehnicilor care utilizează gradientul
funcţiei U(x) şi are proprietatea de a atinge minimul unei forme pătratice, de tipul (14.90) având m
variabile, în cel mult n iteraţii (făcând abstracţie, bineînţeles, de erorile de rotunjire numerică).
Paşii algoritmului sunt, [MAR87], [BEU92]:
r
1. Se alege o soluţie iniţială, x0, caracterizată de vectorul de poziţie u0 , care poartă
denumirea de vector de start:
r r r r r
u 0 = x1 ⋅ e1 + x2 ⋅ e2 + L + xi ⋅ ei + L + xm ⋅ em , (14.102)

unde ei este vectorul axei i, i ∈1,m .


2. Se calculează gradientul funcţiei U(x) în punctul iniţial x0:
g 0 = ∇U ( x 0 ) , (14.103)

şi se stabileşte direcţia iniţială de căutare a minimului, s0 = − g 0 .

216
r
3. Noul punct, caracterizat prin vectorul de poziţie ui +1 , se determină ca minim al funcţiei în
direcţia definită de si.
4. Se calculează gradientul funcţiei în xi+1:
g i +1 = ∇U ( x i +1 ) , (14.104)
5. Se determină factorul:
g i +1 , g i +1
βi = . (14.105)
gi , gi
6. Se stabileşte o nouă direcţie de optimizare:
si +1 = − g i + β i ⋅ si . (14.106)
7. Se testează condiţia de oprire:
( )
f i x i ≤ TOL, i ∈1,m . (14.107)
Dacă condiţia de oprire (14.107) nu este îndeplinită se revine la pasul 3.
În algoritmul descris mai sus etapa principală constă, în determinarea minimului funcţiei
(14.90) într-o direcţie definită de si:
U (α i ) = U (ui + α i ⋅ si ) . (14.108)
Această operaţie se realizează la pasul 3 şi constă în rezolvarea aproximativă a ecuaţiei:
U ′(α *i ) = 0 . (14.109)

Calculul valorii lui α *i se efectuează în trei etape:

a. Estimarea valorii lui α *i . Această operaţie se efectuează considerând U (α i ) ca o


funcţie pătratică:
U ( α i ) ≅ H ( α i ) = a + b ⋅ α i + c ⋅ α i2 . (14.110)

b. Determinarea intervalului care-l conţine pe α *i prin metoda relaxării. Această


metodă presupune variaţia succesivă a coordonatelor punctului.
c. Calculul unei valori aproximative, α *i , printr-un proces de interpolare.

14.5. REZOLVAREA SIMBOLICĂ A ECUAŢIILOR


ŞI SISTEMELOR DE ECUAŢII

O altă modalitate de rezolvare a ecuaţiilor şi sistemelor de ecuaţii, pe care Mathcad o


pune la dispoziţia utilizatorilor, este rezolvarea simbolică.
Avantajul acestei metode de rezolvare constă în faptul că relaţiile şi/sau valorile numerice
obţinute reprezintă soluţia exactă a problemei.
Principalele limitări ale algoritmilor de rezolvare simbolică a ecuaţiilor/sistemelor de
ecuaţii, în Mathcad, sunt:
ƒ gradul de dificultate al problemelor, ce pot fi rezolvate, este relativ redus, ţinând

217
cont de faptul că rezolvarea simbolică se bazează pe relaţii de calcul a soluţiilor,
disponibile doar pentru anumite clase de sisteme/ecuaţii;
ƒ în anumite situaţii expresiile obţinute sunt deosebit de lungi, ceea ce face ca ele să
fie foarte greu de manipulat.
Pentru efectuarea calculelor simbolice, în vederea obţinerii rădăcinilor, se utilizează
operatorul solve:

o Sintaxa operatorului: expresie solve, var →;


o Elementele operatorului: ¬ expresie – reprezintă expresia algebrică, sau identificatorul
ecuaţiei/sistemului de ecuaţii ce va fi rezolvat simbolic în funcţie de variabila/variabilele
independente precizate în elementul var;
¬ var – reprezintă variabila/variabilele în funcţie de care se rezolvă
ecuaţia/sistemul de ecuaţii. În cazul în care se rezolvă un sistem de ecuaţii, variabilele
independente se precizează fie separate prin virgulă, fie sub forma unui vector;
¬ → – reprezintă operatorul de calcul simbolic. Acest operator
declanşează procesul de calcul al rădăcinii/rădăcinilor.
o Valoarea returnată: soluţia/vectorul soluţiilor ecuaţiei/sistemului de ecuaţii.
o Observaţii:
a. Cuvântul solve este implementat sub forma unui operator care se găseşte în paleta
Symbolic. Pentru calculul simbolic al rădăcinilor, cuvântul cheie solve se utilizează, în
foaia de calcul, ca rezultat al acţionării butonului corespunzător, nu va fi scris de la
tastatură !
b. Pentru rezolvarea simbolică a unei ecuaţii cu o necunoscută, de forma (14.1), se
procedează în felul următor:

Etape ________________________________
1. Clic într-o zonă liberă a foii de lucru.
2. Se scrie expresia lui f(x).

3. Se acţionează butonul , rezultatul va fi de forma:


expresie solve, █ →.
4. Se completează placeholder-ul cu simbolul necunoscutei, x.
5. Se tastează [Enter], sau se execută clic în exteriorul
expresiei. Rezultatul acestei operaţii constă în obţinerea
expresiei rădăcinii ecuaţiei, în partea dreaptă a operatorului
de calcul simbolic, .
______________________________________________________________________________________________________________________

Exemplul 18: să se determine soluţiile ecuaţiei algebrice:


x 6 − 3 x 5 + 4 ⋅ x 4 − 13 ⋅ x 3 + 27 ⋅ x 2 − 36 ⋅ x + 36 = 0
În continuare este prezentat modul de rezolvare al problemei din exemplul 18.

218
 2 
 1 1
 + ⋅ 1i⋅ 7
 2 2
 1 1
− ⋅ 1i⋅ 7
 2 2
6 3 5 2 4

x − 13⋅ x − 3⋅ x + 27⋅ x + 4⋅ x − 36⋅ x + 36 solve , x →  3
2
 3
 −1 3 2 3 6
 ⋅ 3 + ⋅ 1i⋅ 3
 2 2

−1 3 2 3 6
 ⋅ 3 − ⋅ 1i⋅ 3
 2 2 

c. Dată expresia ecuaţiei este de forma f ( x ) = g( x ) , se procedează identic, ca în cazul


precedent, cu observaţia că, la scrierea ecuaţiei de rezolvat se va utiliza operatorul
relaţional de identitate, nu simbolul egal. Acesta se inserează în foaia de calcul prin
acţionarea butonului , din paleta Boolean, sau prin tastarea [Ctrl]+[=].

Exemplul 19: să se determine soluţiile ecuaţiei:


 π
sin x +  = 2 ⋅ tgx .
 2

  ( 2 − 1)  
 atan   
1
   
  (− + ⋅ ) 2  
  2 2 2  
 −  ( 2 − 1)  + π 
 atan  1
 
 π   
sin  x +  2 tan ( x) solve , x →  (−2 + 2⋅ 2) 2 
 2    
 
  1

 atan2  −1 − 2, ( −2 − 2⋅ 2) 2  
 
  1
  2
 atan2  −1 − 2 , −(−2 − 2⋅ 2)  

d. Aceleaşi rezultate se pot obţine prin utilizarea comenzilor din meniul Symbolics.
Diferenţele apar la modul de afişare al rezultatelor, vezi subcapitolul 12.6.
e. Prin calcul simbolic se pot rezolva şi inecuaţii. Se procedează, în acest caz, la fel ca în
cazul ecuaţiilor, cu deosebirea că, precizarea inecuaţiei ce urmează a fi rezolvată se
realizează prin utilizarea obligatorie a unuia dintre operatorii relaţionali, ,
care se găsesc în paleta Boolean.

Exemplul 20: să se determine soluţia inecuaţiei:


2 ⋅ e x +3 ≤ 5 .

219
≤ 5 solve , x → x ≤ −3 + ln
x+ 3 5
2e 
 2

f. Operatorul solve permite utilizarea lui şi la rezolvarea simbolică a sistemelor de ecuaţii. Se


procedează:

Etape ________________________________
1. Clic într-o zonă liberă a foii de lucru.
2. Se inserează, în foaia de calcul, un vector având atâtea linii câte ecuaţii are sistemul ce
urmează a fi rezolvat.
3. Ecuaţiile sistemului se scriu ca elemente ale acestui vector. Precizarea ecuaţiilor se face
prin utilizarea operatorului relaţional de identitate, nu simbolul egal. Acesta se inserează
în foaia de calcul prin acţionarea butonului , din paleta Boolean, sau prin tastarea
[Ctrl]+[=],

4. Se acţionează butonul , rezultatul va fi de forma:


 ecuatie 1 
 
 ecuatie 2 
 M 
  solve, █ →.
 ecuatie j 
 M 
 
 ecuatie n 
 
5. Se completează placeholder-ul cu simbolurile necunoscutelor, separate prin virgulă, sau
se inserează un vector a cărui componente sunt necunoscutele sistemului de ecuaţii.
6. Se tastează [Enter], sau se execută clic în exteriorul expresiei. Rezultatul acestei operaţii
se obţine în partea dreaptă a operatorului de calcul simbolic, .
______________________________________________________________________________________________________________________

Exemplul 21: să se determine soluţia sistemului de ecuaţii:


x 2 + 2 ⋅ y = a
 , în funcţie de valorile parametrilor a şi b.
4 ⋅ x + 3 ⋅ y = b + 7

 1 1 
 4 1 5 4 1

2 2
 + ⋅ ( −26 − 6⋅ b + 9⋅ a) − ⋅ ( −26 − 6⋅ b + 9⋅ a) + ⋅ b 
 x2 + 2⋅ y a   x 3 3 9 9 3 
  solve ,   →  
 4⋅ x + 3⋅ y b + 7  y 1 1
 4 1 2 5 4 2 1 
 − ⋅ ( −26 − 6⋅ b + 9⋅ a) + ⋅ ( −26 − 6⋅ b + 9⋅ a) + ⋅ b 
 3 3 9 9 3 

220
 1 1 
 4 1 5 4
 1
2 2
 + ⋅ ( −26 − 6⋅ b + 9⋅ a) − ⋅ ( −26 − 6⋅ b + 9⋅ a) + ⋅ b 
 x2 + 2⋅ y a  3 3 9 9 3 
  solve , x, y →  
 4⋅ x + 3⋅ y b + 7  1 1
 4 1 2 5 4 2 1 
 − ⋅ ( −26 − 6⋅ b + 9⋅ a) + ⋅ ( −26 − 6⋅ b + 9⋅ a) + ⋅ b 
 3 3 9 9 3 

g. Utilizând facilităţile de calcul simbolic se pot rezolva şi sisteme de inecuaţii. Se


procedează, în acest caz, la fel ca în cazul sistemelor de ecuaţii, cu deosebirea că,
precizarea inecuaţiilor, ce urmează a fi rezolvate, se realizează prin utilizarea obligatorie a
unuia dintre operatorii relaţionali, , care se găsesc în paleta Boolean.

Exemplul 22: să se determine soluţia sistemului de inecuaţii:


y ≤ x
y ≤ −x + 2

 .
x ≥ 0
 y ≥ 0

 x≥ 0 
 
 y ≥ 0  solve ,  x  → ( x ≤ 2 y ≤ 1 y + x − 2 ≤ 0 y − x ≤ 0 0 ≤ y 0 ≤ x)
 y≤x  y
 y ≤ −x + 2 
 

x2 := 1 , 1.05.. 2
x3 := 0 .. 2.4 Semnificatia geometrica
x1 := 0 , 0.05.. 1 a sistemului de inecuatii:

1
x1
− x2+ 2
x

− x+ 2
0.5
 1.0 
 
0 
0

0 0.5 1 1.5 2

0 
x1, x2, x, x,   , x3
0 

221
h. Calcul simbolic al soluţiilor unui sistem de ecuaţii se poate efectua şi prin folosirea funcţiei
Find. Se utilizează, în acest caz, un bloc de tip solve, fără a fi necesară precizarea soluţiilor
iniţiale. Soluţia simbolică este returnată după acţionarea operatorului de calcul simbolic,
, situat în paleta Symbolic, sau în paleta Evaluation.

Exemplul 23: să se determine soluţia sistemului de inecuaţii:


 x2 y
 + =r
 a 2⋅b , în funcţie de valorile parametrilor a, b şi r.
x + 2 ⋅ a ⋅ y = 0

Given
2
x y
+ r
a 2⋅ b

x + 2a⋅ y 0

  1  1 
     
 −1  ( 2
 8⋅ b ⋅  −1 + 1 + 64⋅ a⋅ b ⋅ r 
) 2
 −1  ( 2 )
⋅  −1 − 1 + 64⋅ a⋅ b ⋅ r 
2
 

8⋅ b
Find( x, y ) →  
  1  1
   
 1  2 
 ( 2
⋅  −1 + 1 + 64⋅ a⋅ b ⋅ r )
2
 1  ( 2 ) 
⋅  −1 − 1 + 64⋅ a⋅ b ⋅ r  
 16⋅ a ⋅ b 16⋅ a ⋅ b 

222
II APLICAŢII ÎN MATHCAD 2001

OPTIMIZĂRI PRIN PROGRAMARE MATEMATICĂ


_______________________________________________________________________________

Programarea matematică este o ramură a cercetării operaţionale care se ocupă cu problemele


generale ale optimizării. Modelul unei probleme de programare matematică este format din una sau
mai multe funcţii obiectiv (funcţie sau funcţii a căror valori minime sau maxime sunt căutate) şi un
set de restricţii, sub formă de egalităţi sau inegalităţi. Modelul poate fi determinist sau stohastic.
Forma generală a unei probleme de programare, prin programare matematică deterministă,
monoobiectiv este, [MEM80]:
{ ( ) }
max f ( x j ) g i x j ≥ 0 , x j ≥ 0 , j ∈ 1, m , i ∈ 1, n , n ≥ m , (15.1)

unde:
ƒ f(xj), reprezintă funcţia obiectiv sau scop, definită pentru variabilele, x j , j ∈1,m , procesului
considerat. Acestei funcţii i se caută o valoare optimă (minimă sau maximă);
ƒ ( )
g i x j ≥ 0 şi x j ≥ 0 poartă denumirea de restricţii. Ele delimitează un domeniu real, D,
D ⊂ R m , m-dimensional, numit domeniul soluţiilor posibile. Valoarea optimă a funcţiei
obiectiv se caută în interiorul, sau la limita domeniului soluţiilor posibile.
Problemele de programare se mai întâlnesc şi sub denumirile de extreme cu legături, sau
extreme cu restricţii.
( )
Dacă restricţiile, g i x j ≥ 0 şi x j ≥ 0 , lipsesc problema de programare se transformă într-o
problemă de calcul a valorilor extreme locale, pentru funcţia obiectiv.
Clasificarea problemelor de programare matematică deterministă se poate realiza în funcţie
de tipul expresiilor funcţiei obiectiv şi al restricţiilor. Distingem:
• ( )
Optimizare liniară (programare liniară), dacă atât f(xj) cât şi g i x j sunt funcţii liniare;
• Optimizare pătratică (programare pătratică), dacă f(xj) este o funcţie de gradul doi şi
( )
g i x j sunt funcţii liniare;
• ( )
Optimizare neliniară generală, dacă f(xj) şi/sau g i x j sunt funcţii oarecare.

Aplicaţiile practice nu conduc întotdeauna la probleme de programare matematică sub forma


standard (15.1). În aceste situaţii, problemele pot fi transformate ţinând cont de următoarele
considerente de ordin matematic:
a. Deoarece:
min f ( x ) = − max(− f ( x )) , (15.2)
x∈D x∈D
orice problemă de maxim se poate transforma într-o problemă de minim şi invers;
În relaţia (15.2), prin x s-a notat vectorul variabilelor problemei de programare:

223
T
x = x1 , x2 , x3 ,L , xi ,L , xm . (15.3)
b. Inegalităţile de forma „≥” pot fi transformate în inegalităţi de forma „≤” prin înmulţirea
lor cu -1;
c. Inegalităţile „≤” sau „≥” pot fi transformate în egalităţi prin scăderea, sau adăugarea,
unei noi variabile nenegative.
În plus, o problemă de programare este echivalentă cu o problemă de determinare a
soluţiilor unui sistem de ecuaţii. Pentru a justifica această afirmaţie pornim de la modul de calcul al
valorilor extreme pentru o funcţie f(x1, x2,…, xm).
Pentru căutarea multidimensională a valorilor extreme, de exemplu pentru maximizarea
funcţiei f(x1, x2,…, xm) o condiţie necesară este:
 ∂f (x1 , x2 ,L , x j ,L , xm )
 f x1 (x1 , x2 ,L , x j ,L , xm ) = =0
 ∂ x1
 ∂f (x1 , x2 ,L , x j ,L , xm )
 f x2 (x1 , x2 ,L , x j ,L , xm ) = =0
 ∂x2
 M M M

 f (x , x ,L , x ,L , x ) = ∂f (x1 , x2 ,L , x j ,L , xm ) = 0
 , (15.4)

 xj 1 2 j m
∂x j

 M M M
 ∂f (x1 , x2 ,L , x j ,L , xm )
 f x (x1 , x2 ,L , x j ,L , xm ) = =0
 m
∂xm
în interiorul domeniului de definiţie. Prin rezolvarea acestui sistem de ecuaţii se obţin nu numai
punctele de maxim ci şi punctele de minim sau puncte şa.
Reciproca acestei afirmaţii poate fi, de asemenea, demonstrată foarte simplu dacă facem
apel la relaţia (14.90) prin care rezolvarea unui sistem de ecuaţii neliniare poate fi transformată într-
o problemă de minim.
De aceea, algoritmii generali de rezolvare a sistemelor de ecuaţii neliniare, prezentaţi la
subcapitolul 14.4 pot fi utilizaţi şi în cazul problemelor de programare şi/sau în cazul problemelor
de calcul al punctelor de maxim/minim local. Apare, totuşi, o serie de diferenţe la modul lor de
implementare, astfel încât soluţia determinată să rămână în regiunea soluţiilor posibile.
Pentru ca utilizatorul să nu fie nevoit să transforme manual problema de programare, pentru
a o aduce la forma generală, în Mathcad au fost implementate două funcţii specializate pentru
rezolvarea problemelor de programare şi/sau a problemelor de maxim şi minim. Aceste funcţii sunt
Minimize şi Maximize. Ele se utilizează integrate în blocuri de tip solve.
o Sintaxa funcţiilor: Minimize( f , x1 , x2 ,K , x j ,K , xm );
Maximize( f , x1 , x2 ,K , x j ,K , xm );

o Argumentele funcţiilor: ¬ f – reprezintă identificatorul funcţiei obiectiv.


¬ x j , j = 1,m – reprezintă variabilele sistemului de ecuaţii. Acestor
variabile, anterior apelării funcţiei Minimize/Maximize, li se vor atribui valori iniţiale pe baza
cărora se calculează soluţia problemei de programare;
o Valoarea returnată: un vector, sol, cu m linii × o coloană, ce conţine valorile soluţiilor numerice
aproximative, sol j , j = 0,m − 1 , ale problemei de programare matematică (15.1). Soluţiile

224
returnate asigură valoarea minimă/maximă a funcţiei obiectiv în interiorul sau la limitele
domeniului, D, a soluţiilor posibile.
Pentru restricţiile problemei (15.1) care se prezintă sub forma unor ecuaţii:
( )
gi x j = 0 , (15.5)
soluţiile returnate respectă condiţia:

g i ( sol ) ≤ TOL . (15.6)


Pentru restricţiile problemei (15.1) care se prezintă sub forma unor inecuaţii, de tipul:
( )
g i x j ≥ ct. , (15.7)
soluţiile returnate respectă condiţia:
g i ( sol ) − ct. ≥ CTOL . (15.8)
o Observaţii:
a. Utilizarea funcţiei Minimize/Maximize se realizează respectând următorii paşi:

Etape ________________________________
1. Clic într-o zonă liberă a foii de lucru.
2. Se defineşte funcţia obiectiv, f(xj), j ∈1, m .
3. Se precizează valorile iniţiale ale variabilelor xj. Aceste valori iniţiale reprezintă o primă
aproximaţie a soluţiilor problemei de programare. Tot cu această ocazie se declară şi
variabilele sistemului de ecuaţii. Succesul rezolvării depinde de alegerea adecvată a
soluţiilor iniţiale. De aceea, se recomandă ca valorile de start să fie cât mai apropiate de
soluţia problemei.
4. Într-o zonă matematică, a foii de calcul, se tastează cuvântul Given. Cuvântul Given şi
identificatorul funcţiei Minimize/Maximize poate fi scris cu litere mici, cu majuscule sau
combinate (Minimize/Maximize este „case insensitive”).
5. Se scriu cele n restricţii, cu utilizarea operatorului relaţional de identitate, nu simbolul
egal, dacă restricţia respectivă se prezintă sub forma unei ecuaţii de tipul (15.5). Acest
operator se obţine prin acţionarea butonului , din paleta Boolean, sau prin tastarea
[Ctrl]+[=].
Dacă restricţia respectivă se prezintă sub forma unei inecuaţii de tipul (15.7),
aceasta se scrie, în interiorul blocului de tip solve, prin utilizarea operatorilor relaţionali,

din paleta Boolean, . Se pot utiliza, la specificarea restricţiilor şi


operatori Booleeni: .
Sunt permise, de asemenea, şi inegalităţi duble de forma: − 1 ≤ x < 5.
6. Se apelează funcţia Minimize/Maximize.
______________________________________________________________________________________________

Exemplul 1: să se determine minimul şi maximul funcţiei obiectiv:


sin x
F( x, y ) = + cos y ,
2

225
x > 0
y > 0

 x < 10
pe un domeniu plan determinat de restricţiile: 
 y < 10
 x + y < 10

2 ⋅ y + x > 4

sin ( x) - functia obiectiv


F( x, y ) := + cos ( y )
2
Domeniul solutiilor posibile:

10

− x+ 10

y
5
−x
+2
2

0
0

0 5 10
CreateMesh ( F , 0 , 6 , 0 , 8 , 36) x, 0 , x

x := 2
- solutiile initiale
y := 5

Given
0 < x < 10
0 < y < 10
x + y − 10 < 0 - restrictiile problemei de programare Blocul de
tip SOLVE
2⋅ y + x − 4 > 0

 xmax 
:= MaximizeF
( , x, y )
 y max 
 
Solutiile problemei de programare matematica:

xmax = 1.571
y max = 6.283
(
maxF := F xmax, y max ) ==> maxF = 1.5

226
x := 2
- solutiile initiale
y := 5
Given
0 < x < 10
0 < y < 10
x + y − 10 < 0 - restrictiile problemei de programare Blocul de
tip SOLVE
2⋅ y + x − 4 > 0

 xmin 
:= Minimize( F , x, y )
 y min 
 
Solutiile problemei de programare matematica:
xmin = 4.712
y min = 3.142
(
minF := F xmin , y min ) ==> minF = −1.5

b. După cum rezultă din precizările anterioare, utilizarea funcţiei Minimize/Maximize se


realizează prin intermediul unui bloc de tip solve, identic cu cel al funcţiei Find. Din acest
motiv, toate consideraţiile prezentate la subcapitolul 14.4, privind modul de utilizare al
funcţiei Find, sunt valabile şi pentru funcţiile Minimize/Maximize.
c. Funcţiile Minimize/Maximize se pot utiliza şi la calculul valorilor extreme,
minime/maxime, locale. Pentru a rezolva acest tip de probleme se procedează după cum
urmează:

Etape ________________________________
1. Clic într-o zonă liberă a foii de lucru.
2. Se defineşte funcţia obiectiv, f(xj), j ∈1, m .
3. Se precizează valorile iniţiale ale variabilelor xj. Aceste valori iniţiale reprezintă o primă
aproximaţie a soluţiilor problemei.
4. Se apelează funcţia Minimize/Maximize.
______________________________________________________________________________________________

Exemplul 2: Să se determine punctele de minim şi de maxim local ale funcţiei, [UDR80]:


0.9 0.4
F( x ) = x −1 ⋅ x +1 − 0.8 .
− 15
TOL := 10
F( x) := ( x − 1 ) 0.9⋅ ( x+ 1 ) 0.4 − 0.8

F( x)
0.5 0 0.5 1 1.5 2

227
• Calculul minimului local:

x1 := 1.5 Min := Minimize( F , x1) ==> Min = 1.000000


Fmin := F( Min) Fmin = −0.800000
• Calculul maximului local:

x2 := 0 Max := MaximizeF
( , x2) ==> Max = −0.384615
Fmax := F( Max) Fmax = 0.303710

d. Dacă funcţia obiectiv are pe domeniul soluţiilor posibile mai multe puncte de minim local,
pentru a le putea calcula este necesară utilizarea funcţiei Minimize/Maximize cu diferite
valori iniţiale. În aceste condiţii se poate determina soluţia cea mai apropiată de fiecare
valoare iniţială. Acest lucru rezultă din foaia de calcul prezentată în continuare.

Exemplul 3: Să se determine punctele de minim şi maxim local ale funcţiei, [UDR80]:


1
F( x ) = 3 2 ⋅ x4 − 5 ⋅ x2 +1 + .
3
2 ⋅ x − 5⋅ x2 +1
4

3
4 2 1
F( x) := 2⋅ x − 5⋅ x + 1 +
3 − 15
4 2 TOL := 10
2⋅ x − 5⋅ x + 1

F( x) 2 1 0 1 2

10

x
• Calculul minimelor locale:
• Calculul maximelor locale:
x1 := −1.55 Minimize( F , x1) = −1.58114
X1 := −2 ( , X1) = −0.70711
MaximizeF
x2 := −0.55 Minimize( F , x2) = −0.46825
X2 := 0.5 ( , X2) = 0.46819
MaximizeF
x3 := 0.55 Minimize( F , x3) = 0.46825
X2 := −0.5 ( , X2) = −0.46819
MaximizeF
x4 := 1.55 Minimize( F , x4) = 1.58114
X3 := 2.0 ( , X3) = 0.70711
MaximizeF
x5 := 0.20 Minimize( F , x5) = 0

e. Precizia de calcul, a soluţiei unei probleme de programare, poate fi controlată prin


utilizarea variabilei predefinite CTOL, din condiţiile (15.8), în cazul restricţiilor care se
prezintă sub forma unor inecuaţii. Dacă sistemul restricţiilor conţine şi restricţii sub forma
unor ecuaţii, precizia de calcul a soluţiei poate fi controlată prin utilizarea variabilei
predefinite TOL, din condiţia (15.6).

228
Aceste două variabile pot lua valori în intervalul [0,1], iar valoarea implicită a lor
este 10-3. Pentru a modifica precizia de rezolvare a unui sistem de ecuaţii există două
metode:
ƒ prin supradefinirea, în foaia de
calcul, a valorii variabilelor TOL şi
CTOL. Valoarea minimă recomandată
a acestor variabile este 10-15.
Modificarea valorii variabilelor TOL
şi CTOL se efectuează înaintea
definirii blocului de tip solve;
ƒ prin modificarea valorilor
Convergence Tolerance (TOL) şi
Constraint Tolerance (CTOL), din
fereastra de dialog a tab-ului Built-In
Variables, ce apare ca urmare a
alegerii opţiunii Options meniul
Math.

f. Stabilirea unor valori mici ale variabilelor TOL şi CTOL, sau indicarea unor valori iniţiale
îndepărtate de soluţia ecuaţiei, pot conduce la imposibilitatea rezolvării cu precizia cerută.
g. Dată fiind complexitatea deosebită a problemelor de programare matematică şi/sau de
calcul a punctelor de minim/maxim local, metodele numerice, utilizate de funcţiile
Minimize/Maximize, sunt:
ƒ Algoritmul simplex pentru rezolvarea problemelor de programare liniară;
ƒ Algoritm pentru rezolvarea problemelor de programare cvadratice. Acest
algoritm este disponibil doar în situaţia în care Mathcad-ul conţine Expert
Solver-ul, ca urmare a instalării pachetului opţional Solving and Optimisation
Extension Pack;
ƒ Algoritmi pentru rezolvarea problemelor neliniare de programare:
• Metoda gradientului conjugat;
• Metoda Levenberg-Marquardt;
• Metode quasi-Newton.
La apelarea funcţiilor Minimize/Maximize, Mathcad-ul are
posibilitatea de a identifica tipul problemei de programare (liniar,
cvadratic sau, neliniar) şi de a alege algoritmul corespunzător. Acest lucru
este posibil ca urmare a faptului că opţiunea AutoSelect, din meniul pop-
up ce apare ca urmare a unui clic pe butonul din dreapta al mouse-ului, în
condiţiile în care cursorul se găseşte dispus pe identificatorul funcţiei
Minimize/Maximize, este selectată în mod implicit.
În cazul problemelor neliniare de programare,
algoritmii de rezolvare intră în funcţiune în ordinea
prezentării lor de mai sus. Prima dată, este utilizată
metoda gradientului conjugat. Dacă această metodă
iterativă nu este convergentă, spre soluţia
problemei, sau nu se pot determina soluţiile cu
precizia impusă, atunci se trece automat la
utilizarea metodei Levenberg-Marquardt etc.

229
h. Algoritmii de rezolvare a problemelor de programare pot fi aleşi, de către utilizator, prin
setarea lor manuală. Se procedează în felul următor:

Etape ________________________________

1. Se dispune cursorul pe identificatorul funcţiei Minimize/Maximize.


2. Se execută un clic pe butonul din dreapta, al mouse-ului.
3. Se deselectează opţiunea AutoSelect din meniul pop-up ce apare.
4. Se selectează, printr-un clic, algoritmul de rezolvare dorit.
5. În situaţia utilizării algoritmilor specifici rezolvării problemelor
neliniare de programare, şi anume, în cazul
metodei gradientului conjugat şi metodei quasi-
Newton, prin alegerea meniului Advanced
Options ..., se pot seta, din meniul contextual
aferent, o serie de opţiuni privind controlul
suplimentar al:
ƒ modului de calcul al derivatelor;
ƒ modului de determinare al direcţiilor
şi paşilor de căutare a soluţiei;
ƒ modului de utilizare al restricţiilor
problemei de programare pentru
determinarea paşilor de căutare a
soluţiilor.

15.1. ALGORITMUL SIMPLEX

Forma standard a unei probleme de programare matematică liniară este, [UDR80]:


 m m 
min ∑ c j ⋅ x j ∑ aij ⋅ x j ≥ bi , x j ≥ 0, bi ≥ 0 , i ∈1,n , j ∈1,m , n ≥ m , (15.9)
 j =1 j =1 
unde:
m
ƒ ( )
f x1 , x2 ,L , x j ,L , xm = ∑ c j ⋅ x j reprezintă funcţia obiectiv, ce trebuie minimizată;
j =1
m
ƒ D : ∑ aij ⋅ x j ≥ bi , x j ≥ 0, i ∈1,n , n ≥ m reprezintă restricţiile, care delimitează domeniul
j =1
soluţiilor posibile, D, numit hiperpoliedrul restricţiilor.
Semnificaţia geometrică, a unei probleme de programare liniară, este prezentată în fig. 15.1.
m
Dacă se trasează, în cazul bidimensional - m = 2, dreptele ∑ aij ⋅ x j ≥ bi şi x j ≥ 0 obţinem domeniul
j =1
haşurat, D. Punctele din interiorul şi de pe laturile acestui poligon satisfac inegalităţile date.

230
x2
m
∑ aij ⋅ x j = bi
j =1

m
∑ c j ⋅ x j = const.
j =1
D

m
(
∇ f x1 , x2 ,L ) ∑ c j ⋅ x j = kmax
j =1

x1

Fig. 15.1 Semnificaţia geometrică a unei probleme de programare liniară

Pe de altă parte, funcţia obiectiv reprezintă un fascicol de hiperplane paralele:


m
M f : ∑ c j ⋅ x j = k = const . (15.10)
j =1

(
Pentru a obţine, spre exemplu, maximul lui f x 1 , x 2 ,L , x j ,L , x m , hiperplanul Mf )
(
trebuie mişcat în sensul indicat de gradientul funcţiei obiectiv, ∇f x1 , x2 ,L , x j ,L , xm , deoarece )
gradientul dă direcţia şi sensul creşterii maxime, vezi capitolul 14.
Deoarece distanţa d de la origine la Mf este:
k
d= , (15.11)
c12 + c22 + L + c 2j + Lcm2

rezultă că extremele lui k (kmax sau kmin) pe D sunt proporţionale cu extremele lui d pe D şi nu pot fi
atinse decât în punctele comune ale lui D şi ale unui hiperplan din familia lui Mf. Înseamnă că
pentru determinarea optimului lui f ar fi suficient să determinăm vârfurile hiperpoliedrului
( )
restricţiilor, apoi să calculăm valorile lui f x 1 , x 2 ,L , x j ,L , x m în aceste puncte şi să
selectăm valoarea minimă sau maximă.
Determinarea valorilor optime printr-o astfel de metodă, în primul rând, necesită un volum
foarte mare de calcule şi în al doilea rând, nu de pretează implementării sub forma unui program de
calcul. De aceea funcţiile Mathcad, destinate optimizării, rezolvă problemele de programare liniară
prin intermediul algoritmului simplex.
Pentru rezolvarea unei probleme de programare liniară, metoda simplex constă în
parcurgerea următorilor paşi:
1. Se aduce, prin transformări algebrice, problema la forma standard (15.9);
2. Se introduc n variabile suplimentare, wi, de egalizare, astfel încât restricţiile se
transformă în egalităţi:
m
∑ aij ⋅ x j − bi = wi , x j ≥ 0, wi ≥ 0, i ∈ 1,n . (15.12)
j =1

231
3. Problema de programare se transformă într-o problemă echivalentă, de forma:
 m m 
min ∑ c j ⋅ x j ∑ aij ⋅ x j − bi = wi , x j ≥ 0 , wi ≥ 0, bi ≥ 0 , i ∈1,n , j ∈1,m , n ≥ m . (15.13)
 j =1 j =1 
4. Ataşăm problemei un tabel simplex:

x1 x2 … xj … xm
a11 a12 … a1j … a1m −b1 w1
a21 a22 … a2j … a2m −b2 w2
M M … M … M M M
ai1 ai2 … aij … aim −bi wi
M M … M … M M M
an1 an2 … anj … anm −bn wn
c1 c2 … cj … cm 0 f

Această problemă echivalentă va fi utilizată pentru determinarea valorii optime,


minime, a problemei. Se constată că:
ƒ Toate valorile −bi, i ∈1,n , din tabel sunt pozitive;
ƒ Punctul x j = 0 , j ∈1,m , este un vârf al hiperplanului restricţiilor.
5. Alegem un element nenegativ în ultima linie:

c1 c2 … cj … cm

a tabelului simplex. Dacă ultima linie a tabelului nu conţine elemente strict negative,
m
( )
atunci valoarea minimă a lui f x1 , x2 ,L , x j ,L , xm = ∑ c j ⋅ x j este zero şi punctul
j =1

x j = 0 , j ∈1,m este un punct de minim, deci soluţia problemei de programare.


6. Se aplică o serie de transformări succesive asupra elementelor tabelului simplex. Să
presupunem că elementul cj îndeplineşte condiţia c j < 0 . Se formează câturile:
bi
− , i ∈1,n , aij < 0 , (15.14)
aij
unde j este fixat.
7. Se determină:
 b 
max − i , i ∈1,n  . (15.15)
 
i∈1,n
 aij 
Acel element aij < 0 pentru care este adevărată relaţia (15.15) se alege ca pivot.
Dacă toate elementele coloanei j sunt pozitive sau nule, atunci problema de programare
liniară nu admite soluţie.
8. Se înlocuiesc, în tabelul simplex:
ƒ xj cu wi;
ƒ Pivotul cu inversul său;

232
elementele liniei
ƒ Elementele liniei pivotului prin rapoartele: − ;
pivot
ƒ Celelalte elemente ale coloanei pivotului, prin rapoartele:
elementele coloanei
;
pivot
ƒ Toate celelalte elemente din tabel ( aij , bi ,c j , f ) se înlocuiesc prin elemente
calculate cu relaţia:
p⋅e − s⋅q
e* = , (15.16)
p
unde, s-a notat prin:
p – elementul pivot;
e, q şi s – elementele din tabel, dispuse după următoarea regulă:

p q

s r
9. Se reia algoritmul de la pasul 5.

Şirul iterativ, de tabele, se poate opri, dacă nu sunt respectate condiţiile impuse la:
o Pasul 5. Dacă iteraţia se opreşte în raport cu condiţiile impuse la acest pas, atunci
problema de programare are soluţie.
Valoarea minimă a funcţiei obiectiv, f, se citeşte din colţul din dreapta jos, al ultimului
tabel.
Coordonatele punctul de minim se determină astfel: x-şii care se găsesc deasupra
tabelului se egalează cu zero, iar x-şii care apar pe marginea din dreapta tabelului iau
valorile corespunzătoare din coloana ce conţine elementele bj.
o Pasul 7. Dacă iteraţia se opreşte în raport cu condiţiile impuse la acest pas, atunci
problema de programare nu are soluţie.

Exemplul 4, [UDR80]: O societate comercială produce două tipuri de repere A şi B. Beneficiul net
este de 2 €, pentru o piesă de tipul A şi de 1.5 €, pentru o piesă de tipul B. Durata de fabricaţie
pentru reperul A este de două ori mai mare decât timpul de fabricaţie pentru reperul B. Dotarea
tehnică, a societăţii comerciale, permite realizarea a maxim 1200 de repere, tip B, zilnic. Stocul de
materii prime, existent, permite realizarea a 900 de repere (tip A şi B), iar capacitatea de producţie a
atelierului este de maxim 400 de repere tip A şi de cel mult 700 de piese de tipul B. Să se determine
numărul de repere (de tip A şi de tip B) ce trebuie realizate zilnic, astfel încât beneficiul total al
atelierului să fie maxim.
Dacă se notează cu 100⋅x producţia zilnică de piese, tip A şi cu 100⋅y, producţia zilnică de
piese de tip B, rezultă următoarea problemă de programare:
max(2 ⋅ x + 1.5 ⋅ y ) ,

 x ≤ 4; x ≥ 0
 y ≤ 7; y ≥ 0

cu restricţiile:  .
x + y ≤ 9
2 ⋅ x + y ≤ 12

233
3
Functia obiectiv: f ( x, y ) := 2⋅ x + ⋅y
2
x := 0 y := 0 - solutiile initiale

Given
x≤ 4
y≤7
x+ y ≤ 9
 xmax 
2x + y ≤ 12 := Maximizef
( , x, y ) ==> xmax = 3
 ymax 
y max = 6
(
fmax := f xmax, y max ) ==> fmax = 15
Semnifictia geometrica a
domeniului solutiilor posibile:

15
4

10
− x1+ 9 7
− 2⋅ x2+ 12
5

0 2 4 6 8

x1, x2, x3

Pentru a ilustra modul iterativ de rezolvare al acestei probleme prin utilizarea metodei
simplex, transformăm problema de programare, pentru a o aduce la o formă standard echivalentă:
min(− 2 ⋅ x − 1.5 ⋅ y ) ,
cu restricţiile:
− x ≥ −4; − y ≥ −7
− x − y ≥ −9

 .
− 2 ⋅ x − y ≥ −12
 x ≥ 0; y ≥ 0

Se calculează, în continuare, şirul de tabele simplex ataşate problemei echivalente:

x y w1 y
-1 0 4 w1 -1 0 4 x
Pivot

0 -1 7 w2 0 -1 7 w2
-1 -1 9 w3 1 -1 5 w3
-2 -1 12 w4 2 -1 4 w4
-2 -1.5 0 k 2 -1.5 -8 k
Pivot

234
w1 w4 w3 w4
-1 0 4 x 1 -1 3 x
-2 1 3 w2 2 -1 1 w2
-1 1 1 w3 -1 1 1 w1
Pivot

2 -1 4 y 2 1 6 y
-1 1.5 14 k 1 0.5 -15 kmax

Se constată că, la cel de-al patrulea tabel, toate valorile cj sunt pozitive. În aceste condiţii
şirul iterativ se opreşte, iar valorile optime ale variabilelor sunt:
x = 3
 ,
y = 6
ceea ce conduce la valoarea minimă a funcţiei obiectiv, kmin = −15.
Foaia de calcul ce conţine rezolvarea problemei echivalente din exemplul 4 este prezentată
în cele ce urmează.

3
f( x, y ) := −2⋅ x − ⋅y - Functia obiectiv:
2
x := 0 y := 0 - solutiile initiale
Given
−x ≥ −4
−y ≥ −7
−x − y ≥ −9
−2x − y ≥ −12  xmin 
:= Minimize( f , x, y ) xmin = 3
 y min  ==>
y min = 6

(
fmin := f xmin, y min ) ==> fmin = −15

15.2. ALGORITMUL CVADRATIC

Forma standard a unei probleme de programare cvadratică este, [UDR80]:


 m m m m

min ∑∑ c jk ⋅ x j ⋅ xk + ∑ d j ⋅ x j + e ∑ aij ⋅ x j ≥ bi , x j ≥ 0, i ∈1,n , j ∈1,m , n ≥ m , (15.17)
 j =1 k =1 j =1 j =1 

unde:
m m m
ƒ ( )
f x1 , x2 ,L , x j ,L, xm = ∑∑ c jk ⋅ x j ⋅ xk + ∑ d j ⋅ x j + e reprezintă funcţia obiectiv,
j =1 k =1 j =1
ce trebuie minimizată;

235
m
ƒ D : ∑ aij ⋅ x j ≥ bi , x j ≥ 0 , i ∈1,n , n ≥ m reprezintă restricţiile, care delimitează domeniul
j =1
soluţiilor posibile, D, numit hiperpoliedrul restricţiilor.
În acest caz, ecuaţia obţinută pe baza funcţiei obiectiv:
(
f x1 , x2 ,L , x j ,L , xm = k , ) (15.18)
m
unde k – este o constantă reală, reprezintă un fascicol de hipercvadrice în R .
Ecuaţia (15.18) poate fi transformată, printr-o izometrie (Translaţie + rotaţie a axelor de
coordonate) şi adusă la o formă canonică. Dacă ecuaţia (15.18) reprezintă o formă de hipercvadrice
cu centru, atunci:
m
∑ αi ⋅ X i2 + γ = K . (15.19)
i =1
Dacă ecuaţia (15.18) reprezintă o formă de hipercvadrice fără centru, atunci:
m
∑ αi ⋅ X i2 + β ⋅ X 1,L,i ,L,m = K . (15.20)
i =1
Aplicând aceeaşi transformare şi restricţiilor, acestea conduc la delimitarea unui domeniu, Dt::
m
∑ hij ⋅ X j ≥ g i , i ∈1,n . (15.21)
j =1
În aceste condiţii, pentru a ilustra semnificaţia geometrică a unei probleme cvadratice de
programare, vom considera cazul bidimensional cu funcţia obiectiv de forma:
f ( x1 , x2 ) = x12 + x22 . (15.22)
Cu aceste ipoteze, funcţia obiectiv reprezintă o familie de cercuri concentrice cu centrul în
origine, iar k reprezintă pătratul distanţei dintre punctele O(0,0) şi M(x1,x2). Rezultă că valoarea lui
k este un extrem, atunci când distanţa d(O,M) = extrem.
Se pot întâlni două cazuri distincte:
Cazul I, când O(0,0)∈D, vezi fig. 15.2. În acest caz:
k min = 0 , (15.23)

x2

k max

f ( x1 , x2 ) = x12 + x22

m 0 x1
∑ aij ⋅ x j = bi
D
j =1
M(x1,x2)

Fig. 15.2 Soluţia problemei de programare cvadratice, în cazul în care O(0,0)∈D

236
iar, valorile funcţiei obiectiv, calculate în vârfurile hiperpoliedrului D, conţin şi valoarea
maximă a problemei de programare.
Cazul II, când O(0,0)∉D, vezi fig. 15.3. În acest caz soluţia optimă este reprezentată de un singur
punct comun frontierei lui D şi un cerc din familia de cercuri concentrice f ( x1 , x2 ) = k ,
cu centrul în origine.
Dacă există laturi ale hiperpoliedrului D cu proprietatea, că perpendiculara dusă
pe ele din O(0,0), nu cade pe prelungiri atunci comparând pătratele distanţelor de la
origine la aceste drepte, obţinem soluţia optimă a problemei, kmin şi respectiv kmax.

x2 f ( x1 , x2 ) = x12 + x22

M(x1,x2) m
∑ aij ⋅ x j = bi
j =1
D

0 x1

Fig. 15.3 Soluţia problemei de programare cvadratice, în cazul în care O(0,0)∉D

Dacă nici o latură nu are această proprietate, atunci kmin şi/sau kmax se obţine comparând
valorile lui k în vârfurile hiperpoliedrului restricţiilor.
Metodele de rezolvare numerică a acestor probleme de programare cvadratică nu se bazează
pe considerentele de ordin geometric, descrise mai sus. Ele au la bază metode de tip gradient, vezi
subcapitolul 14.4.
În situaţia în care utilizatorul nu dispune de pachetul opţional, Solving and Optimisation
Extension Pack, acest tip de probleme este rezolvat prin utilizarea algoritmilor specifici problemelor
neliniare.

Exemplul 5: să se determine minimul funcţiei obiectiv:


F( x, y ) = x2 + 3 ⋅ y 2 + 3 ⋅ x + 9 ⋅ y ,
pe un domeniu plan determinat de restricţiile:
 x ≥ −3

y ≥ 0
6 ⋅ x + 10 ⋅ y < 40

237
2 2 - functia obiectiv:
F( x, y ) := x + 3⋅ y + 3⋅ x + 9⋅ y

x := 1
- solutiile initiale
y := 1

Given
6⋅ x + 10y ≥ 40
x ≥ −3
y≥0  xmin 
:= Minimize( F , x, y ) xmin = 4.038462
 ymin  ==>
y min = 1.576923

(
kmin := F xmin, y min ) ==> kmin = 50.076922

238
II APLICAŢII ÎN MATHCAD 2001

INTERPOLĂRI ŞI REGRESII
_______________________________________________________________________________

Numeroase probleme specifice ingineriei moderne îşi găsesc rezolvarea în urma analizei şi
prelucrării numerice a datelor experimentale.
În general aceste valori se prezintă sub forma unor tabele de corespondenţă între variabile
independente şi o variabilă dependentă de acestea. Spre exemplu, în cazul bidimensional, dacă
notăm cu x variabila independentă şi cu y variabila dependentă, în cazul unei relaţii de dependenţă
exprimată sub forma relaţiei:
y = f ( x ), (16.1)
n valori determinate experimental se pot prezenta sub forma:

Tabelul 16.1 Valori experimentale


x x1 x2 x3 … xi … xn-1 xn
y y1 y2 y3 … yi … yn-1 yn
Valorile:
− x = x1 , x2 ,K , xi ,K , xn se numesc puncte de sprijin (noduri);
− y = y1 , y 2 ,K , yi ,K , y n se numesc valori de sprijin (nodale).
Manipularea acestor date, prezentate sub formă tabelară, este greoaie şi nu se pretează unor
prelucrări ulterioare folosind instrumentele analizei matematice (derivare, integrare etc.). De aceea
se pune problema stabilirii expresiei matematice a dependenţei (16.1).
Această dependenţă poate fi stabilită pe baza unor ecuaţii, [POP86]:
a. Raţionale. Acest tip de ecuaţii este dedus în mod teoretic, pe baza unor legi, sau strategii
cunoscute, urmând ca pe baza datelor experimentale să se determine valorile unor constante pe
care aceste expresii le conţin.
b. Empirice. Acest tip de ecuaţii este dedus pe cale experimentală. Reprezentarea analitică a
dependenţei funcţionale dintre variabilele acestui tip de ecuaţii se realizează în două etape:
− stabilirea formei relaţiei de dependenţă;
− determinarea valorilor adecvate ale parametrilor.
Prelucrarea datelor experimentale, în modalitatea prezentată anterior, face apel al teoria
aproximării. Acest domeniu al matematicii oferă soluţii practice admisibile acolo unde metodele
exacte sunt imposibil de aplicat.
Operaţiile matematice specifice teoriei aproximării sunt:
a. Interpolarea. Prin interpolare se înţelege operaţia matematică ce constă în găsirea unei funcţii,
F(x), care să permită, pentru valori oarecare a lui x, situate în intervalul [x1,xn], estimarea
valorilor funcţiei f(x).

239
O condiţie necesară pentru determinarea funcţiei de interpolare, F(x), este coincidenţa cu funcţia
f(x) în valorile nodale:
 F ( x1 ) = y1
F ( x ) = y
 2 2
M
 . (16.2)
 F ( xi ) = yi
M

 F ( xn ) = y n

Din acest motiv, interpolarea se recomandă a fi utilizată în condiţiile în care:


− valorile experimentale sunt relativ precise, neafectate de erori semnificative;
− numărul de valori experimentale este relativ mic. Nerespectarea acestei condiţii,
conduce la obţinerea unor relaţii complexe, greu de utilizat;
− funcţia f(x) este cunoscută, dar expresia ei este complicată şi/sau foarte greu de
evaluat şi manipulat.
b. Extrapolarea. Prin extrapolare se înţelege operaţia matematică ce constă în găsirea unei funcţii,
F(x), care să permită estimarea valorilor funcţiei f(x), pentru valori oarecare a lui x, situate în
afara intervalului în care sunt determinate punctele nodale, ( x < x1 ) U ( xn < x ) .

c. Regresia. Ca origine, această operaţie matematică, provine din statistică unde a fost dezvoltată
pentru cercetarea şi descrierea dependenţei dintre variabilele aleatorii. Această tehnică poate fi
utilizată cu succes şi la studiul tipului de dependenţă, de forma (16.1), dintre două variabile
prezentate sub o formă tabelară.
Regresia reprezintă operaţia matematică prin care se determină valorile parametrilor unei
funcţii trasate printre punctele experimentale, din condiţia minimizării distanţei dintre funcţia
f(x) şi modelul F(x) adoptat:
12
 xn 
d ( f , F ) =  ∫ [ f ( x ) − F ( x )]2 ⋅ dx  . (16.3)
 x1 
Din punct de vedere practic, relaţia (16.3) nu este utilizabilă decât în cazurile în care f(x)
este cunoscută, dar datorită complexităţii ei se caută o expresie mai simplă şi mult mai uşor de
utilizat. În majoritatea cazurilor, în care apelăm la regresie nu se cunoaşte expresia lui f(x). În
aceste situaţii se utilizează o expresie, mai puţin riguroasă:
12
n 2
d ( f , F ) = ∑ [ f ( xi ) − F ( xi )]  . (16.4)
 i =1 
Relaţia (16.4) poartă numele de principiul Gauss-Legendre, sau metoda celor mai mici pătrate.
Din acest motiv, regresia se recomandă a fi utilizată în condiţiile în care:
− valorile experimentale sunt afectate de erori semnificative;
− numărul de valori experimentale este relativ mare şi utilizarea interpolării
conduce la obţinerea unor relaţii complexe, greu de utilizat;
− funcţia f(x) este cunoscută, dar expresia ei este complicată şi/sau foarte greu de
evaluat şi manipulat.
Mathcad pune la dispoziţia utilizatorului un pachet de funcţii predefinite destinat
prelucrării datelor printr-una din operaţiile specifice teoriei aproximării, prezentate anterior.

240
16.1. FUNCŢII PENTRU INTERPOLARE

Calculul valorilor de interpolare, respectând condiţia necesară (16.2), se poate face în foarte
multe moduri. Tendinţa actuală este aceea de a se renunţa la determinarea unei funcţii de interpolare
globală şi de a se utiliza funcţii care interpolează pe porţiuni. În acest sens, funcţiile Mathcad
predefinite, permit:
a. Interpolarea liniară;
b. Interpolarea polinomială de tip spline.

16.1.1. Interpolarea liniară

Interpolarea liniară reprezintă cea mai simplă formă de interpolare care poate fi aplicată la
determinarea valorilor de sprijin intermediare, în cazul unor date prezentate sub formă tabelară.
Presupunem că dorim să determinăm valoarea de interpolare corespunzătoare unui punct de
abscisă xc, vezi fig. 16.1. Se procedează în felul următor:
1. Se determină două puncte de sprijin consecutive, xi şi xi+1, care conţin în intervalul pe care îl
delimitează, punctul, xc:
xc ∈ [xi , xi +1 ] ,
în care dorim să calculăm valoarea de interpolare.
2. Se determină ecuaţia dreptei ce trece prin cele două puncte Pi şi Pi+1:
x − xi y − yi
= . (16.5)
xi +1 − xi yi +1 − yi
În ecuaţia (16.5) s-au notat prin yi şi yi+1 valorile de sprijin corespunzătoare lui xi şi xi+1.
3. Se calculează valoarea de interpolare, cu relaţia:
yi +1 − yi
yc = yi + ( xc − xi ) ⋅ . (16.6)
xi +1 − xi
Ecuaţia (16.6) se obţine din (16.5) în urma unor prelucrări.

y
Pi+1(xi+1,yi+1) Pn(xn,yn)
yi+1
P2(x2,y2)

yc Pn-1(xn-1,yn-1)
yi
Pi(xi,yi)
P1(x1,y1)

0 xi xc xi+1 x

Fig. 16.1. Interpolarea liniară

În Mathcad, valorile de interpolare liniară se determină prin utilizarea:

241
• Funcţiei linterp:
o Sintaxa funcţiei: linterp(Vx,Vy,x);
o Argumentele funcţiei: ¬ Vx, Vy – reprezintă doi vectori coloană, cu elemente reale şi cu
aceleaşi dimensiuni (n linii × 1 coloană), ce conţin valorile absciselor şi respectiv a ordonatelor,
pentru n puncte;
¬ x – reprezintă valoarea abscisei unui punct, a cărui ordonată
urmează a fi determinată prin interpolare liniară.
o Valoarea returnată: un număr real care reprezintă valoarea calculată prin interpolare liniară.
o Observaţii:
a. Valorile conţinute în vectorul Vx trebuie să fie ordonate crescător;
b. Valoarea argumentului x trebuie să respecte condiţia:
Vx0 ≤ x ≤ Vxn−1 . (16.7)

Exemplul 1: Într-un experiment se realizează următoarele măsurători:


x 8 6 10 5 13 11 14
y 1.33 2.5 4.78 6.0 7.34 8.89 15.45
Să se calculeze valorile de interpolare liniară, în punctele x=5.3; 7.0; 13.333.

Date :=
0 1 - se ordoneaza crescator valorile absciselor:
0 8 1.33
DATE := csort ( Date , 0)
1 6 2.5
2 10 4.78
3 5 6 〈0〉
• valorile absciselor: X := DATE
4 13 7.34
〈1〉
5 11 8.89 • valorile ordonatelor Y := DATE
6 14 15.45
• Functia de interpolare liniara: y ( x) := linterp( X , Y , x)
• Calculul valorilor interpolate:
y ( 5.2) = 5.3
y ( 7) = 1.915
y ( 13.333) = 10.041

20

Y
10
y ( x)

4 6 8 10 12 14 16
X, x
Punctele initiale
Functia de interpolare liniara

242
16.1.2. Interpolarea polinomială de tip spline

Interpolarea polinomială de tip spline reprezintă un tip de interpolare pe porţiuni, care se


aplică unei diviziuni:
a = x1 < x2 < L < xi < L < xn = b , (16.8)
a intervalului [a,b].
O funcţie spline polinomială de gradul p cu nodurile în punctele xi, i ∈1,n , este o funcţie F
cu următoarele proprietăţi:
a. Pe fiecare subinterval [xi , xi +1 ] , F(x) este un polinom de gradul p;
b. F(x) şi primele sale (p-1) derivate sunt continue pe [a,b].
Deoarece funcţia spline F(x) are primele (p-1) derivate continue pe [a,b], derivata de ordinul
p fiind discontinuă în nodurile xi ale diviziunii, spunem că ea este o funcţie netedă pe porţiuni.
Gradul de netezime este dat de ordinul p. Principiul de realizare al interpolării polinomiale de tip
spline este prezentat în fig. 16.2.

F2(x)

x1 x2 x3 x4 x5

Fig. 16.2 Principul de realizare al interpolării polinomiale de tip spline pe porţiuni

Cel mai des utilizate funcţii polinomiale de tip spline sunt funcţiile spline cubice. În
condiţiile prezentate anterior, funcţia spline cubică au ecuaţia:
Fi ( x ) = yi + bi ⋅ ( x − xi ) + ci ⋅ ( x − xi ) + d i ⋅ ( x − xi ) , pentru xi ≤ x ≤ xi +1 ,
2 3
(16.9)
Construcţia unei funcţii spline cubice reprezintă un procedeu numeric simplu şi stabil, în
care coeficienţii bi, ci şi di ai fiecărei porţiuni din curbă se de termină din condiţiile de continuitate
în punctele xi , i ∈1,n , ale diviziunii.
Să considerăm subintervalul [xi , xi +1 ] şi să notăm cu, [ŞAB83]:

hi = xi +1 − xi

 x − xi
ω = , (16.10)
 hi
 ω = 1 − ω

se constată că dacă x parcurge acest subinterval, atunci ω variază de la zero la unu, iar ω de la unu

243
la zero. Cu aceste notaţii, Fi(x) poate fi scris sub forma:

[( ) (
Fi ( x ) = ω ⋅ yi +1 + ω ⋅ yi + hi2 ⋅ ω3 − ω ⋅ σ i +1 + ω 3 − ω ⋅ σ i , ) ] (16.11)
unde σ i şi σ i +1 reprezintă două constante ce urmează a fi determinate. Primii doi termeni
corespund interpolării liniare obişnuite, iar ultimul termen reprezintă o corecţie cubică, prin
intermediul căreia asigurăm netezimea lui Fi(x).
De asemenea, putem face observaţia că acest termen se anulează la ambele extremităţi ale
subintervalului, astfel încât:
 Fi ( xi ) = yi
 , (16.12)
 Fi ( xi +1 ) = yi +1
deci Fi(x) interpolează datele (xi , yi ) independent de alegerea constantelor σ i . Prin derivarea lui
1 1
Fi(x) şi având în vedere că ω′ = şi ω′ = − , obţinem:
hi hi


 Fi′( x ) =
yi +1 − yi
h
[( ) (
+ hi ⋅ 3 ⋅ ω2 − 1 ⋅ σ i +1 − 3 ⋅ ω 2 − 1 ⋅ σ i) ]
 i

 Fi′′( x ) = 6 ⋅ ω ⋅ σ i +1 + 6 ⋅ ω ⋅ σ i . (16.13)

 Fi′′′( x ) = 6 ⋅ (σ i +1 − σ i )
 hi

Se observă că Fi′′( x ) este o funcţie liniară care interpolează valorile 6⋅σi şi 6⋅σi+1. Rezultă:

Fi′′( xi )
σi = , (16.14)
6
iar Fi′′′( x ) este constantă pe fiecare subinterval şi F IV ( x ) = 0 pe tot intervalul [a,b]. Calculând
derivatele laterale, la capetele unui subinterval, F−′ ( xi ) şi F+′ ( xi ) , obţinem:

 F+′ ( xi ) = ∆ i − hi ⋅ (σ i +1 + 2 ⋅ σ i )
 , (16.15)
 F−′ ( xi ) = ∆ i − hi ⋅ (2 ⋅ σ i +1 + σ i )
unde s-a notat prin ∆ i = ( yi +1 − yi ) hi . Pentru a obţine continuitatea dorită, impunem în nodurile
interioare condiţiile suplimentare:
F−′ ( xi ) = F+′ ( xi ), i ∈ 2 ,n − 1 . (16.16)
Dacă, în ecuaţiile (16.15) înlocuim pe i cu i-1 şi apoi impunem condiţiile (16.16), obţinem:
∆ i −1 + hi −1 ⋅ (2 ⋅ σ i + σ i −1 ) = ∆ i + hi ⋅ (2 ⋅ σ i +1 + σ i ) , (16.17)
şi
hi −1 ⋅ σ i −1 + 2 ⋅ (hi −1 + hi ) ⋅ σ i + hi ⋅ σ i +1 = ∆ i − ∆ i −1 , i ∈ 2 ,n − 1 . (16.18)
Ecuaţiile (16.18) reprezintă un sistem de n-2 ecuaţii liniare în raport cu necunoscutele
σ i , i ∈1,n . Pentru determinarea, în mod unic, a funcţiei spline de interpolare mai sunt necesare
încă două condiţii. Acestea se pot specifica în mai multe feluri. De exemplu, ele pot fi de forma:
F1′′ ( x1 ) = Fn′′−1( xn ) = 0 . (16.19)

244
Condiţiile (16.19) se consideră condiţii la limită naturale şi conduc la obţinerea unei funcţii
spline cubică naturală.
O altă modalitate de a defini condiţiile suplimentare, constă în alegerea a două polinoame
de gradul trei, C1(x) şi Cn(x), ale căror grafice trec prin primele patru puncte şi respectiv, prin
ultimele patru puncte, ( xi , yi ) . Condiţiile la limită, care leagă funcţiile F(x), C1(x) şi Cn(x) sunt în
acest caz:
 F ′′′( x1 ) = C1′′′
 . (16.20)
 F ′′′( xn ) = C n′′′
Constantele C1′′′ şi Cn′′′ pot fi determinate considerând diferenţele divizate:
yi +1 − yi
ƒ ∆i = - de ordinul întâi;
xi +1 − xi
∆ − ∆i
ƒ ∆(i2 ) = i +1 - de ordinul doi;
xi + 2 − xi
∆(i2+1) − ∆(i2 )
ƒ ∆(i3 ) = - de ordinul trei.
xi +3 − xi

Se constată că 2 ⋅ ∆(i2 ) şi 6 ⋅ ∆(i3 ) aproximează derivatele de ordinul doi şi trei. Pe baza


acestor consideraţii şi cu notaţiile anterioare, rezultă:
C1′′′= 6 ⋅ ∆(13 )
 . (16.21)
Cn′′′ = 6 ⋅ ∆(in3−) 3
Relaţiile (16.21) împreună cu relaţiile (16.13), conduc la:
 σ 2 − σ1
 h = ∆(13 )
 1
 . (16.22)
 n σ n−1 = ∆( 3 )
σ −
n −3
 hn−1

Dacă înmulţim ecuaţiile (16.22) cu h12 şi respectiv cu − hn2−1 , după o serie de transformări,
rezultă:
− h1 ⋅ σ1 + h1 ⋅ σ 2 = h12 ⋅ ∆(13 )
 . (16.23)
hn−1 ⋅ σ n−1 − hn−1 ⋅ σ n = − hn2−1 ⋅ ∆(n3−)3
O altă modalitate de a defini condiţiile suplimentare, constă în alegerea a două polinoame
de gradul doi, C1(x) şi Cn(x), ale căror grafice trec prin primele trei puncte şi respectiv, prin ultimele
trei puncte, ( xi , yi ) . Condiţiile la limită, care leagă funcţiile F(x), C1(x) şi Cn(x) în acest caz, sunt:

 F ′′( x1 ) = C1′′
 . (16.24)
 F ′′( xn ) = Cn′′
Constantele C1′′ şi Cn′′ pot fi determinate considerând diferenţele divizate şi procedând ca
în cazul precedent.
Pentru a determina funcţia spline cubică este necesar să rezolvăm sistemul liniar de ecuaţii
care rezultă luând în considerare cele n-2 ecuaţii (16.18) împreună cu cele două ecuaţii (16.19),
(16.23), sau cele ce rezultă din condiţiile (16.24).

245
Sistemul de ecuaţii rezultat prin utilizarea ecuaţiilor (16.18) împreună cu (16.19) se poate
scrie sub formă matriceală:
− h1 h1 0 L 0 L 0 0 σ1 h12 ⋅ ∆(13 )
h1 2 ⋅ (h1 + h2 ) h2 L 0 L 0 0 σ2 ∆ 2 − ∆1
0 h2 2 ⋅ (h2 + h3 ) L 0 L 0 0 σ3 ∆3 − ∆ 2
M M M L 0 L M M M M
⋅ =
0 0 0 L hi L 0 0 σi ∆ i − ∆ i −1
M M M L M L M M M M
0 0 0 L 0 L 2 ⋅ (hn−2 + hn−1 ) hn−1 σ n−1 ∆ n−1 − ∆ n−2
0 0 0 L 0 L hn−1 − hn−1 σn − hn2−1 ⋅ ∆(n3−)3
(16.25)
Matricea sistemului (16.25) este tridiagonală, simetrică, nesingulară şi diagonal dominantă.
Deci pentru a obţine soluţia sistemului se poate folosi metoda lui Gauss fără pivotare. Eliminarea
gaussiană transformă sistemul iniţial în:
α1 h1 0 L 0 L 0 0 σ1 β1
0 α2 h2 L 0 L 0 0 σ2 β2
0 0 α3 L 0 L 0 0 β3 β3
M M M L M L M M M M
⋅ = . (16.26)
0 0 0 L αi L 0 0 σi βi
M M M L M L M M M M
0 0 0 L 0 L α n−1 hn−1 σ n−1 β n−1
0 0 0 L 0 L 0 αn σn βn

Coeficienţii σ i se determină din sistemul (16.26) prin substituţie regresivă, cu relaţiile:


β i − hi ⋅ σ i +1
σi = , pentru i ∈ n − 1,1 , (16.27)
αi
unde elementele diagonale se calculează cu ecuaţiile:


α1 = −h1
 hi2−1
α i = 2 ⋅ (hi −1 − hi ) − , pentru i ∈ 2 ,n − 1 (16.28)
 α i −1
 h2
α n = − hn2−1 − n−1
 α n−1
şi termenii liberi, β i :

 2 (3)
β1 = h1 ⋅ ∆1
 hi −1 ⋅ β i −1
βi = (∆ i − ∆ i −1 ) − , pentru i ∈ 2 ,n − 1 . (16.29)
 α i −1
 β
β n = − hn−1 ⋅ ∆ n−3 − hn−1 ⋅ n−1
2 (3)

 α n−1

246
Cu ajutorul valorilor determinate prin ecuaţiile (16.27), (16.28) şi (16.29) se pot calcula
coeficienţii bi, ci şi di ai fiecărei porţiuni din funcţia spline cubică. Se utilizează relaţiile:
 yi +1 − yi
bi = − hi ⋅ (σ i +1 + 2 ⋅ σ i )
hi


ci = 3 ⋅ σ i pentru i ∈1,n − 1 . (16.30)
 σ − σi
d i = i +1
 hi

În Mathcad, valorile de interpolare de tip spline cubice se determină prin utilizarea a trei
funcţii: lspline, pspline şi cspline. În funcţie de tipul argumentelor cu care sunt apelate, aceste
funcţii permit calculul coeficienţilor curbei cubice de interpolare în cazul:

a. Bidimensional
o Sintaxa funcţiilor: lspline(Vx,Vy);
pspline(Vx,Vy);
cspline(Vx,Vy).
o Argumentele funcţiilor: ¬ Vx, Vy – reprezintă doi vectori cu elemente reale şi cu aceleaşi
dimensiuni (n linii × 1 coloană), ce conţin valorile absciselor şi respectiv a
ordonatelor, pentru n puncte;
o Valoarea returnată: un vector ce conţine coeficienţii curbei spline de interpolare.
o Observaţii:
a. Valorile conţinute în vectorul Vx trebuie să fie ordonate crescător;
b. Curba spline de interpolare are formă:
ƒ liniară în vecinătatea extremităţilor domeniului, adică în preajma punctelor de
abscisă Vx0 şi Vxn-1, în cazul utilizării funcţiei lspline (condiţie de terminare liniară).
Această formă rezultă ca urmare a utilizării relaţiilor (16.19) pentru precizarea celor
două condiţii, la limită, suplimentare;
ƒ parabolică în vecinătatea extremităţilor domeniului, în cazul utilizării funcţiei
pspline (condiţie de terminare parabolică). Această formă rezultă ca urmare a
utilizării relaţiilor (16.24) pentru precizarea celor două condiţii, la limită,
suplimentare;
ƒ cubică în vecinătatea extremităţilor domeniului, în cazul utilizării funcţiei cspline
(condiţie de terminare cubică). Această formă rezultă ca urmare a utilizării relaţiilor
(16.20) pentru precizarea celor două condiţii, la limită, suplimentare.
c. Evaluarea ordonatei unui punct, de abscisă x, se realizează prin utilizarea funcţiei interp:
y = int erp( Vr ,Vx ,Vy , x ) , (16.31)
unde prin Vr s-a notat vectorul pe care-l returnează funcţia lspline. Valoarea argumentului
x trebuie să respecte condiţia din relaţia (16.7).

În cele ce urmează este prezentată foaia de calcul în care este exemplificat modul de
utilizare al celor trei funcţii Mathcad (lspline, pspline şi cspline). Valorile de calcul utilizate sunt
cele precizate la exemplul 1. De asemenea, s-a realizat şi o reprezentare grafică a celor trei tipuri de
curbe de regresie. Detaliile prezentate, la capetele intervalului pe care se realizează interpolarea,
evidenţiază efectul pe care îl au cele două condiţii suplimentare impuse (precizate prin ecuaţiile
(16.19), (16.21) şi (16.24)).

247
DATE := - se ordoneaza crescator valorile absciselor:
0 1
0 8 1.33
1 6 2.5 Date := csort ( DATE , 0)
2 10 4.78 5 6 
 
3 5 6 6 2.5 
4 13 7.34 8 1.33 
5 11 8.89 
Date = 10 4.78

6 14 15.45
 
 11 8.89 
〈0〉  13
• valorile absciselor: X := Date 7.34 
 
〈1〉  14 15.45 
• valorile ordonatelor: Y := Date
• Calculul functiei de interpolare spline:

Cu limite de grad 3: cs := cspline ( X , Y) yc ( x) := interp ( cs , X , Y , x)

Cu limite de grad 2: cp := pspline ( X , Y) yp ( x) := interp ( cp , X , Y , x)

Cu limite de grad 1: cl := lspline ( X , Y) yl( x) := interp ( cl , X , Y , x)

• Calculul valorilor interpolate:


1. Functia spline cu limite de grad 3: 2. Functia spline cu limite de grad 2:
yc ( 5.2) = 5.068 yp ( 5.2) = 5.104
yc ( 7) = 1.285 yp ( 7) = 1.261
yc ( 13.333) = 8.639 yp ( 13.333) = 8.912

3. Functia spline cu limite de grad 1:


yl( 5.2) = 5.207
yl( 7) = 1.185
yl( 13.333) = 9.295

15

yc ( x) 10

yp ( x)

yl ( x)
5

4 6 8 10 12 14
X, x
Punctele initiale
Functia cspline
Functia pspline
Functia lspline

248
Detalii:
1. La limita inferioara: 2. La limita superioara:

20

10

15

5
10

4 5 6 13 13.5 14 14.5 15
Punctele initiale Punctele initiale
Functia cspline Functia cspline
Functia pspline Functia pspline
Functia lspline Functia lspline

b. Tridimensional
o Sintaxa funcţiilor: lspline(Mxy,Mz);
pspine(Mxy,Mz);
cspline(Mxy,Mz).
o Argumentele funcţiei: ¬ Mxy – reprezintă un tablou cu elemente reale şi cu dimensiunile n
linii × 2 coloane, ce conţine valorile absciselor şi respectiv a ordonatelor, pentru n puncte din
planul xOy. Cele n puncte se aleg astfel încât să reprezinte diagonala unui domeniu
dreptunghiular, fig. 16.3.

P0(x0,y0)

P1(x1,y1)

P2(x2,y2)
O
Pi(xi,yi)
O
Pn-2(xn-1,yn-1)

Pn-1(xn-1,yn-1)

Fig. 16.3 Modul de precizare al elementelor tabloului Mxy

Domeniul dreptunghiular ales pentru interpolarea de tip spline este împărţit într-o reţea de
n × n puncte. Pentru a se manipula mai puţine date, în planul xOy, este suficient să se dea
valorile coordonatelor punctelor situate pe diagonala reţelei. Astfel Mxy este un tablou cu

249
elemente reale având n linii şi două coloane, pe fiecare coloană valorile fiind crescătoare.
Evident că dacă se cunoaşte Mxy programul calculează coordonatele tuturor celorlalte puncte.
¬ Mz – reprezintă un tablou, de dimensiuni n linii n coloane, ce
conţine valorile coordonatei z ale celor n × n puncte conţinute în domeniul plan delimitat.
o Valoarea returnată: un vector ce conţine coeficienţii suprafeţei spline de interpolare.
o Observaţii:
a. Valorile conţinute în tabloul de date Mxy trebuie să fie ordonate crescător;
b. Valorile conţinute în tabloul de date Mz trebuie să respecte condiţia: elementul Mzi,j
reprezintă coordonata z a punctului de abscisă Mxyi,0 şi de ordonată Mxyj,1.
c. Suprafaţa spline de interpolare are:
• condiţie de terminare liniară în cazul utilizării funcţiei lspline;
• condiţie de terminare parabolică în cazul utilizării funcţiei pspline;
• condiţie de terminare cubică în cazul utilizării funcţiei cspline.
d. Evaluarea coordonatei z a unui punct, de abscisă x şi ordonată y, se realizează prin
utilizarea funcţiei interp:
x 
y = int erp( Vr , Mxy , My ,   ) , (16.32)
 y
unde prin Vr s-a notat vectorul pe care-l returnează funcţia lspline. Valorile argumentelor x
şi y trebuie să respecte relaţiile:
Mxy0 ,0 ≤ x ≤ Mxyn−1,0
 . (16.33)
Mxy0 ,1 ≤ y ≤ Mxyn−1,1

În continuare este prezentat modul de utilizare al funcţiei cspline în cazul tridimensional.


Trebuie făcută precizarea că şi celelalte două funcţii, lspline şi pspline se utilizează în acelaşi mod.

Coordonatele punctelor din planul xoy: Valorile coordonatei z:

0 0  0.05 − 1.499 − 2.82 −3.701 −4 − 3.668 


1 1  −3.55 − 3.815 − 3.909 −3.672 −3 − 1.854 
   
2 2 − 3.551 − 3.432 − 3.198 −2.744 −2 − 0.94
Mxy =  Mz =  
3 3  −1.889 − 1.801 − 1.656 − 1.4 −1 − 0.442 
4 4
  −0.499 − 0.374 − 0.249 −0.125 0 0.125

   
5 5  −0.029 0.362 0.697 0.921 1 0.921 

Reprezentarea grafica
a punctelor initiale

Mz , Mz

250
  x 
S := cspline ( Mxy , Mz) fit( x, y ) := interp S , Mxy , Mz ,  
  y 

Calculul valorilor de interpolare: fit( 2.5, 3.9) = −1.569


fit( 0.1, 1.7) = −2.729

Reprezentarea grafica
a functiei de interpolare

Mz , fit

Relativ la o diviziune (16.8), a unui interval [a,b], se poate defini un alt tip de funcţii de
interpolare polinomială, şi anume funcţiile B-spline. Se numeşte funcţie B-spline de gradul p,
asociată nodurilor x0 , x1 ,L , xi ,L , x p +1 , vezi fig. 16.4, o funcţie alcătuită ca o combinaţie liniară de
funcţii elementare, [LAR89]:
1, x , x 2 , x 3 ,L , x p , ( x − x0 )+p ,( x − x1 )+p , ( x − x2 )+p ,L , ( x − x p )+p , (16.34)

real definită, continuă şi cu derivate continue până la ordinul p-1, pentru p ≥ 1 .

1, x , x 2 , x 3 ,L , x p , ( x − x1 )+p

x0 x1 x2 … xi … xp+1

Fig. 16.4 Principul de realizare al interpolării polinomiale de tip B-spline

251
În relaţia (16.34) s-a notat:

(x − xi )+p = (x − xi )
 p
daca x > xi
. (16.35)
0 daca x ≤ xi

În Mathcad interpolarea polinomială de tip B-spline se realizează prin intermediul:

• Funcţiei bspline:
o Sintaxa funcţiei: bspline(Vx,Vy,Vl,k);
o Argumentele funcţiei: ¬ Vx, Vy – reprezintă doi vectori cu elemente reale şi cu aceleaşi
dimensiuni (n linii × 1 coloană), ce conţin valorile absciselor şi respectiv a ordonatelor, pentru
n puncte;
¬ Vl – reprezintă un vector cu elemente reale, de dimensiuni n-k+1
linii × 1 coloană, ce conţine coordonatele unor puncte de legătură, în care elementele de tip B-
spline sunt forţate să se conecteze;
¬ k – reprezintă tipul de curbe individuale, ce alcătuiesc polinomul
de interpolare determinat:
• k=1 – indică faptul că se utilizează segmente de dreaptă pentru interpolare;
• k=2 – indică utilizarea unor curbe de tip parabolic (de gradul doi);
• k=3 – indică utilizarea unor curbe polinomiale de gradul trei.
o Valoarea returnată: un vector ce conţine coeficienţii curbei de interpolare B-spline, având
gradul k.
o Observaţii:
a. Valorile conţinute în vectorul Vx trebuie să fie ordonate crescător;
b. Valorile conţinute în vectorul Vl trebuie să fie ordonate crescător şi să respecte condiţiile:
Vl0 ≤ Vx0
 . (16.36)
Vln−k ≥ Vxn−1
c. Faptul că, utilizatorul deţine controlul asupra punctelor de conectare a elementelor
individuale de curbă B-spline, prin indicarea lor în vectorul Vl, asigură o flexibilitate
sporită. Curbele de interpolare prezentate anterior (linterp, cspline, lspine sau pspline),
reprezintă cazuri particulare ale curbelor B-spline.
d. Evaluarea ordonatei unui punct, de abscisă x, se realizează prin utilizarea funcţiei interp,
conform relaţiei (16.31). Valoarea argumentului x trebuie să respecte condiţia din relaţia
(16.7).

Mai jos este prezentată foaia de calcul în care este exemplificat modul de utilizare al
funcţiei Mathcad, destinată interpolării prin funcţii de tip B-spline de grad k = 1, 2, 3. Valorile de
calcul utilizate sunt cele precizate la exemplul 1.

Toate funcţiile Mathcad specializate pentru interpolare polinomială de tip spline (cspline,
pspline, lspline şi bspline), după cum rezultă din foile de calcul prezentate anterior, se utilizează
doar pentru a calcula parametrii funcţiilor de interpolare. Ele sunt funcţii pregătitoare. Interpolarea
propriu-zisă se realizează prin utilizarea funcţiei interp.

252
Date :=
0 1
0 5 6 〈 0〉
1 6 2.5 • Valorile absciselor: X := Date
2 8 1.33 〈 1〉
• Valorile ordonatelor: Y := Date
3 10 4.78
4 11 8.89 • Gradul curbelor B-spline:
5 13 7.34
6 14 15.45 k1 := 1 k2 := 2 k3 := 3

• Definirea vectorului ce contine punctele de conexiune ale curbelor B-spline:

 4 
   5 
 6.3   7   4 
 8.4   6.9 
   
9 
V1 :=  9.3  V2 :=  V3 :=  7 
   10.5 
 11.8   13 
 13   
 12.7     16 
 22   14 
 
• Calculul functiei de interpolare B-spline:

bs1 := bspline ( X , Y , V1, k1) y1( x) := interp ( bs1 , X , Y , x)


bs2 := bspline ( X , Y , V2, k2) y2( x) := interp ( bs2 , X , Y , x)
bs3 := bspline ( X , Y , V3, k3) y3( x) := interp ( bs3 , X , Y , x)

30

Y 20

y1 ( x)

y2 ( x)
10
y3 ( x)

4 6 8 10 12 14

X , x , x, x
Punctele initiale
Functia B-spline de grd. 1
Functia B-spline de grd. 2
Functia B-spline de grd. 3

În funcţie de tipul argumentelor cu care este apelată, interp permite calculul valorilor de
interpolare şi/sau regresie în cazul:

a. Bidimensional
o Sintaxa funcţiei: interp(Vr,Vx,Vy,x);

253
o Argumentele funcţiei: ¬ Vr – reprezintă un vector ce conţine valorile coeficienţilor curbei
de interpolare (dacă a fost generat de una din funcţiile bspline, cspline, lspline sau pspline), sau
valorile coeficienţilor curbei de regresie (dacă a fost generat de una din funcţiile regress sau
loess).
¬ Vx, Vy – reprezintă doi vectori cu elemente reale şi cu aceleaşi
dimensiuni (n linii × 1 coloană), ce conţin valorile absciselor şi respectiv a ordonatelor, pentru
n puncte. Aceste puncte sunt cele utilizate pentru generarea vectorului Vr;
¬ x – reprezintă abscisa punctului unde se determină valoarea de
interpolare şi/sau regresie.
o Valoarea returnată: valoarea de interpolare, sau cea de regresie, calculată în punctul x.
o Observaţii: valoarea argumentului x trebuie să respecte condiţia din relaţia (16.7).

b. Tridimensional
o Sintaxa funcţiei: interp(Vr, Mxy,Mz,v);
o Argumentele funcţiei: ¬ Vr – reprezintă un vector ce conţine valorile coeficienţilor
suprafeţei de interpolare (dacă a fost generat de una din funcţiile cspline, lspline sau pspline),
sau valorile coeficienţilor suprafeţei de regresie (dacă a fost generat de una din funcţiile regress
sau loess).
¬ Mxy, Mz – reprezintă două tablouri cu elemente reale, ce conţin
valorile coordonatelor, pentru n puncte. Aceste puncte sunt cele utilizate pentru generarea
vectorului Vr;
¬ v – reprezintă un vector ce conţine coordonatele unui punct unde se
determină valoarea de interpolare şi/sau regresie.
o Valoarea returnată: valoarea de interpolare sau cea de regresie, calculată în punctul de
coordonate:
 x = v0
 . (16.37)
 y = v1
o Observaţii: valorile argumentelor x şi y trebuie să respecte condiţiile (16.33).

16.2. FUNCŢII PENTRU REGRESII

După efectuarea unei serii de măsurători, de tipul celor prezentate în tabelul 16.1, asupra
variabilei dependente y, pentru diverse valori ale variabilei independente x, se pune problema să se
găsească forma dependenţei funcţionale, F(x), precum şi a valorilor parametrilor acestei funcţii.
Alegerea funcţiei F(x) este esenţială pentru succesul utilizării metodei regresiei. Din
păcate, nu există o metodă directă care să permită precizarea celui mai potrivit model al lui F(x).
Dacă există legităţi, pe care le cunoaştem apriori, cu privire la forma legăturii dintre variabile,
atunci von utiliza drept ecuaţie de regresie expresia matematică a acestora. Dacă nu există o
asemenea bază teoretică, [ŢAR98], se procedează la o analiză calitativă a esenţei fenomenelor şi
dacă se ajunge la concluzia că poate exista o legătură între variabile, pentru a alege cel mai potrivit
model de regresie se pot aplica următoarele reguli:
1. Datele experimentale se reprezintă grafic. Se obţine un număr de n puncte;

254
2. Se trasează vizual o curbă care să se apropie cât mai mult de punctele experimentale. Apoi,
se trasează efectiv, pe grafic, curba corespunzătoare, căutându-se să se acorde ponderi
egale tuturor punctelor înscrise;
3. Se apreciază forma funcţiei adecvate curbei trasate şi apoi se alege o ecuaţie care să
corespundă cât mai bine alurei curbei empirice;
4. Se calculează valorile parametrilor acestei curbe utilizând principiul Gauss-Legendre
(metoda celor mai mici pătrate), conform ecuaţiei (16.4);
5. Se apreciază gradul de concordanţă dintre punctele experimentale şi curba empirică
obţinută în etapa 4, prin calculul valorilor unor indicatori de concordanţă;
6. Dacă există mai multe modele matematice potenţiale, a căror alură ar putea modela modul
de dispunere pe grafic a celor n puncte experimentale, pentru fiecare, în parte, se parcurg
etapele 4 şi 5;
7. În funcţie de valorile indicatorilor de concordanţă şi/sau din alte considerente, de ordin
teoretic sau practic, se determină modelul cel mai potrivit.
Tipul modelului matematic adoptat pentru F(x) determină tipul de regresie utilizat pentru
reprezentarea datelor experimentale.

16.2.1. Regresia liniară

Regresia liniară utilizează o funcţie model de forma:


F( x ) = y = A + B ⋅ x . (16.38)
Determinarea parametrilor A şi B, ai ecuaţiei (16.38), prin metoda celor mai mici pătrate
implică minimizarea valorii ecuaţiei (16.4). Particularizată pentru cazul regresiei liniare ecuaţia
(16.4) devine:
12
n 
d ( f , F ) = ∑ [ yi − A − B ⋅ xi ]2  . (16.39)
 i =1 
Întrucât punctul de minim al ecuaţiei (16.39) coincide cu minimul relaţiei:
n
ε( A, B ) = ∑ [ yi − A − B ⋅ xi ]2 , (16.40)
i =1

ecuaţia (16.40) se utilizează în aplicaţiile practice pentru determinarea valorii parametrilor A şi B.


Semnificaţia geometrică a ecuaţiei (16.40) este prezentată în fig. 16.5 şi anume:
n
ε( A, B ) = ∑ ε i2 , (16.41)
i =1

unde s-a notat prin ε i , i ∈ 1, n - eroarea dintre ordonata unui punct experimental şi ordonata aceluiaşi
punct situat pe dreapta (16.38):
ε i = yi − A − B ⋅ xi . (16.42)
Dacă impunem, ecuaţiei (16.40), condiţia de minim, ε( A, B ) → min , parametrii dreptei de
regresie se obţin rezolvând sistemul ecuaţiilor normale:
 ∂ε( A, B )
 ∂A = 0
 . (16.43)
 ∂ε( A, B ) = 0
 ∂B

255
y
yn
Pn(xn,yn)

εi
Pi1(xi,yi)
Pn-1(xn-1,yn-1)
yi
tgα=A

Pi2(xi,A+B⋅xi)
P2(x2,y2)
y2 y=A+B⋅x
P3(x3,y3)

y1
P1(x1,y1)
B

0 x1 x2 … xi … xn x

Fig. 16.5 Utilizarea principiului celor mai mici pătrate în cazul regresiei liniare

În continuare este prezentată foaia de calcul Mathcad în care s-a rezolvat sistemul (16.43),
folosind facilităţile de calcul simbolic.

• Determinarea sistemului de ecuatii normale:

 n  n
∂ 
∂A 
∑ ( y − A − B ⋅ x)  → 2 ⋅ n ⋅ A +
i
2
i  (−2 ⋅ yi + 2 ⋅ B ⋅ xi)

i = 1  i =1

 n  n
∂ 
∂B
∑ ( y − A − B ⋅ x)  →
i
2
i   i i i ( i) 
 −2 ⋅ y ⋅ x + 2 ⋅ A ⋅ x + 2 ⋅ B ⋅ x 2 

i = 1  i=1

• Rezolvarea sistemului de ecuatii normale:

 n    n n n n   n n n  
 2⋅ n ⋅ A + 2⋅
 ∑ (−yi + B ⋅ xi) 0 

 −−
 ∑ i
y ⋅ ∑ (xi) + ∑
2
i
x⋅ ∑ y ⋅ x
i

i  ∑ y ⋅x⋅n−
i i ∑ x⋅
i ∑ y
i

i =1
 
  solve ,  A  →   i=1 i=1 i =1 i=1  i = 1 i =1 i=1 

 n  B    n 2    n 2  
 
∑ ( i) 
 −y ⋅ x + A ⋅ x + B ⋅ x 2  n n
2⋅ 0  
  i i i  
 − ∑
x +
 i = 1  i = 1
i ( i) 
x
2
⋅∑n  − ∑ x +
 i = 1  i = 1
i ∑ ( i) 
x
2
⋅ n

 i =1           
Rezultă:
 n n n n

 ∑ ∑
y i ⋅ x 2
i − ∑ ∑ x i ⋅ xi ⋅ y i
 A = i =1 i =1 i =1 i =1
 n
 n 
2

 ∑
n ⋅ xi2 −  xi  ∑
i =1  i =1 
 n n n
. (16.44)


i =1

n ⋅ xi ⋅ y i − ∑ ∑
i =1
xi ⋅
i =1
yi
B = 2
 n
 n 
 n ⋅ ∑ x 2
i − 
 ∑ x i

 i =1  i =1 

256
Funcţiile predefinite, prin intermediul cărora se calculează parametrii dreptei de
regresie, admit ca argumente doi vectori, Vx şi Vy, cu elemente reale şi cu aceleaşi dimensiuni (n
linii × 1 coloană), ce conţin valorile absciselor şi respectiv a ordonatelor, pentru cele n puncte
experimentale printre care se trasează dreapta de regresie

În Mathcad valorile parametrilor dreptei de regresie se calculează cu:


• Funcţia line:
o Sintaxa funcţiei: line(Vx,Vy);
o Valoarea returnată: un vector (2 linii × 1 coloană) ce conţine valorile calculate ale parametrilor
dreptei de regresie (A şi B).

• Funcţia intercept:
o Sintaxa funcţiei: intercept(Vx,Vy);
o Valoarea returnată: valoarea parametrului A al dreptei de regresie (A reprezintă ordonata
punctului de intersecţie al dreptei de regresie cu axa Oy), vezi fig. 16.5.

• Funcţia slope:
o Sintaxa funcţiei: slope(Vx,Vy);
o Valoarea returnată: valoarea parametrului B, al dreptei de regresie (B reprezintă panta dreptei
de regresie), vezi fig. 16.5.

Ca indicator al concordanţei, dintre dreapta de regresie şi valorile Vx şi Vy, se utilizează


coeficientul de corelaţie. El poate fi calculat utilizând funcţia corr(Vx,Vy). Pentru aplicaţii, valori
ale coeficientului de corelaţie, corr(Vx,Vy) > 0.9, indică o bună corelaţie între dreapta de regresie şi
valorile Vx şi Vy. Relaţia de calcul a valorii coeficientului de corelaţie este:

∑ (Vxi − Vx )⋅ (Vyi − Vy )
n −1

i =0
corr( Vx ,Vy ) = , (16.45)
∑ (Vxi − Vx ) ⋅ (Vyi − Vy )
n −1
2 2

i =0

În relaţia (16.45) prin Vx şi Vy s-au notat mediile aritmetice ale valorilor conţinute în cei doi
vectori argument:
 1 n−1
Vx = ⋅ ∑Vxi
 n i =0
 . (16.46)
n −1
Vy = 1 ⋅ Vy
 ∑ i
n i =0

Metoda regresiei fiind, la origine, o metodă statistică ea permite şi aprecierea împrăştierii


datelor experimentale faţă de dreapta de regresie. Acest lucru se poate realiza prin utilizarea:
• Funcţia stderr:
o Sintaxa funcţiei: stderr(Vx,Vy);
o Argumentele funcţiei: ¬ Vx, Vy – reprezintă doi vectori cu elemente reale şi cu aceleaşi
dimensiuni (n linii × 1 coloană), ce conţin valorile absciselor şi respectiv a ordonatelor, pentru
cele n puncte printre care se trasează dreapta de regresie;

257
o Valoarea returnată: eroarea standard asociată regresiei liniare:

1 n−1
stderr( Vx ,Vy ) = ⋅ ∑ (Vyi − (int ercept( Vx ,Vy ) + slope( Vx ,Vy ) ⋅ Vxi ))2 . (16.47)
n − 2 i =0
o Observaţii: valoarea erorii standard reprezintă o măsură a împrăştierii dintre dreapta de regresie
şi valorile Vx şi Vy.

Exemplul 2: Într-un experiment se realizează următoarele măsurători:


x -1.82 -0.65 0.53 1.71 2.88 4.06 5.24 6.41
y 6.02 4.58 0.95 0.14 -0.83 -5.48 -5.97 9.53
Să se calculeze valorile parametrilor dreptei de regresie şi să se aprecieze gradul de concordanţă şi
împrăştierea datelor experimentale, faţă de modelul adoptat.

date :=
0 1 〈0〉
• valorile absciselor: X := date
0 -1.82 6.02
1 -0.65 4.58 〈1〉
• valorile ordonatelor Y := date n := rows ( date )
2 0.53 0.95
3 1.71 0.14 i := 0 .. n − 1
4 2.88 -0.83 Calculul parametrilor dreptei de regresie:
5 4.06 -5.48 A1 := intercept ( X , Y) A1 = 2.958061
==>
6 5.24 -5.97 B1 := slope ( X , Y) B1 = −1.840697
7 6.41 -9.53
 A2  line( X Y) ==>
  := , A2 = 2.958061
 B2  B2 = −1.840697
Valoarea coeficientului de corelatie: stderr ( X , Y) = 0.969806
Valoarea erorii standard: corr( X , Y) = −0.985975

15

10

5
Y

A1 + B1⋅ x 4 2 0 2 4 6 8

10

15

X, x
Punctele experimentale
Dreapta de regresie

Deşi nu reprezintă o funcţie pentru regresii liniare, în continuare este prezentată o altă
funcţie Mathcad care permite calculul parametrilor unui model liniar, trasat tot printre punctele
experimentale. Aceasta este:

258
• Funcţia medfit:
o Sintaxa funcţiei: medfit(Vx,Vy);
o Argumentele funcţiei: ¬ Vx, Vy – reprezintă doi vectori cu elemente reale şi cu aceleaşi
dimensiuni (n linii × 1 coloană), ce conţin valorile absciselor şi respectiv a ordonatelor, pentru
cele n puncte printre care se trasează dreapta mediană;
o Valoarea returnată: un vector (2 linii × 1 coloană) ce conţine valorile calculate ale parametrilor
dreptei mediane (A şi B).
o Observaţii : algoritmul de calcul al parametrilor dreptei mediane constă în, [RMM01]:
1. cele n puncte, ale căror coordonate sunt indicate prin argumentele funcţiei – Vx şi Vy, sunt
împărţite în trei grupe;
2. se iau în considerare doar primul şi ultimul grup de puncte.
3. se calculează valorile mediane ale coordonatelor, pentru punctele din primul grup, (x1Me,
y1Me) şi pentru cele din grupul al treilea, (x2Me, y2Me). Modul de calcul al valorii mediane
este prezentat la subcapitolul 20.1.
4. se determină ecuaţia dreptei ce trece prin cele două puncte:
x − x1Me y − y1Me
= . (16.48)
x 2 Me − x1Me y 2 Me − y1Me
5. Parametrii acestei drepte:
 y 2 Me − y1Me
 A = y1Me − x 2 − x1 ⋅ x1Me
 Me Me
 , (16.49)
B = y 2 Me − y 1 Me
 x 2 Me − x1Me
reprezintă valorile returnate de funcţia medfit.
În continuare, este prezentată foaia de calcul ce prezintă modul de rezolvare al problemei din
exemplul 2, folosind de această dată dreapta mediană. Foaia de calcul conţine şi o reprezentare
grafică comparativă între dreapta de regresie şi dreapta mediană.

date :=
0 1
0 -1.82 6.02
1 -0.65 4.58 〈0〉
• valorile absciselor: X := date
2 0.53 0.95
〈1〉
3 1.71 0.14 • valorile ordonatelor Y := date
4 2.88 -0.83
n := rows ( date )
5 4.06 -5.48
i := 0 .. n − 1
6 5.24 -5.97
7 6.41 -9.53

Calculul parametrilor dreptei mediane:

 A3  medfit( X Y) ==>
  := , A3 = 3.536845
 B3 
B3 = −1.794183

259
15
10.713577

10

Y 5

A3 + B3⋅ x
4 2 0 2 4 6 8
A1 + B1⋅ x
5

10

− 11.767517 15

−4 X , x, x 8
Punctele experimentale
Dreapta mediana
Dreapta de regresie

Regresia liniară poate fi utilizată şi în cazul unor funcţii neliniare, cu condiţia ca acestea să
poată fi liniarizate printr-o schimbare convenabilă a variabilelor:
Y = f1( y )
X = f ( x )
 2
 . (16.50)
 A = f3( a )
 B = f 4 ( b )

În tabelul 16.2 sunt prezentate principalele funcţii neliniare care prin transformări simple,
de tipul (16.50) pot fi aduse la o formă liniară:
Y = A+ B⋅ X , (16.51)
a cărei parametri, A şi B se pot calcula cu relaţiile (16.44).

Exemplul 3: Într-un experiment se realizează următoarele măsurători:

x 0.60 1.10 1.60 2.10 2.60 3.10 3.60 4.10 4.60 5.10 5.60 6.10
y 0.040 0.627 1.587 3.059 4.257 5.573 6.674 7.636 8.353 9.046 9.804 10.433

Să se determine un model de regresie corespunzător şi să se calculeze valorile parametrilor. Dacă se


reprezintă grafic punctele experimentale, constatăm că putem utiliza modelul prezentat la poziţia 2,
din tabelul 16.2.

Transformarea variabilelor pentru liniarizare:


1
Y := ln( y ) X :=
x
Calculul parametrilor dreptei de regresie:

A
  := line( X , Y) A = 2.912
B ==>
B = −3.709

260
Valoarea coeficientului de corelatie: corr( X , Y) = −0.999538
Calculul parametrilor curbei de regresie: b := B
A
a := e
R( t) := a⋅ exp
b
Ecuatia curbei de regresie: 
t
15

10
y

R( t )
5

0
0 1 2 3 4 5 6 7
x, t

16.2.2. Regresii polinomiale

Regresia polinomială de gradul m utilizează o funcţie model de forma:


F ( x ) = y = a0 + a1 ⋅ x + a2 ⋅ x 2 + L + a j ⋅ x j + L + am ⋅ x m . (16.52)

Determinarea parametrilor a j , j ∈ 0 ,m , ai ecuaţiei (16.52), prin metoda celor mai mici


pătrate implică minimizarea valorii ecuaţiei:

[ ( )] .
n
2
ε( a0 ,L ,am ) = ∑ yi − a0 + a1 ⋅ xi + a2 ⋅ xi2 + L + a j ⋅ xi2 + L + am ⋅ xim (16.53)
i =1

Sistemul ecuaţiilor normale, care se obţine dacă impunem ecuaţiei (16.53) condiţia de
minim, este:
 ∂ε( a0 ,a1 ,L ,an )
(y − a )
n

∂a0
≡ − 2 ⋅ ∑ i 0 − a1 ⋅ xi − a2 ⋅ xi2 − L − a j ⋅ xij − L − am ⋅ xim = 0
 i =1
 ∂ε( a ,a ,L ,a )
(y − a )
n
 0 1 n
≡ −2 ⋅ ∑ i 0 − a1 ⋅ xi − a2 ⋅ xi2 − L − a j ⋅ xij − L − am ⋅ xim ⋅ xi = 0
 ∂a1 i =1
M

 . (16.54)
 ∂ε( a0 ,a1 ,L ,an ) ≡ −2 ⋅ ( )⋅ x
n

 ∂a j
∑ yi − a0 − a1 ⋅ xi − a2 ⋅ xi2 − L − a j ⋅ xi − L − am ⋅ xim
j
i
j
=0
i =1

M

 ∂ε( a0 ,a1 ,L ,an ) ≡ −2 ⋅ (y − a )
n

 ∂am
∑ i 0 − a1 ⋅ xi − a2 ⋅ xi2 − L − a j ⋅ xij − L − am ⋅ xim ⋅ xim = 0
i =1

Sistemul (16.54) este un sistem liniar de m+1 ecuaţii cu m+1 necunoscute. El poate fi scris
matriceal, sub forma:

261
Tabelul 16.2 Funcţii care pot fi liniarizate prin transformări simple
Nr. Expresia funcţiei, Substituţii recomandate
Graficul funcţiei f(x)
crt. y = f(x) pentru liniarizare
0 1 2 3

y y

Y = ln y
y = a ⋅ e b⋅ x ,  A = ln a
b>0 b<0 
1 sau 
ln y = ln a + b ⋅ x B = b
a a  X = x
x x
0
Modele de tip exponenţial

y y

b
Y = ln y
y = a ⋅ex ,  A = ln a
sau e b<0

2 b>0 B = b
b a2
ln y = ln a + 
x b X = 1
a −
a  x
x x
0 0
y
1
1  1
Y = y
a
y= , 1
a + b ⋅ e−x 2⋅a 
3 sau A = a
1 B = b
1
= a + b ⋅ e− x a+b b
ln  
y a  X = e − x
x
0

262
Tabelul 16.2 (continuare) Funcţii care pot fi liniarizate prin transformări simple
0 1 2 3
y y

Modele de tip
Y = log y

exponenţial
y = a ⋅b x , a > 0;
 A = log a
sau a > 0; 0 < b <1 
4 log y = log a + 
b >1  B = log b
+ x log b a  X = x
a
x x
0 0

y
Model de tip putere

y
b >1 b =1
b b<0 Y = log y
y = a⋅x ,
a  A = log a
sau b <1 
5 log y = log a + 
a
b > −1 B = b
+ b ⋅ log x b = −1  X = log x
b < −1
x
0 1 b>0 0 1 x

y y
Modele de tip

b a Y = y
y =a+ ,
hiperbolic

x A = a
b>0 
sau
6 B = b
a⋅x+b 
y= ; b<0
x X = 1
0< x<∞
a  x
x
x
0 0

263
Tabelul 16.2 (continuare) Funcţii care pot fi liniarizate prin transformări simple
Nr. Expresia funcţiei, Substituţii recomandate
Graficul funcţiei f(x)
crt. y = f(x) pentru liniarizare
0 1 2 3
y y
1 x
y= , b 0  1
a +b⋅x −
a Y = y
sau b>0 
7 1
= a +b⋅ x ;
a<0 A = a
y b<0 B = b
b 
a − a>0  X = x
− < x < ∞. a x
b
0
Modele de tip hiperbolic

y y
1 1
y= , b  1
b
Y = y
− >0 b a
a+ a −
x a 0 x 
sau A = a
8
x 
y= ; 1 b B = b
a⋅x+b − <0
a a  1
a x X =
− <x<∞  x
b 0

y y  1
b b
y= , Y = y
1 1 a

a+ −
x a<0 a 0  a
x A=
sau  b
9
b⋅ x 
y= ; b B = 1
1+ a ⋅ x a a>0  b
1 x 
− <x<∞
0 −
1
X = 1
a a  x

264
Tabelul 16.2 (continuare) Funcţii care pot fi liniarizate prin transformări simple

0 1 2 3
y y
Model de tip logaritmic

b<0 Y = y
A = a
y = a + b ⋅ log x ; a b>0 a 
10 
0< x<∞ B = b
x x  X = log x
0 1 0 1

265
n
n n n ∑ yi
n ∑ xi L ∑ xij L ∑ xim i =1
i =1 i =1 i =1 a0 n
n
∑ xi ∑
n
xi2 L
n
∑ xi j +1
L ∑
n
xim+1 a1 ∑ xi ⋅ yi
i =1
i =1 i =1 i =1 i =1
M M L M L M M M
n n n n
⋅ = . (16.55)
aj n
∑ xi ∑ xi j j +1
L ∑ xi2⋅ j L ∑ xim+ j ∑ xij ⋅ yi
i =1 i =1 i =1 i =1 M i =1
M M L M L M
n n n n am M
∑ xim ∑ xim+1 L ∑ xim+ j L ∑ xi2⋅m n
i =1 i =1 i =1 i =1 ∑ xim ⋅ yi
i =1

Rezolvarea sistemului (16.55) furnizează coeficienţii a j , j ∈ 0 ,m , ai polinomului de regresie


de gradul m.
În Mathcad valorile parametrilor unui polinom de regresie, de gradul m, se calculează cu:

• Funcţia regress
În funcţie de tipul argumentelor cu care este apelată, această funcţie, permite calculul
parametrilor, pentru un polinom de regresie, în cazul:

a. Bidimensional
o Sintaxa funcţiei: regress(Vx,Vy,m);
o Argumentele funcţiei: ¬ Vx, Vy – reprezintă doi vectori cu elemente reale şi cu aceleaşi
dimensiuni (n linii × 1 coloană), ce conţin valorile absciselor şi respectiv a ordonatelor, pentru
cele n puncte printre care se trasează polinomul de regresie;
¬ m – reprezintă gradul polinomului de regresie, m > 0 .
o Valoarea returnată: un vector, de dimensiuni m+4 linii × 1 coloană, ce conţine:
ƒ primul element – reprezintă un cod ce indică funcţia ce a generat vectorul (pentru funcţia
regress această valoare este 3);
ƒ al doilea element – reprezintă un cod care indică, începând de la care element al vectorului
se găsesc coeficienţii polinomului de regresie (pentru funcţia regress această valoare este
3);
ƒ al treilea element − reprezintă gradul polinomului de regresie, m.
ƒ următoarele m + 1 elemente − reprezintă coeficienţii polinomului de regresie, pornind de la
coeficientul termenului liber şi terminând cu coeficientul puterii a m-a.
o Observaţii:
a. Utilizând precizările anterioare, se poate construi polinomul de regresie folosind relaţia:
m
Pm( x ) = ∑ Ci +3 ⋅ x i , (16.56)
i =0

unde, prin C s-a notat vectorul returnat de funcţia regress.


b. Dacă dorim să utilizăm polinomul de regresie, fără a-i reconstitui expresia algebrică,
Mathcad are predefinită funcţia interp, care permite calculul valorilor intermediare. Modul

266
de utilizare al acestei funcţii este prezentat la subcapitolul 16.1.2.
c. Pentru a putea determina coeficienţii unui polinom de regresie de gradul m, este necesar ca
numărul de puncte, n, să îndeplinească condiţia:
n ≥ m +1. (16.57)
d. Deşi, funcţia regress poate calcula coeficienţii unui polinom de regresie de orice grad, în
aplicaţiile practice nu se recomandă utilizarea gradelor mai mari de şase.
e. Ca o măsură a concordanţei dintre valorile experimentale şi polinomul de regresie se poate
utiliza valoarea raportului de corelaţie, [ŢAR98]:
n −1 n −1
∑ ( yi − f ( xi ))2 ∑ ( f ( xi ) − y )2
i =0 i =0
η = 1− n −1
= n −1
, (16.58)
∑ ( yi − y ) 2
∑ ( yi − y ) 2

i =0 i =0

relaţie în care s-au notat prin:


• xi, valorile absciselor celor n valori iniţiale. Aceste valori sunt conţinute în vectorul Vx;
• yi, valorile ordonatelor celor n puncte iniţiale. Aceste valori sunt conţinute în vectorul
Vy;
• f(xi), valorile ordonatelor punctelor situate pe curba de regresie;
• y , media aritmetică a ordonatelor celor n valori iniţiale:

1 n−1
y= ⋅ ∑ yi . (16.59)
n i =0
În cele ce urmează este prezentată este prezentată foaia de calcul în care este exemplificat
modul de utilizare al funcţiei regress, pentru cazul bidimensional. Valorile de calcul utilizate sunt
cele precizate la exemplul 1.

Date :=
0 1
0 5 6
1 6 2.5 〈 0〉
• valorile absciselor: Vx:= Date
2 8 1.33
3 10 4.78 〈 1〉
• valorile ordonatelor: Vy := Date
4 11 8.89
5 13 7.34
6 14 15.45

Calculul functiei polinomiale de regresie:


• Gradul polinomului de regresie:

m1 := 2 m2 := 3 m3 := 4

• Coeficientii polinomului de regresie:

De grad 2: C1 := regress ( Vx, Vy, m1)

De grad 3: C2 := regress ( Vx, Vy, m2)

De grad 4: C3 := regress ( Vx, Vy, m3)

267
• Determinarea polinomului de regresie:

• De grad 2: • De grad 3: • De grad 4:

m1 m2

∑ ∑
j j
P2( x) := C1 ⋅x P3( x) := C2 ⋅x P4( x) := interp ( C3, Vx, Vy, x)
j+ 3 j+ 3
j=0 j=0

15

Vy

P2( x) 10
P3( x)

P4( x)
5

4 6 8 10 12 14
Vx, x, x, x
Punctele initiale
Gradul 2
Gradul 3
Gradul 4

Calculul rapoartelor de corelatie:

length( Vx) − 1

∑ (Vyj − P2(Vxj))2
j=0
La grad 2: η2 := 1 − ==> η2 = 0.889
length( Vx) − 1

∑ (Vyj − mean(Vy))
2

j=0

length( Vx) − 1

∑ (Vyj − P3(Vxj))
2

j=0
La grad 3: η3 := 1 − ==> η3 = 0.897
length( Vx) − 1

∑ (Vyj − mean(Vy)) 2

j=0

length( Vx) − 1

∑ (P4(Vxj) − mean(Vy))2
La grad 4: j=0
η4 := ==> η4 = 0.949
length( Vx) − 1

∑ (Vyj − mean(Vy)) 2

j=0

268
b. q-dimensional, q>2
o Sintaxa funcţiei: regress(Vx...y,Vz,m);
o Argumentele funcţiei: ¬ Vx...y – reprezintă un tablou de date, cu elemente reale (n linii × q-1
coloane), ce conţine valorile celor q-1 variabile independente, pentru cele n puncte printre care
se trasează hipersuprafaţa polinomială de regresie;
¬ Vz – reprezintă un vector, cu elemente reale (n linii × 1 coloană),
ce conţine valorile celei de a q-a variabile, pentru care se determină o dependenţă polinomială
de forma z=f(x,...,y), în cele n puncte printre care se trasează hiper-suprafaţa polinomială de
regresie;
¬ m – reprezintă gradul hipersuprafeţei polinomiale de regresie,
m > 0.
m+q
o Valoarea returnată: un vector, de dimensiuni C mm+ q −1 ⋅ + 3 linii × 1 coloană, ce conţine:
q
ƒ primul element – reprezintă un cod ce indică funcţia ce a generat vectorul (pentru funcţia
regress această valoare este 3);
ƒ al doilea element – reprezintă un cod care indică, începând de la care element al vectorului
se găsesc coeficienţii polinomului de regresie (pentru funcţia regress această valoare este
3);
ƒ al treilea element − reprezintă gradul polinomului de regresie, m.
m+q
ƒ următoarele Cmm+ q −1 ⋅ elemente − reprezintă coeficienţii polinomului de regresie.
q
o Observaţii:
a. Pentru a construi expresia algebrică a polinomului de regresie, realizatorii Mathcad pun la
dispoziţia utilizatorului două funcţii care permit asocierea coeficienţilor, returnaţi de
funcţia regress şi puterile celor q -1 coordonate independente, x...y . Cele două funcţii sunt
prezentate în continuare.

( nvar + deg )! • Nterms, numarul de termeni ai polinomului


Nterms( nvar , deg ) := nvar, numarul de variabile ale polinomului
deg!⋅ nvar! •
• deg, ordinul polinomului

Step ( v , Nvar , deg ) := for i ∈ 0 .. deg if Nvar 1


v ←v +i
i, 0 i, 0
for i ∈ 0 .. Nvar − 1 if deg 1
v ←v +1
i, i i, i

otherwise
inc ← Nterms( Nvar , deg − 1)
for i ∈ 0 .. inc − 1
v ←v +1
i , Nvar− 1 i , Nvar−1
A ← Step ( submatrix( v , 0, inc − 1 , 0 , cols (v ) − 1) , Nvar , deg − 1)
B ← Step ( submatrix( v , inc , rows ( v ) − 1 , 0 , cols ( v) − 1) , Nvar − 1 , deg )
v ← stack( A , B)
v

COrder( Nvar , deg ) := v ←0


Nterms ( Nvar , deg) −1 , Nvar−1
Step ( v , Nvar , deg )

269
Utilizând vectorul returnat de funcţia regress şi cel returnat de funcţia COEForder
se poate construi expresia polinomului de regresie printr-o relaţie de forma:
m+ q
Cmm+ q −1⋅
q
∑ I i + 3 ,0 I i + 3 ,q −1
P( x , ... , y ) = coef i +3 ⋅ x ⋅K ⋅ y . (16.60)
i =0

În relaţia (16.64) s-a notat prin:


- coef – vectorul returnat de funcţia regress;
- m – gradul polinomului de regresie;
- I – tabloul returnat de funcţia COEForder.
b. Dacă dorim să utilizăm polinomul de regresie, fără a-i reconstitui expresia algebrică, se
utilizează funcţia predefinită interp, care permite calculul valorilor intermediare. Această
funcţie poate fi utilizată doar în cazul q = 3, sub forma expresiei (16.32)
c. Pentru a putea determina coeficienţii unui polinom de regresie de gradul m, este necesar ca
numărul de puncte, n, să îndeplinească condiţia:
m+q
n ≥ C mm+ q −1 ⋅ . (16.61)
q
d. Ca o măsură a concordanţei dintre valorile experimentale şi polinomul de regresie se poate
utiliza valoarea raportului de corelaţie, [ŢAR98]:
n −1 n −1
∑ (zi − f ( xi ,K , yi ))2 ∑ ( f ( xi ,K , yi ) − z )2
i =0 i =0
ηq = 1 − n −1
= n −1
, (16.62)
∑ (zi − z ) 2