Documente Academic
Documente Profesional
Documente Cultură
2004
EDITURA UNIVERSITĂŢII ”TRANSILVANIA” DIN BRAŞOV
2004
PREFAŢĂ
Î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.
benefice asupra calităţii aplicaţiei sunt marcate cu Sugestie, procedurile care măresc
productivitatea cu Rapid.
Î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.
4
CUPRINS
PARTEA I
FUNDAMENTE MATHCAD 2001
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
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
11
NOTAŢII, ABREVIERI ŞI SIMBOLURI DE ATENŢIONARE
Notaţii de atenţionare
Abrevieri
BR - Bloc de Regiuni
BR grupează logic regiuni text, matematice alte obiecte care pot fi ascunse, încuiate.
12
I FUNDAMENTE MATHCAD 2001
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
_______________________________________________________________________________
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.
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.
21
Tabel 2.1 Structura şi operaţiile efectuate de toolbar-ul matematic
Calculus
22
8 BIM Greek conţine simbolurile literelor
greceşti mari şi mici.
Greek
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.
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.
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).
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”).
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.
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.
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ă .
_______________________________________________________________________________
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
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.
Etape ________________________________
1. Clic într-o zonă liberă a worksheet-ului Æ
30
3. Inseraţi simbolul definire (:=) din unul din Æ
toolbar-urile Calculator, Evaluation, ori mai rapid apăsaţi tasta [:].
_______________________________________________________________________________
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) Æ
_______________________________________________________________________________
Î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 (:=) Æ
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.
2 Introduceţi simbolul a rond (@) sau graficul cadru din toolbar-ul Graph:
sau din meniul Insert Æ Graph Æ X-Y Plot
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.
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”)
_______________________________________________________________________________
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
_______________________________________________________________________________
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ă.
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.
Etape ________________________________
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.
_______________________________________________________________________________
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.
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.
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”).
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
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
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.
_______________________________________________________________________________
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
_______________________________________________________________________________
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).
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.
_______________________________________________________________________________
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.
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.
Î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.
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
Î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.
Î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ă.
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ă.
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 .
Î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.
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. →
6. Scrieţi x. →
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. →
Metoda 2
4. Scrieţi x. →
7. Scrieţi y. →
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.
_______________________________________________________________________________
- 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
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 →
_______________________________________________________________________________
53
Ştergerea unui operator
Etape ________________________________
1. Clic la dreapta operatorului. →
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. →
_______________________________________________________________________________
Parantezele rotunde se pot insera şi individual prin tastele [ ( ] şi [ ) ].
Ştergerea parantezelor
Etape ________________________________
1. Plasaţi cursorul vertical la dreapta parantezei ( →
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 →
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.
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.
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).
În Mathcad prin formatarea rezultatelor se înţelege modul în care sunt afişate rezultatele
unor calcule numerice.
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 ∞
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”).
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”).
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).
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”).
59
4. Formatul ingineresc este o particularizare a formatului ştiinţific, care utilizează ca
exponenţi doar multipli de 3.
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).
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.
_______________________________________________________________________________
Î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.
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 )
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.
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.
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.
63
- afişarea listelor de valori ale 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 vectorului θ
- definirea parametrului k şi a vectorului ρ
- definirea vectorilor x, y
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 := →
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.
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.
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].
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.
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”).
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.
Verificările se pot face şi în dialecte ale limbii engleze: meniul View Æ Preferences Æ tab-
ul General.
68
4.2.2. Formatarea textelor ( E)
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]
_______________________________________________________________________________
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.
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:
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).
_______________________________________________________________________________
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:
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.
_______________________________________________________________________________
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.
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
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.
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ă.
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.
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.
Ca şi ceilalţi operatori, cei pentru sume şi produse pot fi inseraţi prin combinaţii de taste sau
prin butoanele paletei Calculus.
Etape ________________________________
1. Clic pe foia de lucru, apoi clic pe butonul
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
Etape ________________________________
1. Definiţi VPA Æ
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]
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.
Î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.
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
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)
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.
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ă. Æ
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.
_______________________________________________________________________________
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:
_______________________________________________________________________________
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
Etape ________________________________
1. Definiţi funcţia pe care doriţi să o derivaţi. Æ
2. Definiţi o VPA. Æ
_______________________________________________________________________________
84
Varianta 2: valorile punctelor nu sunt în serie aritmetică
Etape ________________________________
1. Definiţi funcţia pe care doriţi să o derivaţi. Æ
Exemplu:
85
6.1.5. Operatori pentru integrare
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
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)
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ă.
∑ 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.
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
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.
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.
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 + + + ... = 21 + + + ... .
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.
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)
ϕ 2 ( xi ) mi
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
I≈
hk
4
[
f ij + f i , j +1 + f i +1, j + f i +1, j +1 ] (6.40)
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.
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.
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:
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 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)
Î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ă
_______________________________________________________________________________
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)
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”
_______________________________________________________________________________
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”.
Funcţii trigonometrice
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.
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.
_______________________________________________________________________________
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.
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.
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.
99
Dacă funcţia este de două variabile se procedează ca în exemplele de mai sus, valorile
discrete fiind memorate într-o matrice bidimensională.
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:
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ă.
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
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:
102
Exemplu:
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:
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.
Î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.
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
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.
_______________________________________________________________________________
Ş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.
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.
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.
Exemplu:
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.
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.
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
7.6.2.3. Factorizări
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
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
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:
110
- înmulţirea element cu element a matricelor
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
Etape ________________________________
1. Clic într-o zonă liberă a foii de lucru, scrieţi numele unei variabile. Æ
112
8.1.2. Definiri de funcţii cu argumente SC
- h, m, s - subşirurile orelor,
minutelor, secundelor
Funcţia de mai sus s-ar fi putut defini, mai concentrat, fără variabilele locale, intermediare
p1, p2 etc.
Exemplu:
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.
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:
Exemple:
Se aplică regulile acceptate şi în alte limbaje: compararea
se face caracter cu caracter, pe baza codurilor ASCII ale
caracterelor SC.
115
I FUNDAMENTE MATHCAD 2001
Î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.
Î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
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.
_______________________________________________________________________________
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.
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
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.
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.
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.
Î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
Etape ________________________________
Î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.
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.
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”.
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
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.
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).
127
9.2.4. Reprezentarea 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
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.
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ă.
130
9.2.5. Reprezentarea curbelor ( E)
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
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
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.
Setarea domeniului reprezentării grafice 3D prin generarea vectorilor asociaţi funcţiilor parametrice
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.
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 .
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.
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.
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.
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.
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.
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).
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).
- 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.
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.
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
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).
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.
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).
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).
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.
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.
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.
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.
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.
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.
Mai jos se găsesc trei aplicaţii simple, care procesează imagini în nuanţe de gri:
146
Pixelii transformaţi, care au valori care depăşesc intervalul 0 ... 255, iau valorile limită
ale capetelor intervalului: 0-negru, 255-alb.
147
10.3.3. Salvarea imaginilor modificate
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.
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
_______________________________________________________________________________
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
Liniile programului:
Atribuirea
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. Æ
_______________________________________________________________________________
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
Inserare
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....∞ )
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
FOR nume indice ∈ vector sau listă scalari sau listă de VPA sau listă de vectori
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.
Inserare
Instrucţiunea WHILE din paleta Programming sau [Ctrl]+]
Sintaxa
Observaţii
Exemplu:
∞
1
Calculul seriei ∑ 1+ i
i =1
2
cu precizia impusă ε (diferenţa între doi termeni succesivi ai seriei
153
11.3.3. Instrucţiuni pentru controlul execuţiei programului (E)
Sintaxa
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
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
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.
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.
Exemplu
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.
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
Î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.
159
Exempule
Se observă că alternanţa între regiunile în care se evaluează simbolic, numeric este oarecare,
singura restricţie fiind de natură logică.
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.
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.
- 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.
Î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.
- SOLVE sub forma generală: solve, lista variabile, rezolva simbolic un sistem sau o
ecuaţie.
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).
164
12.4. MODIFICATORI AI OPERATORILOR SIMBOLICI (E)
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.
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:
Exemplu
166
5
Dintr-o expresie complexă se poate evalua simbolic, doar o subexpresie selectând-o cu LEO.
Exemplu
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
¾ INTERPOLĂRI
¾ REGRESII
¾ EXTRAPOLARE
¾ AJUSTAREA DATELOR
¾ CALCULE ÎN COMPLEX
¾ COMBINATORICĂ
¾ STATISTICĂ ŞI PROBABILITĂŢI
II CALCULE NUMERICE ÎN MATHCAD
_______________________________________________________________________________
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].
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
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
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
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
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.
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 α.
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.
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.
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)
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.
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.
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.
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
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;
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.
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
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)
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
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.
______________________________________________________________________________________________
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 , →
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.
180
- determinarea solutiilor ecuatiei prin metoda companionului matriceal:
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).
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)
−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
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.
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
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.
______________________________________________________________________________________________
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.
Verificare: −4
f ( y ) = −5.77 × 10
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
Cazul 1: x := 6.5
1 ( ( 1) 1) =
root f x , x
d. Dacă se caută o rădăcină complexă a ecuaţiei, valoarea iniţială trebuie să fie un număr
complex.
6 5 4 3 2
P ( x) := x + x − 14 ⋅ x − 5 ⋅ x + 19 ⋅ x + 34 ⋅ x + 24
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.
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.
(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:
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.
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
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
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.
−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
− 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
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)
190
− 14
TOL := 10
p := 0 -solutia initiala
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.
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 →∞
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))
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 )
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.
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))
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
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.
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
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
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
unde:
aij(1) = a1 j − ai1 ⋅ b1 j ; i , j ≥ 2 . (14.42)
(1)
Analog, dacă a22 ≠ 0 , rezultă:
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)
200
14.4. REZOLVAREA NUMERICĂ ITERATIVĂ
A SISTEMELOR DE ECUAŢII NELINIARE
Î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)
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
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.
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
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
x := 1
y := 1
Given
2 2
x y
+ a
3 6
a
x+ y
2
P( a) := Find( x, y )
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
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
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:
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.
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))
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
( ) ( )
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
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)
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
( )
F ( λ ) = U x n - 1 − λ ⋅ ∇U ( x n - 1 ) , (14.97)
după fiecare pas.
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)
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)
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)
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:
Etape ________________________________
1. Clic într-o zonă liberă a foii de lucru.
2. Se scrie expresia lui f(x).
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
( 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.
219
≤ 5 solve , x → x ≤ −3 + ln
x+ 3 5
2e
2
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]+[=],
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
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.
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
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.
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 );
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:
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,
225
x > 0
y > 0
x < 10
pe un domeniu plan determinat de restricţiile:
y < 10
x + y < 10
2 ⋅ y + x > 4
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
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.
______________________________________________________________________________________________
F( x)
0.5 0 0.5 1 1.5 2
227
• Calculul minimului 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.
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
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 ________________________________
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
(
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
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
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
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
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)
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
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.
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:
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
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.
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
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)
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
F2(x)
x1 x2 x3 x4 x5
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
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
α 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:
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)
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
Reprezentarea grafica
a punctelor initiale
Mz , Mz
250
x
S := cspline ( Mxy , Mz) fit( x, y ) := interp S , Mxy , Mz ,
y
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)
1, x , x 2 , x 3 ,L , x p , ( x − x1 )+p
x0 x1 x2 … xi … xp+1
251
În relaţia (16.34) s-a notat:
(x − xi )+p = (x − xi )
p
daca x > xi
. (16.35)
0 daca x ≤ xi
• 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
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:
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).
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.
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.
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
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
• 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.
∑ (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
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.
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
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).
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
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
[ ( )] .
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
• 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
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
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
m1 := 2 m2 := 3 m3 := 4
267
• Determinarea polinomului de regresie:
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
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.
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
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
i =0 i =0
- dupa z:
T 0 1 2 3 4 5 6 7 8 9 10 11
Vz =
0 0.050 -1.499 -2.820 -3.701 -4.000 -3.550 -3.815 -3.909 -3.672 -3.000 -3.551 -3.432
270
• Coeficientii polinomului de regresie:
• De grad 3: C1 := regress ( Mxy , Vz, m1)
x
P3( x, y) := interpC1, Mxy, Vz,
y
• Raportul de corelatie:
length( Vz) − 1
P3 (Mxy〈 0〉 ) , (Mxy〈 1〉 ) − mean ( Vz)
2
∑ j j
j =0
η3 := ==> η3 = 0.9901183
length( Vz) − 1
Reprezentarea grafică a
funcţiei de regresie
Z , P3
( nvar + deg )!
Nterms( nvar , deg ) :=
deg !⋅ nvar !
ASOCIEREA COEFICIENTILOR:
271
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 0
T
I = 0 1 0 0 0 1 2 0 1 2 3 0 1 2 3 4 0 7.358·10 -3
1 3 4 3 2 2 2 1 1 1 1 0 0 0 0 0 1 .492·10 -3
2 0.041
POLINOMUL DE REGRESIE: 3 4.4·10 -3
last ( coef ) 4 8.323·10 -3
Ii , 0 Ii , 1
P4( x, y ) := ∑ coef ⋅ x
i
⋅y 5 -1.02·10 -5
i =0 6 -1.596
coef =
• Raportul de corelatie: 7 1.912
8 -0.692
length( Vz) − 1
P4 (Mxy〈 0〉 ) , (Mxy〈 1〉 ) − mean(Vz)
2 9 0.081
∑ j j 10 0.051
j=0 11 -6.045
η4 :=
length( Vz) − 1 12 2.767
∑ (Vzj − mean(Vz))2 13 -0.323
j =0 14 .333·10 -6
==> η4 = 0.9999995
Reprezentarea grafică a
funcţiei de regresie
Z , P4
Pe lângă funcţia regress, care calculează coeficienţii unui singur polinom de regresie, cu
gradul precizat prin valoarea coeficientului m, Mathcad conţine o altă funcţie de regresie, care
permite determinarea unor familii de curbe polinomiale.
Gradul acestor curbe polinomiale este doi, iar determinarea lor se face în condiţiile analizei
locale, a modului de variaţie, a datelor iniţiale. Rezultă în acest fel o curbă de regresie mult mai bine
corelată local cu valorile iniţiale. Această funcţie este:
• Funcţia loess (de netezire)
o Sintaxa funcţiilor: loess(Vx,Vy,m) – în cazul bidimensional;
loess(Vxy,Vz,m). – în cazul tridimensional
o Argumentele funcţiei: ¬ Vx, Vy, Vxy, Vz – au aceeaşi semnificaţie ca în cazul funcţiei regress.
272
¬ m – reprezintă mărimea vecinătăţii în care se calculează o regresie
polinomială de gradul doi, m > 0 .
o Valoarea returnată: un vector ce conţine coeficienţii familiei de polinoame de regresie.
o Observaţii:
a. Dacă dorim să folosim, în continuare, familia de polinoame de regresie la diferite
prelucrări matematice, se utilizează funcţia predefinită interp, conform celor precizate la
subcapitolul 16.1.
b. Valoarea argumentului m determină vecinătatea, punctelor iniţiale, în care se calculează
coeficienţii unui polinom de regresie de ordinul doi. Valori mari ale parametrului conduc la
rezultate echivalente cu cele returnate de funcţia regress. Valoarea recomandată pentru
acest parametru este, m = 0.75 .
c. Ca o măsură a concordanţei dintre valorile experimentale şi polinomul de regresie se poate
utiliza valoarea raportului de corelaţie, vezi ecuaţiile (16.58) sau (16.62).
Rezolvarea aplicaţiilor practice, pot conduce la situaţii în care modelele regresiei liniare sau
polinomiale nu asigură, întotdeauna, o corelaţie corespunzătoare între datele iniţiale şi curba de
regresie. În aceste condiţii se recomandă utilizarea unor funcţii de regresie având o expresie
matematică mai complexă.
Se pot alege, în aceste situaţii, curbe de regresie alcătuite ca o combinaţie liniară de k+1
funcţii arbitrare, ϕ i(x):
F ( x ) = a0 ⋅ ϕ 0( x ) + a1 ⋅ ϕ 1( x ) + K + a j ⋅ ϕ j ( x ) + K + ak ⋅ ϕ k ( x ) . (16.63)
Determinarea parametrilor a j , j ∈ 0,k , ai ecuaţiei (16.63), prin metoda celor mai mici
pătrate implică minimizarea valorii ecuaţiei:
n
ε( a 0 ,L a k ) = ∑ [yi − (a0 ⋅ ϕ 0( xi ) + a1 ⋅ ϕ 1( xi ) + a2 ⋅ ϕ 2( xi ) + L + a j ⋅ ϕ j( xi ) + L + ak ⋅ ϕ k ( xi ))]2 .
i =1
(16.64)
Sistemul ecuaţiilor normale, care se obţine dacă impunem ecuaţiei (16.64) condiţia de
minim, este:
∂ε( a ,L , a n
∑ [yi − a0 ⋅ ϕ 0( xi ) − a1 ⋅ ϕ 1( xi ) − L − a j ⋅ ϕ j ( xi ) − L − ak ⋅ ϕ k ( xi )]⋅ ϕ 0( xi ) = 0
0 k )
≡ −2 ⋅
∂a 0
i =1
∂ε( a 0 ,L , a k n
∑ [yi − a0 ⋅ ϕ 0( xi ) − a1 ⋅ ϕ 1( xi ) − L − a j ⋅ ϕ j ( xi ) − L − ak ⋅ ϕ k ( xi )]⋅ ϕ 1( xi ) = 0
)
≡ −2 ⋅
∂a1
i =1
M .
n
∑ [yi − a0 ⋅ ϕ 0( xi ) − a1 ⋅ ϕ 1( xi ) − L − a j ⋅ ϕ j ( xi ) − L − ak ⋅ ϕ k ( xi )]⋅ ϕ j ( xi ) = 0
∂ε( a 0 ,L , a k )
≡ −2 ⋅
∂a j
i =1
M
∂ε( a ,L , a n
∑ [yi − a0 ⋅ ϕ 0( xi ) − a1 ⋅ ϕ 1( xi ) − L − a j ⋅ ϕ j ( xi ) − L − ak ⋅ ϕ k ( xi )]⋅ ϕ k ( xi ) = 0
0 k )
≡ −2 ⋅
∂a k
i =1
(16.65)
Sistemul (16.65) este un sistem liniar de k+1 ecuaţii cu k+1 necunoscute. El poate fi scris
matriceal, sub forma:
273
n
n n n n
∑ y i ⋅ ϕ 0 ( xi )
∑ ϕ02 ( xi ) ∑ ϕ0 ( xi ) ⋅ ϕ 1( xi ) L ∑ ϕ 0 ( x i ) ⋅ ϕ j ( xi ) L ∑ ϕ 0 ( x i ) ⋅ ϕ k ( xi ) i =1
i =1 i =1 i =1 i =1 n
∑
n
ϕ 0 ( xi ) ⋅ ϕ1 ( xi ) ∑
n
ϕ12 ( xi ) L ∑
n
ϕ1 ( xi ) ⋅ ϕ j ( xi ) L ∑
n
ϕ1 ( xi ) ⋅ ϕ k ( xi )
a0
a1
∑ yi ⋅ ϕ1( xi )
i =1
i =1 i =1 i =1 i =1
M M L M L M M M
n n n n
⋅ =
aj n
∑ ϕ 0 ( xi ) ⋅ ϕ j ( x i ) ∑ ϕ 2 ( xi ) ⋅ ϕ j ( xi ) L ∑ ϕ 2j ( xi ) L ∑ ϕ j ( x i ) ⋅ ϕ k ( xi ) M ∑ y i ⋅ ϕ j ( xi )
i =1 i =1 i =1 i =1 i =1
M M L M L M ak
n n n n M
∑ ϕ0 ( xi ) ⋅ ϕ k ( xi ) ∑ ϕ1( xi ) ⋅ ϕ k ( xi ) L ∑ ϕ j ( x i ) ⋅ ϕ k ( xi ) L ∑ ϕ k2 ( xi ) n
i =1 i =1 i =1 i =1 ∑ y i ⋅ ϕ k ( xi )
i =1
(16.66)
Rezolvarea sistemului (16.66) furnizează coeficienţii a j , j ∈ 0 ,m , ai funcţiei de regresie.
Pentru rezolvarea acestei probleme şi determinarea coeficienţilor combinaţiei liniare,
ai , i ∈ 0 ,k − 1 , se utilizează:
• Funcţia linfit
o Sintaxa funcţiei: linfit(Vx,Vy,F);
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ă curba de regresie;
¬ F – reprezintă identificatorul unei funcţii vectoriale, de dimensiuni
k linii × 1 coloană ce conţine expresiile matematice ale celor k funcţii elementare.
o Valoarea returnată: un vector, de dimensiuni k linii × 1 coloană, ce conţine valorile celor k
coeficienţi, ai , i ∈ 0 ,k − 1 , necesari realizării combinaţiei liniare de funcţii elementare.
o Observaţii:
a. Elementele vectorului Vx trebuie să fie în ordine crescătoare;
b. Funcţia F, definită sub forma unui vector, trebuie să conţină funcţii elementare de o
singură variabilă;
c. Utilizând precizările anterioare, se poate construi funcţia de regresie folosind relaţia:
L( t ) = F ( t ) ⋅ A , (16.67)
unde, prin A s-a notat vectorul coloană al coeficienţilor, returnat de funcţia linfit.
În continuare este prezentată este prezentată foaia de calcul în care este exemplificat modul
de utilizare al funcţiei linfit.
• Datele experimentale:
T 1 2 3 4 5 6 7 8 9 10 11 12 13 14
Vx =
0 2.75 3.5 4.25 5 5.75 6.5 7.25 8 8.75 9.5 10.25 11 11.75 12.5
T 3 4 5 6 7 8 9 10 11 12 13 14
Vy =
0 -6.357 -6.91 -4.544 3.225 5.661 8.542 4.06 0.938 -5.913 -9.18 -4.412 -0.921
274
x2
x− 2
F( x) := 1 - expresiile funciilor Fj(x)
x− 1
sin ( x)
A := linfit( Vx, Vy, F) - calculul coeficientilor curbei de regresie
L( t) := F( t) ⋅ A - functia de regresie
10
Vyi
0
L( t )
10
2 4 6 8 10 12 14
Vxi , t
Punctele experimentale
Curba de regresie
length( Vx) − 1
∑ (Vyj − L(Vxj))2
j =0
• Valoarea raportului de corelatie: η := 1 − ==> η = 0.985
length( Vx) − 1
∑ (Vyj − mean(Vy))2
j =0
O altă variantă, ce poate fi utilizată la prelucrarea datelor, este aceea în care utilizăm curbe
neliniare de regresie, ce depind de k parametri. În acest caz se utilizează funcţia:
• Funcţia genfit
o Sintaxa funcţiei: genfit(Vx,Vy,Vs,F);
o Argumentele funcţiei: ¬ Vx, Vy – reprezintă doi vectori cu elemente reale şi cu aceleaşi
dimensiune (n linii × 1 coloană), ce conţin valorile absciselor şi respectiv a ordonatelor, pentru
cele n puncte printre care se trasează curba de regresie;
¬ Vs – reprezintă un vector coloană ce conţine valori iniţiale ale celor
k parametri necunoscuţi;
¬ F – reprezintă un vector, de dimensiuni k+1 linii × 1 coloană ce
conţine expresia matematică a funcţiei de regresie, precum şi expresiile derivatelor parţiale ale
funcţiei, calculate pentru cei k parametri necunoscuţi.
o Valoarea returnată: un vector, de dimensiuni k linii × 1 coloană, ce conţine valorile calculate
ale celor k parametri, ui , i ∈ 0 , k − 1 , necesari construirii funcţiei de regresie.
o Observaţii:
a. Calculul parametrilor necunoscuţi ai modelului de regresie se realizează în condiţiile
275
utilizării principiului Gauss-Legendre (metoda celor mai mici pătrate), prezentat la
subcapitolul 16.2. În acest caz, însă, se obţine un sistem neliniar de k ecuaţii cu k
necunoscute, a cărui rezolvare se realizează prin utilizarea algoritmul Levenberg-
Marquard, descris la subcapitolul 14.4.3.
b. Precizia de calcul a celor k parametri necunoscuţi depinde de valoarea variabilei
predefinite TOL;
c. Funcţia de regresie utilizată, trebuie să fie o funcţie de o singură variabilă;
d. Utilizând precizările anterioare, se poate construi funcţia de regresie folosind relaţia:
G( t ) = F ( t ,U )0 , (16.68)
unde, prin U s-a notat vectorul parametrilor, returnat de funcţia genfit.
Mai jos este prezentată este prezentată foaia de calcul în care este exemplificat modul de
utilizare al funcţiei Mathcad, genfit.
10
H( t )
Vyi 0
10
0 2 4 6 8 10 12 14
t , Vxi
Curba de regresie
Punctele initiale
276
• Valoarea raportului de corelatie:
length( Vx) − 1
∑ (Vyj − H(Vxj))2
j=0
η := 1 − ==> η = 0.977106
length( Vx) − 1
∑ (Vyj − mean(Vy))2
j=0
Pe lângă funcţiile destinate realizării prelucrării datelor prin regresie, prezentate anterior, în
Mathcad colecţia de funcţii predefinite este completată cu alte cinci funcţii care permit trasarea
unor curbe neliniare de regresie, des utilizate în practică. Acestea sunt:
• Funcţia expfit:
o Sintaxa funcţiei: expfit(Vx, Vy, Vi);
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ă curba de regresie;
¬ Vi – reprezintă un vector, de dimensiuni 3 linii × 1 coloană, ce
conţine valori iniţiale pentru cei trei parametri (a, b şi c) ai curbei de regresie.
o Valoarea returnată: un vector, de dimensiuni 3 linii × 1 coloană, ce conţine valorile calculate
ale parametrilor curbei exponenţiale de regresie:
F ( x) = a ⋅ e b⋅x + c . (16.69)
• Funcţia lgsfit:
o Sintaxa funcţiei: lgsfit(Vx, Vy, Vi);
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ă curba de regresie;
¬ Vi – reprezintă un vector, de dimensiuni 3 linii × 1 coloană, ce
conţine valori iniţiale pentru cei trei parametri (a, b şi c) ai curbei de regresie.
o Valoarea returnată: un vector, de dimensiuni 3 linii × 1 coloană, ce conţine valorile calculate
ale parametrilor curbei de regresie logistice:
a
F ( x) = . (16.70)
1 + b ⋅ e −c⋅x
• Funcţia logfit:
o Sintaxa funcţiei: logfit(Vx, Vy, Vi);
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ă curba de regresie;
277
¬ Vi – reprezintă un vector, de dimensiuni 3 linii × 1 coloană, ce
conţine valori iniţiale pentru cei trei parametri (a, b şi c) ai curbei de regresie.
o Valoarea returnată: un vector, de dimensiuni 3 linii × 1 coloană, ce conţine valorile calculate
ale parametrilor curbei de regresie logaritmice:
F ( x) = a ⋅ ln (x + b ) + c . (16.71)
• Funcţia pwrfit:
o Sintaxa funcţiei: pwrfit(Vx, Vy, Vi);
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ă curba de regresie;
¬ Vi – reprezintă un vector, de dimensiuni 3 linii × 1 coloană, ce
conţine valori iniţiale pentru cei trei parametri (a, b şi c) ai curbei de regresie.
o Valoarea returnată: un vector, de dimensiuni 3 linii × 1 coloană, ce conţine valorile calculate
ale parametrilor curbei de regresie putere:
F ( x) = a ⋅ x x + c . (16.72)
• Funcţia sinfit:
o Sintaxa funcţiei: sinfit(Vx, Vy, Vi);
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ă curba de regresie;
¬ Vi – reprezintă un vector, de dimensiuni 3 linii × 1 coloană, ce
conţine valori iniţiale pentru cei trei parametri (a, b şi c) ai curbei de regresie.
o Valoarea returnată: un vector, de dimensiuni 3 linii × 1 coloană, ce conţine valorile calculate
ale parametrilor curbei de regresie sinusoidală:
F ( x) = a ⋅ sin( x + b) + c . (16.73)
Alura specifică a acestor funcţii speciale de regresie este prezentată în tabelul 16.3.
Nr. Denumirea
Expresia funcţiei Reprezentarea grafică
crt. funcţiei
15
10
1.5 ⋅x
2⋅ e +1
− 1.5 ⋅x
2⋅ e +1
Regresia b⋅ x
1. F ( x) = a ⋅ e +c − 2⋅ e
1.5 ⋅x
+1 4 2 0 2 4
exponenţială − 1.5 ⋅x
− 2⋅ e +1
10
− 15
−5 x 5
278
Tabelul 16.3 (continuare) Funcţii speciale de regresie
15
10
2⋅ ln( x+ 3) + 1
Regresia F ( x) = a ⋅ ln ( x + b ) + c
2. − 2⋅ ln( x+ 3) + 1 4 2 0 2 4
logaritmică
10
− 15
−5 x 5
2.2 2
2
− 4 ⋅x
1 + 3⋅ e
1
2
4 ⋅x
1 + 3⋅ e
Regresia a
3. F ( x) = −2 10 5 0 5 10
logistică 1 + b ⋅ e −c⋅x 1 + 3⋅ e
− 4 ⋅x
−2 1
4 ⋅x
1 + 3⋅ e
2
− 2.2
− 10 x 10
15
10
4
x +1
3
( − x) + 0.5
4. Regresia putere F( x ) = a ⋅ xb + c −4
4 2 0 2 4
2⋅ x + 1
10
− 15
−5 x 5
5
4
2⋅ sin( x+ 1) + 2.5
2
Regresia F ( x) = a ⋅ sin( x + b) + c − 2⋅ sin( x+ 1) + 2
5.
sinusoidală 2⋅ sin( x+ 2)
4 2 0 2 4
−2 2
−5 x 5
279
Concordanţa dintre valorile experimentale şi funcţia de regresie utilizată (linfit, genfit,
expfit, lgsfit, logfit, pwrfit sau sinfit) se poate aprecia prin raportul de corelaţie, a cărui valoare se
calculează cu o relaţie de tipul (16.58).
În cele ce urmează este prezentată foaia de calcul în care este exemplificat modul de
utilizare al funcţiei Mathcad, sinfit. În cazul celorlalte funcţii speciale de regresie se procedează
asemănător.
Vx = Vy =
1 i i
Vi := 1 2 6.023
- soluiile initiale;
2.75 3.881
1
3.5 -3.204
s := sinfit( Vx, Vy, Vi) - calculul coeficientilor curbei de regresie
4.25 -6.357
7.716 5 -6.91
==>
s = −6.281
5.75 -4.544
0.101 6.5 3.225
7.25 5.661
0 (
L( x) := s ⋅ sin x + s
1)
+s
2
- functia de regresie 8 8.542
8.75 4.06
10
9.5 0.938
10.25 -5.913
11 -9.18
Vyi
11.75 -4.412
0
L( t ) 12.5 -0.921
10
2 4 6 8 10 12 14
Vxi , t
Punctele experimentale
Curba de regresie
Valoarea raportului de corelatie:
length( Vx) − 1
∑ (Vyj − L(Vxj))2
j =0 ==>
η := 1 − η = 0.985
length( Vx) − 1
∑ (Vyj − mean(Vy)) 2
j=0
280
Excepţie de la această regulă face doar, regresia liniară. În cazul ei sunt permise extrapolări
ale datelor. Pentru celelalte situaţii se recomandă utilizarea unor operaţii matematice de prelungire a
datelor, urmate de extrapolare, pe baza rezultatelor obţinute.
Funcţia Mathcad care realizează prelungirea, la dreapta datelor iniţiale, este:
• Funcţia predict:
o Sintaxa funcţiei: predict(Vy,m,p);
o Argumentele funcţiei: ¬ Vy – reprezintă un vector cu elemente reale, de dimensiuni (n linii
× 1 coloană), ce conţine valorile ordonatelor, pentru n puncte având abscisele situate la
intervale egale;
¬ m, p – două numere întregi, m > 0, p > 0 .
o Valoarea returnată: un vector (p linii × 1 coloană) ce conţine valorile ordonatelor a p puncte cu
care se prelungesc cele n valori iniţiale. Cele p valori se determină în urma analizei modului de
dispunere a ultimilor m coordonate ale punctele iniţiale.
Mai jos este prezentată este prezentată foaia de calcul în care este exemplificat modul de
utilizare al funcţiei Mathcad, predict.
0 -1.8
-1.143
-0.151
1.091
2.5
0 20 40 60 80 100
Punctele initiale 3.991
Prelungirea datelor 5.481
6.884
p1 := predict ( data , 20, 100)
8.118
9.097
20
9.739
9.957
9.67
8.862
0 7.806
6.786
5.856
0 20 40 60 80 100 120 140
5.014
Punctele initiale
Prelungirea datelor 4.257
281
16.4. FUNCŢII PENTRU AJUSTAREA DATELOR
• Funcţia ksmooth:
o Sintaxa funcţiei: ksmooth(Vx,Vy,b);
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 ce urmează a fi prelucrate prin netezire;
¬ b – amplitudinea benzii în care se consideră că sunt împrăştiate
valorile absciselor punctelor ce urmează a fi prelucrate, b > 0 .
o Valoarea returnată: un vector (n linii × 1 coloană) ce conţine valorile recalculate ale ordonatelor
punctelor iniţiale.
o Observaţii :
a. Valorile absciselor, pentru cele n puncte, conţinute în vectorul Vx, trebuie să fie ordonate
crescător.
b. Algoritmul de calcul al noilor ordonate constă în, [RMM01]:
1. abscisele celor n puncte, ale căror coordonate sunt indicate prin argumentul funcţiei –
Vx, se consideră normal repartizate în interiorul benzii de amplitudine b, cu funcţia
densitate de probabilitate:
1 t 2
1 − ⋅
f (t )= ⋅ e 2 0.37 ; (16.74)
2 ⋅ π ⋅ 0.37
2. pentru fiecare valoare Vyi, din vectorul argument, Vy, se calculează o nouă valoare, Vyi′ ,
utilizându-se relaţia:
n −1 Vx − Vx
∑ f b ⋅Vy j
i j
j =0
Vyi′ = n−1 . (16.75)
Vxi − Vx j
∑ f b
j =0
• Funcţia medsmooth:
o Sintaxa funcţiei: medsmooth(Vy,m);
o Argumentele funcţiei: ¬ Vy – reprezintă un vector cu elemente reale, de dimensiuni n linii
× 1 coloană, ce conţine valorile coordonatele, pentru cele n puncte ce urmează a fi prelucrate
prin netezire;
¬ m – un număr întreg şi impar, b > 0 .
o Valoarea returnată: un vector (n linii × 1 coloană) ce conţine valorile recalculate ale ordonatelor
punctelor iniţiale.
o Observaţii : algoritmul de calcul al noilor coordonate constă în, [RMM01]:
282
m −1
1. Împărţirea celor n valori în trei grupe. Prima grupă şi cea de-a treia conţin fiecare
2
valori. Aceste valori vor rămâne neschimbate.
2. Cele n valori iniţiale se utilizează pentru calcularea valorilor din grupa centrală. Valoarea
m +1 m −1
recalculată, Vyi′ , i ∈ ,n − , reprezintă mediana unui grup de m valori dispuse
2 2
simetric în jurul unei valori iniţiale, Vyi :
Vyi′ = medianVy n−1 , K ,Vyi , K ,Vy n−1 ; (16.76)
i− i+
2 2
3. Se evaluează reziduurile:
Vr = Vy − Vy ′ ; (16.77)
4. Valoarea reziduurilor este de asemenea ajustată prin utilizarea metodei descrise la punctele
1 şi 2, rezultând Vr ′ ;
5. Valorile, V, returnate de funcţia medsmooth sunt calculate cu relaţia:
V = Vy ′ + Vr ′ . (16.78)
• Funcţia supsmooth:
o Sintaxa funcţiei: supsmooth(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 ce urmează a fi prelucrate prin netezire;
o Valoarea returnată: un vector (n linii × 1 coloană) ce conţine valorile recalculate ale ordonatelor
punctelor iniţiale.
o Observaţii :
a. Valorile absciselor, pentru cele n puncte, conţinute în vectorul Vx, trebuie să fie ordonate
crescător.
b. Algoritmul de calcul, al noilor coordonate, utilizează metoda celor mai mici pătrate,
aplicată asupra unui număr de k valori dispuse simetric în jurul valorii calculate. Valoarea
parametrului k se determină automat, în funcţie de modul de variaţie al valorilor
ordonatelor.
În cele ce urmează este prezentată foaia de calcul în care este exemplificat modul de
utilizare al funcţiilor Mathcad destinate ajustării datelor.
283
Med := medsmooth ( Y , 7)
15
10
Med k
5
Yk
5
0 20 40 60 80 100
k
Sup := supsmooth ( X , Y)
15
10
Sup k
5
Yk
5
0 20 40 60 80 100
k
284
II APLICAŢII ÎN MATHCAD 2001
Spunem că funcţia (17.2), ϕ : I → R este soluţie a ecuaţiei (17.1) dacă sunt îndeplinite
următoarele condiţii:
funcţia ϕ (x ,C1 ,C2 ,K ,Cn ) este derivabilă de n ori pe domeniul I;
funcţia ϕ ( x ,C1 ,C2 ,K ,Cn ) verifică ecuaţia (17.1) pe domeniul dat, I:
( )
F x ,ϕ ( x ,C1 ,C 2 ,K ,C n ),ϕ′ ( x ,C1 ,C 2 ,K ,C n ),K ,ϕ (n ) (x ,C1 ,C 2 ,K ,C n ) = 0. (17.3)
Funcţia (17.2) se mai numeşte şi integrala generală a ecuaţiei considerate.
285
Rezolvarea problemelor specifice ingineriei, presupun însă, rezolvarea ecuaţiilor diferenţiale
în anumite condiţii particulare. Soluţiile particulare ale unei ecuaţii diferenţiale se obţin din soluţia
generală prin alegerea convenabilă a constantelor C1 ,C2 ,K ,Cn .
Integrala particulară a unei ecuaţii diferenţiale se poate obţine în două moduri:
a. Pe baza a n condiţii iniţiale. Condiţiile iniţiale pentru o ecuaţie diferenţială de ordinul n, impun
curbei integrale să treacă printr-un punct dat (x0 , y0 ) şi derivatelor de ordinul întâi până la n - 1
inclusiv, să ia în acest punct valori date:
y ( x0 ) = y 0
y ′( x ) = y ′
0 0
M
(i ) . (17.4)
y ( x0 ) = y 0
(i )
M
(n−1)
y (x0 ) = y (n−1)0
b. Pe baza unor condiţii limită:
( )
Ψ1 y (a ), y ′(a ),K , y (i ) (a ),L , y (n −1) (a ) = 0
. (17.5)
( )
Ψ2 y (b ), y ′(b ),K , y (i ) (b ),K , y (n −1) (b ) = 0
Relaţiile (17.5) se materializează, în cazul unei aplicaţii concrete, prin n condiţii ce pot fi
stabilite între y , y′, y′′,K , y (n−1) la limitele domeniului considerat [a,b].
Soluţia particulară a unei ecuaţii diferenţiale (17.1), care respectă condiţiile (17.4) sau
(17.5), este o curbă plană, numită curbă integrală.
O altă clasificare a ecuaţiilor diferenţiale, de ordinul n, se poate face în funcţie de forma
funcţiei F din ecuaţia (17.1). Dacă expresia acestei funcţii este de forma:
a0 ( x ) ⋅ y (n ) + a1 ( x ) ⋅ y (n−1) + L + ai ( x ) ⋅ y (n−i ) + L + an ( x ) ⋅ y = f ( x ) , (17.6)
ecuaţia se numeşte ecuaţie diferenţială de ordinul n, liniară. În caz contrar, ecuaţia este neliniară.
Toate aceste cazuri ale unei ecuaţii diferenţiale de ordinul n, pot fi rezolvate prin utilizarea
funcţiilor Mathcad predefinite.
286
o Observaţii:
a. Utilizarea funcţiei sub forma, Odesolve(x,b,p), determină calculul soluţiei ecuaţiei
diferenţiale în p valori ale variabilei de integrare, xi, dispuse echidistant în intervalul [a,b],
prin respectarea relaţiei:
b−a
xi = a + ⋅ i , i ∈ 0, p − 1 . (17.7)
p
Limita inferioară a intervalului de integrare, a, a < b , este specificată prin precizarea
condiţiilor iniţiale.
b. Utilizarea funcţiei sub forma, Odesolve(x,b), determină calculul soluţiei ecuaţiei
diferenţiale pentru valori ale variabilei de integrare, xi ∈ [a ,b] , dispuse sub forma unei
progresii aritmetice cu raţia r = 0.1.
c. Funcţia Odesolve se utilizează doar într-un bloc de tip solve, similar celui descris la
punctul 14.4. Crearea unui astfel de bloc se realizează respectând următorii paşi:
Etape ________________________________
1. Clic într-o zonă liberă a foii de lucru.
2. Se tastează cuvântul Given.
3. Se scrie ecuaţia diferenţială, indicându-se explicit variabila independentă de integrare, ca
argument al funcţiei ce urmează a fi determinată. La tastarea expresiei ecuaţiei
diferenţiale se pot utiliza:
operatorii de derivare, prin acţionarea butoanelor corespunzătoare din paleta
287
Cazul 1:
Given
3 d
x⋅
2
2
y ( x) − 4⋅ x⋅
d 2
y ( x) + 10⋅ x ⋅ y ( x) sin x( 2) + e
−x
dx dx
y ( 1) 0
Conditiile initiale
y'( 1) 3
y := Odesolve ( x, 100)
20
10
y ( x)
0
10
0 20 40 60 80 100
x
y ( 1) 0
y'( 1) 3 Conditiile initiale
y := Odesolve ( x, 40)
20
10
y ( x)
0
10
0 10 20 30 40
x
d. Ecuaţia diferenţială trebuie să fie o ecuaţie liniară. Se admit excepţii de la această regulă
doar la termenii ecuaţiei ce conţin derivate de ordin inferior.
288
Exemplul 2: Să se rezolve ecuaţia diferenţială de ordinul doi:
d2 d
x 3 ⋅ 2 y( x ) + 4 ⋅ x ⋅ sin y( x ) − 5 ⋅ x 2 = 0 .
dx dx
Given
3 d2 d 2
x⋅ y ( x) + 4⋅ x⋅ sin y ( x) + 5x 0
2
dx
dx
y ( 1) 0
Conditii la limite
y' ( 1) 3
y := Odesolve ( x, 65)
500
0
y ( x)
500
1000
0 10 20 30 40 50 60 70
x
289
rezolvarea ecuaţiei diferenţiale, în mod automat, se apelează funcţia sbval.
Given
3 2
x ⋅ y''( x) − 4 x⋅ y'( x) + 10⋅ x ⋅ y ( x) − sin x ( 2) + e
−x
0
y ( 1) 0
Conditii la limite
y ( 25) 16
y := Odesolve ( x, 25)
50
y ( x) 0
50
0 5 10 15 20 25
x
Rezolvarea unei ecuaţii diferenţiale de ordinul n se poate reduce la rezolvarea unui sistem
de ecuaţii diferenţiale de ordinul întâi.
Pentru a demonstra această afirmaţie, considerăm o ecuaţie diferenţială de ordin n, de
ecuaţie (17.1), scrisă sub forma:
( )
y (n ) = f x , y , y ′, y ′′,K , y (n−1) . (17.8)
Ecuaţia (17.8) se poate transforma într-un sistem de ecuaţii diferenţiale de ordinul întâi prin
introducerea de noi funcţii, [ROŞ79]:
y1 = y ′
y = y ′′
2
. (17.9)
M
y = y (n )
n−1
Folosind substituţiile (17.9), ecuaţia (17.8) se transformă în sistemul liniar de ecuaţii:
y ′ = y1
y′ = y
1 2
M , (17.10)
y′ = y
n−2 n−1
y n′ −1 = f ( x , y , y1 , y 2 ,L , y n′ −1 )
Rezultă, deci, că prin utilizarea unor substituţii de tipul (17.9), o ecuaţie diferenţială de
ordin superior cu condiţii iniţiale (17.4), se transformă într-un sistem liniar de ecuaţii diferenţiale,
cu condiţiile iniţiale:
290
y (x0 ) = y0 ,0
y1 (x0 ) = y1,0
M
. (17.11)
yi (x0 ) = yi ,0
M
y n−1 ( x0 ) = y n−1,0
Reciproca acestei afirmaţii este, de asemenea, adevărată. Pentru a demonstra acest lucru
considerăm sistemul liniar de ecuaţii, de ordinul întâi, [ROŞ79]:
y1′ = f1 ( x , y1 , y 2 , y3 )
y 2′ = f 2 ( x , y1 , y 2 , y3 ) . (17.12)
y ′ = f (x , y , y , y )
3 3 1 2 3
291
necunoscute, y(x). Expresia funcţiei D(x) se obţine din ecuaţia diferenţială ce urmează a fi
rezolvată.
o Valoarea returnată: un tablou, de dimensiuni p linii × două coloane, ce conţine:
- în prima coloană, valorile celor p puncte în care este evaluată soluţia ecuaţiei
diferenţiale;
- în cea de-a doua coloană, valorile soluţiei ecuaţiei diferenţiale, y = y( x ) , calculate în
punctele xi.
o Observaţii:
a. Utilizarea funcţiei rkfixed, determină calculul soluţiei ecuaţiei diferenţiale în p valori ale
variabilei de integrare, xi, dispuse echidistant în intervalul [a,b], prin respectarea relaţiei:
b−a
xi = a + ⋅ i , i ∈ 0, p − 1 . (17.20)
p
b. Funcţia rkfixed(y,a,b,p,D), se poate utiliza pentru calculul valorilor soluţiei unei ecuaţii
diferenţiale liniare sau neliniare.
292
Rezolvarea acestei ecuaţii diferenţiale neliniare, prin utilizarea funcţiei rkfixed este:
y := 1 Conditia initiala
0 1
a := 1
Limitele intervalului 0 1 1
b := 3 1 1.04 1.006
M
( n −1 )
Yn−1 = y (a)
293
y (x ) = y0
y ′( x ) = d y0 = y1
dx
M
. (17.22)
y (i ) ( x ) = d yi −1 = yi
dx
M
y (n ) ( x ) = f ( x , y0 , y1 ,L , y n−1 )
x2 ⋅
d2 d
( )
y( x ) + x ⋅ y( x ) + 4 ⋅ x 2 − 4 ⋅ y( x ) = 0 , cu condiţiile iniţiale:
y( 0.1 ) = 0
.
y ′( 0.1 ) = 1
2
dx dx
Y :=
0 Conditiile initiale
a := 1
1 Limitele intervalului
Numarul de puncte b := 5⋅ π
p := 1000
y
1 xi y(xi) y'(xi)
D( x, y ) := y 1 2
− − 4⋅ x − 4 ⋅ y 0 1 2
x 2 0 0 1 0 1
x
1 1.015 0.015 0.987
Z := rkfixed( Y , a , b , p , D) i := 0 .. rows ( Z) − 1
2 1.029 0.029 0.976
2 3 1.044 0.043 0.968
4 1.059 0.058 0.963
1 5 1.074 0.072 0.959
Z = 6 1.088 0.086 0.957
( Z 〈1〉 ) i 0 7 1.103 0.1 0.957
8 1.118 0.114 0.958
1 9 1.132 0.128 0.961
10 1.147 0.142 0.965
294
Exemplul 6: Să se rezolve ecuaţia diferenţială de ordinul 5:
y( 1.0 ) = 0
y ′( 1.0 ) = 1
d 5 3 2
2 d d d
y( x ) + x ⋅ y( x ) − 6 ⋅ y( x ) + y( x ) = 0 , cu condiţiile iniţiale: y ′′( 1.0 ) = 2 .
dx5 dx3 dx 2 dx y ′′′( 1.0 ) = −3
y ′′′′( 1.0 ) = 2
În cele ce urmează, este prezentat modul de utilizare al funcţiei rkfixed pentru rezolvarea
acestei ecuaţii diferenţiale liniare.
0
y
1 1
Y := 2 Conditiile initiale y
2
−3
D( x, y ) :=
y
2
3
a := 1
y
4
Limitele intervalului
2
b := 10 6y − y − x ⋅y
2 1 3
p := 200 Numarul de puncte
Z := rkfixed( Y , a , b , p , D)
295
semnificaţia geometrică a unei ecuaţii diferenţiale cu condiţii iniţiale, exprimate prin relaţiile (17.4)
şi utilizează următorul algoritm, [ROŞ80]: se porneşte din punctul iniţial (x0,y0) şi se calculează
panta curbei în punctul x = x0 . Se consideră apoi o creştere h a variabilei de integrare independente,
x, obţinându-se un nou punct x1 = x0 + h . Ordonata corespunzătoare acestui punct, y1, se determină
cu ajutorul tangentei la curba ce reprezintă soluţia ecuaţiei diferenţiale. În continuare, pornind de la
acest punct, (x1,y1), se procedează identic ca în cazul punctului iniţial. Repetarea acestui algoritm
conduce la o succesiune de segmente de dreaptă care aproximează curba soluţie.
Funcţia rkfixed, studiată anterior, utilizează ca algoritm de calcul metoda Runge-Kutta de
ordinul patru. Expresia formulei de recurenţă, pentru calculul valorilor lui yi, este identică cu cea
dată de seriile Taylor până la termenii în h p , p fiind numit ordinul metodei.
Prin metoda Runge-Kutta se calculează, [MEM80], o valoare aproximativă ~y pentru: i +1
xi + h
yi +1 = yi + ∫ f ( t , y( t )) ⋅ dt , (17.24)
xi
unde:
~y = y + k . (17.25)
i +1 i
Creşterea k, a ordonatei:
p
k = ∑ g j ⋅kj , (17.26)
j =1
să admită derivate nule ϕ(0) = ϕ′(0) = L = ϕ( p ) (0) . Valoarea parametrului p reprezintă ordinul
metodei Runge-Kutta. Respectarea acestei condiţii determină coincidenţa cu seria Taylor până la
ordinul p. Pentru p=4, parametrii a j ,b jr şi g j nu sunt unic determinaţi, însă se foloseşte
următoarea alegere, [ROŞ80]:
~y ′ = y + 1 ⋅ (k + 2 ⋅ k + 2 ⋅ k + k ) , (17.29)
i +1 i 1 2 3 4
6
unde:
k1 = h ⋅ f ( xi , yi )
k = h ⋅ f x + h , y + k1
2
i
2
i
2
, (17.30)
k = h ⋅ f x + h , y + k 2
3
i
2
i
2
k 4 = h ⋅ f ( xi + h , y i + k 3 )
Pentru cazul unui sistem de două ecuaţii diferenţiale:
296
dy
dx = f1 (x , y ( x ), z (x ))
, (17.31)
dz = f ( x , y (x ), z ( x ))
dx
2
( )
F1 x , y , y ′,K , , y (m ) , z , z ′,K , z (n ) , w, w′,K , w(q ) ,L = 0
( (m ) (n )
F2 x , y , y ′,K , , y , z , z ′,K , z , w, w′,K , w ,L = 0
(q )
)
M
, (17.34)
( (m ) (n )
Fi x , y , y ′,K , , y , z , z ′,K , z , w, w′,K , w ,L = 0
(q )
)
M
( )
FL x , y , y ′,K , , y (m ) , z , z ′,K , z (n ) , w, w′,K , w(q ) ,L = 0
unde:
− x, reprezintă variabila independentă, sau variabila de integrare;
− y, z, w,… - sunt funcţii de x, necunoscute, adică y = y (x ), z = z ( x ), w = w(x ),L ;
− y (i ) , z (i ) , w(i ) ,L , reprezintă derivatele de ordinul i, adică:
297
(i ) d i
y = i y ( x ), i ∈ 1, m
dx
(i ) d i
z = i z (x ), i ∈ 1, n
dx ; (17.35)
i
w(i ) = d w( x ), i ∈ 1, q
dx i
M
− n = max( m ,n ,q ,L ) , reprezintă ordinul ecuaţiei diferenţiale;
− ( )
FL x , y , y ′,K , , y (m ) , z , z ′,K , , z (n ) , w, w′,K , , w(q ) ,L reprezintă funcţii reale arbitrare.
Din marea varietate de sisteme de ecuaţii diferenţiale (17.34) se disting sistemele de ecuaţii
diferenţiale de ordinul întâi. Forma implicită unui astfel de sistem de n ecuaţii diferenţiale se
consideră, ca fiind:
F1 ( x , y1 , y 2 ,K , yi ,L , y n , y1′ , y 2′ ,K , yi′ ,L , y n′ ) = 0
F (x , y , y ,K , y ,L , y , y ′ , y ′ ,K , y ′ ,L , y ′ ) = 0
2 1 2 i n 1 2 i n
M
, (17.36)
Fi ( x , y1 , y 2 ,K , yi ,L , y n , y1′ , y 2′ ,K , yi′ ,L , y n′ ) = 0
M
Fn (x , y1 , y 2 ,K , yi ,L , y n , y1′ , y 2′ ,K , yi′ ,L , y n′ ) = 0
unde:
− x, reprezintă variabila independentă, sau variabila de integrare;
− y1 , y2 ,K , yi ,L , yn - sunt n funcţii necunoscute, adică y1 = y1 (x ), y 2 = y 2 (x ),L , y n = y n ( x ) ;
d
− y1′ , y2′ ,K , yi′ ,L , yn′ , reprezintă derivatele de ordinul întâi, adică, yi′ = yi ( x ), i ∈1,n ;
dx
− Fi ( x , y1 , y 2 ,K , yi ,L , y n , y1′ , y 2′ ,K , yi′ ,L , y n′ ) = 0 , i ∈1,n reprezintă n funcţii reale arbitrare.
Importanţa deosebită a acestor sistemele de ecuaţii diferenţiale de ordinul întâi rezultă, pe
de-o parte din teorema demonstrată la subcapitolul 17.1.2. şi anume, rezolvarea unei ecuaţii
diferenţiale de ordinul n se poate reduce la rezolvarea unui sistem de ecuaţii diferenţiale de ordinul
întâi şi pe de altă parte, din faptul că studiul şi rezolvarea unui sistem de ecuaţii diferenţiale de ordin
superior se poate reduce, tot, la analiza acestor sisteme liniare.
Pentru a demonstra această teoremă vom considera sistemul de ordinul doi, scris sub forma
normală:
y ′′ = f1 (x , y , z , w, y ′, z ′, w′)
z ′′ = f 2 (x , y , z , w, y ′, z ′, w′) . (17.37)
w′′ = f (x , y , z , w, y ′, z ′, w′)
3
298
Folosind funcţiile (17.38), din sistemul (17.37) va rezulta:
y1′ = y 2
y ′ = f (x , y , y , y , y , y , y )
2 1 1 3 5 2 3 5
y3′ = y 4
. (17.39)
y 4′ = f 2 ( x , y1 , y3 , y5 , y 2 , y3 , y5 )
y5′ = y6
y6′ = f 3 (x , y1 , y3 , y5 , y 2 , y3 , y5 )
Sistemul (17.39), astfel obţinut, reprezintă un sistem liniar de şase ecuaţii, de ordinul şase.
Reciproca rezultă şi ea imediat dacă, considerăm că y1 , y 2 , y3 , y 4 , y5 şi y6 este o soluţie a
sistemului (17.39) şi notăm:
y1 = y
y3 = z , (17.40)
y = w
5
se constată că dacă funcţiile y, z şi w sunt de două ori derivabile, ele verifică sistemul (17.37).
expresia funcţiei D(x,y), se obţine din ecuaţia diferenţială ce urmează a fi rezolvată, prin
utilizarea unor substituţii de forma:
y (x ) = y 0
z( x ) = y1
w( x ) = y 2
. (17.42)
y ′( x ) = f1 ( x , y 0 , y1 , y 2 )
z ′( x ) = f 2 ( x , y 0 , y1 , y 2 )
w′( x ) = f 3 ( x , y 0 , y1 , y 2 )
299
¬ n – reprezintă numărul de funcţii necunoscute ale sistemului.
o Valoarea returnată: un tablou, de dimensiuni p linii × n+1 coloane, ce conţine:
- în prima coloană, valorile celor p puncte în care sunt evaluate soluţiile sistemului de
ecuaţii diferenţiale;
- în următoarele n coloane, valorile soluţiilor pentru funcţiile necunoscute ale sistemului,
calculate în punctele xi.
1 − x − y ⋅ sin ( x) 2
1
x
1 Conditiile initiale
Y :=
1 D( x, y ) := −
1
x
+ y
e 0
a := −2 y
Limitele intervalului 0
b := −1
Numarul de puncte 0 1 2
p := 200
0 -2 1 1
1 -1.995 0.995 1.013
Z := rkfixed( Y , a , b , p , D)
2 -1.99 0.989 1.027
3 -1.985 0.984 1.04
Z=
4 -1.98 0.979 1.054
5 -1.975 0.973 1.067
6 -1.97 0.968 1.081
7 -1.965 0.963 1.094
8 -1.96 0.958 1.108
300
- în următoarele n⋅k coloane, valorile soluţiilor pentru funcţiile necunoscute ale sistemului
şi ale derivatelor lor până la ordinul k-1, calculate în punctele xi.
Exemplul 8: Să se rezolve sistemul de ecuaţii diferenţiale de ordinul întâi:
d2 d
2 y( x ) + z( x ) − 2 ⋅ y( x ) = x 3 + 5
dx dx y( 1.0 ) = 1.0
, cu condiţiile iniţiale: .
2
x 2 ⋅ d z( x ) − d y( x ) + ln x ⋅ z( x ) = sin 2 x z( 1.0 ) = 1.0
dx 2 dx
0 y
2
Y :=
−1 Conditiile initiale y
3
3
2 D( x, y ) := 3
x + 2⋅ y − y + 5
0 3
a := 1 1 2
Limitele intervalului 2 ⋅ sin ( x) − ln( x) ⋅ y1 + y2
b := 4 x
p := 200 Numarul de puncte
0 1 2 3 4
Z := rkfixed( Y , a , b , p , D) 0 1.000 0.000 -1.000 3.000 2.000
1 1.015 0.045 -0.970 3.061 2.057
Z= 2 1.030 0.092 -0.938 3.122 2.116
3 1.045 0.139 -0.906 3.185 2.176
4 1.060 0.187 -0.873 3.250 2.238
5 1.075 0.237 -0.839 3.315 2.301
Funcţia generală rkfixed, prin algoritmul implementat, poate rezolva numeric, cu o precizie
convenabilă, majoritatea problemelor. În cazul unor sisteme de ecuaţii diferenţiale, cu proprietăţi
speciale, erorile pot deveni semnificative. Aceste sisteme de ecuaţii diferenţiale se rezolvă cu
ajutorul altor funcţii predefinite.
În cazul sistemelor de ecuaţii diferenţiale, a căror soluţii se caracterizează prin faptul că
prezintă variaţii fine, se recomandă utilizarea funcţiei:
• Funcţiei Bulstoer:
o Sintaxa funcţiei: Bulstoer(Y,a,b,p,D);
o Argumentele funcţiei: ¬ Y, a, b, p, D – au aceeaşi semnificaţie ca în cazul funcţiei rkfixed;
o Valoarea returnată: un tablou, ce conţine:
- în prima coloană, valorile celor p puncte în care este evaluată soluţia ecuaţiei
diferenţiale;
- în următoarele coloane, valorile soluţiei ecuaţiei/sistemului de ecuaţii diferenţiale şi ale
derivatelor ce intervin, calculate în punctele xi.
o Observaţii:
301
a. Utilizarea funcţiei Bulstoer, determină calculul soluţiei ecuaţiei/sistemului de ecuaţii
diferenţiale şi ale derivatelor ce intervin, în p valori ale variabilei de integrare, xi.
b. Funcţia Bulstoer utilizează metoda Bulirsch-Stoer de calcul numeric al soluţiei ecuaţiei
diferenţiale.
c. Pentru a utiliza această funcţie în situaţii diferite (ecuaţii diferenţiale de ordinul întâi, doi
sau superior, sisteme de ecuaţii diferenţiale) se respectă aceleaşi condiţii ca şi în cazul
funcţiei rkfixed.
Mai jos, este prezentat modul de utilizare al funcţiei Bulstoer pentru rezolvarea sistemul de
ecuaţii diferenţiale de ordinul întâi, din exemplul 7.
1 − x − y ⋅ sin ( x) 2
1
1 Conditiile initiale
Y := x
1
D( x, y ) := −
1
a := −2 x
+ y
b := −1
Limitele intervalului e 0
y
p := 200 Numarul de puncte 0
Z := Bulstoer ( Y , a , b , p , D)
0 1 2
0 -2.000 1.000 1.000
1 -1.995 0.995 1.013
Z=
2 -1.990 0.989 1.027
3 -1.985 0.984 1.040
4 -1.980 0.979 1.054
302
Modul de utilizare al funcţiei Rkadapt pentru rezolvarea ecuaţiei diferenţiale liniare, din
exemplul 6, este prezentat în continuare.
0
1 y
1
Y := 2 y
Conditiile initiale 2
−3
D( x, y ) :=
y
3
2
y
a := 1 4
Limitele intervalului
2
b := 10 6 y2 − y − x ⋅y
1 3
p := 200 Numarul de puncte
Z := Rkadapt ( Y , a , b , p , D)
0 1 2 3 4 5
0 1.000 0.000 1.000 2.000 -3.000 2.000
1 1.045 0.047 1.087 1.867 -2.896 2.615
2 1.090 0.098 1.168 1.740 -2.765 3.199
3 1.135 0.152 1.244 1.619 -2.609 3.753
Z= 4 1.180 0.210 1.314 1.505 -2.428 4.275
5 1.225 0.270 1.379 1.401 -2.224 4.766
6 1.270 0.334 1.440 1.305 -1.999 5.226
7 1.315 0.400 1.497 1.221 -1.754 5.653
8 1.360 0.468 1.550 1.148 -1.491 6.048
9 1.405 0.539 1.600 1.087 -1.211 6.409
Sistemele liniare de ordinul întâi, ecuaţiile (17.41), se mai pot scrie sub o formă concisă,
utilizând notaţia matriceală:
y′ = A ⋅ y . (17.43)
În cazul sistemelor (17.43), la care matricea A este aproape singulară, se recomandă
utilizarea:
• Funcţiei Stiffb:
o Sintaxa funcţiei: Stiffb(Y,a,b,p,D,J);
o Argumentele funcţiei: ¬ Y, a, b, p, D – au aceeaşi semnificaţie ca în cazul funcţiei rkfixed;
¬ J(x,y) – o funcţie, definită sub forma unui tablou cu dimensiunile
n linii × (n+1) coloane, ce conţine:
∂D( x , y )
în prima coloană derivatele ;
∂x
∂D( x , y )
în următoarele n coloane Jacobianul funcţiei D(x,y), .
∂y k
o Valoarea returnată: un tablou, ce conţine:
303
în prima coloană, valorile celor p puncte în care este evaluată soluţia ecuaţiei
diferenţiale;
în următoarele coloane, valorile soluţiei ecuaţiei/sistemului de ecuaţii
diferenţiale şi ale derivatelor ce intervin, calculate în punctele xi.
o Observaţii:
a. Utilizarea funcţiei Stiffb, determină calculul soluţiei ecuaţiei/sistemului de ecuaţii
diferenţiale şi ale derivatelor ce intervin, în p valori ale variabilei de integrare, xi.
b. Funcţia Stiffb utilizează metoda Bulirsch-Stoer, pentru calcul numeric al soluţiei ecuaţiei
diferenţiale.
c. Pentru a utiliza această funcţie în situaţii diferite (ecuaţii diferenţiale de ordinul întâi, doi
sau superior, sisteme de ecuaţii diferenţiale) se respectă aceleaşi condiţii ca şi în cazul
funcţiei rkfixed.
În continuare, este prezentat modul de utilizare al funcţiei Stiffb pentru rezolvarea sistemul
de ecuaţii diferenţiale de ordinul întâi, din exemplul 7.
1 − x − y ⋅ sin ( x) 2
1
x
D( x, y ) := 1 - Vectorul derivatelor
−
e x
+ y
0
y
0
−1 − 2⋅ y ⋅ sin ( x) ⋅ cos ( x)
( 1 ) − 1 − x − y1⋅ sin(x)2 0
−sin ( x)
2
x 2 x
x
1
J( x, y ) :=
exp
−1
exp + ( y0)
−1 2
1
⋅
x 1
−
x 0
( 0)
2 y 3 2
x 0 y
2⋅ ( y )
2
0
Y :=
1 Conditiile initiale
1
0 1 2
a := −2
Limitele intervalului 0 -2.000 1.000 1.000
b := −1 1 -1.995 0.995 1.013
p := 200 Numarul de puncte 2 -1.990 0.989 1.027
3 -1.985 0.984 1.040
Z2 := Stiffb( Y , a , b , p , D , J) 4 -1.980 0.979 1.054
Z2 =
5 -1.975 0.973 1.067
6 -1.970 0.968 1.081
7 -1.965 0.963 1.094
8 -1.960 0.958 1.108
9 -1.955 0.953 1.122
10 -1.950 0.948 1.136
304
• Funcţiei Stiffr:
În cele ce urmează, este prezentat modul de utilizare al funcţiei Stiffr pentru rezolvarea
sistemul de ecuaţii diferenţiale de ordinul întâi, din exemplul 7.
1 − x − y ⋅ sin ( x) 2
1
x
D( x, y ) := 1 Functia ce contine derivatele
−
x
+ y
e 0
y
0
−1 − 2⋅ y ⋅ sin ( x) ⋅ cos ( x)
( 1 ) − 1 − x − y1⋅sin(x)2 0
−sin ( x)
2
x 2 x
x
1
J( x, y ) :=
exp exp + ( y0)
−1 −1 2
1
⋅
x 1
−
x 0
x
2 y
0
3
( 0)
y
2
2⋅ ( y )
2
0
305
Y :=
1 Conditiile initiale
1
a := −2
Limitele intervalului 0 1 2
b := −1 0 -2.000 1.000 1.000
Variante ale celor patru funcţii, descrise la subcapitolul 17.2.2., sunt puse la dispoziţia
utilizatorilor Mathcad-ului pentru rezolvarea problemelor la care interesează, în primul rând,
soluţia în punctul final al domeniului considerat. Sintaxa acestor funcţii este:
bulstoer(Y,a,b,ac,D,kmax,s);
rkadapt(Y,a,b,ac,D,kmax,s);
stiffb(Y,a,b,ac,D,J,kmax,s);
stiffr(Y,a,b,ac,D,kmax,s).
Utilizarea acestor funcţii se realizează conform celor precizate anterior. Se constată, totuşi,
că aceste patru funcţii conţin trei noi argumente. Semnificaţia lor este următoarea:
¬ ac – reprezintă acurateţea de calcul a soluţiei. Valorile recomandate pentru acest
parametru sunt ac ≤ 0.001;
¬ kmax – numărul maxim de puncte intermediare în care este evaluată soluţia ecuaţiei
diferenţiale, k max ∈ N ;
¬ s – valoarea minimă a amplitudinii, dintre două puncte intermediare ale variabilei de
integrare, cu care sunt returnate soluţiile sistemului de ecuaţii diferenţiale. Intern
funcţia utilizează valori ale amplitudinii care să permită calculul soluţiilor în
condiţiile respectării acurateţei impusă prin parametrul ac.
Modul de utilizare al funcţiei rkadapt pentru rezolvarea ecuaţiei diferenţiale liniare, din
exemplul 5, este prezentat în continuare.
Y :=
0
Conditiile initiale
1
a := 1
Limitele intervalului
b := 5⋅ π
y
1
D( x, y ) := y 1 2
− − 4⋅ x − 4 ⋅ y
x 2 0
x
306
xi y(x i) y'(x i)
0 1 2
(
Z := rkadapt Y , a , b , 10
−5
, D , 50, 10
−4 ) 0
1 1.147
1
0.142
0
0.965
1
( Z 〈1〉 ) i 0
8
9
2.881
3.16
1.662
1.352
-0.667
-1.521
10 3.464 0.78 -2.18
1 11 3.804 -5.606·10 -3 -2.329
12 4.047 -0.538 -1.991
2 13 4.299 -0.959 -1.295
0 5 10
( Z 〈0〉 ) i
307
Folosind notaţiile anterioare, înlocuim derivatele funcţiei necunoscute, y(x), din ecuaţia
diferenţială (17.44) prin diferenţe finite:
y −y y − 2 ⋅ yi + yi −1
yi′ ≅ i +1 i , yi′′ ≅ i +1 . (17.47)
2⋅h h2
Relaţiile (17.47) rezultă prin utilizarea formulei Taylor în două puncte xi + h şi xi – h:
h h2
y( xi + h ) = y( x i +1 ) = y( x i ) + ⋅ y ′(xi ) + y ′′( xi ) + K
1! 2!
. (17.48)
h h2
y( xi − h ) = y( x i −1 ) = y( x i ) − ⋅ y ′( xi ) + y ′′( xi ) − K
1! 2!
Aproximând y( xi + h ) şi y( xi − h ) prin primii trei termeni ai dezvoltării avem:
h h2
y( x i +1 ) ≈ y( x i ) + ⋅ y ′(xi ) + y ′′( xi )
1! 2!
. (17.49)
h h2
y( x i −1 ) ≈ y( x i ) − ⋅ y ′( xi ) + y ′′(xi )
1! 2!
Scăzând şi respectiv adunând cele două relaţii (17.49) obţinem expresiile derivatelor
(17.47).
Ecuaţia diferenţială (17.44) şi condiţiile (17.45) se pot înlocui cu sistemul de ecuaţii:
yi +1 − 2 ⋅ yi + yi −1 y −y
+ pi ⋅ i +1 + qi ⋅ yi = f i , i ∈1,n − 1
h 2
2⋅h
yi − y 0
α 0 ⋅ y0 + α1 ⋅ =A . (17.50)
h
y n − y n−1
β 0 ⋅ y n + β1 ⋅ h
=B
Rezolvarea sistemului (17.50) se realizează utilizând relaţiile echivalente:
yi = ci (d i − yi +1 ), i ∈1, n − 1 . (17.51)
unde:
α1 − α 0 ⋅ h
c1 = m ⋅ (α − α ⋅ h ) + k ⋅ α
1 1 0 1 1
1
ci = m − k ⋅ c
i i i −1
2 ⋅ f1 ⋅ h 2
A⋅ h
d1 = + k1 ⋅
2 + p1 ⋅ h α1 − α 0 ⋅ h
2
. (17.52)
d = 2 ⋅ f i ⋅ h − k ⋅ c ⋅ d
i 2 + pi ⋅ h i i −1 i −1
2 ⋅ qi ⋅ h 2 − 4
m
i =
2 + h ⋅ pi
2 − h ⋅ pi
k i =
2 + h ⋅ pi
Pentru a transforma condiţiile la limită în condiţii iniţiale se determină valorile mi şi ki, iar
pe baza lor se calculează ci şi di, i ∈1,n . Aceste valori fiind determinate, în continuare se calculează
şirul y n , y n−1 ,L , yi ,L , y 2 , y1 , y0 pornindu-se de la expresia:
308
2 ⋅ B ⋅ h − β1 ⋅ (d n − cn−1 ⋅ d n−1 )
yn = . (17.53)
1
2 ⋅ β 0 ⋅ h + β1 ⋅ cn−1 −
cn
• Funcţia sbval:
y( 0 ) = 1.0
4 y ′′′( 0 ) = 3.0
d
y( x ) + y( x ) = x , cu condiţiile la limită: .
dx 4
y ′( 1 . 0 ) = 1 . 984405
y ′′( 1.0 ) = 4.447124
Modul de utilizare al funcţiei sbval este prezentat în continuare. În prima parte a foii de
calcul s-a utilizat funcţia sbval, pentru transformarea problemei din exemplul 9, într-o problemă cu
condiţii iniţiale şi apoi, în partea a doua, ecuaţia diferenţială este rezolvată prin utilizarea funcţiei
rkfixed.
309
a. Calculul conditiilor initiale:
a := 0
Limitele intervalului
b := 1
y1 Solutii initiale: v :=
1
y 1
2
D( x, y ) := Vectorul derivatelor
y3
x − y0
1.0
v0
load ( a , v ) := Conditiile initiale partiale
v1
3 y0 − 1.984405
Vectorul amplitudinilor: score ( b , y ) :=
y1 − 4.447124
==> S=
−2
S := sbval ( v , a , b , D , load , score )
5
b. Rezolvarea ecuatiei diferentiale:
• Funcţia bvalfit:
o Sintaxa funcţiei: bvalfit(v1,v2,a,b,xd,D,load1,load2,score);
o Argumentele funcţiei: ¬ v1 – reprezintă un vector, ce conţine valori de pornire pentru
calculul condiţiilor iniţiale neprecizate. Numărul de linii al vectorului v este egal cu numărul de
condiţii iniţiale ce trebuiesc determinate pentru a transforma problema cu condiţii la limită într-
o problemă cu condiţii iniţiale;
¬ v2 – reprezintă un vector, ce conţine valori iniţiale pentru calculul
condiţiilor neprecizate la limita b, a intervalului de integrare;
¬ a, b – reprezintă limitele intervalului, pentru variabila independentă
de integrare, în care se calculează soluţiile sistemului de ecuaţii diferenţiale, a ,b ∈ R , a < b ;
310
¬ xd – valoarea unui punct, situat în interiorul intervalului definit al
variabilei de integrare. În acest punct traiectoriile soluţiilor ce sunt determinate pornind din
punctul a şi al celor ce sunt determinate pornind din punctul b, sunt forţate să fie egale,
xd ∈ [a ,b] .
¬ D(x,y) – o funcţie, definită sub forma unui vector cu n elemente, ce
conţine expresiile derivatelor funcţiilor necunoscute, y(x). Expresia funcţiei D(x,y) se obţine din
sistemul de ecuaţii diferenţiale ce urmează a fi rezolvat;
¬ load1(a,v1) – o funcţie, definită sub forma unui vector cu n
elemente, ce conţine expresiile condiţiilor iniţiale. Elementele vectorului la care se cunosc
condiţiile iniţiale vor fi completate cu constantele corespunzătoare;
¬ load(b,v2) – o funcţie, definită sub forma unui vector cu n
elemente, ce conţine expresiile condiţiilor la limita b. Elementele vectorului la care se cunosc
condiţiile la limită vor fi completate cu constantele corespunzătoare;
¬ score(xd,y) – o funcţie, definită sub forma unui vector, ce indică
modul de comportare al soluţiilor ecuaţiei diferenţiale în punctul xd. Expresia uzuală a acestei
funcţii este:
score( xd , y ) := y , (17.54)
Definirea funcţiei score conform relaţiei (17.54) asigură continuitatea soluţiilor sistemului de
ecuaţii diferenţiale în punctul xd.
¬ n – reprezintă numărul de funcţii necunoscute ale sistemului.
o Valoarea returnată: un tablou, ce conţine valorile calculate ale condiţiilor iniţiale şi ale celor de
la limita b, necunoscute.
o Observaţie: de regulă, funcţia bvalfit este urmată de o funcţie specializată în rezolvarea
ecuaţiilor diferenţiale, ce utilizează valorile condiţiilor iniţiale, astfel calculate, pentru
rezolvarea sistemului de ecuaţii diferenţiale.
1.0
ψ ( i) 2
ψ ( j)
0
0 0.5 1 1.5 2
i, j
311
a := 0 y
1
Limitele intervalului
D( x, y ) :=
b := 2 Vectorul derivatelor: y
2
v1 := 3
0 −y 2 + 2⋅ x⋅ y 0 + ψ ( x)
v2 :=
1 Solutiile initiale
0 Conditiile initiale:
xd := 1.0
1.2 4
score ( xd, y ) := y v2
load1 ( a , v1) := 2 load2 ( b , v2) := 0
v10 v2
1
==> −3.152 4.141
S := bvalfit ( v1 , v2 , a , b , xd, D , load1 , load2 , score ) S=
0 7.175
b. Rezolvarea ecuatiei diferentiale:
Numarul de puncte
xi y(x i) y'(x i) y''(xi)
p := 200
0 1 2 3
1.2 0 0.000 1.200 2.000 -3.152
Y := 2 Solutiile initiale 1 0.010 1.220 1.969 -3.120
S0 , 0 2 0.020 1.239 1.938 -3.089
3 0.030 1.259 1.907 -3.058
Z := rkfixed( Y , a , b , p , D) i := 0 .. p − 1 4 0.040 1.278 1.876 -3.026
5 0.050 1.296 1.846 -2.995
4 Z=
6 0.060 1.314 1.817 -2.964
7 0.070 1.332 1.787 -2.933
( Z
〈 1〉
)i 8 0.080 1.350 1.758 -2.901
5
( Z〈 2〉 ) i ( Z〈 3〉 ) i
0 0
0 1 2 0 1 2
( Z
〈 0〉
)i ( Z
〈 0〉
)i
312
Tabelul 17.1 Soluţii analitice ale unor ecuaţii diferenţiale particulare
Nr.
Sintaxa funcţiei: Argumentele funcţiei: Valoarea returnată: Observaţii
crt.
0 1 2 3 4
¬ n – număr întreg, - valoarea funcţiei imaginare
1. bei(n,x) n ≥ 0; Bessel – Kelvin, de ordinul n, Funcţia ber(n,x)+i⋅bei(n,x) reprezintă soluţia ecuaţiei
¬ x – număr real. calculată în punctul x. diferenţiale:
¬ n – număr întreg, - valoarea funcţiei reale Bessel –
d
x2 ⋅ 2 y + x⋅
d
dx
(
y − i ⋅ x2 + n2 ⋅ y = 0 . )
2. ber(n,x) n ≥ 0; Kelvin, de ordinul n, calculată dx
¬ x – număr real. în punctul x.
Funcţia Bi(,x) reprezintă soluţia ecuaţiei diferenţiale:
- valoarea funcţiei Airy de speţa
3. Bi(x) ¬ x – număr real. d2
a doua, calculată în punctul x. y − x⋅ y = 0 .
dx 2
313
Tabelul 17.1 (continuare) Soluţii analitice ale unor ecuaţii diferenţiale particulare
0 1 2 3 4
Funcţia In(n,x) reprezintă soluţia ecuaţiei diferenţiale:
¬ n – număr întreg, - valoarea funcţiei Bessel
6. In(n,x) 0 ≤ n ≤ 100 ; modificate, de speţa întâi,
¬ x – număr real. calculată în punctul x. x2 ⋅
d2
2
y + x⋅
d
dx
( )
y − x2 + n2 ⋅ y = 0 .
dx
Polinomul Jac(n,a,b,x) reprezintă soluţia ecuaţiei
314
Tabelul 17.1 (continuare) Soluţii analitice ale unor ecuaţii diferenţiale particulare
0 1 2 3 4
Polinomul Lag(n,x) reprezintă soluţia ecuaţiei
¬ n – număr întreg, - valoarea polinomului Laguerre, diferenţiale:
11. Lag(n,x) n ≥ 0; de gradul n, calculat în punctul
¬ x – număr real. x. d2 d
x⋅ 2
y + (1 − x ) ⋅ y + n⋅ y = 0 .
dx dx
315
Tabelul 17.1 (continuare) Soluţii analitice ale unor ecuaţii diferenţiale particulare
0 1 2 3 4
Polinomul Ucheb(n,x) reprezintă soluţia ecuaţiei
¬ n – număr întreg, - valoarea polinomului Cebîşev, diferenţiale:
15. Ucheb(n,x) n ≥ 0; de speţa a doua şi de gradul n,
(1 − x )⋅ d
2
¬ x – număr real. calculată în punctul x. d
2
2
y − 3⋅ x ⋅ y + n ⋅ (n + 2 ) ⋅ y = 0 .
dx dx
316
17.5. REZOLVAREA ECUAŢIILOR DIFERENŢIALE
CU DERIVATE PARŢIALE
Forma generală a unei ecuaţii diferenţiale de ordinul doi cu derivate parţiale se consideră ca
fiind, [ROŞ80]:
∂ 2u ∂ 2u ∂ 2u ∂u ∂u
A(x , y ) ⋅ + 2 ⋅ B ( x , y ) ⋅ + C ( x , y ) ⋅ + D(x , y ) ⋅ + E (x , y ) ⋅ + F (x , y ) ⋅ u + G (x , y ) = 0,
∂x 2
∂x ⋅ ∂y ∂y 2
∂x ∂x
(17.55)
unde:
A,B,C,D,E,F,G reprezintă coeficienţii ecuaţiei diferenţiale. Aceşti coeficienţi depind doar
de x şi y;
x şi y, reprezintă variabilele independente de integrare;
u(x,y) reprezintă funcţia necunoscută a ecuaţiei diferenţiale. Mulţimea tuturor soluţiilor
ecuaţiei (17.55) este infinită. Problemele concrete conduc la necesitatea determinării unei
soluţii particulare, care să verifice anumite condiţii iniţiale şi/sau limită date astfel încât
să asigure existenţa şi unicitatea soluţiei căutate.
317
∂u ui +1, j − ui , j ui , j − ui −1, j ui +1, j − ui −1, j
≈ ≈ ≈
∂x i , j h h 2⋅h
∂u ui , j +1 − ui , j ui , j − ui , j −1 ui , j +1 − ui , j −1
≈ ≈ ≈
∂y i , j k k 2⋅k
2 ; (17.57)
∂ u ≈ ui +1, j − 2 ⋅ ui , j + ui −1, j
∂x 2 h2
i,j
∂ 2u ui , j +1 − 2 ⋅ ui , j + ui , j −1
2 ≈
∂y i , j k2
y
q D
k
ui,j+1
yj+1
ui-1,j ui,j ui+1,j
yj
ui,j-1
yj-1
p
x
0 m xi-1 xi xi+1 h n
318
În cazul ecuaţiei Poisson, aceeaşi metodă, conduce la o ecuaţie de forma:
ai , j ⋅ ui +1, j + bi , j ⋅ ui −1, j + ci , j ⋅ ui , j +1 + d i , j ⋅ ui , j −1 + ei , j ⋅ ui , j = f i , j (17.61)
Funcţiile specializate pentru rezolvarea ecuaţiilor celor două tipuri de ecuaţii diferenţiale de
ordinul doi cu derivate parţiale, de tip eliptic, sunt:
• Funcţia multigrid:
o Sintaxa funcţiei: multigrid(M,nrc);
o Argumentele funcţiei: ¬ M – reprezintă un tablou pătrat, cu dimensiuni 1+ 2 k ( ) linii ×
( k
)
1+ 2 coloane, ce conţine valorile funcţiei f ( x , y ) în domeniul pătrat, pe care se rezolvă
ecuaţia, k ∈ N ;
¬ nrc – reprezintă un întreg, pozitiv, care specifică numărul de
cicluri de iteraţie, la fiecare nivel. Valoarea recomandată pentru a acestui parametru, pentru o
precizie rezonabilă a soluţiei, este nrc =2, ;
o Valoarea returnată: un tablou pătratic, de dimensiuni 1+ 2 k linii × 1+ 2 k coloane, ce ( ) ( )
conţine valorile soluţiei ecuaţiei Poisson cu condiţii zero pe frontieră, calculate în punctele
(xi,yi).
R := 32 M := 0 M := 2.0
R, R R R
,
4 2
M := −1.5 M := −1
R 3R R R
, 3 ,
4 4 4 4
S := multigrid( M , 2)
319
• Funcţia relax:
o Sintaxa funcţiei: relax(A,B,C,D,E,F,U,rj);
o Argumentele funcţiei: ¬ A,B,C,D,E – reprezintă tablouri pătrate, ce conţin valorile
coeficienţilor, ai , j , bi , j , ci , j , d i , j , ei , j , ecuaţiei cu diferenţe finite (17.61), ce aproximează
soluţia ecuaţiei Poisson;
¬ M – reprezintă un tablou pătrat, ce conţine valorile funcţiei
f ( x , y ) în domeniul pătrat, pe care se rezolvă ecuaţia;
¬ U – reprezintă un tablou pătrat, ce conţine valorile condiţiilor la
limită şi/sau iniţiale în domeniul pătrat, pe care se rezolvă ecuaţia;
¬ rj – reprezintă raza spectrală a iteraţiilor. Acest parametru ia valori
0 < rj < 1 şi controlează convergenţa algoritmului de calcul;
o Valoarea returnată: un tablou pătratic, ce conţine valorile soluţiei ecuaţiei Poisson, calculate în
punctele (xi, yi).
R := 40 i := 0 .. R j := 0 .. R
i
Mi , i := sin
i
Mi , R−i := −cos
4 3
a a
ai , j := 0.5 b := ci , j := 0.5 d := e := −2.9a vi , j := 0.3
3 2
S := relax( a , b , c , d , e , M , v , 0.90)
320
II APLICAŢII ÎN MATHCAD 2001
CALCULE ÎN COMPLEX
_______________________________________________________________________________
Un număr complex, z, poate fi reprezentat ca suma unui număr real şi a unui număr
imaginar:
z = a + b ⋅i , (18.1)
unde:
a, se numeşte partea reală a numărului complex z;
b, se numeşte partea imaginară a numărului complex z;
i, se numeşte unitatea imaginară şi reprezintă soluţia ecuaţiei:
i 2 = −1 . (18.2)
Reprezentarea grafică a numerelor complexe, fig. 18.1, se poate realiza într-un sistem de
coordonate carteziene rectangulare unde, pe axa Ox se reprezintă partea reală, a numărului complex,
iar pe axa Oy, partea imaginară a lui z. Unitatea pe această axă este i.
z=a-bi z=a+bi
b ρ
ρ r
z
ϕ
-a 0 a x
321
z = ρ ⋅ (cos ϕ + i ⋅ sin ϕ) . (18.4)
În relaţia (18.4) s-a notat prin:
ρ , modulul numărului complex:
ρ = a2 + b2 . (18.5)
ϕ , argumentul numărului complex:
b a b
ϕ = arcsin = arccos = arctg . (18.6)
ρ ρ a
• Formula lui Euler:
ρ ⋅ (cos ϕ ± i ⋅ sin ϕ) = ρ ⋅ e ± i⋅ϕ . (18.7)
În Mathcad se pot realiza calcule cu numere complexe, conform convenţiilor stabilite în
matematică, cu oricare din cele trei forme prezentate anterior. Rezultatul acestor operaţii va fi
returnat doar sub forma (18.1):
i⋅ 0.927295
5⋅ e = 3 + 4i
322
b. Funcţia Re permite, de asemenea, argumente reale sau complexe organizate sub forma
unor tablouri (V&M). Valoarea returnată, în acest caz, este tot un tablou cu dimensiuni
egale cu cele ale argumentului.
• Funcţia Im:
o Sintaxa funcţiei: Im(z);
o Argumentele funcţiei: ¬ z – reprezintă un număr real sau complex;
o Valoarea returnată: partea imaginară a numărului z.
o Observaţii:
a. Valoarea returnată de funcţia Im(z) este b.
b. Funcţia Im permite, de asemenea, argumente reale sau complexe organizate sub forma
unor tablouri (V&M). Valoarea returnată, în acest caz, este tot un tablou, cu dimensiuni
egale cu cele ale argumentului.
• Funcţia arg:
o Sintaxa funcţiei: arg(z);
o Argumentele funcţiei: ¬ z – reprezintă un număr real sau complex;
o Valoarea returnată: valoarea unghiului (exprimată în radiani), din planul complex, cuprins între
axa reală şi raza vectoare a punctului z, adică, (vezi, fig. 18.1):
Im( z )
ϕ = arg( z ) = a tan . (18.8)
Re( z )
Valoarea returnată este cuprinsă în intervalul [-π,π] şi este exprimată în radiani.
• Funcţia csgn:
o Sintaxa funcţiei: csgn(z);
o Argumentele funcţiei: ¬ z – reprezintă un număr real sau complex;
0 daca z = 0
o Valoarea returnată: 1 daca (Re( z ) > 0 ) U [(Re( z ) = 0 ) I (Im( z ) > 0 )] .
− 1 pentru restul cazurilor
• Funcţia signum:
o Sintaxa funcţiei: signum(z);
o Argumentele funcţiei: ¬ z – reprezintă un număr real sau complex;
1 daca z = 0
o Valoarea returnată: z .
z pentru restul cazurilor
Pentru calculul modului unui număr complex, conform relaţiei (18.5), se utilizează
operatorul , din paleta Calculator.
323
Modul de utilizare al funcţiilor, destinate manipulării numerelor complexe, este prezentat, în
continuare, în cazul rezolvării ecuaţiei: 32 ⋅ x 5 = −1 .
−1 −1
2 2
1 1
−1 1 1 2 −1 1 1 2
⋅ 5+ − ⋅ i⋅ 2⋅ ( 5 + 5) ⋅ 5+ − ⋅ i⋅ 2⋅ ( 5 + 5)
8 8 8
8 8 8
1 1
1 1 1 2 1 1 1 2
⋅ i⋅ 2⋅ ( 5 − 5) ⋅ i⋅ 2⋅ ( 5 − 5)
5
32x −1 solve , x → ⋅ 5+ − Z := ⋅ 5+ −
8 8 8 8 8 8
1 1
1 1 1 2 1 1 1 2
8⋅ 5+ + ⋅ i⋅ 2⋅ ( 5 − 5) 8⋅ 5+ + ⋅ i⋅ 2⋅ ( 5 − 5)
8 8 8 8
1 1
−1 1 1 2 −1 1 1 2
8⋅ 5+ + ⋅ i⋅ 2⋅ ( 5 + 5) 8⋅ 5+ + ⋅ i⋅ 2⋅ ( 5 + 5)
8 8 8 8
−0.5 0 180 −1
−0.155 −0.476 −108 −0.309 − 0.951i
Re( Z) = 0.405 Im( Z) = −0.294 arg ( Z) = −36 deg signum ( Z) = 0.809 − 0.588i
0.405 0.294 36 0.809 + 0.588i
−0.155 0.476 108 −0.309 + 0.951i
324
II APLICAŢII ÎN MATHCAD 2001
o Observaţii:
a. Sistemele ordonate de k elemente distincte care pot fi formate cu elementele unei mulţimi
de n elemente, fără a ţine seama de ordinea elementelor în sistem, sunt combinări de n
elemente luate câte k.
b. Dacă în sistemele formate, acelaşi element poate apărea de mai multe ori, combinările
astfel formate poartă denumirea de combinări cu repetiţie. Numărul de combinări de n
elemente luate câte k, cu repetiţie, este Crnk :
C rk = Ck . (19.2)
n n + k −1
• Funcţia permut:
o Sintaxa funcţiei: permut(n,k);
o Argumentele funcţiei: ¬ n, k – reprezintă două numere întregi, 0 ≤ k ≤ n. ;
o Valoarea returnată: numărul de aranjamente de n elemente luate câte k:
n!
permut( n ,k ) = Ank = = n ⋅ ( n − 1 ) ⋅K ⋅ ( n − k + 1 ) . (19.3)
(n − k ) !
o Observaţii:
a. Sistemele ordonate de k elemente distincte care pot fi formate cu elementele unei mulţimi
de n elemente, ţinând seama de ordinea elementelor în sistem, sunt aranjamente de n
elemente luate câte k.
b. Dacă în sistemele formate, acelaşi element poate apărea de mai multe ori, aranjamentele
astfel formate poartă denumirea de aranjamente cu repetiţie. Numărul de aranjamente de n
elemente luate câte k, cu repetiţie, este Arnk :
325
Ar k = n k . (19.4)
n
Orice sistem format dintr-un număr finit de elemente, într-o ordine oarecare, se numeşte
permutarea elementelor date. Un număr de n elemente diferite pot fi permutate în n! moduri:
n! = 1 ⋅ 2 ⋅ 3 ⋅ K ⋅ i ⋅ K ⋅ n . (19.5)
Numărul de permutări poate fi calculat, în Mathcad, conform relaţiei (19.5), prin utilizarea
operatorului , din paleta Calculator.
Dacă cele n elemente se împart în m grupe formate din p1 , p2 ,K , pm elemente identice şi
p1 + p2 + K + pm = n , numărul total de permutări este egal cu:
n!
. (19.6)
p1!⋅ p2 !⋅K ⋅ pm !
În continuare sunt prezentate principiile şi expresiile de calcul care au stat la baza
implementării acestor funcţii predefinite.
P(n) := "This function is undefined at one or more of the points you specified" if ( ceil(n) ≠ n)
n−1
∏ (n − i) otherwise
i =0
P( 5.5) = "This function is undefined at one or more of the points you specified"
5.5! =
5.5 5! = 120 P(5) = 120
A(n , x) := "This must be an integer. The expression you used may have a fractional part" if (ceil( n) ≠ n) ∨ ( ceil( x) ≠ x)
"This function is undefined at one or more of the points you specified" if n < x
x−1
∏ (n − i) otherwise
i =0
permut(3, 4) = permut( 4, 3.2) =
A( 3, 4) = "This function is undefined at one or more of the points you specified"
A( 4, 3.2) = "This must be an integer. The expression you used may have a fractional part"
permut( 6, 5) = 720 A( 6, 5) = 720
C( n , x) := error( "This must be an integer. The expression you used may have a fractional part" ) if ( ceil( n) ≠ n) ∨ ( ceil(x) ≠ x)
error( "This function is undefined at one or more of the points you specified" ) if n < x
x−1
∏ (n − i)
i =0
otherwise
x!
combin(4, 3.2) = combin(3 , 4) =
C(4, 3.2) = C(3, 4) =
combin(6, 5) = 6 C(6, 5) = 6
Utilizarea acestor funcţii cu valori mari ale argumentelor, poate conduce la obţinerea unor
valori aproximative ale rezultatelor. În aceste situaţii se recomandă utilizarea facilităţilor de calcul
simbolic. Pentru calculul permutărilor, aranjamentelor şi combinărilor se foloseşte operatorul ,
din paleta Calculator, precum şi relaţiile (19.1),…,(19.6).
326
60! = 8320987112741389000000000000000000000000000000000000000000000000000000000000000000
60! → 8320987112741390144276341183223364380754172606361245952449277696409600000000000000
combin ( 100 , 60) = 13746234145802808000000000000
100!
= 13746234145802808000000000000
40!⋅ 60!
100!
→ 13746234145802811501267369720
40!⋅ 60!
o Valoarea returnată: cel mai mare divizor comun al celor n×m elemente.
o Observaţii:
a. Cel mai mare divizor comun al celor n×m elemente ai , j este produsul tuturor factorilor
primi, comuni, care intervin în descompunerea valorilor ai , j , la puterea cea mai mică.
b. Funcţia gcd se poate utiliza, de asemenea, cu argumente multiple, gcd(A,B,C, …). În acest
caz valoarea returnată reprezintă cel mai mare divizor comun al numerelor întregi şi
pozitive ce compun tablourile A, B, C, … .
Funcţia lcm:
o Sintaxa funcţiei: lcm(A);
o Argumentele funcţiei: ¬ A – reprezintă un tablou (de dimensiuni, n linii × m coloane) de
numere întregi, ai , j ≥ 0 ;
o Valoarea returnată: cel mai mic multiplu comun al celor n×m elemente.
o Observaţii:
a. Cel mai mic multiplu comun al celor n×m elemente ai , j este produsul tuturor factorilor
primi, comuni şi necomuni, care intervin în descompunerea valorilor ai , j , la puterea cea
mai mare.
b. Funcţia lcm se poate utiliza, de asemenea, cu argumente multiple, lcm(A,B,C, …). În acest
caz valoarea returnată reprezintă cel mai mic multiplu comun al numerelor întregi şi
pozitive ce compun tablourile A, B, C, … .
327
• Funcţia mod:
o Sintaxa funcţiei: mod(n,k);
o Argumentele funcţiei: ¬ n, k – reprezintă două numere întregi, k ≠ 0 ;
o Valoarea returnată: restul împărţirii lui n la k.
216216
A :=
3 3
A factor → 2 ⋅ 3 ⋅ 7 ⋅ 11 ⋅ 13
0
10500
2 3
A factor → 2 ⋅ 3 ⋅ 5 ⋅ 7
1
expand 2
gcd ( A ) = 84 gcd ( A ) → 2 ⋅ 3⋅ 7
factor
2 ==>
Gcd := 2 ⋅ 3 ⋅ 7 Gcd = 84
expand 3 3 3
lcm( A ) = 27027000 lcm( A ) → 2 ⋅ 3 ⋅ 5 ⋅ 7 ⋅ 11 ⋅ 13
factor
3 3 3 ==>
Lcm := 2 ⋅ 3 ⋅ 5 ⋅ 7 ⋅ 11 ⋅ 13 Lcm = 27027000
d ← floor
mod( 19, 5) = 4 a
MOD( a , b ) :=
mod( 24, 5) = 4 b MOD( 19, 5) = 4
a−d⋅b ==>
mod( 21, 5) = 1 MOD( 24, 5) = 4
MOD( 21, 5) = 1
328
II APLICAŢII ÎN MATHCAD 2001
STATISTICĂ ŞI PROBABILITĂŢI
_______________________________________________________________________________
Statistica reprezintă o ştiinţă ce studiază fenomenele şi procesele colective din natură şi din
societate, pe baza observării lor ştiinţifice, a culegerii, prelucrării şi analizei detaliate a datelor, cu
scopul de a formula şi explica regulile şi legile ce le guvernează.
Dezvoltarea actuală a acestui domeniu, atât în profunzime, cât şi în sfera de cuprindere a
fenomenelor, este rezultatul progreselor teoretice în domeniul probabilităţilor. Astfel, teoria
probabilităţilor furnizează statisticienilor metode de analiză a datelor şi de generalizare a
rezultatelor obţinute, tehnici dezvoltate în urma studierii regulilor apariţiei evenimentelor aleatorii.
Acesta este motivul pentru care realizatorii Mathcad-ului au pus la îndemâna utilizatorilor o
bogată colecţie de funcţii predefinite, destinate prelucrării şi realizării inferenţelor statistice.
329
Varianta 1 - Sintaxa funcţiei: hist(v, u);
o Argumentele funcţiei: ¬ v – reprezintă un vector, de dimensiuni k+1 linii × 1 coloană, ce
conţine limitele, ordonate crescător, a k intervale consecutive şi disjuncte, v j , v j +1 , în care [ )
este împărţit întregul interval de variaţie al caracteristicii statistice studiate, [min( A), max( A)] .
Aceste intervale se numesc clase;
¬ u – reprezintă un vector, de dimensiuni n linii×1 coloană, ce
conţine valorile de eşantionaj.
o Valoarea returnată: un vector, de dimensiuni k linii × 1 coloană, ce conţine frecvenţele absolute
cu care valorile de eşantionaj, u, cad în intervalele definite de vectorul v;
o Observaţii:
a. Frecvenţa absolută, Nj, reprezintă numărul de realizări (apariţii) ale unui tip dat de
evenimente, sau numărul de observaţii care aparţin unei clase j:
k
- Dacă v 0 ≤ min( u ) şi v k +1 ≥ max( u ) , atunci există relaţia ∑ N j = n , unde, prin n
j =1
s-a notat volumul eşantionului.
k
- Dacă v 0 > min( u ) şi/sau v k +1 < max( u ) , atunci ∑Nj <n, adică, Mathcad
j =1
ignoră elementele ui care sunt în afara intervalului [v0 ,vk+1].
b. Cu ajutorul frecvenţelor absolute se pot calcula frecvenţele relative, fj, prin utilizarea
relaţiei:
Nj
fj = , j = 1K k . (20.1)
n
c. În mod uzual numărul de clase, k, se stabileşte cu ajutorul uneia dintre relaţiile empirice,
[POP86], [MEY76]:
k = 1 + 3.322 ⋅ log(n) , (20.2)
sau,
k= n, (20.3)
Valoarea obţinută cu relaţiile (20.2) sau (20.3) se rotunjeşte la întregul superior.
d. Prin utilizarea funcţiei hist, în această variantă, se pot calcula frecvenţele absolute pentru
clase având amplitudinea variabilă.
În continuare, este prezentat modul de utilizare al funcţiei hist, pentru calculul
frecvenţelor absolute, precum şi etapele necesare determinării unei repartiţii de frecvenţe şi
construirii histogramei, pe baza unui eşantion de volum n = 200 generat aleatoriu, dintr-o populaţie
normal repartizată.
(
u := µ + σ⋅ qnorm F , 0 , 1
i i ) - generarea esantionului normal repartizart
330
- determinarea valorilor extreme ale seriei statistice: 1
1 21.7310
Min := min( u ) Min = 16.907
==> 2 24.0410
Max := max( u ) Max = 43.987 3 33.2152
- determinarea amplitudunii esantionului: 4 16.9073
R := Max − Min ==> R = 27.079 5 38.5524
- determinarea numarului de clase: 6 33.3860
7 32.3144
k := ceil( 1 + 3.322⋅ log( n ) ) ==> k=9
u = 8 32.1032
- determinarea amplitudinii unei clase: 9 22.6630
R 10 35.4313
w := ==> w = 3.009
k 11 36.1060
-calculul limitelor claselor : 12 24.8652
13 30.9314
l := 1 .. k j := 1 .. k + 1
y := Min + ( j − 1) ⋅ w 14 25.3366
j
15 34.8567
- calculul valorii centrale, pentru fiecare clasa:
16 35.3708
w
Y := y +
l 2 l
- determinarea frecventelor absolute: 4 0.02
N := hist ( y , u ) 11 0.055
- calculul frecventelor relative: 24 0.12
41 0.205
f :=
N
n N = 44 f = 0.22
39 0.195
- histograma frecventelor valorilor de esantionaj:
19 0.095
14 0.07
3 0.015
40 0.2
Nl fl
Nl 20 fl 0.1
20 30 40 20 30 40
Yl Yl
331
max( A ) − min( A )
limite i = min( A ) + ⋅ i , 0 ≤ i ≤ k + 1; k , n ∈ N (20.4)
k
o Observaţie: frecvenţele absolute determinate prin utilizarea funcţiei hist, în această variantă,
respectă relaţia:
k
∑N j = p⋅m . (20.5)
j =1
Modul de utilizare al funcţiei hist (varianta a doua), pentru calculul frecvenţelor absolute şi
construirii histogramei, este prezentat mai jos.
i (
A := exp µ + σ⋅ qnorm F , 0 , 1 ( i )) - generarea esantionului
log-normal repartizat
4 22.2776
5 17.9938
- determinarea valorilor extreme ale seriei statistice: 6 17.0366
Min := min( A ) Min = 10.036 7 28.9874
==> A= 8 17.2436
Max := max( A ) Max = 39.401
9 15.4813
- determinarea amplitudunii esantionului:
10 31.0398
R := Max − Min ==> R = 29.364 11 24.6531
- determinarea numarului de clase: 12 19.4790
k := ceil( 1 + 3.322⋅ log( n ) ) ==> k=8 13 14.6788
14 19.5000
- determinarea frecventelor absolute:
15 17.1052
8 0.067
N := hist ( k , A ) 32 0.267 16 38.8975
- calculul frecventelor relative:
37 0.308
f :=
N 21 0.175
n N= f=
- determinarea amplitudinii unei clase: 11 0.092
7 0.058
w :=
R
==> w = 3.671 2 0.017
k
-calculul limitelor claselor :
2 0.017
10.04
l := 1 .. k j := 1 .. k + 1 y := Min + ( j − 1) ⋅ w 11.872
j 15.542 13.71
- calculul valorii centrale, pentru fiecare clasa: 17.38
19.213 21.05
Y := y +
w 22.883
l l 2 Y= y = 24.72
26.554 28.39
30.224
33.895 32.06
35.73
37.565 39.40
332
- histograma frecventelor valorilor de esantionaj:
40
Nl fl
0.2
Nl 20 fl
10 20 30 40 10 20 30 40
Yl Yl
Prezentarea şi caracterizarea unei variabile aleatorii se poate realiza, într-o formă concisă,
prin intermediul unor valori numerice numite parametri sau indicatori statistici. Aceşti parametri, în
funcţie de semnificaţia lor, pot fi grupaţi în patru categorii, [MAR95], [GIB76]:
• Parametrii tendinţei centrale, sau parametrii concentrării;
• Parametrii de împrăştiere, sau indicatorii variaţiei;
• Parametrii formei repartiţiei de frecvenţe;
• Parametrii corelaţiei dintre variabilele aleatorii.
• Funcţiei gmean:
o Sintaxa funcţiei: gmean(A);
o Argumentele funcţiei: ¬ A – reprezintă un tablou, de dimensiuni p linii × m coloane, ce
conţine valorile de eşantionaj. Elementele Ai,j trebuie să fie reale şi pozitive;
o Valoarea returnată: media geometrică a elementelor, Ai,j:
1
m −1 p −1 ⋅p
m
gmean( A ) = ∏∏ Ai , j . (20.7)
i =0 j =0
333
• Funcţiei hmean:
o Sintaxa funcţiei: hmean(A);
o Argumentele funcţiei: ¬ A – reprezintă un tablou, de dimensiuni p linii × m coloane, ce
conţine valorile de eşantionaj. Elementele Ai,j trebuie să fie reale şi pozitive;
o Valoarea returnată: media armonică a elementelor, Ai,j:
−1
1 m −1 p −1 1
m ⋅ p ∑∑
hmean( A ) = . (20.8)
i = 0 j =0 Ai , j
• Funcţiei median:
o Sintaxa funcţiei: median(A);
o Argumentele funcţiei: ¬ A – reprezintă un tablou, de dimensiuni p linii × m coloane, ce
conţine valorile de eşantionaj. Elementele Ai,j trebuie să fie reale;
o Valoarea returnată: mediana elementelor, Ai,j;
o Observaţii:
a. Dacă p×m este un număr impar, mediana reprezintă statistica de ordine A p⋅m +1 , a valorilor
2
de eşantionaj.
Şirul statisticilor de ordine, A(k), k = 1, p × m , se obţine prin ordonarea crescătoare acelor
p×m valori de eşantionaj:
A(1) ≤ A(2 ) ≤ K ≤ A(k ) ≤ K ≤ A( p×m ) . (20.9)
b. Dacă p×m este par, mediana este media aritmetică a valorilor centrale, A p⋅m şi A p⋅m
.
+1
2 2
• Funcţiei mode:
o Sintaxa funcţiei: mode(A);
o Argumentele funcţiei: ¬ A – reprezintă un tablou, de dimensiuni p linii × m coloane, ce
conţine valorile de eşantionaj. Elementele Ai,j pot fi reale şi/sau complexe;
o Valoarea returnată: moda elementelor Ai,j. Moda reprezintă valoarea de eşantionaj cu frecvenţa
de apariţie maximă.
În cele ce urmează este prezentat modul de utilizare, al funcţiilor Mathcad, pentru calculul
parametrilor tendinţei centrale. Valorile de eşantionaj utilizate sunt generate aleator şi aparţin unei
populaţii normal repartizate.
(
A := µ + σ⋅ qnorm F , 0 , 1
i i ) - generarea esantionului normal repartizat
334
Datele de esantionaj:
0 Parametrii statisticicentrale:
de pozitionare:
Parametrii tendinţei
61 59.859
62 60.245
63 54.646
m := mean( A ) m = 51.653
A = 64 28.621 mg := gmean( A ) mg = 50.419
65 36.739 ma := hmean( A ) ==> ma = 49.059
66 49.539 Me := median( A ) Me = 52.676
67 41.809
Mo := mode( A ) Mo = 52.872
68 53.28
Toate funcţiile Mathcad destinate calculului valorilor parametrilor tendinţei centrale, prezentate
anterior, permit şi utilizarea lor cu argumente multiple, de exemplu mode(A,B,C, …).
Funcţiile Mathcad, prin intermediul cărora se pot calcula parametrii de împrăştiere, admit
ca argument un tablou, A, de dimensiuni p linii × m coloane, ce conţine valorile de eşantionaj.
Elementele Ai,j pot să fie valori reale sau complexe.
Aceşti parametri statistici pot fi calculaţi în Mathcad prin intermediul:
• Funcţiei var:
o Sintaxa funcţiei: var(A);
o Valoarea returnată: dispersia elementelor, Ai,j:
1 m −1 p −1
var( A ) = (
∑∑ Ai , j − mean( A ) 2 .
m ⋅ p i =0 j =0
) (20.10)
• Funcţiei Var:
o Sintaxa funcţiei: Var(A);
o Valoarea returnată: dispersia de eşantionaj a elementelor, Ai,j:
m −1 p −1
Var( A ) =
1
(
∑∑ Ai , j − mean( A ) 2 .
m ⋅ p − 1 i = 0 j =0
) (20.11)
• Funcţiei stdev:
o Sintaxa funcţiei: stdev(A);
o Valoarea returnată: abaterea medie pătratică a elementelor, Ai,j:
1 m −1 p −1
stdev( a ) = var( A ) = ∑∑
m ⋅ p i =0 j =0
( )
Ai , j − mean( A ) 2 . (20.12)
335
o Observaţie: valoarea returnată de funcţia stdev(A), reprezintă un estimator deplasat al abaterii
medii pătratice a populaţiei.
• Funcţiei Stdev:
o Sintaxa funcţiei: Stdev(A);
o Valoarea returnată: abaterea standard a elementelor, Ai,j:
m −1 p −1
Stdev( A ) = Var( A ) =
1
∑∑
m ⋅ p − 1 i =0 j =0
( )
Ai , j − mean( A ) 2 . (20.13)
(
A := µ + σ⋅ qnorm F , 0 , 1
i i ) - generarea esantionului normal repartizat
Datele de esantionaj:
0
0 20.019
Parametrii statistici de imprastiere:
1 29.127
2 41.267
A = 3 39.082 S2 := var ( A ) S2 = 108.142
4 34.777
S := stdev ( A ) ==> S = 10.399
5 35.945
6 42.741
s 2 := Var( A ) s 2 = 108.685
336
3
m⋅ p i , j − mean( A )
p −1 m −1 A
skew( A ) = ⋅ ∑ ∑ . (20.14)
(m ⋅ p − 1) ⋅ (m ⋅ p − 2) i =0 j =0 Stdev( A )
o Observaţie: acest coeficient furnizează informaţii privind asimetria repartiţiei de frecvenţe a
datelor de eşantionaj:
skew( A ) = 0, indică o repartiţie simetrică;
skew( A ) > 0 , indică o asimetrie pozitivă (dreapta);
skew( A ) < 0 , indică o asimetrie negativă (stânga).
• Funcţiei kurt:
o Sintaxa funcţiei: kurt(A);
o Argumentele funcţiei: ¬ A – reprezintă un tablou, de dimensiuni p linii × m coloane, n × m ≥ 4,
ce conţine valorile de eşantionaj. Elementele Ai,j pot fi reale şi/sau complexe;
o Valoarea returnată: coeficientul de boltire al repartiţiei de frecvenţe a elementelor, Ai,j:
4
m ⋅ p ⋅ (m ⋅ p + 1) i , j − mean( A )
p −1 m −1 A
3 ⋅ (m ⋅ p − 1)2
kurt( A ) = ⋅ ∑ ∑ − .
(m ⋅ p − 1) ⋅ (m ⋅ p − 2) ⋅ (m ⋅ p − 3) i =0 j =0 Stdev( A ) (m ⋅ p − 2) ⋅ (m ⋅ p − 3)
(20.15)
o Observaţie: acest coeficient furnizează informaţii privind boltirea repartiţiei de frecvenţe a
datelor de eşantionaj, relativ la forma repartiţiei normale:
kurt( A ) = 0, indică o repartiţie având boltirea normală (mezocurtică);
kurt( A ) > 0 , indică o repartiţie având boltirea platicurtică;
kurt( A ) < 0 , indică o repartiţie având boltirea leptocurtică.
( (
A := exp µ + σ⋅ qnorm F , 0 , 1
i i )) - generarea esantionului log-normal repartizat
Datele de esantionaj:
0
0 10.817
1 6.457 Parametrii formei repartitiei de frecvente:
2 7.795
A= 3 6.573
β 1 := skew( A ) β 1 = 0.643
4 6.26 ==>
β 2 := kurt( A ) β 2 = 0.085
5 11.328
6 9.584
7 8.55
337
20.1.2.4. Parametrii corelaţiei
• Funcţiei cvar:
o Sintaxa funcţiei: cvar(A,B);
o Valoarea returnată: covarianţa elementelor, Ai,j şi Bi,j :
1 m−1 p −1
c var( A ) = ( )( )
∑∑ Ai , j − mean( A ) ⋅ Bi , j − mean( B ) .
p ⋅ m i =0 j =0
(20.16)
o Observaţii:
a. Valoarea returnată de funcţia cvar(A), reprezintă un estimator deplasat al covarianţei
populaţiei.
b. Pentru a obţine un estimator nedeplasat al covarianţei populaţiei trebuie, ca valoarea
returnată de funcţia cvar(A), să fie corectată cu raportul:
m⋅ p
. (20.17)
m ⋅ p −1
• Funcţiei corr:
o Sintaxa funcţiei: corr(A,B);
o Valoarea returnată: coeficientul de corelaţie al elementelor, Ai,j:
m −1 p −1
c var( A, B )
∑∑ (Ai , j − mean( A ))⋅ (Bi , j − mean( B ))
i =0 j =0
corr( A.B ) = = . (20.18)
stdev( A ) ⋅ stdev( B ) m −1 p −1
∑∑ (Ai , j − mean( A ))2 ⋅ (Bi , j − mean( B ))2
i =0 j =0
o Observaţii:
a. Coeficientul de corelaţie este utilizat ca un indicator al dependenţei liniare între două
variabile aleatorii. Valoarea lui corr(A,B) este cuprinsă întotdeauna între –1 şi +1. Când
valoarea coeficientului de corelaţie este egală cu una din aceste limite, aceasta semnifică o
relaţie, exactă, de liniaritate între A şi B.
b. În aplicaţiile practice , valori ale coeficientului de corelaţie, corr( A, B ) ≥ 0 ,90 , indică o
bună corelaţie, de tip liniar, între variabilele aleatorii A şi B.
Modul de utilizare al acestor funcţii este prezentat în continuare. Pentru a studia corelaţia
dintre două variabile aleatorii s-au generat două eşantioane, de volum n=200 de elemente, pentru
două variabile aleatorii aflate într-o relaţie de dependenţă, aproximativ liniară.
338
ORIGIN ≡ 1
n := 200 - volumul esantionului i := 1 .. n
X := 30 + rnd ( 50)
i
Y := ( − X) + 75 − 25⋅ rnd ( 1) X = Y =
i i i i
79.574 -19.121
50 48.324 21.802
31.436 33.569
34.574 35.505
42.9 10.264
42.569 11.802
0 49.073 22.422
75.187 -15.66
58.507 -2.708
53.425 18.26
56.149 0.643
50 55.331 -3.855
20 40 60 80
66.138 -8.405
43.684 17.705
A := line( X , Y) ==>
A = 62.158 63.522 0.936
B
B = −1.005 34.031 35.816
339
definit prin relaţia:
x n −1 = a ⋅ x n + c mod( m ), n = 0, 1, 2 K , (20.19)
unde, m, a, x0, c – reprezintă constante întregi, caracteristice generatorului şi c ≤ m − 1 .
b. Algoritmul de generare a numerelor
aleatorii utilizează o valoare iniţială, x0.
Valoarea implicită a acestei valori este
unu. În funcţie de valoarea acestei
variabile, Mathcad-ul generează o
secvenţă de numere aleatorii. Pentru a
modifica această valoare iniţială se
alege, din meniul Math, opţiunea
Options … . În tab-ul Built-In
Variables, se completeză câmpul
corespunzător opţiunii Seed value for
random numbers, cu noua valoare
iniţială.
c. Pentru aceeaşi valoare iniţială a
generatorului de numere aleatorii, la
fiecare comandă de recalculare a
documentului Mathcad, se obţine o nouă secvenţă de numere aleatorii.
d. Pentru a reseta generatorul, se alege din meniul Math, opţiunea Options … . Se execută
apoi, un clic pe opţiunea Built-In Variables şi se apasă butonul [OK]. După aceste operaţii,
o nouă comandă de recalculare a documentului, prin alegerea opţiunii Calculate din meniul
Math, conduce la aceeaşi secvenţă de numere aleatorii.
O variabilă, X, care poate lua orice valoare dintr-o mulţime specificată de valori şi căreia îi
este asociată o repartiţie de probabilitate se numeşte variabilă aleatorie, [SRI96].
În funcţie de valorile pe care le pot lua, variabilele aleatorii se clasifică în:
• Variabile aleatorii discrete, care pot lua numai valori izolate. Variabilele aleatorii discrete sunt
caracterizate de funcţia de masă a probabilităţii, sau funcţia de probabilitate. Aceasta
reprezintă funcţia care, pentru orice valoare xi, a unei variabile aleatorii discrete, X, determină
probabilitatea pi ca variabila aleatorie să fie egală cu xi:
pi , pentru k ∈ { xi }, i ∈1,n
Pr ( X = k ) = , (20.20)
0 pentru k ∉ { xi }, i ∈1,n
unde:
N
∑ pi = 1 . (20.21)
I =1
• Variabile aleatorii continue, care pot lua toate valorile din interiorul unui interval finit sau
infinit. Variabilele aleatorii continue sunt caracterizate de funcţia densitate de probabilitate.
Aceasta reprezintă o funcţie cu următoarele proprietăţi:
f ( x ) ≥ 0, ∀ x ∈ R ; (20.22)
340
∞
∫ f ( x ) ⋅ dx = 1 . (20.23)
−∞
O variabilă aleatorie, indiferent de tipul ei, este complet caracterizată de o altă funcţie şi
anume, funcţia de repartiţie.
Funcţia care, pentru fiecare valoare x, dă probabilitatea ca variabila aleatorie, X, să fie mai
mică sau egală ca x:
F (x ) = Pr ( X ≤ x ) , (20.24)
se numeşte funcţie de repartiţie. Această funcţie prezintă următoarele proprietăţi:
k k
F ( xk ) = ∑ Pr ( X = xi ) = ∑ pi , (20.25)
i =1 i =1
∫ f (x ) ⋅ dx = = ∫ dF ( x ) = Pr ( a < X ≤ b ) ; (20.26)
a a
∞ ∞
∫ f ( x ) ⋅ dx = ∫ dF ( x ) = 1 ; (20.27)
−∞ −∞
x
F( x ) = ∫ f ( u ) ⋅ du , (20.28)
−∞
în cazul variabilelor aleatorii continue.
Indiferent de tipul variabilei aleatorii, funcţia de repartiţie, F(x), este o funcţie monoton
nedescrescătoare, adică, ∀ x1 , x2 ∈ R , dacă x1 < x2 , atunci F ( x1 ) ≤ F ( x2 ) şi
lim F ( x ) = 0
x→−∞
. (20.29)
lim
x→∞ F ( x ) = 1
Unele tipuri de repartiţii statistice prezintă o mare importanţă practică la studiul fenomenelor
şi proceselor colective. Aceste modele statistice sunt implementate în Mathcad sub forma unor
funcţii predefinite. Pentru fiecare repartiţie statistică utilizatorul are la dispoziţie patru funcţii:
Funcţia de repartiţie;
Funcţia densitate de probabilitate/funcţia de probabilitate;
Cuantilele repartiţiei statistice, sau inversa funcţiei de repartiţie. Această funcţie reprezintă
valoarea variabilei aleatorii pentru care funcţia de repartiţie este egală cu p (0 ≤ p ≤ 1) , sau
"sare" de la o valoare inferioară lui p, la o valoare superioară a lui p, [SRI96]. Cuantilele
reprezintă soluţia ecuaţiei:
( )
F Xp = p. (20.30)
Funcţia generatoare de numere aleatorii.
341
¬ p – reprezintă valoarea probabilităţii, 0 ≤ p ≤ 1 ;
¬ m – reprezintă un număr întreg, m > 0 ;
¬ n, k –parametrii repartiţiei binomiale, n ∈ N , k ∈ R şi 0 ≤ k ≤ 1 .
• Funcţia de probabilitate:
o Sintaxa funcţiei: dbinom(x,n,k);
o Valoarea returnată: probabilitatea cu care variabila aleatorie, binomial repartizată, ia valoarea x:
n!
dbinom( x ,n ,k ) = ⋅ k x ⋅ (1 − k )n− x . (20.31)
k !⋅(n − k )!
• Funcţia de repartiţie:
o Sintaxa funcţiei: pbinom(x,n,k);
o Valoarea returnată: probabilitatea ca variabila aleatorie, X, binomial repartizată, să fie mai mică
sau egală cu o valoare particulară x, Pr(X≤ x):
x
n!
pbinom( x ,n ,k ) = ∑ ⋅ k u ⋅ (1 − k ) .
n−u
(20.32)
u =0 k !⋅(n − k )!
• Cuantilele repartiţiei:
o Sintaxa funcţiei: qbinom(p,n,k);
o Valoarea returnată: cuantila xp, corespunzătoare unei probabilităţi p.
342
[0,1];
2. fiecare din cele m valori se testează în funcţie de parametrul k;
3. se reţin doar valorile pentru care este valabilă inegalitatea:
x j ≤ k , j ∈1, s . (20.34)
Numărul acestor valori, s, reprezintă o realizare a variabilei aleatorii binomial
repartizate, cu parametrii n şi k.
În fig. 20.1 sunt reprezentate grafic funcţiile de probabilitate, repartiţie şi cuantilele
repartiţiei binomiale.
0.2 0.2
f1( x) f2( x)
0 5 10 0 5 10
x x
1
10
f3( x) f4( x)
0.5 5
0 5 10 0 0.5 1
x x
b. Repartiţia geometrică
o Argumentele funcţiilor: ¬ x – reprezintă valoarea variabilei aleatorii, x ≥ 0 , x ∈ N ;
¬ p – reprezintă valoarea probabilităţii, 0 ≤ p ≤ 1 ;
¬ m – reprezintă un număr întreg, m > 0 ;
¬ k – parametrul repartiţiei geometrice, k ∈ R şi 0 ≤ k ≤ 1 .
• Funcţia de probabilitate:
o Sintaxa funcţiei: dgeom(x,k);
o Valoarea returnată: probabilitatea cu care variabila aleatorie, geometric repartizată, ia valoarea
x:
dgeom( x ,k ) = k ⋅ (1 − k )x . (20.35)
343
În fig. 20.2 este reprezentată grafic funcţia de probabilitate a repartiţiei geometrice.
0.4
0.4
0 5 10 0 2 4 6 8
x x
• Funcţia de repartiţie:
o Sintaxa funcţiei: pgeom(x,k);
o Valoarea returnată: probabilitatea ca variabila aleatorie, X, geometric repartizată, să fie mai
mică sau egală cu o valoare particulară x, Pr(X≤ x):
x
pgeom( x ,k ) = ∑ k ⋅ (1 − k ) u = 1 − ( 1 − k ) x . (20.36)
u =0
• Cuantilele repartiţiei:
o Sintaxa funcţiei: qgeom(p,k);
o Valoarea returnată: cuantila xp, corespunzătoare unei probabilităţi p;
344
log( yi )
xi = , i ∈1,m . (20.38)
log( 1 − k )
Valoarea xi, calculată cu ecuaţia (20.38), se rotunjeşte la întregul superior.
c. Repartiţia hipergeometrică
o Argumentele funcţiilor: ¬ x – reprezintă valoarea variabilei aleatorii, x ∈ N , 0 ≤ x ≤ a şi
0≤ n−x≤ a;
¬ a, b, n – reprezintă parametrii repartiţiei hipergeometrice,
a ,b ,n ∈ N , 0 ≤ n ≤ a + b .
¬ p – reprezintă valoarea probabilităţii, 0 ≤ p ≤ 1 ;
¬ m – reprezintă un număr întreg, m > 0 ;
• Funcţia de probabilitate:
o Sintaxa funcţiei: dhypergeom(x,a,b,n);
o Valoarea returnată: probabilitatea cu care variabila aleatorie, hipergeometric repartizată, ia
valoarea x:
C x ⋅ C n− x
dhypergeom( x ,a ,b ,n ) = a n b . (20.39)
C a +b
• Funcţia de repartiţie:
o Sintaxa funcţiei: phypergeom(x,a,b,n);
o Valoarea returnată: probabilitatea ca variabila aleatorie, X, hipergeometric repartizată, să fie
mai mică sau egală cu o valoare particulară x, Pr(X≤ x):
C au ⋅ Cbn−u
x
phypergeom( x, n, k ) = ∑ . (20.40)
u =o C an+b
În fig. 20.3 este reprezentată grafic funcţia de repartiţie a modelului repartiţiei
hipergeometrice.
1 1
f1( x) f2( x)
0.5 0.5
0 5 10 0 5 10
x x
345
o Valoarea returnată: cuantila xp, corespunzătoare unei probabilităţi p;
346
o Valoarea returnată: probabilitatea cu care variabila aleatorie, ia valoarea x:
dnbinom( x ,n ,k ) = C nx+ x −1 ⋅ k n ⋅ (1 − k )x . (20.44)
• Funcţia de repartiţie:
o Sintaxa funcţiei: pnbinom(x,n,k);
o Valoarea returnată: probabilitatea ca variabila aleatorie, X, să fie mai mică sau egală cu o
valoare particulară x, Pr(X≤ x):
x
pnbinom( x ,n ,k ) = ∑ C nu+u −1 ⋅ k n ⋅ (1 − k ) u . (20.45)
u =1
• Cuantilele repartiţiei:
o Sintaxa funcţiei: qnbinom(p,n,k);
o Valoarea returnată: cuantila xp, corespunzătoare unei probabilităţi p;
În fig. 20.4 este reprezentată grafic inversa funcţiei de repartiţie a modelului negativ-
binomial.
10
20
f1( x) f2( x)
5
0 0.5 1 0 0.5 1
x x
347
Pr( X = x ) = C nx+ x−1 ⋅ k n ⋅ (1 − k )x - reprezintă probabilitatea ca în urma unei
succesiuni de extrageri bernoulliene cu revenire, să înregistrăm exact x insuccese,
până la constatarea celui de-al n-lea succes.
b. Valoarea cuantilei, xp, reprezintă cel mai mic întreg pentru care este valabilă inegalitatea:
xp
∑ Cnu+u −1 ⋅ k n ⋅ (1 − k ) u ≥ p . (20.46)
u =1
e. Repartiţia Poisson
o Argumentele funcţiilor: ¬ x – reprezintă valoarea variabilei aleatorii, x > 0 , x ∈ N ;
¬ p – reprezintă valoarea probabilităţii, 0 ≤ p ≤ 1 ;
¬ m – reprezintă un număr întreg, m > 0 ;
¬ λ – parametrul repartiţiei Poisson, λ ∈ R şi λ > 0 .
• Funcţia de probabilitate:
o Sintaxa funcţiei: dpois(x,λ);
o Valoarea returnată: probabilitatea cu care variabila aleatorie, Poisson repartizată, ia valoarea x:
λ x −λ
dpois( x ,λ ) = e . (20.49)
x!
• Funcţia de repartiţie:
o Sintaxa funcţiei: ppois(x,λ);
o Valoarea returnată: probabilitatea ca variabila aleatorie, X, Poisson repartizată, să fie mai mică
sau egală cu o valoare particulară x, Pr(X≤ x):
x
λ u −λ
ppois( x ,λ ) = ∑ ⋅e . (20.50)
u =0 u!
• Cuantilele repartiţiei:
o Sintaxa funcţiei: qpois(p,λ);
348
o Valoarea returnată: cuantila xp, corespunzătoare unei probabilităţi p;
n := 8 - volumul esantionului
i := 0 .. n − 1
k1 := 1.5
- valorile parametrul repartitiei Poisson
k2 := 8.0
X := rpois ( n , k1) X = Y := rpois ( n , k2) Y =
i i
2 10
0 8
1 16
0 11
0 9
2 11
1 6
0 6
349
20.2.1. Repartiţii statistice pentru variabile aleatorii continue
Repartiţiile statistice pentru variabile aleatorii continue, în funcţie de destinaţia lor, pot fi
clasificate în:
Repartiţii statistice de bază. Aceste repartiţii se utilizează la modelarea şi la studiul
fenomenelor şi proceselor colective;
Repartiţii statistice auxiliare. În această categorie intră modelele statistice utilizate pentru
realizarea inferenţelor statistice referitoare la parametrii şi indicatorii statistici ai modelelor
de bază.
a. Repartiţia beta
În fig. 20.5 este reprezentată grafic funcţia densitate de probabilitate a repartiţiei binomiale,
pentru diferite combinaţii ale celor doi parametri.
• Funcţia de repartiţie:
o Sintaxa funcţiei: pbeta(x,α,β);
o Valoarea returnată: probabilitatea ca variabila aleatorie, X, beta repartizată, să fie mai mică sau
egală cu o valoare particulară x, Pr(X≤x):
Γ (α + β )
x
⋅ u α −1 ⋅ (1 − u )β −1 ⋅ du .
Γ (α ) ⋅ Γ (β ) ∫0
pbeta( x ,α , β ) = (20.55)
• Cuantilele repartiţiei:
o Sintaxa funcţiei: qbeta(p,α,β);
o Valoarea returnată: cuantila xp, corespunzătoare unei probabilităţi p. Aceasta reprezintă soluţia
ecuaţiei:
Γ (α + β )
xp
⋅ ∫ u α −1 ⋅ (1 − u ) −1 ⋅ du = p .
β
(20.56)
Γ (α ) ⋅ Γ (β ) 0
350
f1( x) := dbeta ( x, 1 , 2) f2( x) := dbeta ( x, 0.5, 2)
10
2
f1( x) f2( x) 5
1
0 0.5 1 0 0.5 1
x x
f3( x) := dbeta ( x, 2.5, 2) f2( x) := dbeta ( x, 0.5, 0.5)
f3( x) 1 f2( x)
2
0 0.5 1 0 0.5 1
x x
b.Repartiţia Cauchy
o Argumentele funcţiilor: ¬ x – reprezintă valoarea variabilei aleatorii, x ∈ R ;
¬ p – reprezintă valoarea probabilităţii, 0 ≤ p ≤ 1 ;
¬ m – reprezintă un număr întreg, m > 0 ;
¬ a, b – parametrii repartiţiei Cauchy, a ∈ R şi b > 0 ;
351
• Funcţia de repartiţie:
o Sintaxa funcţiei: pcauchy (x,a,b);
o Valoarea returnată: probabilitatea ca variabila aleatorie, X, Cauchy repartizată, să fie mai mică
sau egală cu o valoare particulară x, Pr(X≤ x):
x
⌠
1 1
pcauchy( x , a ,b ) = ⋅ du . (20.59)
π ⋅ b u − a 2
⌡ ⋅ 1 +
−∞ b
1
1
f1( x) f2( x)
0.5 0.5
20 0 20 20 0 20 40
x x
• Cuantilele repartiţiei:
o Sintaxa funcţiei: qcauchy (p,a,b);
o Valoarea returnată: cuantila xp, corespunzătoare unei probabilităţi p;
352
c. Repartiţia exponenţială
• Funcţia de repartiţie:
o Sintaxa funcţiei: pexp(x,λ);
o Valoarea returnată: probabilitatea ca variabila aleatorie, X, exponenţial repartizată, să fie mai
mică sau egală cu o valoare particulară x, Pr(X≤x):
p exp( x ,λ ) = 1 − e − λ ⋅x . (20.62)
• Cuantilele repartiţiei:
o Sintaxa funcţiei: qexp(p,λ);
o Valoarea returnată: cuantila xp, corespunzătoare unei probabilităţi p;
În fig. 20.7 este reprezentată grafic inversa funcţiei de repartiţie a modelului exponenţial.
4 10
f1( x) 2 f2( x) 5
353
o Observaţii:
a. parametrul λ reprezintă rata defectărilor şi are valoarea egală cu inversa valorii medii a
repartiţiei.
b. relaţia de calcul a cuantilei, xp, este:
1 1
xp = ⋅ ln . (20.63)
λ 1 − p
c. metoda de calcul a numerelor aleatorii, exponenţial repartizate, xi, utilizează numere
aleatorii, yi, uniforme şi continue, repartizate în intervalul [0,1] şi relaţia de calcul:
1 1
xi = ⋅ ln , i ∈1,m . (20.64)
λ yi
d. Repartiţia gama
o Argumentele funcţiilor: ¬ x – reprezintă valoarea variabilei aleatorii, x ≥ 0 ;
¬ p – reprezintă valoarea probabilităţii, 0 ≤ p ≤ 1 ;
¬ m – reprezintă un număr întreg, m > 0 ;
¬ k - parametrul repartiţiei gama, k > 0 .
• Funcţia de repartiţie:
o Sintaxa funcţiei: pgamma(x,k);
o Valoarea returnată: probabilitatea ca variabila aleatorie, X, Gama repartizată, să fie mai mică
sau egală cu o valoare particulară x, Pr(X≤x):
x
1
pgamma( x ,k ) = ⋅ ∫ u k −`1 ⋅ e −u ⋅ du . (20.66)
Γ (k ) 0
• Cuantilele repartiţiei:
o Sintaxa funcţiei: qgamma(p,k);
o Valoarea returnată: cuantila xp, corespunzătoare unei probabilităţi p.
354
b. Forma uzuală, a repartiţiei gama, este cea biparametrică având expresia densităţii de
probabilitate:
k −1 y
1 y −
f( y)= ⋅ ⋅e b . (20.67)
b ⋅ Γ (k ) b
Cel de-al doilea parametru al repartiţiei gama, b, reprezintă un parametru de scală.
c. Între două variabile aleatorii, X şi Y, repartizate după cele două forme ale repartiţiei gama,
se poate stabili următoarea relaţie:
Y
X= . (20.68)
b
d. În relaţia funcţiei densitate de probabilitate, pentru repartiţia gama, prin Γ ( x ), s-a notat
funcţia gama a lui Euler, având expresia (20.57);
e. Valoarea cuantilei, xp, reprezintă soluţia ecuaţiei:
xp
1
⋅ ∫ u k −`1 ⋅ e −u ⋅ du = p . (20.69)
Γ (k ) 0
n := 10 - volumul esantionului i := 0 .. n − 1
k1 := 3
- valorile parametrului de forma
k2 := 2.5
b := 20 - parametrul de scala
e. Repartiţia lognormală
355
o Valoarea returnată: valoarea densităţii de probabilitate, a repartiţiei normale, pentru X=x:
2
1 ln( x )−µ
1 1 − ⋅ σ
d ln orm( x ,µ ,σ ) = ⋅ ⋅e 2
⋅ (20.70)
2⋅π ⋅σ x
• Funcţia de repartiţie:
o Sintaxa funcţiei: plnorm (x,µ,σ);
o Valoarea returnată: probabilitatea ca variabila aleatorie, X, lognormal repartizată, să fie mai
mică sau egală cu o valoare particulară x, Pr(X≤ x):
x 2
1 ln( u )− µ
1 ⌠ 1 − ⋅ σ
p ln orm( x , µ ,σ ) = ⋅ ⋅e 2
⋅ du . . (20.71)
2 ⋅π ⋅σ ⌡u
0
1 1
f1( x) f2( x)
0.5 0.5
0 5 10 15 20 0 50 100 150
x x
• Cuantilele repartiţiei:
o Sintaxa funcţiei: qlnorm (p,µ,σ);
o Valoarea returnată: cuantila xp, corespunzătoare unei probabilităţi p;
356
xp 2
1 ln( u )− µ
1 ⌠ 1 − ⋅ σ
⋅ ⋅e 2
⋅ du = p . (20.72)
2 ⋅π ⋅σ ⌡ u
0
c. Metoda de calcul a numerelor aleatorii, xi, repartizate lognormal cu parametrii µ şi σ,
utilizează numere aleatorii, yi, normal repartizate, cu media zero şi abaterea medie pătratică
unu şi relaţia de calcul:
xi = e µ +σ ⋅ yi , i ∈1,m . (20.73)
d. Relaţia anterioară are la bază proprietatea ce poate fi stabilită între o variabilă aleatorie, X,
lognormal repartizată cu parametri µ şi σ şi o variabilă aleatorie, Y, normal repartizată cu
aceeaşi parametri µ şi σ:
ln( X ) = Y , (20.74)
precum şi relaţia (20.86).
f. Repartiţia logistică
o Argumentele funcţiilor: ¬ x – reprezintă valoarea variabilei aleatorii, x ∈ R ;
¬ p – reprezintă valoarea probabilităţii, 0 ≤ p ≤ 1 ;
¬ m – reprezintă un număr întreg, m > 0 ;
¬ a, b – parametrii repartiţiei logistice, a ∈ R şi b > 0 ;
• Funcţia de repartiţie:
o Sintaxa funcţiei: plogis (x,a,b);
o Valoarea returnată: probabilitatea ca variabila aleatorie, X, logistic repartizată, să fie mai mică
sau egală cu o valoare particulară x, Pr(X≤ x):
1
plogis ( x , a ,b ) = 1 − . (20.76)
x −a
1 + e b
• Cuantilele repartiţiei:
o Sintaxa funcţiei: qlogis (p,a,b);
o Valoarea returnată: cuantila xp, corespunzătoare unei probabilităţi p;
În fig. 20.9 este reprezentată grafic inversa funcţiei de repartiţie a modelului logistic.
357
f1( x) := qlogis ( x, 0 , 1) f2( x) := qlogis ( x, 1 , 0.5)
5
5
f1( x) f2( x)
0 0.5 1 0 0.5 1
5
5
x x
g. Repartiţia normală
358
În fig. 20.10 este reprezentată grafic funcţia densitate de probabilitate a repartiţiei normale,
pentru diferite combinaţii ale celor doi parametri.
0.4 0.4
f1( x) f2( x)
0.2 0.2
5 0 5 5 0 5 10
x x
f3( x) := dnorm( x, −2 , 2) f4( x) := dnorm( x, −2 , 4)
0.2
f3( x)
f4( x) 0.1
15 10 5 0 5 10
x
• Funcţia de repartiţie:
o Sintaxa funcţiei: pnorm (x,µ,σ);
o Valoarea returnată: probabilitatea ca variabila aleatorie, X, normal repartizată, să fie mai mică
sau egală cu o valoare particulară x, Pr(X≤ x):
2
x 1 u −µ
1 − ⋅
pnorm( x , µ ,σ ) = ⋅⌠ 2
e
σ
⋅ du . (20.80)
2 ⋅π ⋅σ ⌡
−∞
• Cuantilele repartiţiei:
o Sintaxa funcţiei: qnorm (p,µ,σ);
o Valoarea returnată: cuantila xp, corespunzătoare unei probabilităţi p;
359
o Observaţii:
a. Semnificaţia parametrilor repartiţiei normale este următoarea:
µ – reprezintă parametrul de localizare;
σ – reprezintă parametrul de scală.
b. Dacă o variabilă aleatorie, X, este repartizată normal, cu media µ şi abaterea medie
pătratică σ, atunci variabila aleatorie Y, unde:
X −µ
Y= , (20.81)
σ
este repartizată normal cu media µ = 0 şi σ = 1 , având funcţia densitate de probabilitate:
1
1 − ⋅y2
f( y)= ⋅e 2 . (20.82)
2 ⋅π
Variabila aleatorie Y se numeşte variabilă aleatorie normală normată.
c. Funcţia de repartiţie a unei variabile aleatorii, Z, repartizate normal cu µ = 0 şi σ = 1 , este
de forma:
z
1
1
∫
− ⋅u 2
Φ( z ) = ⋅ e 2 ⋅ du . (20.83)
2 ⋅ π −∞
Funcţia Φ(z) se numeşte funcţia integrală Laplace.
d. Valoarea cuantilei, xp, reprezintă soluţia ecuaţiei:
xp 1 u −µ
2
1 − ⋅
⋅⌠
e
2 σ
⋅ du = p . (20.84)
2 ⋅π ⋅σ ⌡
0
Pentru a genera numere aleatorii, normal repartizate, xi, utilizează numere aleatorii, zi,
obţinute conform metodologiei descrise anterior şi relaţia:
xi = µ + σ ⋅ zi , i ∈1,m . (20.86)
h. Repartiţia uniformă
360
o Valoarea returnată: valoarea densităţii de probabilitate, a repartiţiei uniforme, pentru o valoare
X=x:
1
dunif ( x ,a ,b ) = . (20.87)
b−a
• Funcţia de repartiţie:
o Sintaxa funcţiei: punif(x,a,b);
o Valoarea returnată: probabilitatea ca variabila aleatorie, X, uniform repartizată, să fie mai mică
sau egală cu o valoare particulară x, Pr(X≤x):
x−a
punif ( x ,a ,b ) = . (20.88)
b−a
• Cuantilele repartiţiei:
o Sintaxa funcţiei: qunif(p,a,b);
o Valoarea returnată: cuantila xp, corespunzătoare unei probabilităţi p;
1 0.4
f1( x) f2( x)
0.5 0.2
0 0.5 1 0 2 4
x x
f3( x) := punif ( x, 0 , 1) f2( x) := qunif ( x, −1 , 4)
5
1
f3( x) f2( x)
0.5
0 0.5 1
0 0.5 1 1.5 2
x x
361
• Funcţia generatoare de numere aleatorii:
o Sintaxa funcţiei: runif(m,a,b);
o Valoarea returnată: un vector având m elemente, uniform repartizate cu parametrii a şi b.
o Observaţii:
a. Parametrul a reprezintă parametrul de poziţionare;
b. Parametrul b-a reprezintă parametrul de scală.
c. Relaţia de calcul a cuantilei, xp, este:
x p = a + p ⋅ (b − a ) . (20.89)
d. Metoda de generare a numerelor aleatorii, uniform repartizate în intervalul [a,b], xi,
utilizează numere aleatorii, yi, uniforme şi continue, repartizate în intervalul [0, 1] şi relaţia
de calcul:
xi = a + yi ⋅ (b − a ), i ∈1,m . (20.90)
e. Între funcţia rnd(x), prezentată la punctul 20.1 şi funcţia runif(m,a,b) se poate stabili relaţia:
rnd ( x ) = runif ( m ,0, x ) . (20.91)
i. Repartiţia Weibull
• Funcţia de repartiţie:
o Sintaxa funcţiei: pweibull(x,k);
o Valoarea returnată: probabilitatea ca variabila aleatorie, X, Weibull repartizată, să fie mai mică
sau egală cu o valoare particulară x, Pr(X≤x):
pweibull ( x ,k ) = 1 − e − x .
k
(20.93)
• Cuantilele repartiţiei:
o Sintaxa funcţiei: qweibull(p,k);
o Valoarea returnată: cuantila xp, corespunzătoare unei probabilităţi p.
362
b. Forma uzuală, a repartiţiei Weibull, este cea biparametrică având expresia densităţii de
probabilitate:
k
k −1 y
k y −
f ( y ) = ⋅ ⋅e b . (20.94)
b b
Cel de-al doilea parametru al repartiţiei Weibull, b, reprezintă un parametru de scală.
c. Între două variabile aleatorii, X şi Y, repartizate după cele două forme ale repartiţiei
Weibull, se poate stabili următoarea relaţie:
Y
X= . (20.95)
b
d. Altă formă, des utilizată, a repartiţiei Weibull o reprezintă varianta triparametrică:
k
k −1 z −a
k z−a −
⋅e .
b
f ( z ) = ⋅ (20.96)
b b
Cel de-al treilea parametru al repartiţiei Weibull, a, reprezintă un parametru de localizare.
e. Între cele două variabile aleatorii, Y şi Z, repartizate Weibull bi şi respectiv triparametric,
există următoarea relaţie:
Z =Y +a. (20.97)
f. În relaţia funcţiei densitate de probabilitate, pentru repartiţia Weibull, prin Γ ( x ), s-a notat
funcţia gama a lui Euler, având expresia (20.57).
g. Valoarea cuantilei, xp, se determină cu relaţia:
1
1 k
x p = ln . (20.98)
1 − p
h. Metoda de calcul a numerelor aleatorii, Weibull repartizate, xi, utilizează numere aleatorii,
yi, uniforme şi continue, repartizate în intervalul [0, 1] şi relaţia de calcul:
1
1 k
xi = ln , i ∈1,m . (20.99)
1 − yi
n := 8 - volumul esantionului i := 0 .. n − 1
k1 := 1.5
k2 := 2.0 - valorile parametrului de forma
k3 := 2.5
b := 15 - parametrul de scala
a := 20 - parametrul de localizare
363
20.2.2.2. Repartiţii statistice auxiliare
a. Repartiţia F (Fisher-Snedecor)
• Funcţia de repartiţie:
o Sintaxa funcţiei: pF(x, d1,d2);
o Valoarea returnată: probabilitatea ca variabila aleatorie, X, Fisher-Snedecor repartizată, să fie
mai mică sau egală cu o valoare particulară x, Pr(X≤x):
d + d2 x d1 − 2
d1d1 2 ⋅ d 2 d 2 2 ⋅ Γ 1 ⌠
2 ⋅ u 2
pF ( x ,α , β ) = ⋅ du . (20.101)
d1 d 2 d1 + d 2
Γ ⋅Γ (
⌡ 2d + d 1 ⋅ u ) 2
2 2 0
• Cuantilele repartiţiei:
o Sintaxa funcţiei: qF(p, d1,d2);
o Valoarea returnată: cuantila xp, corespunzătoare unei probabilităţi p.
364
x
d1 2 d + d2 p d1 − 2
d1 ⋅ d 2 d2 2 ⋅ Γ 1 ⌠
2 ⋅ u 2
⋅ du = p . (20.102)
d1 d 2 d1 + d 2
Γ ⋅Γ ⌡ (d 2 + d1 ⋅ u ) 2
2 2 0
0.5
0.5
f1( x) f2( x)
0 5 10 0 2 4 6
x x
f3( x) := pF( x, 10, 3) f4( x) := qF( x, 10, 4)
1
10
f3( x) f4( x)
0.5 5
0 5 10 0 0.5 1
x x
b. Repartiţia hi-pătrat
o Argumentele funcţiei: ¬ x – reprezintă valoarea variabilei aleatorii, 0 ≤ x < ∞ ;
¬ p – reprezintă valoarea probabilităţii, 0 ≤ p ≤ 1 ;
¬ m – reprezintă un număr întreg, m > 0 ;
¬ ν – parametrul repartiţiei hi-pătrat, ν > 0, ν ∈ N ;
365
• Funcţia de repartiţie:
o Sintaxa funcţiei: pchisq (x,ν);
o Valoarea returnată: probabilitatea ca variabila aleatorie, X, hi-pătrat repartizată, să fie mai mică
sau egală cu o valoare particulară x, Pr(X≤ x):
x
ν
1 ⌠ − u u 2 −1
dchisq( x ,ν ) = ⋅ e 2 ⋅ ⋅ du . (20.104)
ν 2
2⋅Γ ⌡
2 0
• Cuantilele repartiţiei:
o Sintaxa funcţiei: qchisq (p,ν);
o Valoarea returnată: cuantila xp, corespunzătoare unei probabilităţi p;
c. Repartiţia t (Student)
o Argumentele funcţiilor: ¬ x – reprezintă valoarea variabilei aleatorii, x ∈ R ;
¬ p – reprezintă valoarea probabilităţii, 0 ≤ p ≤ 1 ;
¬ m – reprezintă un număr întreg, m > 0 ;
¬ ν - parametrul repartiţiei Student, ν > 0,ν ∈ N .
366
f1( x) := dchisq ( x, 10) f2( x) := pchisq ( x, 10)
0.1
f1( x) f2( x)
0.5
0 10 20 0 10 20 30 40
x x
f3( x) := qchisq ( x, 10)
20
f3( x)
0 0.5 1
x
• Funcţia de repartiţie:
o Sintaxa funcţiei: pt(x,ν);
o Valoarea returnată: probabilitatea ca variabila aleatorie, X, Student repartizată, să fie mai mică
sau egală cu o valoare particulară x, Pr(X≤x):
ν + 1 x
ν +1
Γ ⌠ u 2 −
2 2
pt( x ,ν ) = 1 + ⋅ du . (20.107)
ν ν
Γ ⋅ π ⋅ν ⌡
2 −∞
• Cuantilele repartiţiei:
o Sintaxa funcţiei: qt(p,ν);
o Valoarea returnată: cuantila xp, corespunzătoare unei probabilităţi p;
367
c. valoarea cuantilei, xp, reprezintă soluţia ecuaţiei:
ν +1 xp
ν +1
Γ ⌠ u 2 −
2 1 +
2
⋅ du = p . (20.108)
ν ν
Γ ⋅ π ⋅ν ⌡
2 −∞
0.4 1
f1( x) f2( x)
0.2 0.5
5 0 5 5 0 5
x x
f3( x) := qt ( x, 10)
f3( x)
0 0.5 1
368
¾ IMPORTUL DE DATE
¾ EXPORTUL DE DATE
¾ INSERAREA COMPONENTELOR
¾ CONFIGURAREA COMPONENTELOR
¾ SCHIMBUL DE DATE
¾ REFERINŢE
¾ HYPERLINK - URI
¾ MATHCONNEX
SCHIMBUL DE DATE
_______________________________________________________________________________
Mathcad 2001 este complet integrat în Windows, beneficiind de suport pentru tehnologia
OLE2 şi protocolul OLE Automationd.
În capitolul 10 este tratată inserarea de obiecte legate (linked), împachetate (embedded).
După cum s-a amintit, prin realizarea unei legături (link) se poate face doar un schimb static de
date.
Pentru realizarea unor conexiuni dinamice, în Mathcad 2001, se pot utiliza două
mecanisme: referinţele (references, vezi secţiunea 21.4) între fişiere Mathcad şi apelarea la OLE2d,
pentru schimbul dinamic de date între Mathcad şi altă aplicaţie Windows.
Schimbul dinamic de date, între Mathcad şi alt program, se poate face apelând la OLE
Automation (vezi secţiunea 21.1) prin:
- componentele specializate care permit integrarea a unor aplicaţii, din alte medii, în foaia
de lucru Mathcad: EXCEL, AXUM, SmartSketch, S-PLUS, MATLAB, baze de date în
Access, sau FoxPro prin componenta OBDC (Open Database Connectivity).
- mai general, orice alt program, care suportă OLE Automation, poate fi integrat în
Mathcad prin intermediul componentei Scriptable Object.
Componentele program primesc, ca date de intrare, variabile Mathcad, le procesează în
mediul ţintă, fără a părăsi mediul Mathcad şi returnează date de ieşire care sunt asociate cu variabile
Mathcad. Datele de intrare, ieşire sunt scalari, vectori, matrice şi în anumite cazuri şiruri de
caractere. După cu s-a văzut în secţiunile 7.1.1.6 şi 7, prin componente mai pot fi realizate: citiri,
scrieri de date tabelare (componenta File Read or Write), crea tabele (componenta Input Table).
Mathcad poate fi accesat şi din altă aplicaţie Windows. Prin utilizarea interfeţei OLE
Automation, se pot trimite date, în mod dinamic, din altă aplicaţie spre Mathcad. Acestea se
procesează în mediul Mathcad şi în final sunt returnate aplicaţiei (vezi secţiunea 21.2).
Regiunile Mathcad pot fi legate, prin hyperlinkd, de alte fişiere ca documente: Mathcad,
texte *.doc, *.txt, *.rtf, *.pdf, documente Excel *.xls, prezentări Power Point *.ppt, etc sau adrese
internet (vezi secţiunea 21.5).
Tabloul schimburilor de date, în care este implicat Mathcad, este reprezentat în figura 21.1.
370
Date Matlab, Axum, Excel, SmartSketch, Aplicaţii care
tabelare S-PLUS Graph, S-PLUS Script suportă OLE Aut.
2 1
2 1 2 1
1
MEDIUL MATHCAD 2001
Aplicaţie
Program care suportă
Reference Visual OLE
Foaie de lucru Foaie de lucru Basic Automation
Mathcad Mathcad
Hyperlink
Hyperlink Hyperlink
Fişiere de tipurile
*.doc, *.rtf, *.txt, *.xls, *.ppt, *.pdf Adresă internet (URL)
371
21.1. SCHIMBUL DE DATE PRIN COMPONENTE
În terminologia Mathcad se face deosebirea între import de date (componenta File Read or
Write vezi secţiunea 7.1.1.6) şi citirea de date dintr-un fişier (componenta Input Table urmată
de comanda Import din meniul pop-up asociat componentei, vezi secţiunea 7.1.1.7).
Prin ambele mecanisme se înţelege aducerea de date dintr-un fişier extern într-o foaie de
lucru. Diferenţele apar, dacă fişierul sursă se modifică ulterior importului sau citirii. La apelarea
comenzii Calculate Worksheet, în cazul importului, modificările nu se reflectă în foia de lucru, pe
când la citire da.
Similar cazului discutat anterior, în terminologia Mathcad se face deosebirea între export de
date şi scrierea de date într-un fişier.
Prin ambele mecanisme se înţelege trimiterea de date dintr-o foaie de lucru, de obicei
rezultate matriceale sau vectoriale, spre un fişier. Diferenţele apar dacă datele se modifică ulterior
scrierii fişierului.
Etape ________________________________
1. Dacă rezultatul este un vector sau o matrice, efectuaţi un clic dublu pe rezultat.
2. Ca urmare, se deschide fereastra de dialog Result Format. În tab-ul Display Options,
alegeţi, din lista Matrix Display Style, elementul Table şi apoi apăsaţi pe butonul OK,
ca urmare matricea este convertită într-un tabel.
3. Din meniul pop-up, asociat tabelului, selectaţi comanda Export. Se deschide o casetă de
dialog Write to File.
4. În fereastra de dialog specificaţi calea şi numele fişierului în care doriţi să salvaţi datele,
tipul de fişier şi în final, apăsaţi pe butonul Save
_______________________________________________________________________________
Etape ________________________________
1. Clic într-o zonă liberă a foii de lucru, la dreapta, sau dedesubt de regiunea math cu datele
matriceale pe care doriţi să le salvaţi.
2. Meniul Insert → Component
372
3. Ca urmare, se deschide un “vrăjitor” (Component wizard). Din listă alegeţi File Read or
Write şi apoi apăsaţi pe butonul Next.
4. În următoarea fereastră, alegeţi Write to a File, apoi apăsaţi pe butonul Next.
5. În noua fereastră, alegeţi tipul de fişier, indicaţi calea şi numele, la sfârşit apăsaţi pe
butonul Finish.
6. Ca urmare, pe foia de lucru apare o regiune, ca cea din figura
alăturată, în care trebuie să completaţi placeholder-ul cu
numele variabilei ale cărei valori doriţi să le salvaţi
_______________________________________________________________________________
Spre deosebire de cazul anterior, dacă datele asociate numelui variabilei sunt modificate de
către utilizator, fişierul va fi automat reactualizat.
Etape ________________________________
1. Clic într-o zonă liberă a foii de lucru. Aceasta trebuie să fie plasată dedesubt, sau la
dreapta zonelor matematice unde sunt definite variabilele dorite a fi intrări, în
componentă.
2. Meniu Insert Æ Component.
3. Ca urmare, se deschide un “vrăjitor” (Component wizard), din prima fereastră de dialog
(vezi captura de mai jos) se alege o componentă şi funcţie de acesta se setează anumite
proprietăţi. În final se apasă pe butonul [Finish].
_______________________________________________________________________________
373
Fiecare componentă are un mod diferit de reprezentare în foia de lucru Mathcad. Ca urmare
a inserţiei, în regiunea matematică există un simbol de definire :=, dedesubt sunt plasate unul sau
mai multe placeholder-e destinate numelui variabilelor de intrare, iar la stânga placeholder-ele
pentru variabilele de ieşire.
După completarea placeholder-elor pentru intrări şi ieşiri acestea pot fi ascunse prin
comanda Hide, din meniul pop-up asociat componentei. Din acelaşi meniu, mai pot fi selectate
comenzile:
- Add Input Variable, pentru adăugarea de variabile de intrare;
- Add Output Variable, pentru adăugarea de variabile de ieşire;
- Remove Input Variable şi Remove Output Variable, pentru eliminări.
Etape ________________________________
1. Clic pe o componentă cu ButD, pentru afişarea meniului pop-up.
2. Alegeţi comanda Proprieties.
3. Completaţi setările care sunt specifice fiecărui tip de componentă.
_______________________________________________________________________________
Dacă efectuaţi un clic dublu pe componentă, se modifică meniul şi barele de instrumente ale
Mathcad-ului fiind introduse elemente suplimentare, specifice componentei. Prin intermediul
acestora se poate interveni activ în mediul ţintă fără a părăsi mediul gazdă.
După cum s-a amintit, un fişier Excel poate fi citit prin intermediul componentei File Read
or Write, pe această cale realizându-se o legătură statică. Însă, există şi o cale directă, dinamică
care apelează componenta EXCEL, în scopul schimbului de date cu Mathcad.
Un exemplu tipic este: există un set de valori, în foia de lucru Mathcad, care trebuie
transferate în Excel, procesate acolo şi apoi aduse rezultatele în Mathcad. Toate aceste operaţii se
pot executa doar dacă pe calculator este instalată, cel puţin, versiunea 7 a EXCEL-ului.
374
O componentă EXCEL execută următoarele operaţii, fără a părăsi mediul Mathcad:
- transferă datele din Mathcad în Excel;
- permite lucrul în EXCEL, în interiorul unei ferestre EXCEL plasate în Mathcad, prin
efectuarea unui dublu clic pe componenta EXCEL;
- trimite valori din EXCEL în Mathcad, la efectuarea unui clic în afara ferestrei EXCEL.
Etape ________________________________
1. Clic într-o zonă liberă a foii de lucru, plasată dedesubt sau la dreapta zonelor
matematice, unde sunt definite variabilele dorite a fi intrări în componenta EXCEL.
2. Meniu Insert Æ Component.
3. Selectaţi componenta EXCEL, din lista primei ferestre de dialog, apoi apăsaţi butonul
[Next].
4. Este lansat un “vrăjitor” Excel Setup Wizard. În prima casetă de dialog puteţi selecta
crearea unei foi de lucru EXCEL goale (Create an empty Excel worksheet) sau a unei foi
care să conţină un fişier EXCEL (Create from file). În a doua variantă, se completează
manual calea şi numele fişierului, sau se foloseşte pentru căutare butonul [Browse] care
deschide o fereastră de dialog . Dacă bifaţi check-box-ul Display as Icon, componenta
EXCEL va fi afişată, ca icoană, ocupând o suprafaţă mult mai mică pe foia de lucru.
Pentru trecerea la următoarea fereastră, de dialog, se apasă pe butonul [Next]. În
următoarea casetă se setează intrările şi ieşirile componentei EXCEL (vezi captura de
mai jos).
5. Fixaţi numărul de intrări şi ieşiri necesare şi indicaţi locaţiile acestora în foia de lucru
EXCEL (se utilizează sintaxa EXCEL). La sfârşit apăsaţi pe butonul [Finish].
6. În foia de lucru Mathcad este afişată o
regiune, ca cea din captura alăturată, cu două
grupuri de placeholdere libere: la stânga
simbolului := pentru ieşiri, dedesubt pentru
intrări. Acestea trebuie completate cu numele
variabilelor respective.
375
7. Dacă efectuaţi un clic în afara componentei EXCEL, se efectuează schimbul de date.
După cum s-a amintit, puteţi deschide şi lucra în foia EXCEL, prin dublu click pe
componentă.
_______________________________________________________________________________
Pentru economie de memorie, în foia de lucru Mathcad este afişată doar o zona limitată din
tabelul EXCEL. Pentru a avea acces la toată foia, executaţi dublu clic pe componenta EXCEL.
Exemplu
a.
b.
376
În fişierul vinzari.xls se află cantităţile de produse vândute ale unei firme. O captură din
EXCEL conţinând informaţiile din fişierul vinzari.xls se află în figura de mai sus. Câmpul E este
liber, valorile preţurilor unitare ale produselor se află în foia de lucru Mathcad, de asemenea câmpul
F care nu conţine relaţiile de calcul ale încasărilor.
În Mathcad, s-a inserat sub relaţiile de calcul, ale preţurilor unitare, ale celor şapte produse
o componentă EXCEL, în conformitate cu succesiunea de etape detaliată mai sus. Pentru variabila
input, cost_unitar, s-a indicat într-o fereastră de dialog, ca cea din figura de pe pagina anterioară,
grupul de celule E6:E12, iar pentru variabila de ieşire, numită rez, s-a indicat F6:F12.
După inserare, s-a efectuat un dublu clic pe componenta EXCEL şi s-au introdus relaţiile
de calcul ale încasărilor (încasări=cost_unitar x cantitate vândută) şi suma obţinută din vânzări. În
captura din figura b, efectuată din foia de lucru Mathcad, se observă: valorile costurilor cuprinse în
variabila vector cost_unitar, componenta EXCEL cu valorile calculate ale vânzărilor şi aceleaşi
valori afişate sub numele variabilei de ieşire rez.
Etape ________________________________
1. Clic într-o zonă liberă a foii de lucru, plasată dedesubt sau la dreapta zonelor matematice
unde sunt definite variabilele dorite, a fi intrări, în componenta MATLAB.
2. Meniu Insert Æ Component.
3. Selectaţi componenta MATLAB, din lista primei ferestre de
dialog, apoi apăsaţi butonul [Finish]. Ca urmare, o componentă
Matlab, ca cea din captura alăturată, este inserată în foia de lucru
Mathcad.
4. În placeholder-ul din stânga simbolului :=, se trece numele variabilei de ieşire, iar în cel
de dedesubt numele variabilei/lor de intrare. Implicit, acestea au în Mathcad numele
out0, out1, ..., respectiv in0, in1, ... Variabila/ele de ieşire pot fi modificate, ca nume,
prin comanda Proprieties a meniului pop-up, asociat componentei şi ca număr prin
comenzile Add Input Variable, Add Output Variable, Remove Input Variable,
Remove Output Variable.
_______________________________________________________________________________
Etape ________________________________
1. Efectuaţi un clic dublu pe componenta MATLAB, în consecinţă se deschide o fereastră
de editare a fişierului script Matlab, numită Script Editor – [MATLAB]. Aici se
editează fişierul script (succesiunea de comenzi Matlab). Fie se concepe un fişier nou,
377
fie se modifică unul existent, adus în editor prin comanda Import din meniul File.
Atenţie la concordanţa numelor variabilelor cu cele declarate la inserarea componentei.
Fişierul poate fi salvat prin comanda Export din meniul File.
2. Executaţi un clic, în afara componentei, pentru a se realiza schimbul de date: variabilele
de intrare, din Matcad, sunt transferate în mediul Matlab, datele sunt procesate şi în final
rezultatele sunt asignate variabilelor de ieşire.
_______________________________________________________________________________
Exemplu
Se pune problema rezolvării unei ecuaţii de gradul doi, în mediul MATLAB, coeficienţii
necunoscutelor fiind definiţi sau calculaţi în Mathcad. Evident, problema putea fi uşor rezolvată în
Mathcad, însă s-a ales acest exemplu banal pentru a se urmări, mai uşor, dinamica schimbului de
date.
S-a inserat o componentă MATLAB parcurgându-se paşii 1 şi 2. Scriptul Matlab pentru
calculul soluţiilor ecuaţiei este listat mai jos:
Deoarece în script există trei variabile de intrare: a, b, c şi una de ieşire: vectorului x, având
ca elemente cele două soluţii, prin comanda Proprieties i s-au modificat numele implicite, in0, in1,
in2, respectiv out1 (vezi captura de mai sus). După completarea placeholder-elor componentei, cu
numele variabilelor, s-a efectuat un clic în afara componentei şi s-a afişat rezultatul (vezi captura
mai sus).
378
21.1.3.6. Componenta AXUM
Axum este un produs al firmei MathWorks, fiind destinat reprezentării grafice şi analizelor
statistice a datelor. Ultima versiune, numerotată cu 7, oferă utilizatorului mai mult de 100 de tipuri
de grafice 2D şi 3D care permit construirea unor diagrame de calitate foarte bună. Pentru inserarea
unei componente AXUM este necesar să aveţi instalată, cel puţin, versiunea Mathcad 5.03.
Etape ________________________________
1. Creaţi în Mathcad vectori, matrice cu datele pe care doriţi să le reprezentaţi grafic.
2. Clic într-o zonă plasată sub, sau la dreapta datelor.
3. Alegeţi comanda Component din meniul Insert.
4. Selectaţi componenta Axum Graph din lista afişată în fereastra de dialog Component
Wizard şi apăsaţi pe butonul [Next].
5. Se deschide caseta de dialog Graph Setup Wizard în care se fac următoarele setări:
o prin intermediul butonului Choose Axis/Plot Type, se pot selecta tipurile de
grafice şi alţi parametri;
o se fixează numărul de intrări;
o prin bifarea unui check-box, puteţi folosi ultima intrare pentru variabile
condiţionate.
După ce efectuaţi toate setările, apăsaţi butonul [Finish].
379
Editarea unui grafic AXUM
Etape ________________________________
1. Clic dublu pe grafic. Ca efect, se modifică meniul Mathcad în care sunt integrate şi bare
de instrumente, meniuri AXUM.
2. Editaţi diagrama AXUM, prin intermediul instrumentelor specifice.
3. Clic în afara componentei, pentru a vedea modificările făcute.
_______________________________________________________________________________
Exemplu
În exemplul de mai sus, s-a creat în Mathcad o matrice 3 x 359 apelându-se la componenta
File Read or Write (în captura de mai sus, se vede o porţiune din matrice, afişată ca tabel).
Graficul 3D, AXUM, vizualizează atât punctele cât şi suprafaţa de regresie liniară. Acestea s-ar fi
putut reprezenta şi în Mathcad, însă utilizatorul ar fi trebuit să efectueze mult mai multe operaţii.
Prin componenta ODBCd (Open Database Connectivity) se pot citi informaţii dintr-o bază
de date care suportă SQLd în driver-ul său, ODBC.
380
21.2. SCHIMBUL DE DATE ÎNTRE MATHCAD ŞI ALT PROGRAM
CARE OFERĂ SUPORT OLE AUTOMATION
Pentru a fi posibilă efectuarea unui schimb de date, între Mathcad şi altă aplicaţie Windows,
trebuie îndeplinite condiţiile:
- anterior, trebuie instalat un limbaj script ca Microsoft VBScript (Visual Basic Scripting
Edition) sau Microsoft JScript (o implementare a limbajului Java Script), ambele fiind
incluse în Microsoft Internet Explorer, sau pot fi descărcate ca programe freeware de
la www://msdn.microsoft.com/scripting;
- aplicaţia ţintă este instalată în sistem;
- aveţi informaţii asupra modului de implementare OLE, pentru aplicaţie.
Etape ________________________________
1. Clic într-o zonă liberă a foii de lucru, plasată dedesubt sau la dreapta zonelor
matematice, unde sunt definite variabilele dorite a fi intrări în componentă.
2. Meniu Inert Æ Component.
3. Selectaţi componenta Scriptable Object, din lista primei ferestre de dialog, apoi apăsaţi
butonul [Next]. Ca urmare, este lansat un Scripting Wizard.
4. În prima fereastră sunt afişate toate aplicaţiile serverd disponibile, pe sistemul pe care
lucraţi. Alegeţi o aplicaţie care suportă interfaţa OLE2. Prin două butoane radio, selectaţi
dacă componenta este nouă, sau există un fişier. Mai există opţiunea afişării
componentei ca icoană.
5. Urmează o succesiune de două ferestre de dialog în care se specifică limbajul script,
numele obiectului, numărul de intrări, ieşiri. După apăsarea butonului [Finish], este
inserată, în foia de lucru Mathcad, componenta Scriptable Object.
6. La fel ca şi la celelalte componente, în placeholder-ul din stânga simbolului := se trece
numele variabilei de ieşire, iar în cel de dedesubt numele variabilei/lor de intrare.
_______________________________________________________________________________
O componentă tip Scriptable Object are obiecte, proprietăţi predefinite şi metode care permit
configurarea componentei. Detalierea acestora depăşeşte obiectivele prezentei lucrări, fiind detaliate
în documentaţia limbajului script selectat.
Editarea scriptului
Etape ________________________________
1. Selectaţi obiectul prin clic.
2. Prin apăsarea tastei dreapta, a mouse-ului, apare meniul pop-up din care selectaţi Edit
Script. Ca urmare, este afişată o fereastră de editare Editor Script.
3. Completaţi codul dumneavoastră în cele trei funcţii predefinite, din editbox-ul ferestrei.
4. meniu File → Close & Return.
_______________________________________________________________________________
381
Câteva exemple, de aplicaţii, în care se lucrează cu componenta Scriptable Object se găsesc
în directorul unde este instalat Mathcad, subdirectorul Samples/ Scripted.
Utilizând interfaţa OLE Automation, se pot trimite dinamic date din altă aplicaţie Windows
spre Mathcad, se poate utiliza mediul Mathcad pentru efectuarea unor calcule şi rezultatele pot fi
returnate aplicaţiei.
În acest scop, utilizatorul trebuie să scrie un program în Visual Basic x, x ≥ 5, sau într-o
aplicaţie care poate servi ca OLE Automation clientd (de exemplu Excel x, x ≥ 5). Programul se
utilizează pentru a defini şi recupera variabilele în Mathcad. Cum s-a amintit anterior în Mathcad
variabilele de intrare vor avea numele in0, in1, in2 ..., iar cele de ieşire out0, out1, out2....
Procedurile specifice, cerute pentru a scrie un obiect Mathcad OLE, sunt în general aceleaşi
cu mici deosebiri, în funcţie de natura aplicaţiei care serveşte drept client:
Etape ________________________________
1. Furnizaţi sau creaţi un obiect Mathcad OLE cu care se va realiza comunicarea.
2. Setaţi aplicaţia care trimite date spre Mathcad şi/sau locaţiile de primire a datelor,
returnate de Mathcad.
3. Scrieţi codul, pentru a specifica datele care se trimit spre Mathcad şi/sau datele returnate.
_______________________________________________________________________________
21.4. REFERINŢE
În cazul unor fişiere Mathcad de dimensiuni mari este, de multe ori, avantajos, în scopul
măririi lizibilităţii documentului, să se facă referiri dintr-o foaie de calcul considerată principală, la
alte foi de calcul. În acelaşi scop, se pot utiliza blocurile de regiuni (vezi secţiunea 3.4).
Mecanismul referinţelor este util şi când se lucrează în echipă. Este important de reţinut că referinţa
(reference) este o conexiune dinamică. Inserarea unei referinţe se efectuează în următorii paşi:
Etape ________________________________
1. Clic într-o zonă liberă a foii de lucru.
2. Meniu Insert → Reference.
3. În caseta de dialog Insert Reference se scrie direct calea spre fişierul Mathcad accesat
sau se utilizează butonul [Browse]. Se poate face referire şi la o adresă internet.
4. Efectuaţi un clic pe butonul [OK].
_______________________________________________________________________________
Ca urmare, la dreapta punctului de inserare, apare o icoană urmată de calea spre fişier, ca în
captura alăturată: Dacă se efectuează un clic dublu pe
icoană, documentul Mathcad este deschis într-o fereastră separată.
382
Dacă documentul principal a fost anterior salvat, în fereastra de dialog Insert Reference
este activ check-box-ul Use relative path for reference. În consecinţă, dacă se mută fişierul referit
şi cel principal pe alt drive, conservându-se însă structura relativă a directoarelor, referinţa rămâne
validă. Dacă modificaţi conţinutul fişierelor referite, conexiunea dinamică se realizează doar la
deschiderea fişierului principal.
Deşi, mai sus, s-a detaliat cazul întâlnit frecvent: un fişier principal, unul sau mai multe
fişiere secundare referite, pot fi construite şi alte structuri cu imbricări până la orice nivel dorit.
21.5. HYPERLINK-URI
Uzual, hyperlinkd-ul este asociat unui cuvânt, grup de cuvinte sau simboluri plasate într-o
regiune text, dintr-o foaie de lucru. Acestea apar marcate cu caractere îngroşate şi subliniate. Dacă
se efectuează un clic dublu, pe textul care are asociat un hyperlink, se deschide o fereastră
suplimentară, de afişare a programului, sau mediului în care a fost editat fişierul legat.
Inserarea unui hyperlink:
Etape ________________________________
1. Selectaţi caracterul sau grupul de caractere cărora doriţi să le asociaţi un hyperlink.
2. Meniu Insert → Hyperlink.
3. Caseta de dialog Insert Hyperlink este asemănătoare, celei anterior analizate, Insert
Reference, în plus mai apare un check – box, Display as pop-up document şi o zonă de
editare pentru mesajul din bara de stare, afişat când se trece cu mouse-ul peste zona cu
hyperlink.
4. Efectuaţi un clic pe butonul [OK].
_______________________________________________________________________________
Mathconnex este un mediu de programare vizual, care permite integrarea aplicaţiilor care
suportă OLE2, în scopul creării unui sistem de calcul eterogen. Deoarece este un mediu care nu are
performanţe deosebite (printre altele este relativ lent), Mathsoft a renunţat la el în varianta Mathcad
2001. În consecinţă nu este detaliat în prezentul curs.
383
III MANAGEMENTUL DATELOR ŞI AL
PROGRAMELOR ÎN MATHCAD 2001
Toate facilităţile pe care le oferă Mathcad: foi de lucru “live”, referinţe, hyperlink-uri,
blocuri de regiuni pot fi reunite în scopul creării unor cărţi electronice (Electronic Books),
abreviate în continuare cu CE. Un exemplu este Resource Center-ul sau numeroasele CE
specializate, pe anumite domenii disponibile comercial, sau freeware.
Câteva dintre cele mai importante caracteristici, specifice unei CE, sunt:
pagini “live” (proprietatea foii de lucru Mathcad);
dintr-o CE se pot copia şi lipi în alte documente Mathcad: texte, figuri, relaţii;
într-o CE se pot face adnotări nepermanente sau permanente;
CE poate fi răsfoită în două moduri:
- prin folosirea butoanelor şi comenzilor disponibile în bara de instrumente,
respectiv meniurile asociate CE;
- dublu clic pe titlurile capitolelor, sau subcapitolelor din cuprins sau alte regiuni
text care au hyperlink-uri;
într-o CE se pot face căutări prin mecanismul cunoscut al oricărei aplicaţii Windows
(comanda Find din meniul Edit) sau prin butonul Search.
unei CE voluminoase i se poate asocia un index.
Etape ________________________________
1. Creaţi fişierele Mathcad care vor fi conţinutul CE.
2. Creaţi un cuprins si hyperlink-urile necesare.
3. Creaţi un fişier *.hbk care va memora ordinea de răsfoire a fişierelor, legăturile între
capitole şi fişiere, titlurile din barele de titlu.
4. Opţional se poate crea un index.
________________________________________________________________________________
384
În acest sens luaţi în considerare următoarele recomandări:
- fiecare capitol al cărţii pe care doriţi să-l accesaţi prin intermediul cuprinsului
salvaţi-l ca fişier *.mcd, fişierele se plasează într-un singur director, eventual în mai
multe subdirectoare;
- pentru mărirea productivităţii şi constanţa calităţii conţinutului CE utilizaţi stilurile
de text (text style) şi modelele de documente (template);
- dacă aveţi mai multe paragrafe succesive plasaţi-le în regiuni text separate pentru a le
mări controlabilitatea;
- aliniaţi la stânga regiunile, utilizaţi rigla şi marcatorii de indentare.
- utilizaţi separatorii de pagină (meniul Insert → Break) unde doriţi să se încheie o
pagină şi să se producă saltul la următoarea;
- marcaţi prin culoare regiunile matematice în care cititorul CE poate interveni cu
modificări;
- dacă în CE procesaţi date de intrare tabelare utilizaţi importul de date (vezi secţiunea
21.1.3.3);
- dacă inseraţi imagini folosiţi comanda Paste Special din meniul Edit cu opţiunea
Device Independent Bitmap pentru ca imaginile să nu fie obiecte OLE;
- dacă doriţi ca CE să aibă dimensiuni reduse limitaţi-vă la 256 de culori (în Windows
Control Panel → Display → Settings). Evident şi imaginile importate trebuie
prelucrate în acest sens: 256 de culori sau chiar mai puţine dacă este posibil.
Fişierul cu extensia hbk (abreviere de la handbook) este un fişier text, deci poate fi creat
în orice editor de texte de exemplu Notepad.
Fişierul amintit specifică:
- ordinea de răsfoire a CE;
- fişierele corespunzătoare capitolelor cuprinsului, indexului şi primei pagini a CE;
- textul din bara de titlu a secţiunilor, a meniului Open Book.
Fişierul hbk are o structură rigidă, un exemplu fiind analizat în continuare:
385
Prima linie este un comentariu, care evident poate fi inclus în orice zonă a fişierului.
Aceasta este precedată de semnul de punctuaţie punct şi virgulă prin intermediul căruia
interpretorul este anunţat să ignore informaţia care urmează pe rândul respectiv.
Următoarele patru cuvinte predefinite sunt obligatorii în succesiunea:
.version 2001
.title
SPLASH
TOC
Textul introdus imediat după .title apare în bara de titlu a ferestrei CE şi eventual în
bara de titlu a help-ului.
Începând de la linia care începe cu SPLASH în jos informaţia este împărţită în trei
coloane cu separatori tab-uri. După SPLASH urmează numele fişierului primei pagini şi
eventual urmează un text explicativ.
După TOC se scrie numele fişierului care conţine cuprinsul CE.
În continuare urmează capitolele CE şi asocierile cu fişierele corespondente. Pe prima
coloană se trece numele fişierului capitolului, neurmat de extensie. Acesta este utilizat intern de
către sistem ca nume logic al capitolului. După separatorul: se trec de obicei titlurile capitolelor
care vor apărea în barele de titlu. Numele din prima şi a doua coloană nu trebuie să conţină spaţii
libere. Când cititorul CE apasă butoanele Next Topic sau Previous Topic din bara de
instrumente saltul se face în ordinea impusă în fişierul hbk.
Observaţii:
- numărul de fişiere nu este limitat;
- nu sunt permise linii libere, pentru lizibilitate mărită folosiţi simbolul “;”
- pentru a sări la răsfoire peste un capitol precedaţi-l de comanda skip
(exemplu: nume_fisier nume_fisier.mcd skip: Titlul fişierului);
- fişierul trebuie salvat ca fişier text cu extensia hbk. În plus numele acestuia trebuie
să fie identic cu al folder-ului (directorului) care conţine fişierele CE.
Căutaţi în directorul programului Mathcad subdirectorul HANDBOOK. Dacă acesta nu
există creaţi-l. Copiaţi sau mutaţi directorul care conţine fişierele CE şi fişierul hbk în directorul
mai sus amintit.
Exemplu:
386
22.2. Adnotarea cărţii electronice
Modificările pot fi permanetizate prin utilizarea comenzii Annotate Book. În acest caz,
sistemul face o copie a CE care conţine adnotările şi care este afişată implicit la redeschiderea
CE. În meniul pop-up, asociat CE sau în meniul ferestrei CE, mai există: comanda contextuală
View Original Section/ View Edited Section (vezi varianta originală / modificată), comenzile
pentru salvări: Save Section, Save All Changes şi comenzile pentru reconstituiri: Restore
Section, Restore All.
387
REFERINŢE MATHCAD PE INTERNET
388
GLOSAR
ActiveX – o nouă tehnologie, dezvoltată de Microsoft, pentru schimbul de informaţii între diferite
aplicaţii. ActiveX se bazează pe alte două tehnologii Microsoft OLEd şi COMd.
Add-on – referitor la software, este un program suplimentar care extinde funcţionalitatea unui
program de bază. Se mai utilizează şi termenul de pack.
ASCII (American Standard Code for Information Interchange) – codul standard american pentru
interschimbarea de informaţii. Acesta este un cod de reprezentare a caracterelor limbii engleze prin
numere. În codul standard ASCII există 128 de caractere, deci poate fi reprezentat pe 7 biţi. De
exemplu, caracterul M are codul 77. Codul ASCII extins utilizează 8 caractere şi în consecinţă
poate reprezenta 256 de caractere. Cele 128 de caractere, suplimentare faţă de codul standard, sunt
folosite pentru caracterele unor alte limbi, diferite de engleză şi pentru simboluri grafice.
AVI (Audio Video Interleave) - format standard, promovat de Microsoft, pentru videoclipuri.
Fişierele respective, cu extensia AVI, au o rezoluţie limitată la 320x240 dpid, maximum 30 de
frame-uri pe secundă şi nu necesită nici un fel de dispozitive hardware suplimentare pentru a fi
vizualizate.
Brightness – strălucirea este cantitatea de lumină pe care o transmite sau o reflectă un pixeld dat.
Uzual, se măsoară în procente 0% este negru, 100% este alb. În modelul RGBd , se asignează
fiecărui pixeld valori între 0 (negru) şi 255 (alb). Când valorile celor trei componente roşu-verde-
albastru sunt egale rezultă o nuanţă de gri. Dacă toate, cele trei componente roşu-verde-albastru, au
valoarea zero, rezultă negru pur şi alb pur, pentru 255.
Broswer – interfaţă destinată prezentării unei vederi de ansamblul asupra unui mediu de stocare,
bază de date. În general, conţine bare de derulare sau alte elemente de interfaţă care ajută
utilizatorul în procesul de căutare.
Case senzitive – proprietatea unui program de a face distincţia între litere mari şi mici. De exemplu,
Mathcad este case senzitive la definirea unor nume de variabile pe când Turbo Pascal, Delphi nu.
Clic - presupune două operaţii succesive: plasarea cursorului într-o anumită zonă a foii de lucru,
urmată de apăsarea tastei stânga a mouse-ului.
Clipboard – zonă de memorie tampon destinată stocării temporare a datelor înainte ca acestea să
fie copiate în altă locaţie. Utilizarea memoriilor tampon permit CPU să manipuleze datele înainte de
transferarea spre un dispozitiv. De obicei buffer-ul este creat în RAMd. Deoarece procesele de
citire-scriere a datelor de pe/pe disc sunt relativ lente, multe programe efectuează modificările în
clipboard şi numai după aceea copiază (salvează) pe disc. Evident că utilizarea clipboard-ului
îmbunătăţeşte substanţial viteza de lucru. Procesoarele de text utilizează clipboard-ul ca memorie
intermediară între operaţiile de copiere (copy), tăiere (cut) şi lipire (paste).
COM (Component Object Model) – defineşte un standard care conţine mecanismele ce permit
comunicarea între obiected prin intermediul unei interfeţe.
Context senzitive – dependent de context, cu referire la proprietăţile unui program care se modifică
automat funcţie de operaţiile pe care vrei să le efectuezi cu acesta. De exemplu, un help, dependent
de context, asigură documentaţia pentru o operaţie particulară care se utilizează la un moment dat.
DDE (Dynamic Data Exchange) – sistem IPC (InterProcess Communication) care permite
schimbul de date între două aplicaţii. Actualmente este rar utilizat în comparaţie cu mecanisme mai
389
evoluate ca OLEd, ActiveXd.
Desktop – exprimă, metaforic, suprafaţa de lucru a unui birou transpusă pe display. Este elementul
GUId al unei aplicaţii şi care conţine pictograme, meniuri, zone de editare etc., deci instrumentele
de lucru specifice, care sunt plasate pe un birou.
DLL (Dynamic Linked Library) – bibliotecă, cu legare dinamică, care conţine una sau mai multe
rutine discrete, pe care o aplicaţie le poate utiliza în scopul efectuării unor funcţii specifice. De
exemplu, o bibliotecă DLL poate furniza un set comun de casete de dialog necesare
managementului fişierelor. O copie rezidentă în memorie a unui DLL poate fi utilizată de mai multe
aplicaţii în acelaşi timp. Aplicaţiile, în rulare, sunt în conexiune dinamică cu DLL-ul, efectul fiind
un necesar de memorie mai redus. Unele DLL-uri sunt asigurate de sistemul de operare Windows,
altele sunt scrise pentru aplicaţii particulare şi sunt încărcate o dată cu aplicaţia, altele ca driver-ele
sunt încărcate la startup-ul sistemului. Uzual DLL-urile au extensiile: dll, exe, fon sau drv.
dpi (dots per inch) – unitate de măsură a rezoluţiei care reprezintă numărul de puncte identificabile
pe o un segment de dreaptă cu lungimea de un inch.
Embedded objects – obiecte împachetate sau înglobate. Obiectul împachetat este parte din fişierul
destinaţie şi odată înglobat, în acesta, se rupe legătura cu fişierul sursă. Dacă într-un obiect
împachetat se modifică informaţia, în fişierul sursă aceasta rămâne nemodificată. În consecinţă
actualizările trebuie făcute manual. Spre deosebire de obiectele legate, cele împachetate pot fi create
în timpul inserţiei.
GUI (Graphical User Interface) – interfaţa grafică cu utilizatorul este un sistem de pictograme şi
imagini grafice care înlocuiesc, ca funcţionalitate, meniurile create în mod caracter. Principalele
elemente GUI sunt: pointerd, pointing deviced, icond, desktopd, menud.
HTML (HyperText Markul Language) - limbajul utilizat pentru scrierea paginilor Web.
HBS model – (Hued Brightnessd Saturationd model) este un model bazat pe modul de percepţie
uman al culorilor şi urmăreşte trei caracteristici fundamentale ale culorii: culoare, luminozitate şi
saturaţia.
Hue – culoarea reflectată sau transmisă printr-un obiect. Uzual este identificată prin nume: roşu,
verde etc. Pentru cuantificare se utilizează poziţia în grade hexazecimale 00 … 3600 pe cercul
standard al culorilor.
Hypertext – documente care conţin legături (link-uri) către alte documente.
Hyper-link – grup de caractere care reprezintă referiri către alte pagini Web.
Icon – icoană, vezi pictogramă.
IDE (Integrated Development Environment) – mediu integrat de dezvoltare, se referă la limbaje de
programare care trebuie să fie dotate cu utilităţile necesare pentru dezvoltarea completă a unui
program: editare, compilare şi depanare (debug).
Linkeded objects – obiecte legate. Într-un obiect legat, informaţia este actualizată numai dacă se
modifică obiectul (fişierul) sursă. Datele legate sunt memorate în fişierul sursă. Fişierul destinaţie
memorează doar locul unde se află fişierul sursă. Evident, că un obiect legat trebuie să existe ca
fişier salvat. De obicei se utilizează un obiect legat, în loc de unul împachetat, dacă mărimea
fişierului sursă este relativ mare.
390
Macro – un simbol, o tastă care la acţionare declanşează o listă de comenzi definită de utilizator. Se
utilizează pentru mărirea productivităţii în cazul unor succesiuni de comenzi, care se repetă,
frecvent. Termeni similari, macro-ului, sunt: fişierul batch, script-ul.
MAPI (Messaging API) - set de funcţii şi resurse Windows destinate programelor de comunicaţii.
MathML (Mathematical Markup Language) – este o aplicaţie XMLd pentru descrierea notaţiilor
matematice în scopul transmiterii, procesării obiectelor matematice pe Webd. Cea mai importantă
influenţă asupra MathML a avut-o TeX (sistem de prelucrare a textelor, dezvoltat de Donald
Knuth, mai frecvent cunoscut sub forma extensiei LaTeX).
Menu – o listă de comenzi sau opţiuni din care utilizatorul poate selecta un element. Meniurile au
mai multe forme: pop-up menud, pull-down menud, bar-menud.
Menu-bar – un meniu orizontal, fiecare opţiune a meniului se dezvoltă ca meniu pull-downd.
Object – obiectul este un modul de program care descrie caracteristicile şi comportamentul unei
entităţi conceptuale sau fizice. În multe limbaje orientate pe obiecte, tipul class (obiect în general)
are ca articole date, metode (funcţii, proceduri prin intermediul cărora se prelucrează datele
obiectului, deci comportamentul) şi proprietăţi care, în general, pot fi schimbate atribuiri.
ODBC (Open Database Connectivity) – standard pentru accesarea a diferitelor baze de date. Există
interfeţe pentru Visual Basic, Visual C++, SQL, iar ODBC driver pack conţine drivere pentru baze
de date: Access, Paradox, dBase, Excel etc.
OLE object – este, în terminologia OLE, o colecţie de date care este transferată, în formatul ei
nativ, de la o aplicaţie spre alta. Este necesar ca aplicaţia, care creează obiectul, să accepte condiţiile
impuse de OLE.
OLE (Object Linking and Embedding) – tehnologie de legare şi împachetare a obiectelor, creată
de Microsoft şi ajunsă la versiunea OLE 2, specifică sistemelor de operare Windows 9x, 2000…
Mecanismul obiectelor legate (linked) sau împachetate, înglobate (embeddeded) este utilizat pentru
a adăuga un fişier, parţial sau total la alt fişier. Actualmente OLE a fost înlocuit cu tehnologia
ActiveXd.
OLE Automation – este un protocold prin care o aplicaţie Windows poate accesa un obiect aflat în
interiorul altui obiect sau în interiorul unei biblioteci (DLL).
OLE Client - aplicaţie Windows care conţine un obiect legat sau împachetat. De exemplu, dacă
plasaţi un obiect foaie de calcul (spreadsheetd) într-un document Word, procesorul de text este
aplicaţia client. O aplicaţie client acţionează ca un container pentru obiectele care le primeşte de la
o aplicaţie server. Într-o OLE Automation Client se poate scrie un program sau un macrod pentru a
interacţiona cu alt obiect. De exemplu Excel x, x≥5 este un OLE Automation Client.
OLE Container – este un obiect care conţine, la rândul său, alte obiecte. Pentru a afişa sau tipări un
document OLE compusd este nevoie, doar, de aplicaţia OLE Container.
OLE Compound Document – (document compus) este un document care conţine unul sau mai
multe obiecte. Toate documentele OLE sunt considerate compuse.
OLE Server – aplicaţia Windows pe care clientul o apelează pentru a manipula un obiect. Pentru a
face modificări asupra conţinutului obiectului, aplicaţia client trebuie să apeleze aplicaţia care a
creat obiectul, deci cele două aplicaţii trebuie să lucreze împreună, pentru a crea un document
coerent. Pentru a edita un obiect legat sau împachetat, este nevoie de aplicaţia OLE server.
391
Pictogramă – simbol utilizat pentru reprezentarea grafică a scopului unei funcţii, aplicaţii sau
fişier. Pictogramele sunt parte integrantă a mediului GUId. Similar termenului icoană (icon).
Pixel (picture element) – element rectangular care formează o imagine digitizată, de exemplu pe un
ecran video. Fiecărui pixel i se atribuie o culoare şi o intensitate. Numărul de biţi asociaţi unui pixel
determină numărul de culori pe care le poate afişa. De exemplu cu 8 biţi pot fi reprezentate 28 culori
sau nuanţe de gri. Pe monitoarele color fiecare pixel este compus din trei culori: roşu, verde şi
albastru (modelul RGBd).
Pointer – (indicator) element al GUId reprezentat, de obicei, printr-o săgeată care apare pe display,
poziţia ei fiind controlată de un dispozitiv numit pointing deviced.
Pointing-device – dispozitiv care permite utilizatorului să selecteze obiecte de pe desktop. Cele mai
cunoscute sunt: mouse-ul, track-ball-ul şi tastatura.
Pop-up menu - meniu flotant care apare în zona desktop-ului unde s-a executat un click cu butonul
dreapta al mouse-ului. De obicei conţine comenzi referitoare la obiectul aflat în zona respectivă.
Protocol – un sistem de reguli şi proceduri care guvernează comunicaţiile între două sau mai multe
dispozitive. Formatul datelor, semnalizarea stării care permite recepţia sau transmiterea datelor,
detectarea sau corectarea erorilor sunt câteva din operaţiile care pot fi definite de un protocol.
Pull-down menu – meniu special tip pop-up care apare dedesubt de comanda selectată.
RAM (Random Access Memory) – este orice memorie care poate fi accesată în orice moment
(aleatoriu) de către microprocesor.
Saturation – saturaţia exprimă puritatea unei culori. O culoare pură sau cu saturaţie 100% este o
culoare care nu conţine alb. O culoare cu saturaţie 0% este un gri. Pe cercul culorilor standard
saturaţia creşte radial de la centru spre margine.
Spreadsheet – foaie de calcul “live” organizată în linii şi coloane, între celule stabilindu-se relaţii
de calcul. Deseori aplicaţiilor tip foaie de calcul (spreadsheet applications), care de fapt sunt
programe prin care se crează şi manipulează informaţii organizate tabelar (Excel, Lotus 1-2-3), li se
spun pe scurt spreadsheets.
SQL – limbaj standard pentru crearea, întreţinerea sistemelor de management a bazelor de date
relaţionale.
Template - model de document care conţine informaţii asupra formatării foii de lucru. Extensia
implicită a modelelor de documente Mathcad este “.mct”.
Tab – o suprafaţă redusă (“ureche”), inscripţionată cu un cuvânt sau un text foarte scurt, cu rol de
identificator, plasată de obicei proeminent deasupra unei fişe (vezi cartotecile de la o bibliotecă).
Prin clic pe tab este afişat într-o monofereastră textul fişei.
Tip – fereastră pop-up de mici dimensiuni care conţine un text explicativ foarte sumar.
XML (EXtesible Markup Language) – o versiune simplificată a metalimbajului SGML (Standard
Generalized Markup Language) care defineşte gramatica şi sintaxa HTMLd.
Wizard – (vrăjitor) este o aplicaţie, de obicei formată din mai multe ferestre de dialog, care
facilitează o succesiune de setări relativ complicate pe care trebuie să le efectueze utilizatorul.
WWW (Word Wide Web), sau pe scurt Web, sau W3 – serviciu complex pentru accesul la
documente existente pe calculatoare răspândite în întreaga lume. Acesta permite: localizarea şi
392
accesarea interactivă a informaţiei aflate pe calculatoare, afişarea de texte, imagini, înregistrări
audio, video, accesarea informaţiilor de la mai multe servicii Internet prin intermediul unui
mecanism unic.
393
Bibliografie
AMA77 ***. Analiză matematică, vol I, II, Edit. Didactică şi Pedagogică, Bucureşti,1977.
BEU92 Beu T. A., Calcul Numeric în Turbo Pascal, Edit. MicroInformatica, Cluj-Napoca,
1982.
CIR00 Cira O., Lecţii de Mathcad, Edit. Albastră, Cluj-Napoca, 2000.
CRA80 Craiu M., Tănase V. V., Analiză matematică, Edit. Didactică şi Pedagogică, Bucureşti,
1980.
DOD76 Dodescu Gh., Toma M., Metode de calcul numeric, Edit. Didactică şi Pedagogică,
Bucureşti, 1976.
DUM75 Dumitru V., Programare neliniară, Edit. Academiei, Bucureşti, 1975.
GHE68 Gheorghiu O. E M., Crstici B. D., Geometrie analitică şi diferenţială. Edit. Didactică şi
Pedagogică, Bucureşti, 1968.
GHI97 Ghinea M., Fireţeanu V., Matlab. Calcul numeric, grafică, aplicaţii. Edit. Teora,
Bucureşti, 1997.
GIB76 Gibra I.N., Probability and Statistical Inference for Scientist and Engineers, Prentice-
Hall, Inc., Englewood Cliffs, New Jersey, 1976.
HAS75 Hastings N.A.J., Peacock J.B., Statistical Distributions, Wiley & Sons, Inc., New York,
1975.
HRI91 Hristev A., Probleme de fizică, Edit. Icar, Bucureşti, 1991.
JAL95 Jalobeanu C., Raşa I., Mathcad. Probleme de calcul numeric şi statistic. Edit. Albastră,
Cluj-Napoca, 1995.
LAR89 Larionescu D., Metode numerice. Edit. Tehnică, Bucureşti, 1989.
MAR87 Marinescu Gh. Probleme de analiză numerică rezolvate cu calculatorul. Edit.
Academiei, Bucureşti, 1987.
MAR95 Martinescu I., Popescu I., Fiabilitate, Edit. Gryphon, Braşov, 1995.
MCC98 ***, MathConnex User’s Guide MathSoft Inc., Cambrige, Massachusetts, 1998, 1997.
MEM80 ***, Mică enciclopedie matematică, traducere din limba germană. Edit. Tehnică,
Bucureşti, 1980.
MEY76 Meyer S.L., Data Analysis for Scientists and Engineers, Wiley & Sons, Inc., New York,
1976.
MUR62 Murgulescu E. ş.a. Geometrie analitică şi diferenţială. Edit. Didactică şi Pedagogică,
Bucureşti, 1962.
POP86 Popescu I., Bazele cercetării experimentale în tehnologia construcţiilor de maşini.
Universitatea "Transilvania", Braşov, 1986.
POP93 Popescu I., ş.a., Fiabilitate. Bazele teoretice, Univ. "Transilvania" din Braşov, 1993.
POS94 Postolache M., Metode numerice, Edit. Sirius, Bucureşti, 1994.
RMM01 ***, Reference Manual, Mathcad 2001, 2000, 8, 7 Professional, MathSoft Inc.,
Cambrige, Massachusetts, 2000, 1999, 1998, 1997.
ROŞ79 Roşculeţ M., Analiză matematică, Edit. Didactică şi Pedagogică, Bucureşti, 1979.
394
ROŞ80 Roşculeţ M., Balea P., Moldoveanu Ş., Programarea şi utilizatea maşinilor de calcul şi
elemente de calcul numeic şi informatică, Edit. Didactică şi Pedagogică, Bucureşti,
1980.
SCH94 Scheiber E., Lixăndroiu D. MathCAD. Prezentare şi probleme rezolvate, Editura
Tehnică, Bucureşti, 1994.
SRI96 SR ISO 3534-1:1996 Statiscă-Vocabular şi simboluri. Partea 1: Termeni de teoria
probabilităţilor şi statistică generală.
ŞAB83 Şabac I. Gh., Cocârlan P. ş.a. Matematici speciale, Edit. Didactică şi Pedagogică,
Bucureşti, 1983.
TIR72 Tiron M., Teoria erorilor de măsurare şi metoda celor mai mici pătrate, Edit. Tehnică,
Bucureşti, 1972.
TOD76 Todoran I., Tratarea matematică a datelor experimentale. Funcţii empirice, Edit.
Academiei RSR, Bucureşti 1976.
ŢAR98 Ţarcă M., Tratat de statistică aplicată, Edit. Didactică şi Pedagogică, Bucureşti, 1998.
UDR80 Udrişte C., Tănăsescu E., Maxime şi minime ale funcţiilor reale de variabile reale, Edit.
Tehnică, Bucureşti, 1980.
UGM01 ***, Mathcad User’s Guide, Mathcad 2001, 2000, 8, 7 Professional, MathSoft Inc.,
Cambrige, Massachusetts, 2000, 1999, 1998, 1997.
395
ISBN 973 – 635 – 302 – 8