Lucrarea 03 - Grafice, Iteratii, Rezolvarea Ecuatiilor Si a Sistemelor de Ecuaiii

18
METODE NUMERICE LABORATOR LUCRAREA 03 – GRAFICE, ITERAŢII, REZOLVAREA ECUAŢIILOR ŞI A SISTEMELOR DE ECUAŢII Pag.1 / 18 3. GRAFICE, ITERAŢII, REZOLVAREA ECUAŢIILOR ŞI A SISTEMELOR DE ECUAŢII I. SCOPUL LUCRĂRII Lucrarea are drept scop prezentarea modului de operare cu grafice (reprezentarea funcţiilor 2D şi 3D), elemente de programare în MathCad (iteraţii) şi metode de rezolvare a ecuaţiilor şi a sistemelor de ecuaţii în MathCad. II. CONŢINUTUL LUCRĂRII 1. Grafice 2. Iteraţii 3. Rezolvarea ecuaţiilor (algebrice şi transcendente) 4. Rezolvarea sistemelor de ecuaţii 5. Aplicaţii rezolvate III. PREZENTAREA LUCRĂRII III.1 Grafice Î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: 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. Reprezentări grafice 2D cu parametri impliciţi : În prealabil, se definesc funcţia, setul de funcţii, după care indiferent de natura graficului se parcurg următoarele etape: 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. Inseraţi cadrul graficelor 2D, fie prin meniul Insert Graph X-Y Plot sau Polar Plot, fie prin butoanele , respectiv , din bara de instrumente matematice Graph. 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ă Clic în afara spaţiului graficului sau apăsaţi tasta [Enter]. Este afişat graficul 2D având parametri impliciţi.

description

MathCad - cu aplicatii la metode numerice

Transcript of Lucrarea 03 - Grafice, Iteratii, Rezolvarea Ecuatiilor Si a Sistemelor de Ecuaiii

Page 1: Lucrarea 03 - Grafice, Iteratii, Rezolvarea Ecuatiilor Si a Sistemelor de Ecuaiii

METODE NUMERICELABORATOR

LUCRAREA 03 – GRAFICE, ITERAŢII,REZOLVAREA ECUAŢIILOR ŞI A SISTEMELOR DE

ECUAŢIIPag.1 / 18

3. GRAFICE, ITERAŢII, REZOLVAREA ECUAŢIILOR ŞI ASISTEMELOR DE ECUAŢII

I. SCOPUL LUCRĂRII

Lucrarea are drept scop prezentarea modului de operare cu grafice (reprezentareafuncţiilor 2D şi 3D), elemente de programare în MathCad (iteraţii) şi metode de rezolvare aecuaţiilor şi a sistemelor de ecuaţii în MathCad.

II. CONŢINUTUL LUCRĂRII1. Grafice2. Iteraţii3. Rezolvarea ecuaţiilor (algebrice şi transcendente)4. Rezolvarea sistemelor de ecuaţii5. Aplicaţii rezolvate

III. PREZENTAREA LUCRĂRII

III.1 Grafice

În Mathcad se pot reprezenta, în grafică 2D, funcţii sau expresii dependente de osingură variabilă reală şi date X-Y ca puncte în plan.

Curbele plane pot fi definite analitic, in următoarele forme: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ţiilef1, f2 admit derivate de ordinul întâi continue, care nu se anulează simultan.

Mathcad poate, de asemenea, reprezenta curbe plane şi expresii monovariabilă care nurespectă condiţiile enumerate anterior. Mai mult, intervalul de definire a variabilei poate avealimite infinite.

Reprezentări grafice 2D cu parametri impliciţi:În prealabil, se definesc funcţia, setul de funcţii, după care indiferent de natura graficului

se parcurg următoarele etape:

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

Plot, fie prin butoanele , respectiv , din bara de instrumente matematice Graph.Completaţi cele două placeholder-e corespunzătoare funcţiei sau expresiei (plasatmedian în dreapta), şi variabilei (plasat median în partea inferioară a graficului).Graficul 2D permite completarea ambelor placeholder-e cu numele unor funcţii, saudirect cu expresii evident de aceeaşi variabilă realăClic în afara spaţiului graficului sau apăsaţi tasta [Enter]. Este afişat graficul 2D avândparametri impliciţi.

Page 2: Lucrarea 03 - Grafice, Iteratii, Rezolvarea Ecuatiilor Si a Sistemelor de Ecuaiii

METODE NUMERICELABORATOR

LUCRAREA 03 – GRAFICE, ITERAŢII,REZOLVAREA ECUAŢIILOR ŞI A SISTEMELOR DE

ECUAŢIIPag.2 / 18

Fig. 3.1 Inserarea cadrului graficelor 2D Fig. 3.2 După completarea placeholder-elor graficul este automatafişat

Multigrafice 2DPe un acelaşi grafic 2D pot fi reprezentate maximum 16 curbe, folosind ca separator

virgula, atât între funcţii / expresii, cât şi între argumente, variabile. În fig. 3.3 s-au reprezentatdouă funcţii cu acelaşi argument. În acest caz, este suficient să se scrie doar o singură datănumele variabilei.

Fig. 3.3 Reprezentarea mai multor funcţii pe acelaşi grafic

Reprezentarea curbelor definite prin ecuaţii parametrice:Curbele parametrice pot fi reprezentate completând placeholder-ele abscisei şi

ordonatei cu funcţii, sau expresii dependente de aceeaşi variabilă reală (fig. 3.4) unde estereprezentată o curbă Lissajous.

Fig. 3.4 Reprezentarea curbelor definite prin ecuaţii parametrice

Page 3: Lucrarea 03 - Grafice, Iteratii, Rezolvarea Ecuatiilor Si a Sistemelor de Ecuaiii

METODE NUMERICELABORATOR

LUCRAREA 03 – GRAFICE, ITERAŢII,REZOLVAREA ECUAŢIILOR ŞI A SISTEMELOR DE

ECUAŢIIPag.3 / 18

Reprezentări grafice 3DGrafica 3D Mathcad permite reprezentarea suprafeţelor şi curbelor spaţiale, a datelor

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

În prima etapă, se defineşte funcţia, setul de funcţii, pe care doriţi să le reprezentaţi îngrafică 3D. Acestea sunt diferite, fiind dependente de natura ecuaţiei/lor care definescseturi de puncte, suprafeţe sau curbe spaţialeSelectaţi locul de inserare, prin clic într-o zonă liberă a foii de lucru.Inseraţi cadrul graficelor 3D, fie prin meniul Insert → Graph → Surface Plot sauContour Plot sau 3D Bar Plot, sau 3D Scatter Plot sau Vector Field Plot, fie prinbutoanele , , , , din paleta Graph (fig. 3.5)

Fig. 3.5 Inserarea unui grafic 3D Fig. 3.6 Reprezentarea 3D a funcţiei

În placeholder-ul din colţul S-V al cadrului graficului 3D, scrieţi numele funcţieiexplicite a suprafeţei sau numele funcţiilor parametrice despărţite prin virgule, întreparanteze rotunde. În cazul reprezentărilor 3D, Mathcad nu acceptă scrierea directă aexpresiei în placeholder.Clic în afara spaţiului graficului sau apasaţi tasta [Enter]. Este afişat graficul 3D cuparametri 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 cazuripasul reţelei de reprezentare este constant şi egal cu 0.5) (fig. 3.6).

Page 4: Lucrarea 03 - Grafice, Iteratii, Rezolvarea Ecuatiilor Si a Sistemelor de Ecuaiii

METODE NUMERICELABORATOR

LUCRAREA 03 – GRAFICE, ITERAŢII,REZOLVAREA ECUAŢIILOR ŞI A SISTEMELOR DE

ECUAŢIIPag.4 / 18

Reprezentarea graficelor 3D cu parametri impliciţi prin 3D PLOT WIZARD:

meniul Insert → Graph → 3D Plot Wizard. “Vrăjitorul” (“wizard”) este compus dintr-osuccesiune de ferestre de dialog, prin care se pot seta principalele caracteristici deformă (fig. 3.7, 3.8) şi culoare (fig. 3.9) ale unui grafic 3D.După setarea caracteristicilor graficului şi apăsarea pe butonul Finish, pe ecran aparacadranul graficului 3DÎn placeholder-ul din colţul S-V al cadrului graficului 3D, scrieţi numele funcţieiexplicite a suprafeţei sau numele funcţiilor parametrice despărţite prin virgule, întreparanteze rotundeClic în afara spaţiului graficului sau apasaţi tasta [Enter] şieEste afişat graficul 3D (fig.3.10).

Fig. 3.7 Setarea tipului graficului Fig. 3.8 Setarea modului de afişare

Fig. 3.9 Setarea culorilor graficului

Fig. 3.10 Reprezentarea 3D a funcţiei

Formatarea reprezentărilor grafice:Reprezentarea grafică 2D, 3D se face cu parametrii impliciţi ai MathCad-ului. Pentru

modificarea acestor parametrii se aplică formatări, care diferă funcţie de reprezentarea grafică2D sau 3D.

Pentru aceasta se apasă dublu-clic, fie într-o zonă neadiacentă axelor, fie înproximitatea axelor.

Se va exemplifica doar pentru cazul reprezentărilor grafice 3D, considerându-se graficuldin fig. 3.6.

Page 5: Lucrarea 03 - Grafice, Iteratii, Rezolvarea Ecuatiilor Si a Sistemelor de Ecuaiii

METODE NUMERICELABORATOR

LUCRAREA 03 – GRAFICE, ITERAŢII,REZOLVAREA ECUAŢIILOR ŞI A SISTEMELOR DE

ECUAŢIIPag.5 / 18

Fig. 3.11 Caseta de dialog pentru formatarea graficelor 3D

Prin setarea opţiunii Fill, graficul va arăta ca în fig. 3.11.Se menţionează ca orice setare, pentru a deveni activă şi vizibilă, se apasă butonul

Apply.Restul de opţiuni, atât pentru reprezentările 2D cât şi pentru 3D, se vor prezenta în

cadrul orei de laborator.

III.2 Iteraţii

MathCad oferă posibilităţi de programare, deşi nu se poate vorbi despre un limbaj [deprogramare] propriu zis, ci mai degrabă despre o serie de operatori [de programare], ce nu pot fifolosiţi decât în „corpul” unor structuri de programare ce fac parte din foile de lucru Mathcad.

Programele scrise în Mathcad sunt de tipul funcţiilor utilizate în limbajele de programareavansate (de tip Pascal, C, Fortran etc). Programarea în Mathcad se bazează pe zeceinstrucţiuni, care aparent au o funcţionalitate relativ limitată.

Instrucţiunile de programare pot fi apelate prin intermediul paletei Programming sauprin meniul View → Toolbars → Programming.

Liniile programului: operatorul de adăugare a unei linii la corpul programului Mathcad este

sau tasta [ ] ] ; pe fiecare linie se scrie doar o instrucţiune; ştergerea unei linii selectate, se efectuează cu tasta [Bksp]; asupra liniilor unui program se pot efectua operaţii de ştergere (“delete”), tăiere

(”cut”) copiere (”copy”), lipiere (”paste”);Atribuirea:

operatorul de asignare (atribuire) se poate utiliza doar in corpul unui programMathcad. Acesta se insereaza din paleta Programming, sau cu tasta [ { ];

operatorul de definire :=, nu poate fi utilizat în corpul unui program Mathcad.

Instrucţiuni de ciclare:

Instrucţiunea ForInstrucţiunea For este o instrucţiune de ciclare cu număr cunoscut de paşi. Pentru a o

aplica se foloseşte un contor, care primeşte o valoare iniţială definită, este incrementat cu unanumit pas (implicit 1), iar când acesta ajunge la valoarea finală, de asemenea precizată,

Page 6: Lucrarea 03 - Grafice, Iteratii, Rezolvarea Ecuatiilor Si a Sistemelor de Ecuaiii

METODE NUMERICELABORATOR

LUCRAREA 03 – GRAFICE, ITERAŢII,REZOLVAREA ECUAŢIILOR ŞI A SISTEMELOR DE

ECUAŢIIPag.6 / 18

ciclarea se termină. În acest timp se pot executa orice alte instrucţiuni, chiar şi alte bucle de tipFor.

Sintaxa instrucţiunii este următoarea:

for indice val. iniţială, a doua valoare .. valoare finalăinstrucţiuni de executat

Exemplu de utilizare:

Fig. 3.12 Exemplu de utilizare a instrucţiuniide ciclare For

Instrucţiunea WhileInstrucţiunea While este utilizată la ciclarea unui set de instrucţiuni atât timp cât este

îndeplinită o anumită condiţie. În acest caz, este necesar ca după un anumit număr de paşi săse asigure ieşire din buclă, pentru a nu fi infinită. Deci, această instrucţiune se utilizează atuncicând nu se cunoaşte numărul de paşi ca în cazul For, explicat mai sus.

Sintaxa instrucţiunii este următoarea:

while condiţieinstrucţiuni de executat

Exemplu de utilizare: acelaşi program de mai sus utilizând While

Fig. 3.13 Exemplu de utilizare a instrucţiuniide ciclare While

Instrucţiuni de decizie:De multe ori în cadrul unui program sau a unei bucle de ciclare este nevoie a se lua o

decizie. Pentru aceasta există instrucţiunea If.

Instrucţiunea IfInstrucţiunea If se utilizează dacă la un moment dat exista mai multe căi de rezolvare a

unei probleme: daca o condiţie este adevărată atunci (then) se execută un set de instrucţiuni, încaz contrar (otherwise) se execută un alt set de instrucţiuni. Se face observaţia că setul doi arputea lipsi şi că se pot folosi instrucţiuni If multiple.

Sintaxa instrucţiunii este următoarea:

Page 7: Lucrarea 03 - Grafice, Iteratii, Rezolvarea Ecuatiilor Si a Sistemelor de Ecuaiii

METODE NUMERICELABORATOR

LUCRAREA 03 – GRAFICE, ITERAŢII,REZOLVAREA ECUAŢIILOR ŞI A SISTEMELOR DE

ECUAŢIIPag.7 / 18

Valoare1 if condiţieValoare2 otherwise

Exemplu de utilizare:

Fig. 3.14 Exemplu de utilizare a instrucţiuniide ciclare If .. otherwise

Instrucţiuni pentru controlul execuţiei programului:Mathcad pune la dispoziţia utilizatorului trei instrucţiuni cu rol de întrerupere a rulării

programului, enumerate mai jos, în ordinea descrescătoare a efectului: RETURN întrerupe programul; BREAK întrerupe un ciclu; CONTINUE întrerupe o iteraţie.

Instrucţiunile RETURN, BREAK, CONTINUE se inserează din paleta Programming saucu combinaţiile de taste: [Ctrl]+ [I], respectiv [Ctrl]+ [{], respectiv [Ctrl]+ [[]. Ca şi în cazulcelorlalte instrucţiuni de programare este interzisă inserarea prin tastatură literă cu literă.

Instrucţiunea RETURN permite întreruperea rulării programului şi returnarea unei valoricalculate, oriunde în corpul programului.

Return expresia sau şirul de caractere care se returnează

Deseori, instrucţiunea RETURN se utilizează în combinaţie cu instrucţiunea IF:

Return expresie returnată if condiţia (expresia booleană)

Instrucţiunea BREAK se utilizează în corpul instrucţiunilor ciclice FOR, sau WHILEpentru întreruperea ciclului şi executarea instrucţiunii imediat următoare după ciclu.

Instrucţiunea BREAK se utilizează în combinaţie cu instrucţiunea IF:

Break if condiţia (expresia booleană)

Instrucţiunea CONTINUE se utilizează în corpul instrucţiunilor ciclice, pentruîntreruperea unei iteraţii a ciclului şi executarea instrucţiunii imediat următoare din ciclu.

La fel ca instrucţiunile anterioare, CONTINUE se utilizează în combinaţie cuinstrucţiunea IF:

Continue if condiţia (expresia booleană)

De asemenea, MathCad permite şi utilizarea subprogramelor şi recursivitatea.

III.3 Rezolvarea ecuaţiilor (algebrice şi transcendente)

MathCad poate rezolva atât ecuaţiile algebrice, cât şi ecuaţiile transcendente.

Page 8: Lucrarea 03 - Grafice, Iteratii, Rezolvarea Ecuatiilor Si a Sistemelor de Ecuaiii

METODE NUMERICELABORATOR

LUCRAREA 03 – GRAFICE, ITERAŢII,REZOLVAREA ECUAŢIILOR ŞI A SISTEMELOR DE

ECUAŢIIPag.8 / 18

Rezolvarea ecuaţiilor algebrice:O ecuaţie de forma: f(x) = 0 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:

11 1 0... 0n n

n na x a x a x a

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 ecuaţie algebrică de gradul n cu o necunoscută are întotdeauna n rădăcini.Notând cu xj , j1..n , cele n rădăcini ale ecuaţiei, se poate obţine o nouă formă

reprezentare a ecuaţiei de gradul n, ca un produs de factori liniari:

1 2 1... 0n nx x x x x x x x

Această ultimă formă de reprezentare a ecuaţiilor algebrice poartă denumirea de formăfactorizată.

Pentru rezolvarea ecuaţiilor algebrice, MathCad are definită funcţie polyroots.Sintaxa funcţiei este polyroots(v), în care v este vectorul coeficienţilor necunoscutei x cu

n+1 linii şi 1 coloană, în ordinea crescătoare a puterilor necunoscutei, scrişi sub forma:0

1

...a

n

n

a

a

v

a

a

Valoarea returnată este un vector de n linii (câte necunoscute are ecuaţia) ce conţinevalorile aproximative ale ecuaţiei.

Exemplu de utilizare a funcţiei pentru rezolvarea ec. 5 4 24 1 0x x x :

Fig. 3.15 Rezolvarea ecuaţiilor algebrice folosind funcţia polyroots

Page 9: Lucrarea 03 - Grafice, Iteratii, Rezolvarea Ecuatiilor Si a Sistemelor de Ecuaiii

METODE NUMERICELABORATOR

LUCRAREA 03 – GRAFICE, ITERAŢII,REZOLVAREA ECUAŢIILOR ŞI A SISTEMELOR DE

ECUAŢIIPag.9 / 18

Funcţia polyroots utilizează două metode diferite pentru rezolvarea ecuaţiilor algebrice:metoda La Guerre şi metoda companionului matriceal. Implicit funcţia foloseşte metoda LaGuerre. Pentru a schimba şi a folosi metoda companionului matriceal se operează clic dreaptape numele funcţiei şi se alege opţiunea Companion Matrix (fig. 3.16).

Fig. 3.16 Schimbarea metodei de calcul a soluţiilor Fig. 3.17 Comparaţie între soluţii folosind ambele metode

La o comparaţie (fig. 3.17) se observa că ambele metode dau aceleaşi soluţii. Înrealitate acestea pot diferi, dar diferenţele sunt nesemnificative.

Rezolvarea ecuaţiilor transcendente:Din această categorie de ecuaţii fac parte: ecuaţii exponenţiale, ecuaţii logaritmice,

ecuaţii trigonometrice etc.În Mathcad acest tip de ecuaţii se rezolvă prin intermediul funcţiei root. Datorită

algoritmilor, pe care îi utilizează, root reprezintă o funcţie cu un grad mare de generalitate, cepoate fi folosită la rezolvarea ecuaţiilor cu o necunoscută, indiferent de tipul lor.

Sintaxa funcţiei:root (f(x),x)root (f(x),x,a,b), în care: x – reprezintă variabila ecuaţiei. Acestei variabile, anterior apelării funcţiei root, i se

va atribui o valoare iniţială pe baza căreia se calculează numeric soluţia ecuaţiei; f(x) – funcţia căreia se vrea calculată soluţie prin egalitatea f(x)=0 a,b - reprezintă limita inferioară, respectiv cea superioară, a < b , a intervalului în

care se caută soluţia ecuaţiei;Funcţia returnează soluţia numerică aproximativa care respectă condiţia ( )f sol Tol .

(Meniul Tools → Worksheet Options → Built-In Variables).

Funcţia root, varianta cu două argumente (fig. 3.18), poate fi utilizată respectândurmătorii paşi:

Clic într-o zonă liberă a foii de lucru.Se defineşte expresia funcţiei f ( x ), a cărei soluţie urmează a fi calculată.Se precizează valoarea iniţială a variabilei x. Această valoare iniţială reprezintă oprimă aproximaţie a soluţiei ecuaţiei. Succesul rezolvării depinde de alegereaadecvată a soluţiei iniţiale. De aceea se recomandă ca valoarea de start să fie câtmai apropiată de soluţie. Pentru ecuaţiile transcendente nu se cunoaşte a priorinumărul de soluţii. Prin reprezentarea grafica a funcţiei, f ( x ), se pot obţine informaţii

Page 10: Lucrarea 03 - Grafice, Iteratii, Rezolvarea Ecuatiilor Si a Sistemelor de Ecuaiii

METODE NUMERICELABORATOR

LUCRAREA 03 – GRAFICE, ITERAŢII,REZOLVAREA ECUAŢIILOR ŞI A SISTEMELOR DE

ECUAŢIIPag.10 / 18

despre numărul şi poziţionarea acestora. De asemenea, odată reprezentată graficfuncţia, prin utilizarea facilităţilor de afişare a coordonatelor cursorului în graficele 2D,se poate determina cu suficientă precizie valoarea iniţială a soluţiei ecuaţiei.Se apelează funcţia root.

Fig. 3.18 Rezolvarea ecuaţiilor folosind funcţia root cu două argumente

Dacă se caută o rădăcină complexă a ecuaţiei, valoarea iniţială trebuie să fie un numărcomplex.

Funcţia root, varianta cu patru argumente (fig. 3.18) nu necesită precizarea unei valoriiniţiale pentru calculul soluţiei unei ecuaţii. Intervalul [a,b] ce conţine soluţia ecuaţiei trebuie, înschimb, specificat sub forma unor valori ale celor două argumente suplimentare. În acest caztrebuie 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 .

Dacă o ecuaţie are mai multe rădăcini, pentru a le determina, este necesar să utilizămfuncţia root cu diferite valori iniţiale. În aceste condiţii valorile iniţiale, pentru calculul tuturorsoluţiilor, se pot determina prin reprezentarea grafică a funcţiei.

Funcţia root, împreună cu valori mici, atribuite variabilei TOL, poate fi utilizată pentrurafinarea soluţiilor ecuaţiilor algebrice.

Metodele numerice, de calcul a rădăcinii unei ecuaţii, utilizate de funcţia root – variantacu 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

Page 11: Lucrarea 03 - Grafice, Iteratii, Rezolvarea Ecuatiilor Si a Sistemelor de Ecuaiii

METODE NUMERICELABORATOR

LUCRAREA 03 – GRAFICE, ITERAŢII,REZOLVAREA ECUAŢIILOR ŞI A SISTEMELOR DE

ECUAŢIIPag.11 / 18

impusă, atunci se trece automat la utilizarea celei de a doua metode. Dacă nici în acest caz nueste posibilă obţinerea soluţiei cu nivelul de precizie cerut, Mathcad-ul afişează un mesaj deeroare.

III.4. Rezolvarea sistemelor de ecuaţii

Sisteme de ecuaţii liniare:Un sistem liniar de n ecuaţii şi n necunoscute are următoarea formă:

11 1 12 2 1 1

21 1 22 2 2 2

1 1 2 2

1 1 2 2

n n

n n

k k kn n k

n n nn n n

a x a x a x b

a x a x a x b

a x a x a x b

a x a x a x b

Acest sistem se mai poate scrie mai simplu astfel: A x b , unde A este matriceacoeficienţilor, x vectorul necunoscutelor şi b vectorul termenilor liberi sau:

11 12 1 1 1

21 22 2 2 2

` 2

1 2

n

n

k k kn k k

n n nn n n

a a a x b

a a a x b

a a a x b

a a a x b

În MathCad se pot rezolva sisteme de ecuaţii liniare

folosind fie facilităţile oferite pentru lucrul cu matrice, fie utilizând funcţia specială lsolve.Sintaxa funcţiei:

lsolve(A,b), cu A şi b având semnificaţiile de mai sus.

Funcţia returnează un vector cu n linii şi 1 coloană, reprezentând vectorul soluţiilorsistemului.

Funcţia lsolve rezolvă sistemul prin inversarea matricei A, adică x = A−1 ⋅b, ceea ceimpune prudenţă în cazul sistemelor (matricelor) de mari dimensiuni - ceea ce pentru Mathcadpoate însemna ce depăşeşte 50 de necunoscute. Dar pentru varianta MathCad Profesional, nr.ecuaţiilor poate ajunge până la 500.

Exemple: Să se rezolve sistemul de ecuaţii liniare:

1 2 3

1 2 3

1 2 3

3 10 15

6

10 4 5 50

x x x

x x x

x x x

Page 12: Lucrarea 03 - Grafice, Iteratii, Rezolvarea Ecuatiilor Si a Sistemelor de Ecuaiii

METODE NUMERICELABORATOR

LUCRAREA 03 – GRAFICE, ITERAŢII,REZOLVAREA ECUAŢIILOR ŞI A SISTEMELOR DE

ECUAŢIIPag.12 / 18

Fig. 3.19 Rezolvarea sistemelor de ecuaţii liniare

Sisteme de ecuaţii neliniare:Forma generală a unui sistem de ecuaţii liniare este:

1 1 2

2 1 2

1 2

1 2

( , , , ) 0

( , , , ) 0

( , , , ) 0

( , , , ) 0

n

n

k n

m n

f x x x

f x x x

f x x x

f x x x

În Mathcad, rezolvarea numerică a unei astfel de probleme, se realizează pornind de lao aproximaţie iniţială (asemănător funcţiei root), a soluţiei, prin intermediul a două funcţii:

find(x1,x2, ... , xn)minerr(x1,x2, ... , xn)

Argumentele funcţiilor reprezintă variabilele sistemului de ecuaţii. Acestor variabile,anterior apelării funcţiei Find/Minerr, li se vor atribui valori iniţiale pe baza cărora se calculeazăsoluţia sistemului de ecuaţii.

Valoarea returnată: un vector, sol, cu n linii × 1 coloană, ce conţine valorile soluţiilornumerice aproximative. Soluţiile calculate respectă condiţiile:

Page 13: Lucrarea 03 - Grafice, Iteratii, Rezolvarea Ecuatiilor Si a Sistemelor de Ecuaiii

METODE NUMERICELABORATOR

LUCRAREA 03 – GRAFICE, ITERAŢII,REZOLVAREA ECUAŢIILOR ŞI A SISTEMELOR DE

ECUAŢIIPag.13 / 18

1 1 2

2 1 2

1 2

1 2

( , , , )

( , , , )

( , , , )

( , , , )

n

n

k n

m n

f sol sol sol TOL

f sol sol sol TOL

f sol sol sol TOL

f sol sol sol TOL

Clic într-o zonă liberă a foii de lucru.Se precizează valorile iniţiale ale variabilelor xi. Aceste valori iniţiale reprezintă oprimă aproximaţie a soluţiilor sistemului de ecuaţii.Într-o zonă matematică a foii de calcul, se tastează cuvântul Given. Acestainformează 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/Minerrpot fi scrise cu litere mici, cu majuscule sau combinate.Se precizează cele m condiţii sub formă de ecuaţii. Scrierea acestor ecuaţii serealizează prin utilizarea operatorului relaţional de identitate, nu simbolul egal. Acestase obţine prin acţionarea butonului , din paleta Boolean sau prin tastarea [Ctrl]+[=].Se apelează funcţia Find, sau Minerr.

Exemple:

Fig. 3.20 Rezolvarea sistemelor de ecuaţii neliniare cufuncţia find

Fig. 3.21 Rezolvarea sistemelor de ecuaţii neliniare cufuncţia minerr

Dacă un sistem de ecuaţii are mai multe rădăcini, pentru a le determina, este necesarsă utilizăm funcţia Find / Minerr cu diferite valori iniţiale.

Precizia de calcul, a soluţiei unui sistem de ecuaţii, poate fi controlată prin utilizareavariabilei predefinite TOL (Meniul Tools → Worksheet Options → Built-In Variables).

Dacă funcţia Find nu întoarce o soluţie (ceea ce se poate întâmpla fie pentru că ea nuexistă, fie pentru că este prea „departe” de estimarea iniţială), se poate recurge la funcţia Minerr.Aceasta va întoarce întotdeauna un răspuns care trebuie privit ca o soluţie aproximativă (cepoate fi eventual folosită ca o nouă estimare pentru soluţie în cazul reutilizării funcţiei Find).

Dată fiind complexitatea deosebită a problemelor de rezolvare a sistemelor de ecuaţii şiinecuaţ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;

Page 14: Lucrarea 03 - Grafice, Iteratii, Rezolvarea Ecuatiilor Si a Sistemelor de Ecuaiii

METODE NUMERICELABORATOR

LUCRAREA 03 – GRAFICE, ITERAŢII,REZOLVAREA ECUAŢIILOR ŞI A SISTEMELOR DE

ECUAŢIIPag.14 / 18

algoritm pentru rezolvarea sistemelor cvadratice. Acest algoritm estedisponibil doar în situaţia în care Mathcad-ul conţine Expert Solver-ul, caurmare a instalării pachetului opţional Solving and Optimisation ExtensionPack;algoritmi pentru rezolvarea sistemelor neliniare, prin:

metoda gradientului conjugat; metoda Levenberg-Marquardt; 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 afaptului că opţiunea AutoSelect este selectată implicit, din meniul contextual ce apare ca urmarea unui clic pe butonul din dreapta al mouse-ului (fig. 3.22).

Fig. 3.22 Metode de rezolvare a sistemelor de ecuaţii Fig. 3.23 Alegerea unei metode dorite de rezolvare asistemelor de ecuaţii neliniare

În cazul sistemelor de ecuaţii şi inecuaţii neliniare, algoritmii de rezolvare intră înfuncţiune în ordinea prezentării lor din meniu. Prima dată, este utilizată metoda gradientuluiconjugat. Dacă această metodă iterativă nu este convergentă sau nu se pot determinară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ţinereasoluţiei cu nivelul de precizie cerut, Mathcad-ul afişează un mesaj de eroare, „No solution wasfound. Try changing the guess value or the value of TOL or CTOL”.

Alegerea uneia sau alta dintre metode se poate face şi manual. Se deselcteazăopţiunea AutoSelect şi se alege metoda dorită.

III.5. Aplicaţii rezolvate

1. Să se scrie un program care găseşte primele N numere naturale prime.Indicaţii:Un număr natural este prim daca are ca divizori doar pe 1 şi pe el însuşi.Evident numerele prime nu se vor căuta printre numerele pare.2 este singurul număr par care este prim.3 este al doilea număr prim. Deci căutarea se va face plecând de la 5.Un număr j este divizor al unui număr n dacă rezultatul real al împărţirii lui n la j este egal cupartea întreagă a împărţirii lui n la j.Nu se vor căuta divizori ai unui număr decât până la jumătatea acestuia.Ţinând cont de aceste indicaţii, programul MathCad este următorul:

Page 15: Lucrarea 03 - Grafice, Iteratii, Rezolvarea Ecuatiilor Si a Sistemelor de Ecuaiii

METODE NUMERICELABORATOR

LUCRAREA 03 – GRAFICE, ITERAŢII,REZOLVAREA ECUAŢIILOR ŞI A SISTEMELOR DE

ECUAŢIIPag.15 / 18

Fig. 3.24 Program pentru găsirea primelor N numere naturale prime

2. Să se scrie un program pentru ordonarea crescătoare a elementelor unui vector v.Indicaţii: Pentru ordonarea elementelor vectorului, este prezentat algoritmul de sortare BubbleSort, care compară fiecare element al vectorului cu cel vecin, iar dacă este cazul, le schimbăîntre ele. Un exemplu de program este următorul :

Fig. 3.25 Program pentru ordonarea elementelor unui vector

3. Să se rezolve ecuaţia algebrică: 6 5 25 10 25 0x x x x Indicaţii:Pentru uşurarea rezolvării ecuaţiilor algebrice, se poate folosi operatorul de calcul simboliccoeffs, pentru a determina automat vectorul coeficienţilor. Pentru aceasta se parcurgurmătoarele etape:

Page 16: Lucrarea 03 - Grafice, Iteratii, Rezolvarea Ecuatiilor Si a Sistemelor de Ecuaiii

METODE NUMERICELABORATOR

LUCRAREA 03 – GRAFICE, ITERAŢII,REZOLVAREA ECUAŢIILOR ŞI A SISTEMELOR DE

ECUAŢIIPag.16 / 18

Clic într-o zonă liberăSe scrie expresia ecuaţiei algebrice până la semnul =, exclusivSe introduce operatorul coeffs din bara de instrumente pentru calcule simboliceSymbolic şi se tastează în placeholder simbolul variabilei ecuaţiei algebrice.Se execută un clic pe foaia de lucru sau se apasă tasta [Enter].Prin operaţii de copiere şi lipire, vectorul astfel obţinut poate fi utilizat ca argument alfuncţiei polyroots.

Fig. 3.26 Rezolvarea ecuaţiilor algebrice, operatorul “coeffs”

4. Să se rezolve ecuaţia: 2ln( 1) 2 sin( ) 3.8x x .Indicaţii:Se reprezintă grafic funcţia definită de 2( ) ln( 1) 2 sin( ) 3.8f x x x . Din fig. 3.27 se observăcă ecuaţia are mai multe soluţii. În acest caz se apelează funcţia root pentru fiecare valoareiniţială, ce aproximează soluţia ecuaţiei. Se utilizează oportunităţile de lucrul cu graficele:opţiunea Trace.

Fig. 3.27 Rezolvarea ecuaţiei pentru aplicaţia 4

Page 17: Lucrarea 03 - Grafice, Iteratii, Rezolvarea Ecuatiilor Si a Sistemelor de Ecuaiii

METODE NUMERICELABORATOR

LUCRAREA 03 – GRAFICE, ITERAŢII,REZOLVAREA ECUAŢIILOR ŞI A SISTEMELOR DE

ECUAŢIIPag.17 / 18

5. Să se rezolve ecuaţia: 1 (1 ) 0a ax x , pentru diferite valori ale lui a.

Fig. 3.28 Rezolvarea unei familii de ecuaţiei ce depinde de un parametru

6. Să se rezolve ecuaţia: 22x x .Ca şi în exemplele de mai sus se recomandă trasarea graficului funcţiei 2( ) 2xf x x . S-arobserva că ecuaţia prezintă 3 soluţii in intervalul [-1,5]. Pentru lizibilitatea graficului serecomandă trasarea acestuia în acest interval. Rezultă foaia de lucru din fig. 3.29.

Fig. 3.29 rezolvarea ecuaţiei: 22x x .

Page 18: Lucrarea 03 - Grafice, Iteratii, Rezolvarea Ecuatiilor Si a Sistemelor de Ecuaiii

METODE NUMERICELABORATOR

LUCRAREA 03 – GRAFICE, ITERAŢII,REZOLVAREA ECUAŢIILOR ŞI A SISTEMELOR DE

ECUAŢIIPag.18 / 18

7. Să se rezolve sistemul de ecuaţii:

2

2

2

10 2 0,1 0

10 2 0,2 0

10 2 0,3 0

x x y z

y y x z

z z x y

Se utilizează funcţia find sau minerr cu aproximările iniţiale: x=0, y=0, z=0. Rezultă foaia delucru MathCad din figura 3.30.

Fig. 3.30 Rezolvarea sistemului de ecuaţii de la problema 7