Sunteți pe pagina 1din 60

METODE NUMERICE

Îndrumar de Laborator
- destinat studenților Anului I -

2012
Metode Numerice – Laborator 1 1

LABORATOR Nr.1: Utilizarea programului EXCEL pentru crearea unui


document de calcul simplu: calculul variaţiilor unor funcţii şi crearea unei
diagrame centralizatoare
1.1. Intrarea în program:
Din butonul Start, se selectează articolul de lansare a programului Excel, conform configurării specifice a
calculatorului pe care se lucrează.
Ca urmare, apare fereastra EXCEL din fig.1.1.

Fig.1.1.

1.2. Operaţii elementare frecvente:


1.2.1. Operaţii de selectare:
- Selectare de foaie de lucru unică: clic simplu cu butonul stânga mouse pe eticheta de foaie;
- Selectarea unui sir de foi consecutive (de exemplu, foile din şirul Sheet3,4,5,6):
= se face clic pe eticheta primei foi din şir (Sheet3);
= se apasă tasta SHIFT şi se menţine apăsată;
= se face clic pe eticheta ultimei foi din şir (Sheet6);
= se eliberează tasta SHIFT.
- Selectarea unui şir de foi neconsecutive (de exemplu şirul Sheet3,5,7,9):
= se face clic pe eticheta primei foi din sir (Sheet3);
= se apasă tasta CTRL şi se menţine apăsată;
= se face clic pe eticheta următoarei foi din sir (Sheet5), apoi Sheet7, etc;
= se eliberează tasta CTRL.
- Selectarea unui domeniu de celule: regulile sunt asemănatoare cu cele pentru selectarea foilor;
- Selectarea unui domeniu rectangular de celule: se face clic pe un colţ al domeniului, se menţine apăsat
butonul stânga mouse, se trage în diagonală pâna la colţul opus şi se eliberează butonul.
- Selectarea unui întreg rând sau coloană de celule: se face clic pe antetul de rând sau de coloană;
- Selectarea unui şir de rânduri sau coloane: asemanator ca la etichetele de foi, dar pe antete.

1.2.2. Operaţia de mutare a unei entităţi (foaie, celulă, rând, coloană):


- Se selectează entitatea;
- Se poziţioneaza cursorul pe chenarul selecţiei până la apariţia formei de săgeată;
- Se trage în noua poziţie.
Sau:
- Se selectează entitatea de mutat;
- Cu cursorul poziţionat pe entitatea selectată, se selectează articolul Cut din meniul contextual,
- sau din meniul Edit, se selectează articolul Cut. Efectul obţinut este de a şterge entitatea din fişier
2

transferând-o în memoria tampon (Clipboard);


- Se selectează entitatea în faţa căreia se va face inplantarea entităţii transferate în memoria tampon;
- Cu ajutorul articolului Paste din meniul Edit sau din meniul contextual se face implantarea.

1.2.3. Operaţia de copiere a unei entităţi.


Se face analog cu mutarea, dar cu tasta CTRL apăsată în timpul operaţiei de tragere, sau folosind articolul
Copy în locul articolului Cut.

1.2.4. Operaţia de inserare a unei entităţi:


- Se face selectarea entităţii în faţa căreia se va introduce noua entitate (de acelaşi tip);
- Din meniul Insert se selectează articolul Cells, Rows, sau Columns.

1.2.5. Operaţia de ştergere a unei entităţi:


- se selectează entitatea de şters;
- se apasă tasta Delete, sau se selectează articolul articolul Delete din meniul Edit sau din meniul contextual.

1.2.6. Intrarea în regimul de editare intracelulară:


- Se selectează celula vizată prin simplu sau dublu clic şi se începe editarea.
- editarea poate fi facută direct în celulă sau pe bara pentru formule.

1.3. Aranjarea convenabilă a documentului.


Deoarece în această aplicaţie este necesară o singură foaie tabelară, vom păstra numai foaia de lucru Sheet1.
Celelalte foi, Sheet2, Sheet3 (şi eventual altele) vor fi şterse. Pentru aceasta se face selectarea şirului de foi
consecutive Sheet2,..., etc (vezi punctul 1.2.1), după care se operează ştergerea şirului (vezi punctul 1.2.5).

1.4. Crearea tabelului.


Tabelul conţine valorile de calcul pentru funcţiile f ( x) = 1 − e − x şi g( x) = 1 − cos( x ) ⋅ e − x
- Se selectează domeniul dreptunghiular de celule de la C3 la E14 (vezi punctul 1.2.1);
- Se aplică formatele de chenar necesare pentru a desena tabelul din figura 1.2, cu ajutorul butonului sculă
Borders de pe bara de scule Formatting;
- Se completează capul de tabel;
- Se completează celulele de tabel de la C4 la C14 cu valorile de la 0 la 10 ale coordonatei x;
- Celulele de la D4 la D14 conţin formulele de calcul pentru f(x). De exemplu, celula D4 va conţine formula
=1-EXP(-C4). Funcţia EXP se obţine prin apăsarea butonului fx de pe bara cu scule Standard sau de pe bara de
editare, cu care se deschide cutia de dialog Function Wizard. De aici, din categoria Math&Trig se selectează
funcţia EXP. Argumentele funcţiilor se introduc prin punctare pe celulele argumente. Formulele celorlalte celule
se completează asemănător.
- Celulele de la E4 la E14 conţin formulele de calcul pentru g(x). De exemplu, celula D4 va conţine formula
=1-COS(X)*EXP(-C4). Completarea se face la fel ca mai înainte.

Fig.1.2.
Metode Numerice – Laborator 1 3

Fig.1.3. Fig.1.4.

1.5. Crearea diagramei centralizatoare.


O diagramă este reprezentarea grafică a unor dependenţe reciproce ale unor mărimi. În acest caz, ne
propunem să reprezentăm grafic dependenţa mărimilor x, f(x), şi g(x).
Etapele de lucru sunt următoarele:
- Pe rând, se selectează: domeniul de valori al abscisei x (inclusiv capul de tabel) adică domeniul
$C$3:$C$14, apoi domeniul de valori al funcţiei f adică domeniul $D$3:$D$14 şi apoi domeniul de valori al
funcţiei g adică domeniul $D$3:$D$14. La selectare se foloseşte tehnica de "tragere" separat pentru fiecare şir
vertical de celule. Înainte de a se trece la al doilea şir de celule se apasă tasta CTRL şi se ţine apăsată cât timp
durează selecţia (la fel şi pentru al treilea şir de celule pentru valorile funcţiei g).
- Din meniul Insert > Chart > As New Sheet, se declanşează procedura de creare a unei diagrame într-o
foaie distinctă (nouă), care va conţine numai diagrama. Această procedură foloseşte setul de cutii de dialog
Chart Wizard Step n of 4, unde n=1...4;
- Este foarte probabil că EXCEL îşi va alege
singur tipul de diagramă Column. În cazul nostru
este necesară alegerea tipulu Scatter şi deci se va
face un clic pe acest tip, pentru a-l selecta (fig.3.).
Ca subtip de diagramă se va alege tipul cu curbă
continuă. După aceasta se apasă butonul Next. Ca
urmare se deschide cutia de dialog Chart Wizard
Step 2 of 4 (figura 4);
- De aici se selectează opţiunea Series in
Columns. După ce se apasă butonul Next se
deschide cutia Chart Wizard Step 3 of 4 (figura
1.5). Aici se scriu şirurile de text care vor apare ca
inscripţii pentru titlul diagramei (Diagrame
functii), denumirea abscisei x şi denumirile
Fig.1.5. funcţiilor f,g.
- După ce se apasă din nou butonul Next este afişată cutia de dialog Chart Wizard Step 4 of 4 unde se
selectează opţiunea As new sheet pentru a se realiza o diagramă în foaie separată.
Dacă ne aflăm la prima încercare reuşită de construcţie a diagramei, foaia cu diagrama capătă automat
numele Chart1 şi va avea aspectul din figura 1.6.

1.6. Crearea de macrocomenzi prin înregistrare.


EXCEL dispune de o tehnică de mare ajutor, atât pentru utilizatori cât şi pentru programatori, care constă din
scrierea automată de programe în limbaj Visual BASIC prin simpla înregistrare a acţiunilor utilizatorului, fără ca
acesta să aibă nevoie să cunoască limbajul.
Un macro, sau macrocomanda, este o succesiune de acţiuni care pot fi executate printr-o singura activare.
EXCEL are posibilitatea de inregistra acţiunile efectuate de utilizator între o pornire şi o oprire a inregistrarii.
Trebuie să fiti atenti pentru ca EXCEL inregistreaza absolut tot, inclusiv greselile.
Vom înregistra următoarele acţiuni:
4

Fig.1.6.
1.6.1. Comutarea din foaia de lucru Sheet1, unde se găseşte tabelul, în foaia Chart1 unde se găseşte
diagrama.
Etapele de lucru sunt următoarele:
- Se selectează meniul Tools > Macro
> Record New Macro. Ca urmare, se
deschide cutia de dialog Record Macro,
figura 1.7. În câmpul Macro Name, în
loc de numele de macrocomandă atribuit
automat Macro1, se scrie numele
PrezDiag şi se apasă butonul OK.
Fig.1.7. Fig.1.8. - Ca urmare, apare bara cu scule Stop
Recording, conţinând butonul de oprire a înregistrării (cel cu pictograma de forma unui pătrat negru).
Înregistrarea poate fi oprită şi cu meniul Tools > Macro > Stop Recording. Toate acţiunile efectuate de
utilizator până la oprirea înregistrării vor fi transpuse în limbaj Visual BASIC într-o foaie specială (foaie de
module de program) care, dacă ne aflăm la prima înregistrare va purta numele de Module1. Este nevoie de
multă atenţie pentru a înregistra strict ceea ce este necesar şi pentru a nu uita să fie oprită înregistrarea;
- Din foaia de lucru Sheet1 se apasă eticheta de foaie Chart1;
- Se opreşte înregistrarea. Ca urmare, în foaia Module1 va apare scris următorul modul de program:
Sub PrezDiag()
Sheets("Chart1").Select
End Sub
Se observă că modulul scris este de tip subrutină şi conţine numai instrucţiunea de selectare a foii Chart1.

1.6.2. Comutarea din foaia de diagramă Chart1 în foaia de lucru Sheet1.


Procedeul de lucru este asemănător. Trebuie să ne găsim în foaia Chart1, să pornim înregistratorul de
macrocomenzi, să selectăm eticheta Sheet1 şi să oprim înregistratorul. Vom atribui macrocomenzii numele
PrezFoaie. Modulul de program scris va fi următorul:
Sub PrezFoaie()
Sheets("Sheet1").Select
End Sub
Macrocomenzile înregistrate pot fi activate cu meniul Tools > Macro, sau pot fi asociate ulterior cu un
obiect de interacţiune grafică.

1.7. Crearea de obiecte de interacţiune grafică.


1.7.1. Crearea unui buton de comutare din foaia de lucru în foaia cu diagrama.
Dacă priviţi din nou figura 1.2 veţi observa un buton mare cu inscripţia “Diagrama”.
Metode Numerice – Laborator 1 5

Pentru a crea un buton se procedează astfel:


- Se selectează meniul View>Toolbars>Forms. Ca urmare se deschide bara cu instrumente Forms
(fig.1.11.);
- Se desenează butonul prin tehnica "drag and drop";
- Imediat ce desenarea s-a terminat se deschide cutia de dialog Assign Macro (fig. 1.9.)
- Se selectează macrocomanda PrezDiag şi se
apasă butonul OK;
- Butonul rămâne selectat (marcat cu mânere),
sau poate fi selectat pentru modificare, folosind
butonul dreapta al mouse-ului. Se intră prin clic cu
butonul stânga şi se schimbă numele atribuit
automat (Button1) cu numele Diagrama.

1.7.2. Crearea unui buton de comutare din


foaia cu diagrama în foaia de lucru.
Procedura de lucru este identică: se selectează
foaia Chart1, se generează butonul Revenire (vezi
figura 1.6), şi se asociază acest buton cu
macrocomanda PrezFoaie.
Folosind butoanele Diagrama şi Revenire, un
utilizator care nu cunoaşte modul de lucru în
Fig.1.9. EXCEL se poate plimba uşor şi sigur din foaia cu
tabela în foaia cu diagrama.
1.7.3. Crearea unei cutii de dialog pentru comutarea de la tabel la diagramă.
Macrocomenzile pot fi asociate şi cu alte obiecte de interacţiune grafică, cum ar fi cutiile de dialog. O cutie
de dialog este o resursă de interacţiune specială care se crează într-o foaie specială, numită foaie de dialog.
Aceasta este o facilitate mai veche a Excel-ului, în prezent tolerată, dar foarte accesibilă programatorului
începător prin simplitatea sa mult mai mare decât noua tehnică de creare de resurse în mediul integrat Visual
BASIC.
În continuare este prezentată o aplicaţie simplă care realizează acelaşi lucru cu butonul intitulat Diagrama
bilantului, având în plus şi posibilitatea de a renunţa la procedura de comutare.
Etapele de lucru sunt următoarele:
1. Se plasează cursorul mouse-ului pe eticheta de foaie de lucru curentă şi se face clic pe butonul dreapta;
Din meniul contextual deschis acum articolul Insert, după care, din cutia de dialog Insert, din pagina
General se selectează pictograma MS Excel 5.0 Dialog.
Ca urmare este creată o foaie nouă, specială, denumită Dialog1.
În această foaie este plasată automat o cutie de dialog sumară
(figura 1.10). Elementele ei sunt: un cadru cu bară de titlu (Dialog
Frame), şi două butoane (Button) cu inscripţiile OK şi Cancel.
Aceste obiecte pot fi:
- selectate printr-un clic în cuprinsul lor;
- apucate şi trase (mutate);
- apucate şi derivate ca mărime;
- cele care posedă inscripţii, prin dublu clic pe inscripţie, pot fi
aduse în faza de editare (modificare) a inscripţiei;
Fig.1.10. - selectate şi şterse (cu tasta Del);
- selectate şi supuse operaţiilor Cut, Copy şi Paste;
- selectate şi formatate (cu meniul Format, articolul Object, sau cu meniul contextual, articolul Format
Object).
Alăturat cutiei de dialog în construcţie, se găseşte o cutie cu butoane denumite scule. Cutia are titlul Forms
iar butoanele au destinaţiile notate în figura 1.11.
2. Se face dublu clic în bara de titlu a cutiei de dialog şi se schimbă titlul din Dialog Caption în Afisare
Diagrama;
3. Se redenumeşte butonul OK cu numele Da şi butonul Cancel cu numele Nu;
4. Se redimensionează cutia de dialog şi se reamplasează butoanele Da şi Nu conform dispunerii din figura 1.2;
5. Cu cursorul poziţionat pe butonul selectat (de exemplu pe butonul Da) se deschide meniul contextual, din
care se selectează articolul Format Control sau se selectează meniul Format, articolul Control. Ca urmare, se
deschide cutia de dialog Format Control care, pentru butonul Da (fostul buton OK), are conţinutul paginii
Control conform figurii 1.12.
6. În câmpul Accelerator Key se scrie caracterul D. Aceasta va apare subliniat pe inscripţia butonului Da şi,
ca urmare, va face ca tasta D să devină tastă acceleratoare, adică se va putea acţiona butonul Da nu numai prin
6

apăsare cu cursorul dirijat de mouse ci şi prin apăsarea tastei D;


7. Se procedează la fel pentru
butonul Nu, atribuindu-i-se ca tastă
acceleratoare caracterul N;
Observaţie: nu operaţi alte
modificări în cutia Format Object,
pentru că se poate altera specificul
de acţiune al butonului selectat.
8. Se selectează meniul Tools >
Record Macro > Record New
Macro. În cutia de dialog Record
New Macro se atribuie numele
PrezDialog macrocomenzii a cărei
înregistrare se va efectua. Ca
Fig.1.11. urmare, înregistratorul de
macrocomenzi este pornit;
9. Se apasă butonul Run Dialog de pe bara
cu scule Forms. Cutia de dialog este afişată aşa
cum apare ea când este folosită în dialogul cu
utilizatorul;
10. Se apasă butonul Nu al cutiei de dialog
definită de utilizator;
11. Se opreşte înregistrarea macrocomenzii.
Ca urmare, în foaia de module apare modulul
de program următor:
Sub PrezDialog()
DialogSheets("Dialog1").Show
End Sub
12. Se selectează butonul Da;
Fig.1.12. 13. Se selectează meniul Tools, articolul
Assign Macro, sau, din meniul contextual se
selectează articolul Assign Macro;
14. Din cutia de dialog Assign Macro se selectează macrocomanda PrezDiag pentru a fi asociată butonului Da.
Prin aceste procedee a fost creată cutia de dialog. Dacă ea este activă (afişată), apăsarea pe butonul Da
produce comutarea pe foaia cu diagrama.
Totuşi, a mai rămas de rezolvat o problemă: cum să fie afişată însăşi cutia de dialog creată?
Există o posibilitate şi anume, selectarea meniului Tools, articolul Macro. Se deschide cutia de dialog
Macro din care se selectează macrocomanda PrezDialog. Această posibilitate este utilizabilă numai pentru
testare, în practică fiind necesară încă o asociere, de data aceasta între macrocomanda PrezDialog şi un obiect
grafic. Acest obiect grafic poate fi un buton creat de utilizator (ca butonul Diagrama de mai înainte).

1.8. Salvarea fişierului.


Din meniul File, se selectează articolul Save As şi se atribuie numele, de exemplu Diagfunc.
Metode Numerice – Laborator 2 7

LABORATOR Nr.2: Folosirea funcţiilor definite de utilizator sub EXCEL


Aplicaţie: Calculul volumului de apă dislocat
2.1. Baze teoretice.
Metoda de calcul tradiţională este foarte simplă. Ea constă în aplicarea metodei de integrare numerică aşa
numită "a trapezelor".

Fig.2.1. Fig.2.2.

Conform figurii 2.1, integrala funcţiei f pe domeniul a-b poate fi scrisă sub forma aproximativă:

b n −1 f + f
∫ f ( x)dx = ∑ i 2 i +1 (xi +1 − xi ) (2.1)
a i =1

Această valoare reprezintă mărimea ariei dintre curba funcţiei f şi axa ox. Se observă că prin acest procedeu
această arie este divizată în arii elementare cuprinse între axa x şi arcul de curbă S dintre verticalele de mărime fi
şi fi+1. La rândul lor aceste arii sunt înlocuite de ariile trapezelor formate prin înlocuirea arcului de curbă S cu
coarda C a curbei. Eroarea metodei este dată de mica arie cuprinsă între arcul de curbă S şi coarda C.
Cu cât diviziunea intervalului a-b este mai fină, cu atât eroarea este mai mică.
Pentru a calcula volumul de apă dislocuit de navă se procedează în următorii paşi:
- Se consideră volumul de sub apă al navei tăiat în "felii" verticale denumite "cuple" (figura 2.2), la anumite
intervale pe lungimea navei, lungime măsurată pe axa x orientată de la prova către pupa. Fiecare dintre aceste
cuple are un contur curb definit prin "semilăţimi" măsurate pe o axă y orientată de la planul longitudinal vertical
central (numit plan diametral) către bord. Abscisa curbei cuplei este măsurată după o axă z orientată pe verticală
de la fundul navei către punte;
- Se calculează ariile cuplelor prin integrarea funcţiei contur a fiecărie cuple în parte. Astfel, rezultă o serie de
suprafeţe Ai, i=1,...,n ale cuplelor. Aceste valori Ai pot fi considerate ca descriind o "funcţie a ariilor imerse"
(scufundate) de variabilă x;
- Se calculează volumul de sub apă al navei prin integrarea pe lungimea x a ariilor imerse.

2.2. Realizarea aplicaţiei sub EXCEL


Se vor parcurge următoarele etape de lucru:
- Se deschide un document EXCEL în care se desenează tabelul din figura 2.3. În celulele marcate cu
culoarea gri se vor introduce formule, restul celulelor fiind folosite pentru scrierea datelor şi a inscripţiilor;
- După introducerea datelor în domeniile de celule C4:N10 şi D12:N12 se generează diagrama din figura 2.4,
numită "transversal al planului de forme al navei". Procedura de lucru pentru crearea acestei diagrame este
următoarea:
= Se selectează domeniul de celule C4:D10;
= Se apasă butonul Chart Wizard de pe bara de instrumente Standard;
= Din cutia de dialog Chart Wizard Step 1 of 4 se selectează tipul Scatter, subtipul Scatter with data
points connected by lines without markers;
= Din cutia de dialog Chart Wizard Step 2 of 4 se selectează pagina Data Range în care se bifează
Series in Columns. Apoi se comută în pagina Series. Dacă am lăsa datele aşa cum le acceptă automat Excel,
cuplele navei ar apare culcate pe orizontală. De aceea, trebuie inversate seriile de valori x şi y între ele.
8

Pentru aceasta, se selectează referinţele de celule din câmpul X Values şi se mută cursorul, selectând
domeniul de celule D4:D10. Apoi se selectează referinţele de celule din câmpul Y Values şi se reselectează
celulele din domeniul C4:C10. Pentru ca numele de identificare a diagramei astfel construite să nu fie cel
acordat automat (adică Series1) se introduce cursorul în câmpul Name şi se scrie C0;
= Se pot introduce acum serii noi de date folosind butonul Add şi procedând la introducerea datelor în
câmpurile X Values, Y Values şi Name la fel ca mai sus;
= Se apasă butonul Next pentru a se trece la pasul 3 al cutiei de dialog Chart Wizard. Aici, dacă se
doreşte se pot introduce inscripţii de identificare a diagramei. În figura 4 aceste facilităţi nu au fost folosite
aşa încât se poate trece la pasul 4 unde se alege opţiunea As new Sheet.

Fig.2.3.

Fig.2.4.

- Se aplică comanda Tools>Macro>Visual Basic Editor pentru a se deschide editorul Visual Basic;
- În editorul Visual Basic se crează o foaie de module în care se scriu funcţiile de mai jos:
- O funcţie pentru calculul ariei imerse a unei cuple. Această funcţie preia valorile de diviziune ale axei z
prin introducerea domeniului de celule care conţine aceste valori şi, analog, valorile semilăţimilor. Deoarece
aceste valori sunt situate pe coloane, se foloseşte proprietatea Count a subobiectului Rows a obiectului Range
pentru a se determina numărul de rânduri ale domeniului.
Se compară egalitatea lungimii domeniilor abscise - valori ale funcţiei contur al cuplei.
Metode Numerice – Laborator 2 9

Dacă aceste lungimi nu sunt egale (ca o consecinţă a unei selectări greşite, funcţia returnează ca rezultat şirul
de caractere "Eroare".
Dacă lungimile sunt egale se efectuează calculul integralei într-un ciclu For. Deoarece aria astfel calculată
este numai jumătate din aria efectivă (considerând şi partea din bordul simetric) valoarea obţinută este
multiplicată cu 2 şi este returnată de funcţie ca rezultat.

Function Arie_cupla(Dom_z As Range, Dom_y As Range)


lungz = Dom_z.Rows.Count
lungy = Dom_y.Rows.Count
If lungz = lungy Then
Arie_cupla = 0
For i = 1 To lungz - 1
z1 = Dom_z(i, 1)
z2 = Dom_z(i + 1, 1)
y1 = Dom_y(i, 1)
y2 = Dom_y(i + 1, 1)
Arie_cupla = Arie_cupla + 0.5 * (y2 + y1) * (z2 - z1)
Next i
Arie_cupla = 2 * Arie_cupla
Else
Arie_cupla = "Eroare"
End If
End Function

- O funcţie pentru calculul volumului de apă dislocuit. Această funcţie este concepută similar, cu
următoarele deosebiri:
= Datele sunt preluate din domenii de celule organizate pe rânduri, motiv pentru care este folosită
proprietatea Count a subobiectului Columns a obiectului Range;
= Nu se mai face multiplicare cu 2 deoarece volumul imers rezultă direct din calcul.

Function Volum_imers(Dom_x As Range, Dom_Arii As Range)


lungx = Dom_x.Columns.Count
lungar = Dom_Arii.Columns.Count
If lungx = lungar Then
Volum_intre_cuple = 0
For i = 1 To lungar - 1
x1 = Dom_x(1, i)
x2 = Dom_x(1, i + 1)
ar1 = Dom_Arii(1, i)
ar2 = Dom_Arii(1, i + 1)
Volum_ imers = Volum_ imers + 0.5 * (ar2 + ar1) * (x2 - x1)
Next i
Else
Volum_imers = "Eroare"
End If
End Function

Pentru a se putea folosi aceste funcţii se procedează astfel:


- Mai întâi se selectează domeniul de celule C4:C10;
- Se aplică comanda Insert>Name>Define;
- În cutia de dialog Define Name se va observa: existenţa în câmpul Refers to a referinţei de câmp care ar
putea să apară sub forma =Sheet1!$C$4:$C$10. Dacă referinţa este incorectă se va selecta şirul de caractere al
referinţei şi se va repeta selecţia câmpului referit din foaia de lucru; existenţa în câmpul Names in Workbook a
unei denumiri - în cazul de faţă notaţia z culeasă automat de către EXCEL din prima celulă de deasupra
câmpului selectat. Vom şterge această denumire şi vom scrie în locul ei domz;
Folosirea formulei de calcul a unei arii imerse se face astfel:
- Se plantează cursorul în celula D11;
- Se apasă butonul fx de pe bara de scule Standard;
- După deschiderea cutiei de dialog Paste function se selectează categoria de funcţii User Defined iar din
lista de funcţii se selctează funcţia Arie_cupla;
- După ce se apasă pe butonul OK şi este afişată cutia de dialog Arie_cupla se introduc, prin selecţie cu
mouse-ul, domeniile de celule pentru valorile z (Dom_z) şi pentru valorile semilăţimilor (Dom_y);
10

- O dată ce prima celulă pentru funcţia de arie a fost completată, celelalte celule se autocompletează folosind
metoda extinderii prin tragere, astfel: se selectează celula completată (D11), se "apucă" cu cursorul mouse de
"mânerul de extindere" (din partea din dreapta-jos a celulei) şi se "trage" peste celulele E1:N11;
- În sfârşit, pentru a calcula volumul imers, se selectează cursorul în celula N13 şi se apasă pe butonul fx de
unde se selectează funcţia Volum_imers;
- În cutia de dialog a funcţiei Volum_imers se introduc domeniile de celule D12:N12 pentru abscisele x şi
D11:N11 pentru mărimile ariilor transversale imerse.

Observaţie: În aplicaţia de mai sus valorile au fost exprimate în m pentru lungimi, m2 pentru arii şi m3 pentru
volum. Din acest motiv deplasamentul navei rezultă imediat în tone din înmulţirea volumului cu greutatea
specifică a apei.
Metode Numerice – Laborator 3 11

Laborator Nr. 3: Rezolvarea ecuaţiilor prin metoda iterativă


3.1. Enunţul temei
Se dau ecuaţiile:
a. f ( x ) = x − 1 − x = 0
b. f ( x ) = x − 1 + x = 0
c. f ( x ) = 1 − x = 0
Să se găsească soluţiile lor.
3.2. Rezolvare:
Pentru derularea unui algoritm iterativ este necesară cunoasterea unei reguli sau
funcţii g(x) şi a unui punct de start p0. Secvenţa de determinare a punctelor pi (i=1, 2 ...) se
bazează pe relaţia:
pi+1 = g(pi) i = 0, 1, ... (3.1)
Condiţiile de convergenţă ale secvenţei (3.1) sunt:
- Funcţiile g(x) şi g'(x) sunt continue pe intervalul [a,b] care conţine punctul fix P = g(P)
soluţie a lui f(x)
- | g'(p) | < 1 pe intervalul [a,b]
Interpretarea grafica a secventei (1) şi a condiţiilor de mai sus sunt date în figura 3.1.

a) convergenţă b) divergenţă
Fig. 3.1.
Pentru a se putea folosi metoda iterativă ecuaţiile f(x)=0 trebuie transformate în relaţii de
forma x=g(x).
Pentru ecuaţiile de mai sus funcţiile g(x) corespunzătoare sunt:
a. g ( x ) = 1 + x = 0
b. g ( x ) = 1 − x = 0
c. g ( x ) = x + 1 − x = 0
Derivatele g’(x) corespunzătoare sunt:
1
a. g ′(x ) =
2 x
1
b. g ′(x ) = −
2 x
1
c. g ′(x ) = 1 −
2 x
12

Analizând variaţiile funcţiilor |g’(x)| se constată că pe un interval destul de larg ele se


menţin la o valoare inferioară lui 1 satisfăcând condiţia de aplicare a metodei de calcul
iterativă.
Ca urmare, putem proceda la realizarea unui document de calcul EXCEL compus din 3 foi,
câte una pentru fiecare ecuaţie.
Vom exemplifica în continuare mersul de lucru pentru rezolvarea primului caz, iar pentru
următoarele două cazuri se va proceda prin asemănare.

Fig.3.2.

Pasul 1: Crearea tabelului necesar trasării diagramelor funcţiilor folosite.


Acest pas nu este necesar din punctul de vedere strict al algoritmului de rezolvare iterativă.
Totuşi, el este foarte util pentru punerea în evidenţă a variaţiilor şi ne poate ajuta să înţelegem
şi, mai mult, să “simţim” problema. Etapele sunt următoarele:
- Se generează capul de tabel din figura 3.2, dispus pe verticală, în celulele A1:A5
- În celulele B1 şi C1 se introduc valorile 0 şi 0.25
- Folosind autocompletarea prin tehnica drag and drop, se extinde domeniul B1:C1 până la
celula N1 inclusiv
- În celula B2 se introduce formula =1+SQRT(B1)
- În celula B3 se introduce formula =B1
- În celula B4 se introduce formula =B1-1-SQRT(B1)
- În celula B5 se introduce formula =1/2/SQRT(B1). Rezultatul afişat aici va fi #DIV/0!
ceea ce corespunde unei pante verticale a funcţiei g(x)
- Se selectează domeniul B2:B5 şi se extinde pentru autocompletare până la coloana N
inclusiv.

Pasul 2: Trasarea diagramelor funcţiilor.


Folosind ca domeniu comun al variabilei x domeniul B1:N1 se generează diagramele celor
patru funcţii calculate pe rândurile 2, 3, 4 şi 5.
Pentru această etapă se foloseşte butonul Chart Wizard de pe bara cu butoane Standard a
programului EXCEL sau comanda Insert>Chart.
Metode Numerice – Laborator 3 13

Pasul 3: Rezolvarea prin metoda iteraţiilor succesive.


- Se generează capul de tabel din celulele P1:T1
- În celula Q2 se introduce o valoare de start arbitrară pentru variabila x, de exemplu 0.1
- În celula R2 se introduce formula =1+SQRT(Q2)
- În celula Q3 se introduce formula =R2 echivalentul formulei de iteraţie xi+1=gi
- În celula R3 se introduce formula =1+SQRT(Q3)
- În celula S3 se introduce formula =ABS((R3-R2)/(Q3-Q2)). Observaţie: Aici a fost
folosită o formulă de calcul a derivatei prin diferenţe finite în loc de a folosi formula
echivalentul în EXCEL a expresiei analitice găsită la punctul 2. Dacă doriţi să folosiţi această
expresie, atunci formula de introdus este ABS(1/2/SQRT(Q3)). Oricum, aceasta nu
influenţează evoluţia iteraţiilor deoarece valorile lui g’ nu intervin în formulele metodei
iterative, ele fiind incluse în acest tabel numai pentru a verifica dacă pe parcursul rezolvării
valorile lui g’ depăşesc valoarea 1 şi cum influenţează acest lucru stabilitatea metodei de
calcul.
- În celula T3 se introduce formula =ABS(Q3-Q2) pentru calculul erorii absolute a
variabilei x, adică expresia εx=|xi+1-xi|
- Se selectează domeniul Q3:T3 şi se extinde până când eroarea ex devine acceptabil de
mică (de exmplu sub 10-4). În această aplicaţie aceasta se întâmplă la iteraţia a 10-a, adică la
rândul 12
Valoarea obţinută pentru x ca soluţie a ecuaţiei f(x)=0 este aici de aproximativ 2.618,
valoare foarte apropiată de ceea ce s-ar obţine dintr-o rezolvare analitică.
Se observă că această valoare a lui x corespunde punctului de intersecţie dintre diagramele
funcţiilor g(x) şi y=x, respectiv de intersecţie între diagrama funcţiei f(x) şi axa x.
3.3. Discuţii cu privire la cazurile b şi c
Cazul b este asemănător cu cazul a. Totuşi, studiind configuraţia graficului funcţiei g(x)
din figura 3.3 şi valorile derivatei |g’(x)| se constată motivaţia convergenţei mult mai slabe a
procesului iterativ, soluţia cu precizia de 10-4 fiind obţinută aici abia la iteraţia a 29-a.

Fig.3.3.
14

Cazul c a fost considerat pentru situaţia când ecuaţia f(x)=0 nu conţine un termen în x
direct separabil. În acest caz se face artificiul x=f(x)+x echivalentul lui f(x)=0 şi rezultă
funcţia g(x)=f(x)+x.
Aspectul foii de calcul pentru acest caz este cel din figura 3.4.
În toate cazurile soluţia se obţine într-un număr de iteraţii în funcţie de valoarea de start a
variabilei x, la acest ultim caz pentru xstart=0.5 numărul de iteraţii fiind de 10.

Fig.3.4.
Metode Numerice – Laborator 4 15

Laborator Nr. 4: Rezolvarea sistemelor de ecuaţii liniare


4.1. Enunţul temei
Se dă sistemul de ecuaţii:
 2 x1 + 3 x2 − x3 = 5

 x1 − x2 + x3 = 2
3 x + 2 x − x = 4
 1 2 3

Să se găsească soluţia sistemului.


4.2. Rezolvare:
Se utilizează un document EXCEL care se organizează astfel (vezi figura 4.1):

Fig.4.1.
În foaia Sheet1 se generează tabelele din figura 4.1 care se completează cu datele din
figură, mai puţin coloana H pe care se vor introduce funcţiile de calcul pentru necunoscute,
scrise în Visual Basic for Application.
Se aplică comanda Tools>Macro>Visual Basic Editor.
În fereastra editorului de Visual Basic se aplică comanda Insert>Module.
În modulul de programe VBA creat se scriu funcţiile:
Function Rezolvare_Gauss_Triang(Tablou_Date As Range, Ind_necunosc)
n_col = Tablou_Date.Columns.Count
n_rnd = Tablou_Date.Rows.Count
If n_col <> n_rnd + 1 Then
Rezolvare_Gauss_Triang = "Eroare de matrice"
Exit Function
End If
If Ind_necunosc > n_rnd And Ind_necunosc < 0 Then
Rezolvare_Gauss_Triang = "Indice gresit"
Exit Function
End If
ReDim a(n_rnd, n_rnd) As Double
ReDim b(n_rnd) As Double
For i = 1 To n_rnd
For j = 1 To n_rnd
a(i - 1, j - 1) = Val(Tablou_Date(i, j))
Next j
16

b(i - 1) = Val(Tablou_Date(i, n_col))


Next i
z = 0.000001
coderr = 0
i=0
While (i < n_rnd - 1) And (coderr = 0)
p = Abs(a(i, i))
l=i
For j = i + 1 To n_rnd - 1
If Abs(a(i, j)) > p Then
l=j
p = Abs(a(j, i))
End If
Next j
If (p < z) Then
coderr = 1
GoTo iesire
End If
If l > i Then
For j = 0 To n_rnd - 1
p = a(l, j)
a(l, j) = a(i, j)
a(i, j) = p
Next j
p = b(l)
b(l) = b(i)
b(i) = p
End If
For j = i + 1 To n_rnd - 1
p = -a(j, i) / a(i, i)
For k = 0 To n_rnd - 1
a(j, k) = a(j, k) + a(i, k) * p
Next k
b(j) = b(j) + b(i) * p
Next j
i=i+1
Wend
If Abs(a(n_rnd - 1, n_rnd - 1)) < z Then
coderr = 1
GoTo iesire
End If
b(n_rnd - 1) = b(n_rnd - 1) / a(n_rnd - 1, n_rnd - 1)
For i = n_rnd - 2 To 0 Step -1
p=0
For j = i + 1 To n_rnd - 1
p = p + a(i, j) * b(j)
Next j
b(i) = (b(i) - p) / a(i, i)
Next i
iesire:
If coderr = 0 Then
Rezolvare_Gauss_Triang = b(Ind_necunosc - 1)
Else
Rezolvare_Gauss_Triang = "Sistem incompatibil"
End If
End Function
Metode Numerice – Laborator 4 17

Function Rezolvare_Gauss_Seidel(Tablou_Date As Range, Ind_necunosc)


n_col = Tablou_Date.Columns.Count
n_rnd = Tablou_Date.Rows.Count
If n_col <> n_rnd + 2 Then
Rezolvare_Gauss_Seidel = "Eroare de matrice"
Exit Function
End If
If Ind_necunosc > n_rnd And Ind_necunosc < 0 Then
Rezolvare_Gauss_Seidel = "Indice gresit"
Exit Function
End If
ReDim a(n_rnd, n_rnd) As Double
ReDim b(n_rnd) As Double
ReDim x0(n_rnd) As Double
ReDim x(n_rnd) As Double
ermax = 0.000001
itmax = 100
For i = 1 To n_rnd
For j = 1 To n_rnd
a(i - 1, j - 1) = Val(Tablou_Date(i, j))
Next j
b(i - 1) = Val(Tablou_Date(i, n_col - 1))
x0(i - 1) = Val(Tablou_Date(i, n_col))
x(i) = x0(i - 1)
Next i
coderr = 0
i=0
While (i < n_rnd - 1)
p = Abs(a(i, i))
l=i
For j = i + 1 To n_rnd - 1
If Abs(a(i, j)) > p Then
l=j
p = Abs(a(j, i))
End If
Next j
If l > i Then
For j = 0 To n_rnd - 1
p = a(l, j)
a(l, j) = a(i, j)
a(i, j) = p
Next j
p = b(l)
b(l) = b(i)
b(i) = p
End If
i=i+1
Wend
gata = False
For i = 0 To n_rnd - 1
p=0
For j = 0 To n_rnd - 1
p = p + Abs(a(i, j))
If p > 2 * Abs(a(i, i)) Then
coderr = 1
gata = True
End If
18

Next j
Next i
it = 0
While Not gata
er = 0
it = it + 1
For i = 0 To n_rnd - 1
p=0
For j = 0 To i - 1
p = p + a(i, j) * x(j)
Next j
For j = i + 1 To n_rnd - 1
p = p + a(i, j) * x0(j)
Next j
x(i) = (b(i) - p) / a(i, i)
er = er + Abs(x(i) - x0(i))
Next i
If er < ermax Then
coderr = 0
gata = True
End If
For i = 0 To n_rnd - 1
x0(i) = x(i)
Next i
If it > itmax Then
coderr = 2
gata = True
End If
Wend
iesire:
Select Case coderr
Case 0
Rezolvare_Gauss_Seidel = x(Ind_necunosc - 1)
Case 1
Rezolvare_Gauss_Seidel = "Diagonala nedominanta"
Case 2
Rezolvare_Gauss_Seidel = "Depasire iteratii" & CStr(x(Ind_necunosc - 1))
End Select
End Function

Prima funcţie, Rezolvare_Gauss_Triang, produce rezolvarea unui sistem prin metoda


triangularizării Gauss. Argumentele funcţiei sunt:
Tablou_Date este domeniul de celule care conţine matricea coeficienţilor ecuaţiilor
sistemului şi vectorul termenilor liberi;
Ind_necunosc este celula care conţine indicele necunoscutei considerate din sistem.
A doua funcţie, Rezolvare_Gauss_Seidel, produce rezolvarea unui sistem prin metoda
iterativă Gauss-Seidel care porneşte de la o soluţie iniţială arbitrară şi caută o soluţie
aproximativă în mod iterativ. Argumentele funcţiei sunt:
Tablou_Date este domeniul de celule care conţine matricea coeficienţilor ecuaţiilor
sistemului, vectorul termenilor liberi şi vectorul X0 al soluţiei iniţiale;
Ind_necunosc este celula care conţine indicele necunoscutei considerate din sistem.
Completarea celulelor cu funcţii se face astfel:
- În celula H4 se introduce formula =Rezolvare_Gauss_Triang($C$4:$F$6,B4) care se
extinde prin tragere până la celula H6;
Metode Numerice – Laborator 4 19

- În celula H10 se introduce formula =Rezolvare_Gauss_Seidel($C$10:$F$12,B10) care se


extinde prin tragere până la celula H12;
- În celula H15 se introduce formula =Rezolvare_Gauss_Seidel($C$15:$F$17,B15) care se
extinde prin tragere până la celula H17;
Se observă că primul sistem de ecuaţii luat în considerare nu a putut fi rezolvat prin
metoda Gauss-Seidel deoarece nu are matrice dominantă.
De aceea pentru a putea aplica metoda a fost considerat un alt sistem de ecuaţii, şi anume:
3 x1 + 2 x2 + x3 = 10

 x1 + 3 x2 + x3 = 10
 x + x + 4 x = 15
 1 2 3

Acest din urmă sistem îndeplineşte condiţia de dominanţă a diagonalei principale şi poate
fi rezolvat.
20

Laborator Nr. 5: Rezolvarea ecuaţiilor algebrice neliniare prin


metode iterative
5.1. Enunţul temei
Se dă ecuaţia:
f (x ) = x3 − 1 = 0
Să se găsească soluţia ei prin metodele următoare:
a. metoda coardei;
b. metoda tangentei aproximate;
c. metoda Newton-Raphson.
5.2. Elemente teoretice:

Fig.5.1. Fig.5.2.
a. Pentru metoda coardei formula de calcul pentru
punctul de intersecţie dintre coardă şi axa Ox (fig. 5.1) este:
af (b) − bf (a )
c= (5.1)
f (b) − f (a )
b. Pentru metoda tengentei aproximate acelaşi
punct se calculează tot cu relaţia 1;
c. Pentru metoda Newton–Raphson punctul de
intersecţie al tangentei cu axa Ox se calculează cu
relaţia:
Fig. 5.3. xi+1 = xi - f(xi) / f '(xi) i = 0,1, ... (5.2)
d. Pentru metoda Halley punctul de intersecţie al
tangentei cu axa Ox se calculează cu relaţia:
xi+1 = xi - 2f(xi)f '(xi)/ [2f '(xi)2-f(xi)f ''(xi)] i = 0,1, ... (5.3)
5.3. Rezolvare:
Aplicaţia se realizează într-o foaie de lucru EXCEL cu aspectul din figura 5.4.
Etapele sunt următoarele:
Etapă comună:
Pentru punerea în evidenţă a graficului de variaţie al funcţiei se crează tabelul din stânga
sus a foii de lucru, după cum urmează:
- Se completează valorile variabilei x cu raţia de creştere 0.5 începând de la 0;
- În celula B2 se introduce formula =-1+B1^3
- Se selectează celula B2 şi se efectuează autocompletarea domeniului C2:H2
- Se generează diagrama funcţiei.
Pentru fiecare metodă în parte se realizează următoarele etape specifice:
a. Pentru metoda coardei:
Metode numerice – Laborator 5 21

- Se generează capul de tabel din celulele J2:P2


- În celulele K3 şi L3 se introduc valorile de start pentru a şi b (vezi figura 1), aici acestea
fiind 0.5 şi 1.5
- În celula M3 se introduce relaţia de calcul pentru valoarea lui c sub forma formulei
=(K3*O3-L3*N3)/(O3-N3)
- În celula N3 se introduce formula de calcul a valorii funcţiei f în punctul x=a sub forma
formulei =-1+K3^3
- În celula O3 se introduce formula de calcul a valorii funcţiei f în punctul x=b sub forma
formulei =-1+L3^3
- În celula P3 se introduce formula de calcul a valorii funcţiei f în punctul x=c sub forma
formulei =-1+M3^3
- În celula K4 se introduce condiţia de selecţie al noului capăt stânga a al intervalului de
căutare [a,b] sub forma formulei =IF(O3*P3<0;M3;K3)
- În celula L4 se introduce condiţia de selecţie al noului capăt dreapta b al intervalului de
căutare [a,b] sub forma formulei =IF(N3*P3<0;M3;L3)
- Se selectează domeniul M3:P3 şi i se extinde conţinutul pe rândul 4;
- Se selectează domeniul K4:M4 şi i se extinde conţinutul pe rândurile următoare până
când valoarea lui f(c) scade sub 10-4. La această metodă numărul de iteraţii necesare în acest
scop se dovedeşte a fi de 8.

Fig.5.4.
b. Pentru metoda tangentei aproximate:
- Se generează capul de tabel din celulele J13:P13
- În celulele K14 şi L14 se introduc valorile de start pentru a şi b (vezi figura 5.2), şi aici
acestea fiind tot 0.5 şi 1.5
- În celula M14 se introduce relaţia de calcul pentru valoarea lui c sub forma formulei
=(K14*O14-L14*N14)/(O14-N14)
- În celula N14 se introduce formula de calcul a valorii funcţiei f în punctul x=a sub forma
formulei =-1+K14^3
- În celula O12 se introduce formula de calcul a valorii funcţiei f în punctul x=b sub forma
formulei =-1+L14^3
- În celula P14 se introduce formula de calcul a valorii funcţiei f în punctul x=c sub forma
formulei =-1+M14^3
22

- În celula K15 se introduce ca nouă valoare a lui a valoarea anterioară a lui c adică
formula =M14
- În celula L15 se introduce formula de selecţie a noii valori a lui b folosind formula
=IF(ABS(N14)<ABS(O14);K14;L14)
- Se selectează domeniul M14:P14 şi i se extinde conţinutul pe rândul 15;
- Se selectează domeniul K15:P13 şi i se extinde conţinutul pe rândurile următoare până
când valoarea lui f(c) scade sub 10-4. La această metodă numărul de iteraţii necesare în acest
scop se dovedeşte a fi de 6, deci metoda este mai rapid convergentă decât metoda coardei.
c. Pentru metoda Newton-Raphson:
- Se generează capul de tabel din celulele J22:M22
- În celula K23 se introduce o valoare de start pentru x, aici valoarea fiind 2
- În celula L23 se introduce formula de calcul a derivatei f ’(x)=3x2 prin formula =3*K23^2
- În celula M23 se introduce formula de calcul a funcţiei f prin formula =-1+K23^3
- În celula K24 se introduce relaţia de calcul a punctului de intersecţie dintre tangenta la
curba funcţiei şi axa Ox prin formula =K23-M23/L23 (vezi relaţia (2))
- Se selectează domeniul de celule L23:M23 şi se extinde conţinutul acestuia pe rândul 24
- Se selectează domeniul K24:M24 şi i se extinde conţinutul pe rândurile următoare până
când valoarea lui f(x) scade sub 10-4. La această metodă numărul de iteraţii necesare în acest
scop se dovedeşte a fi de 4, aşadar această metodă are convergenţa şi mai rapidă.

d. Pentru metoda Halley:


- Se generează capul de tabel din celulele N22:Q22
- În celula N23 se introduce o valoare de start pentru x, aici valoarea fiind 2
- În celula O23 se introduce formula de calcul a derivatei f ’(x)=3x2 prin formula =3*N23^2
- În celula P23 se introduce formula de calcul a funcţiei f ’’ prin formula =6*N23
- În celula Q23 se introduce formula de calcul a funcţiei f prin formula =-1+N23^3
- În celula N24 se introduce relaţia de calcul a punctului de intersecţie dintre tangenta la
curba funcţiei şi axa Ox prin formula =N23-2*Q23*O23/(2*O23^2-Q23*P23) (vezi relaţia
(3))
- Se selectează domeniul de celule O23:Q23 şi se extinde conţinutul acestuia pe rândul 24
- Se selectează domeniul N24:Q24 şi i se extinde conţinutul pe rândurile următoare până
când valoarea lui f(x) scade sub 10-4. La această metodă numărul de iteraţii necesare în acest
scop se dovedeşte a fi de 3, aşadar această metodă are convergenţa cea mai rapidă.
Metode Numerice – Laborator 6 23

Laborator Nr. 6: Rezolvarea sistemelor de ecuaţii algebrice neliniare prin


metoda Newton-Raphson
6.1. Enunţul temei
Se dă sistemul de ecuaţii:
 f 1 ( x, y ) = x 2 − y = 0
 (6.1)
 f 2 ( x, y ) = 1 − x − y = 0
2

Să se găsească soluţia acestui sistem


6.2. Rezolvare clasică
Acest sistem de ecuaţii este simplu de rezolvat prin metode clasice, exacte. Acesta este
motivul principal al alegerii lui pentru această aplicaţie pentru a putea compara rezultatul
acestui tip de rezolvare cu cel obţinut prin metoda indicată în titlul lucrării de laborator.
Observând că puterea lui y este în ambele ecuaţii 6.1 se poate face explicitarea lui y în
ambele ecuaţii şi se obţine:

 y = x2

y = 1− x
2

Egalând cele două expresii ale lui y se obţine relaţia:

2x2 = 1

de unde rezultă:

1
x=
2

şi, imediat:

y=1/2

6.3. Rezolvare prin metoda Newton-Raphson (metoda Jacobianului)


Conform celor expuse la curs, metoda Newton-Raphson are la bază formula iterativă:

[Jk]{Xk+1} = [Jk]{Xk}-{Fk} (6.2)

unde: [Jk] = matricea derivatelor parţiale (Jacobianul) calculat în raport cu


necunoscutele la pasul k;

{Xk+1} = vectorul necunoscutelor la iteraţia k+1;

{Xk} = vectorul necunoscutelor la iteraţia k;

{Fk} = vectorul valorilor ecuaţiilor la pasul k.

Pentru a construi Jacobianul este nevoie să se calculeze expresiile derivatelor parţiale,


adică:
24

∂f1 ∂f ∂f ∂f
= 2 x , 1 = −1 , 2 = −2 x , 2 = −1
∂x ∂y ∂x ∂y

Cu acestea Jacobianul devine:

∂f1 ∂f1
2x −1
[J ] = ∂∂fx ∂y
=
∂f 2 − 2 x − 1
2
∂x ∂y

Membrul drept al expresiei (6.2) se poate scrie ca:

∂f1 ∂f
x + 1 y − f1
2x 2 − y − x2 + y x2
{B} = [J ]{X }− {F } = ∂∂fx ∂∂fy = =
x + 2 y − f 2 − 2x − y −1 + x + y − x −1
2 2 2
2
∂x ∂y

Putem deci rescrie (6.2) sub forma:

[Jk]{Xk+1} = {Bk}

sau, detaliat:

2 xk − 1 xk +1 xk2
=
− 2 xk − 1 y k +1 − xk2 − 1

unde:

2 xk −1
Jk = = −4 xk
− 2 xk −1

şi putem nota:

xk2 −1
J =
k
x (
= − 2 xk2 + 1)
− x −1 −1
2
k

2 xk xk2
J =
k
y = −2 xk
− 2 xk − xk2 − 1

atunci, soluţiile la pasul k+1 se pot calcula cu relaţiile

J xk J yk
xk +1 = k şi y k +1 = k
J J

Pentru implementarea algoritmului de rezolvare se va construi aplicaţia într-o foaie de


lucru EXCEL cu aspectul din figura 6.1.
Metode Numerice – Laborator 6 25

Fig.6.1.
Etapele realizării lucrării sunt următoarele:

a. Pasul 1:
- Se crează capul de tabel din celulele A1:C1
- Se completează domeniul A2:A12 cu valorile variabilei x cu pasul de 0.1
- În celula B2 se introduce funcţia y1=x2 sub forma formulei =A2^2 şi i se extinde conţinutul
peste domeniul B2:B12
- În celula C2 se introduce funcţia y2=1-x2 sub forma formulei =1-A2^2 şi i se extinde
conţinutul peste domeniul C2:C12
- Folosind datele din tabelul astfel creat se generează diagrama comună a funcţiilor y1 şi y2.

b. Pasul 2:
- Se crează capul de tabel din celulele E1:L1
- În celulele F2 şi G2 se introduc valorile de start ale variabilelor x şi y, aici 0.1 şi 0.1
- În celula H2 se introduce formula de calcul a lui J sub forma =-4*F2
- În celula I2 se introduce formula de calcul a lui Jx sub forma =-(2*F2^2+1)
- În celula J2 se introduce formula de calcul a lui Jy sub forma =-2*F2
- În celula F3 se introduce formula de calcul a variabilei x la pasul k+1 sub forma =I2/H2
- În celula G3 se introduce formula de calcul a variabilei y la pasul k+1 sub forma =J2/H2
- Se selectează domeniul H2:J2 şi se extinde pe rândul 3
- În celula K3 se introduce formula de calcul a erorii relative εx sub forma
=(F3-F2)/MAX(ABS(F2);ABS(F3))*100
- În celula L3 se introduce formula de calcul a erorii relative εy sub forma
=(G3-G2)/MAX(ABS(G2);ABS(G3))*100
26

- Se selectează domeniul F3:L3 şi se extinde pe rândurile următoare până când erorile


relative devin inferioare valorii 10-6. Acest lucru se petrece la a 8-a iteraţie.

c. Pasul 3:
Pentru a urmări evoluţia erorii la fiecare iteraţie se selectează succesiv aditiv (folosind
tasta CTRL) domeniile E3:E10, K3:K10 şi L3:L10 şi se foloseşte facilitatea de creare a
diagramelor pentru a genera diagrama din figura 1 din dreapta-jos.
Metode Numerice – Laborator 7 27

Laborator Nr.7: Aplicaţie la aproximarea funcţiilor.


În cele ce urmează vom exemplifica una dintre tehnicile de aproximare prin interpolare a
funcţiilor de o variabilă date prin puncte.
7.1. Definirea temei.
Se consideră un şir de puncte Pi(xi,yi), i=1,2,...,n. Se cere să se găsească o aproximare de
tip funcţie polinomială, care să treacă prin aceste puncte.
Pentru a rezolva tema dată există două posibilităţi:
a. Determinarea unei funcţii de aproximare polinomială unică pentru întregul interval.
Dezavantajul metodei este acela de a conduce la polinoame de grad mare (m=n-1) unde m
este gradul polinomului iar n este numărul de puncte de pe interval. Dificultăţile ridicate de
acest procedeu constau în: nevoia de a calcula a unor determinanţi de dimensiuni mari şi
propagarea rapidă a erorilor induse de ridicările la puteri mari;
b. Determinarea unor funcţii de aproximare parţială de grad mp<n-1 (în mod curent mp=1
sau 3, pentru care np=2 sau, respectiv, 4, np fiind numărul de puncte al unui interval parţial).
Dacă mp=1 avem de a face cu interpolarea liniară, iar pentru mp=3 vorbim de interpolare
cubică. Interpolarea liniară este generală şi uşor de implementat dar, când funcţia variază
rapid pe subintervalul xi,xi+1, este destul de imprecisă. Dacă mp=3, gradul de precizie al
aproximării creşte dar apar probleme de implementare.
Pentru a le înţelege, să analizăm figura 7.1.

Fig.7.1.

În cazul interpolărilor pe subintervale, este recomandabil, pentru mai buna precizie a


calculelor, să se opereze cu valori “centrate”, adică încadrate de ambele părţi de un număr
egal de diviziuni xi. Acest lucru este posibil pentru indici i>2 şi i<n-1 folosind polinoame de
grad 3 aproximate prin 4 puncte (xi-1, xi, xi+1 şi xi+2). Dacă s-ar aplica acelaşi principiu pe
subintervalele x1 – x2 şi xn-1 – xn ar trebui să se folosească o aproximare de grad 1 cu numai 2
puncte, ceea ce ar putea oferi o precizie insuficientă sau o aproximare de grad 3 “descentrată”,
susceptibilă şi ea de a produce erori. De aceea se apelează la o soluţie de compromis şi anume
folosirea unei aproximări de grad 2 cu 3 puncte, mai puţin descentrată.
c. O soluţie de tip diferit, similară ca principiu cu cea de la punctul a, este de a folosi tot o
funcţie unică de interpolare pe întregul domeniu, sub forma polinoamelor de interpolare
Lagrange. Această metodă prezintă avantajul că foloseşte produse în loc de puteri şi nu
necesită rezolvări de determinanţi de matrici de dimensiuni mari, susceptibili să conducă la
apariţia şi propagarea de erori caracteristice metodelor aferente.
Pentru aceasta se foloseşte o funcţie de aproximare polinomială de forma:
n
f ( x) = ∑ yi Li ( x) , unde yi = ordonata punctului Pi , Li = polinom Lagrange de forma:
i =1
28

∏ (x − x )
k =1,i ≠ k
k

Li ( x) = n

∏ (x
k =1,i ≠ k
i − xk )

în punctul k, polinomul Lagrange Li având valorile: Li (xk) = 1 dacă i = k şi Li (xk) = 0 dacă i


≠k
Aşadar, din motive de economie de efort, în lucrare vom folosi aproximarea polinomială
Lagrange pentru un număr de puncte N astfel:
- în cazul interpolării parţiale pe subintervale (metoda de la punctul b), la capetele
domeniului x1-xn, pentru subintervalul x1-x2 vor fi folosite punctele x1, x2 şi x3, pentru
subintervalul xn-1-xn se vor folosi punctele xn-2, xn-1, xn, deci N=3; Pe restul subintervalelor,
pentru x>x1 şi x<xn-1 se vor folosi 4 puncte, deci N=4;
- în cazul interpolării generale, se vor folosi toate punctele, deci N=n.

7.2. Realizarea aplicaţiei.

Fig.7.2.

Etapele lucrării sunt următoarele:


- După deschiderea Excel-ului se crează tabelul din figura 2 într-o foaie de lucru oarecare;
- Se completează celulele de pe rândurile 1, 2 şi 3 corespunzătoare valorilor i, xi şi yi cu
valorile vizibile în figura 7.2;
- Se completează celula C4 cu o valoare oarecare a variabilei x;
- În editorul de Visual BASIC se crează foaia de module Module1;
- La începutul foii Module1 se scriu următoarele declaraţii generale:
Option Base 1
Public Type Punct
x As Single
y As Single
End Type

- Se scriu funcţiile următoare:


Function Interpolare(Dom_x As Range, Dom_y As Range, x)
Dim p1 As Punct, p2 As Punct, p3 As Punct, p4 As Punct
Metode Numerice – Laborator 7 29

Dim n As Integer
n = Dom_x.Count
If (x < Dom_x(1, 1)) Or (x > Dom_x(1, n)) Then
Interpolare = "Extrapolare"
Else
If x < Dom_x(1, 2) Then
p1.x = Dom_x(1, 1)
p2.x = Dom_x(1, 2)
p3.x = Dom_x(1, 3)
p4.x = 0
p1.y = Dom_y(1, 1)
p2.y = Dom_y(1, 2)
p3.y = Dom_y(1, 3)
p4.y = 0
Interpolare = N_puncte(3, p1, p2, p3, p4, x)
Else
If x > Dom_x(1, n - 1) Then
p1.x = Dom_x(1, n - 2)
p2.x = Dom_x(1, n - 1)
p3.x = Dom_x(1, n)
p4.x = 0
p1.y = Dom_y(1, n - 2)
p2.y = Dom_y(1, n - 1)
p3.y = Dom_y(1, n)
p4.y = 0
Interpolare = N_puncte(3, p1, p2, p3, p4, x)
Else
i1 = 1
i2 = 2
i3 = 3
i4 = 4
While Not ((Dom_x(1, i2) <= x) And (x <= Dom_x(1, i3)))
i1 = i1 + 1
i2 = i2 + 1
i3 = i3 + 1
i4 = i4 + 1
Wend
p1.x = Dom_x(1, i1)
p2.x = Dom_x(1, i2)
p3.x = Dom_x(1, i3)
p4.x = Dom_x(1, i4)
p1.y = Dom_y(1, i1)
p2.y = Dom_y(1, i2)
p3.y = Dom_y(1, i3)
p4.y = Dom_y(1, i4)
Interpolare = N_puncte(4, p1, p2, p3, p4, x)
End If
End If
End If
End Function

Această funcţie realizează interpolarea parţială pe subintervale conform metodei descrisă la


punctul b.
Ea primeşte ca argumente domeniul de celule cu valorile xi şi domeniul de celule cu
valorile yi ale punctelor prin care trece funcţia şi valoarea x pentru care trebuie realizată
interpolarea. După aceasta determină lungimea n a domeniului şi verifica pentru început dacă
valoarea x nu conduce la o situaţie de extrapolare.
Dacă valoarea x este situată în domeniu, determină cazurile de interpolare prin 3 şi
respectiv 4 puncte şi apelează funcţia de interpolare Lagrange prin N puncte transmiţându-i
valorile corespunzătoare. Această funcţie este următoarea:
30

Function N_puncte(n, p1 As Punct, p2 As Punct, p3 As Punct, p4 As Punct, x)


Dim px(4), py(4)
px(1) = p1.x
px(2) = p2.x
px(3) = p3.x
px(4) = p4.x
py(1) = p1.y
py(2) = p2.y
py(3) = p3.y
py(4) = p4.y
F=0
For i = 1 To n
L=1
For k = 1 To n
If k <> i Then L = L * (x - px(k)) / (px(i) - px(k))
Next k
F = F + py(i) * L
Next i
N_puncte = F
End Function

Funcţia care realizează interpolarea folosind toate punctele intervalului (1...n) este
următoarea:
Function Lagrange(Dom_x As Range, Dom_y As Range, x)
Dim n As Integer
Dim valx() As Single, valy() As Single
n = Dom_x.Count
If (x < Dom_x(1, 1)) Or (x > Dom_x(1, n)) Then
Lagrange = "Extrapolare"
Else
F=0
For i = 1 To n
L=1
For k = 1 To n
If k <> i Then L = L * (x - Dom_x(1, k)) / (Dom_x(1, i) - Dom_x(1, k))
Next k
F = F + Dom_y(1, i) * L
Next i
Lagrange = F
End If
End Function

Funcţiile create se utilizează astfel:


- În celula C5 se introduce funcţia =Interpolare(C2:M2;C3:M3;C4) folosind facilitatea
Paste Function, categoria User Defined;
- În celula C6 se introduce funcţia =Lagrange(C2:M2;C3:M3;C4)
- În celula C7 se introduce formula =IF(C5-C6=0;"Nedeterminare";(C5-C6)*100/C6)
pentru calculul erorii comparative.
În continuare se pot testa diferite valori ale lui x.
Se va constata că, deşi dă valori ceva mai precise în zonele din apropierea valorii 2 de
trecere la porţiunea constantă, în zonele de y=constant, interpolarea Lagrange generală suferă
fluctuaţii în jurul acestei valori ca efect al influenţei tuturor valorilor din domeniu, în timp ce
interpolarea parţială nu este influenţată de valorile y îndepărtate de subintervalul lui x.
Pentru o mai bună orientare se poate construi diagrama valorilor funcţiei pe baza punctelor
xi,yi, folosind facilitatea Function Wizard.
Metode Numerice – Laborator 8 31

Laborator Nr. 8: Aproximarea funcţiilor prin metoda funcţiilor spline


carteziene şi prin metoda regresiei

8.1. Enunţul temei de aproximare Spline


Se dă o curbă definită prin 4 puncte Pi(xi,yi), i=1,...,4. Se cere să se determine coeficienţii
funcţiilor spline carteziene de aproximare şi să se genereze graficul funcţiei folosind EXCEL.

8.2. Elemente teoretice


Deoarece nu se specifică nimic despre condiţiile la capete ale curbei de aproximare, se va
considera cazul funcţiilor spline naturale (cu capete libere).
Conform celor studiate la curs sistemul de ecuaţii care conduce la determinarea
coeficienţilor funcţiilor spline ale segmentelor este:

2 1 0 0 ... 0 0 0   m1   d1 
a
 2 2 b2 0 ... 0 0 0   m2   d 2 
0 a3 2 b3 ... 0 0 0   m3   d 3 
  =  (8.1)
 ...   ...   ... 
0 0 0 0 ... a n−1 2 bn−1  mn−1  d n−1 
    
 0 0 0 0 ... 0 1 2   mn   d n 

unde:

hi hi −1
ai = (8.2) bi = (8.3)
hi−1 + hi hi −1 + hi
3  hi−1 h 
di =  ( yi+1 − yi ) + i ( yi − yi−1 ) (8.4)
hi−1 + hi  hi hi−1 

pentru i=2,…,n-1, şi

y 2 − y1 y − y n−1
d1 = 3 , dn = 3 n (8.5)
h1 h n−1
prin hi s-a notat lungimea proiectată pe axa x a zonei: hi = xi+1 - xi (8.6)

Expresia funcţiei de aproximare a unui segment spline este:

gi (x) = C0i + C1i (xi-x) + C2i (xi-x)2 + C3i (xi-x)3 (8.7)

yi+1 − yi mi+1 + 2mi y − y m +m


C0i = yi ; C1i = -mi; C2i = 3 2
− ; C3i = 2 i+1 3 i − i+1 2 i ; (8.8)
hi hi hi hi
cu i=1,…,n-1

Pentru n=4, numărul de segmente spline va fi n-1=3.

8.3. Realizarea aplicaţiei


Aplicaţia se va efectua folosind o foaie de calcul EXCEL pentru calculul valorilor necesare
şi o foaie pentru diagrame.
Aspectul lor este prezentat în figurile 8.1 şi 8.2.
32

Fig.8.1.
Metode Numerice – Laborator 8 33

Fig.8.2.

Etapele realizării lucrării pentru şirul de puncte (0,0), (1,1), (3,-1), (4,0), sunt următoarele:
- Se crează capul de tabel din celulele A1:A18
- În domeniul B1:E1 se introduc valorile coordonatelor xi, i=1,…,4
- În domeniul B2:E2 se introduc valorile coordonatelor yi, i=1,…,4
- În celula C3 se introduce relaţia de calcul pentru h2 (vezi relaţia (6)) sub forma =C1-B1
şi se extinde peste celulele D3 şi E3
- În celula C4 se introduce relaţia de calcul pentru a2 (vezi relaţia (8.2)) sub forma
=D3/(C3+D3) şi se extinde peste celula D4
- În celula C5 se introduce relaţia de calcul pentru b2 (vezi relaţia (8.3)) sub forma
=C3/(C3+D3) şi se extinde peste celula D5
- În celula B6 se introduce relaţia de calcul pentru y2-y1 sub forma =C2-B2 şi se extinde
peste celulele C6 şi D6
- În celula C7 se introduce relaţia de calcul pentru y2-y1 sub forma =C2-B2 şi se extinde
peste celulele D7 şi E7
- În celula C8 se introduce relaţia de calcul a mărimii hi-1/hi sub forma =C3/D3 şi se
extinde peste celula D8
- În celula C9 se introduce relaţia de calcul a mărimii hi/hi-1 sub forma =1/C8 şi se extinde
peste celula D9
- În celula C10 se introduce relaţia de calcul a mărimii hi-1+hi sub forma =C3+D3 şi se
extinde peste celula D10
- În celula B11 se introduce relaţia de calcul a mărimii d1 sub forma =3*B6/C3
- În celula E11 se introduce relaţia de calcul a mărimii d4 sub forma =3*E7/E3
- În celula C11 se introduce relaţia de calcul a mărimii d2 sub forma
=3*(C8*C6+C9*C7)/C10 şi se extinde peste celula D11
- În domeniul H1:K4 se construieşte matricea coeficienţilor ecuaţiilor sistemului (1) astfel:
= Coeficienţii constanţi (0, 1 şi 2) se introduc ca atare în celulele corespunzătoare poziţiilor
din matrice
= În celula H2 se introduce formula de referire a coeficientului a2 sub forma =C4
= În celula I3 se introduce formula de referire a coeficientului a3 sub forma =D4
34

= În celula J2 se introduce formula de referire a coeficientului b2 sub forma =C5


= În celula K3 se introduce formula de referire a coeficientului b3 sub forma =D5
- În domeniul L1:L4 se introduc formule de referire a coeficienţilor d1…d4 sub formele
=B11, =C11, =D11 şi =E11
- În domeniul H6:K9 se formează determinantul Dm1 în două faze, astfel:
= În celula H6 se introduce formula de referire =H1 şi se extinde până la celula K6 apoi,
domeniul H6:K6 selectat se extinde până la rândul 9 inclusiv
= În celula H6 se introduce formula de referire =L1 şi se extinde până la celula H9
inclusiv
- Se procedează la fel pe domeniile H10:K13, H14:K17 şi H18:K21 substituind apoi
coloanele 2, 3 şi respectiv 4 cu referinţe la domeniul coloană L1:L4 ca la domeniul H6:K9
- În celula N1 se introduce formula =MDETERM(H1:K4)
- În celula N6 se introduce formula =MDETERM(H6:K9)
- În celula N10 se introduce formula =MDETERM(H10:K13)
- În celula N14 se introduce formula =MDETERM(H14:K17)
- În celula N18 se introduce formula =MDETERM(H18:K21)
- În celula P6 se introduce formula de calcul pentru m1 sub forma =N6/N1
- În celula P10 se introduce formula de calcul pentru m2 sub forma =N10/N1
- În celula P14 se introduce formula de calcul pentru m3 sub forma =N14/N1
- În celula P18 se introduce formula de calcul pentru m4 sub forma =N18/N1
Pentru coeficienţii Ci (a se vedea relaţiile (8.8)) se efectuează următoarele operaţii:
- În celula B15 se introduce relaţia de calcul a coeficientului C01 sub forma =B2
- În celula C15 se introduce relaţia de calcul a coeficientului C02 sub forma =C2
- În celula D15 se introduce relaţia de calcul a coeficientului C03 sub forma =D2
- În celula B16 se introduce relaţia de calcul a coeficientului C11 sub forma =-P6
- În celula C16 se introduce relaţia de calcul a coeficientului C12 sub forma =-P10
- În celula D16 se introduce relaţia de calcul a coeficientului C13 sub forma =-P14
- În celula B17 se introduce relaţia coeficientului C21 sub forma =3*B6/C3/C3-C13/C3
- În celula C17 se introduce relaţia coeficientului C22 sub forma =3*C6/D3/D3-D13/D3
- În celula D17 se introduce relaţia coeficientului C23 sub forma =3*D6/E3/E3-E13/E3
- În celula B18 se introduce relaţia pentru C31 sub forma =2*B6/C3/C3/C3-C14/C3/C3
- În celula C18 se introduce relaţia pentru C32 sub forma =2*C6/D3/D3/D3-D14/D3/D3
- În celula D18 se introduce relaţia pentru C33 sub forma =2*D6/E3/E3/E3-E14/E3/E3
Pentru reprezentarea graficului funcţiilor celor 3 segmente spline se procedează astfel:
- În domeniul B23:R23 se introduc valorile variabilei x pe intervalul 0...4 cu pas de 0.25
- În celula B24 se introduce formula
=$B15+$B16*($B23-B23)+$B17*($B23-B23)^2+$B18*($B23-B23)^3
Semnul $ este folosit pentru a menţine referinţa de celulă invariabilă la operaţia de
extindere a formulei unei celule peste alte celule. Se extinde formula de mai înainte până la
celula F24 inclusiv.
- În celula F25 se introduce formula
=$C15+$C16*($F23-F23)+$C17*($F23-F23)^2+$C18*($F23-F23)^3
şi se extinde conţinutul până la celula N25 inclusiv.
- În celula N26 se introduce formula
=$D15+$D16*($N23-N23)+$D17*($N23-N23)^2+$D18*($N23-N23)^3
şi se extinde conţinutul până la celula R26 inclusiv.
- În domeniul B28:R28 se introduc referinţe către celulele celor 3 domenii corespunzătoare
segmentelor spline, astfel: în B28 formula =B24 se extinde până la E28, în F28 formula =F25
se extinde până la M28 şi în N28 formula =N26 se extinde până la R28.
- Domeniile B23:R23 şi B28:R28 se folosesc pentru generarea diagramei din figura 8.2.
Metode Numerice – Laborator 8 35

8.4. Enunţul temei de regresie


Problema de rezolvat este următoarea: fiind cunoscute datele de construcţie ale setului de
nave din tabelul din fig. 1, să se determine datele de construcţie ale unei nave cu
deplasamentul Dwt=16500 t, folosind facilităţile de aproximare prin regresie din Excel
Datele din tabelul din figura 8.3 pot fi
exprimate sub forma a două funcţii:
Lpp=f(Dwt) şi v=g(Dwt). Ambele funcţii
pot fi aproximate sub forma unor
polinoame de gradul 3 prin metoda celor
mai mici pătrate.
Prima etapă de lucru este crearea
tabelului în foaia de lucru Sheet1.
Pentru a determina diagrama
Lpp=f(Dwt) se execută următoarele
operaţii:
• Din meniul Insert > Chart > As
New Sheet > cutia de dialog Chart
Wizard Step 1 of 5;
• În câmpul Range se introduce prin
selecţie, mai întâi domeniul D2:D32 şi
apoi, cu tasta CTRL apăsată, domeniul
E2:E32;
• Din cutia de dialog Chart Wizard
Step 2 of 5 se selectează tipul de diagramă
XY (Scatter) şi se apasă butonul Next;
• Din cutia de dialog Chart Wizard
Step 3 of 5 se selectează subtipul de
diagramă 3 şi se apasă butonul Next;
Fig.8.3 • În cutia de dialog Chart Wizard
Step 4 of 5 se selectează setările: Data
Series in Column(s), Use First 1 Columns for X Data, Use First 1 Row(s) for Legend
Text, şi se apasă butonul Next;
• În cutia de dialog Chart Wizard Step 5 of 5 se selectează setarea: Add a Legend? No,
şi se scriu titlurile Dwt [t] la Category (X) şi Lpp [m] la Value (Y);
Astfel este creată o foaie pentru diagramă, denumită automat Chart1. În acest stadiu
diagrama nu seamănă în totalitate cu aceea din figura 8.4, deoarece prezintă domeniile de
valori începând de la 0 pentru ambele axe. Pentru a selecta domeniile de valori reprezentabile
se procedează astfel:
• Se aplică un clic pe axa orizontală (X) şi apoi din meniul Format > Selected Axis, se
deschide cutia de dialog Format Axis din care se selectează pagina Scale. În câmpul de
editare Minimum se înlocuieşte 0 cu 12000 şi se apasă butonul OK;
• Asemănător, pentru axa verticală (Y), se înlocuieşte Minimum 0 cu 110;
Pentru a determina funcţia Lpp=f(Dwt) se execută următoarele operaţii:
• Se aplică un clic pe unul dintre punctele de marcare a perechilor de date Dwt-Lpp. Se
observă selectarea seriei de date (puncte) din diagramă;
• Din meniul Insert > Trendline > se deschide cutia de dialog Trendline;
• Din pagina Type se selectează tipul Polynomial iar cu butoanele de incrementare
Order se stabileşte gradul polinomului de interpolare la 3;
• În pagina Options se bifează caseta de opţiune Display Equation on Chart, eventual şi
Display R-Squared Value on Chart şi se apasă butonul OK;
• Abia acum, pe diagramă apare curba funcţiei de aproximare, ecuaţia ei şi coeficientul de
36

corelaţie. Acesta are valoarea R = R 2 = 0,8935 = 0,94525 După cum se observă, coeficientul
de corelaţie are o valoare bună, mult deasupra limitei inferioare de 0,7;
Pentru a putea utiliza funcţia obţinută este necesar să facem un artificiu, după cum
urmează:
• Se construieşte tabelul din figura 8.5;
• În celula J4 se scrie valoarea deplasamentului Dwt;
• Se selectează din nou celula J4;
• Din meniul Insert > Name > Define > se deschide cutia de dialog Define Name;
• În câmpul de editare Names in Workbook se scrie numele x. De acum înainte celula J4
poate fi referită prin acest nume. El este util pentru a putea folosi ecuaţia obţinută mai sus cu
cât mai puţine modificări;

Fig.8.4.

H I J K • Se revine în foaia cu diagrama Chart1;


3
• Se selectează ecuaţia din diagramă cu un clic.
4 Dwt [t]= 16500
5 Lpp [m]= 143,9986 Cu al doilea clic se intră în regimul de editare a
6 textului ecuaţiei şi se selectează textul ei începând de
7 la semnul =
Fig.8.5. • Din meniul Edit > Copy, se copiază în
memorie textul ecuaţiei;
• Se revine în foaia Sheet1 şi se selectează celula J5;
• Edit > Paste, se lipeşte în celulă textul = -6E-11x3 + 3E-06x2 - 0,035x + 249,32
• Aşa cum apare acum, acest text nu poate constitui o formulă de calcul deoarece lipsesc
operatorii de înmulţire şi de ridicare la putere. Ca atare, se va modifica textul la forma = -6E-
11*x^3 + 3E-06*x^2 - 0,035*x + 249,32
• După modificare şi apăsarea tastei ENTER, formula din celulă capătă forma = -
0,00000000006*x^3 + 0,000003*x^2 - 0,035*x + 249,32, iar rezultatul afişat este 219,0425;
Acest rezultat este totuşi viciat datorită numărului redus de cifre semnificative ale
coeficienţilor ecuaţiei.
Metode Numerice – Laborator 8 37

Pentru a repara acest neajuns trebuie procedat astfel:


• În foaia de diagrame Chart1 se face dublu clic pe ecuaţia afişată > se deschide cutia de
dialog Format Data Labels;
• Se selectează pagina Number;
• Din lista Category se selectează articolul Number;
• Din butonul incremental Decimal Places se măreşte numărul de zecimale la o valoare
mult mai mare, de exemplu 15;
• Se reface procedura de copiere a ecuaţiei din diagramă în celula J5, modificarea şi
completarea ei. Textul obţinut va fi = -0,000000000059495*x^3 + 0,000002717453677*x^2 -
0,035023513721171*x + 249,316782452166, iar rezultatul afişat este 143,9965927 ceea ce
este cu mult mai exact.
Dacă se doreşte, acum se poate rezolva şi problema inversă şi anume, determinarea
deplasamentului care corespunde unei lungimi date, de exemplu deplasamentul care
corespunde lungimii de 120 m. Se procedează astfel:
• Se selectează celula J5;
• Din meniul Tools > Goal Seek > se deschide cutia de dialog Goal Seek care afişează
Set Cell J5;
• În câmpul To Value se scrie valoarea 120;
• În câmpul By changing cell se introduce prin selecţie celula J4;
• Se apasă butonul OK. Ca urmare, este afişată cutia de dialog Goal Seek Status care,
dacă o soluţie este detectabilă o va afişa. În acest caz se găseşte soluţia Dwt=12514,97.
În continuare se poate proceda la fel pentru determinarea ecuaţiei v=g(Dwt).
38

Laborator Nr.9: Derivarea numerică.


9.1. Tema: Aplicaţie de derivare numerică a unei funcţii definită prin puncte şi
aproximată prin interpolare prin metoda Lagrange, folosind EXCEL
În cele ce urmează este prezentată o aplicaţie elaborată sub EXCEL pentru calculul
numeric al derivatei unei funcţii dată prin 4 puncte şi interpolată prin metoda Lagrange.
Vom realiza această lucrare în două variante:
9.2. Realizarea folosind strict facilităţile de calcul celular.
Aplicaţia este construită sub forma tabelului din figura 9.1 şi se execută în următoarea
ordine:
• În domeniul D4:G4 se introduc indicii k. Ei nu sunt necesari aplicaţiei dar pot fi utili
pentru un aspect ordonat;
• În domeniul D5:G5 se introduc valorile absciselor xk;
• În domeniul D6:G6 se introduc valorile funcţiilor yk;

Fig.9.1.

• În celula D7 se introduce valoarea x la care se calculează derivata, în acest caz 1;


• În celula D8, pentru intervalul h de calcul al derivatei, se introduce formula =(G5-
D5)/1000000
• În celula D9, pentru x+h, se introduce formula =D7+D8
Metode Numerice – Laborator 9 39

• În celula D10, pentru x-h, se introduce formula =D7-D8


• În domeniul D11:G11 se introduc formulele pentru x1-xk, de forma =D5-D5, =D5-E5,
=D5-F5 şi =D5-G5
• În domeniul D12:G12 se introduc formulele pentru x2-xk, de forma =E5-D5, =E5-E5,
=E5-F5 şi =E5-G5
• În domeniul D13:G13 se introduc formulele pentru x3-xk, de forma =F5-D5, =F5-E5,
=F5-F5 şi =F5-G5
• În domeniul D14:G14 se introduc formulele pentru x4-xk, de forma =G5-D5, =G5-E5,
=G5-F5 şi =G5-G5
• În domeniul D15:G15 se introduc formulele pentru x-xk, de forma =D7-D5, =D7-E5,
=D7-F5 şi =D7-G5
4
• În domeniul D17:G17 se introduc formulele pentru produsele ∏ ( x − xk ), i = 1...4 , de
k = 1, i ≠ k
forma: =PRODUCT(E15:G15), =PRODUCT(D15;F15:G15), =PRODUCT(D15:E15;G15) şi
=PRODUCT(D15:F15)
• În domeniul D18:G18 se introduc formulele pentru (x+h)-xk , k=1,...,4 de forma =D9-
D5, =D9-E5, =D9-F5 şi =D9-G5
4
• În domeniul D20:G20 se introduc formulele pentru produsele ∏ ( x + h − xk ), i = 1...4
k = 1, i ≠ k
de forma: =PRODUCT(E18:G18), =PRODUCT(D18;F18:G18),
=PRODUCT(D18:E18;G18) şi =PRODUCT(D18:F18)
• În domeniul D21:G21 se introduc formulele pentru (x-h)-xk , k=1,...,4 de forma =D10-
D5, =D10-E5, =D10-F5 şi =D10-G5
4
• În domeniul D23:G23 se introduc formulele pentru produsele ∏ ( x − h − xk ), i = 1...4
k = 1, i ≠ k
de forma: =PRODUCT(E21:G21), =PRODUCT(D21;F21:G21),
=PRODUCT(D21:E21;G21) şi =PRODUCT(D21:F21)
4
• În domeniul D25:G25 se introduc formulele pentru produsele ∏ ( xi − xk ), i = 1...4 de
k = 1, i ≠ k
forma: =PRODUCT(E11:G11), =PRODUCT(D12;F12:G12), =PRODUCT(D13:E13;G13) şi
=PRODUCT(D14:F14)
• În domeniul D27:G27 se introduc formulele pentru polinoamele Lagrange Li(x) de
forma: =D17/D25, =E17/E25, =F17/F25, =G17/G25
• În domeniul D29:G29 se introduc formulele pentru produsele yiLi(x), i=1,...,4 de forma:
=D6*D27, =E6*E27, =F6*F27 şi =G6*G27
• În celula H29 se introduce formula de calcul a valorii funcţiei y în punctul x,
4
y ( x) = ∑ yi Li ( x) , de forma =SUM(D29:G29)
i =1
• În domeniul D31:G31 se introduc formulele pentru polinoamele Lagrange Li(x+h) de
forma: =D20/D25, =E20/E25, =F20/F25, =G20/G25
• În domeniul D33:G33 se introduc formulele pentru produsele yiLi(x+h), i=1,...,4 de
forma: =D6*D31, =E6*E31, =F6*F31 şi =G6*G31
• În celula H33 se introduce formula de calcul a valorii funcţiei y în punctul x+h,
4
y ( x + h) = ∑ yi Li ( x + h) , de forma =SUM(D33:G33)
i =1
• În domeniul D35:G35 se introduc formulele pentru polinoamele Lagrange Li(x-h) de
forma: =D23/D25, =E23/E25, =F23/F25, =G23/G25
• În domeniul D37:G37 se introduc formulele pentru produsele yiLi(x+h), i=1,...,4 de
40

forma: =D6*D35, =E6*E35, =F6*F35 şi =G6*G35


• În celula H35 se introduce formula de calcul a valorii funcţiei y în punctul x+h,
4
y ( x − h) = ∑ yi Li ( x − h) , de forma =SUM(D35:G35)
i =1
• În celula I29 se introduce formula de calcul a diferenţei centrate în punctul x,
y (x + h ) − y (x − h )
y cx (x ) = , în forma =(H33-H37)/2/D8
2h
• În celula I33 se introduce formula de calcul a diferenţei la dreapta în punctul x,
y (x + h ) − y (x )
y xd (x ) = , în forma =(H33-H29)/D8
h
• În celula I35 se introduce formula de calcul a diferenţei la stânga în punctul x,
y (x ) − y (x − h )
y xs (x ) = , în forma =(H29-H37)/2/D8
h
Cu aceasta aplicaţia este încheiată şi se pot obţine orice valori ale funcţiei y şi ale
derivatei sale în intervalul de definiţie prin simpla modificare a valorii lui x din celula D7.
De asemenea, se pot schimba punctele de definiţie ale funcţiei y(x) operând asupra
valorilor din domeniile D5:G5 şi, respectiv, D6:G6.
9.3. Realizarea folosind facilităţile de calcul celular combinate cu funcţiile definite de
utilizator prin VBA
Funcţia care realizează interpolarea folosind toate punctele intervalului (vezi Laboratorul
7) este următoarea:
Function Lagrange(Dom_x As Range, Dom_y As Range, x)
Dim n As Integer
Dim valx() As Single, valy() As Single
n = Dom_x.Count
If (x < Dom_x(1, 1)) Or (x > Dom_x(1, n)) Then
Lagrange = "Extrapolare"
Else
F=0
For i = 1 To n
L=1
For k = 1 To n
If k <> i Then L = L * (x - Dom_x(1, k)) / (Dom_x(1, i) - Dom_x(1, k))
Next k
F = F + Dom_y(1, i) * L
Next i
Lagrange = F
End If
End Function

Această funcţie se scrie într-o foaie de modul a editorului de Visual Basic.


Într-o foaie de calcul diferită de aplicaţia anterioară se crează tabelele şi diagrama din
figura 9.2.
- În domeniul A2:E4 se generează tabelul de valori pentru k, xk şi yk la fel ca la aplicaţia
anterioară;
- În celula B5 se introduce valoarea x pentru care trebuie calculată derivata
- În celula B6 se introduce formula =(E3-B3)/1000000 pentru calculul pasului de derivare h;
- În celula B7 se introduce formula =B5-B6 pentru calculul coordonatei xs (x stânga);
- În celula B8 se introduce formula =B5+B6 pentru calculul coordonatei xd (x stânga);
- În celula B9 se introduce formula
=(Lagrange(B3:E3,B4:E4,B8)-Lagrange(B3:E3,B4:E4,B7))/2/B6
pentru calculul derivatei centrate;
Metode Numerice – Laborator 9 41

Fig. 9.2.
- În celula B10 se introduce formula
=(Lagrange(B3:E3,B4:E4,B5)-Lagrange(B3:E3,B4:E4,B7))/B6
pentru calculul derivatei la stânga;
- În celula B11 se introduce formula
=(Lagrange(B3:E3,B4:E4,B8)-Lagrange(B3:E3,B4:E4,B5))/B6
pentru calculul derivatei la dreapta;
Se observă că valorile obţinute sunt identice cu cele de la prima aplicaţie, dar aplicaţia este
obţinută mai rapid folosind mai puţine celule.
Obs.: Dacă drept valoare de calcul a derivatei (celula B5) se foloseşte o valoare de capăt
de interval (-2 sau 2) în unele dintre celulele pentru rezultate (domeniul B9:B11) va apare
inscripţia #VALUE!. Acest lucru se întâmplă deoarece funcţia LAGRANGE returnează
rezultatul de tip şir de caractere “Extrapolare” care nu poate fi folosit mai departe în calculele
numerice.
Pentru graficul funcţiei de aproximare Lagrange, în celula B15 se introduce formula:
=Lagrange($B$3:$E$3,$B$4:$E$4,B14) care se extinde până la ultima coloană.
Domeniile B3:E3, B4:E4 şi B14:L14, B15:L15 se folosesc pentru trasarea diagramei din
partea inferioară a figurii 9.2.
42

Laborator Nr.10: Aplicaţii de integrare numerică sub EXCEL

10.1. Metoda trapezelor şi metoda Simpson

Fig.10.1.
Pentru a rezolva problema integrării unei funcţii dată prin puncte, folosind metodele
menţionate în titlu, a fost aleasă funcţia y ( x) = x 2 − 4 . În realitate, integrarea prin metodele
trapezelor şi Simpson sunt folosite pentru o funcţie dată prin puncte şi a cărei expresie
analitică nu se cunoaşte sau una cu expresie analitică cunoscută dar a cărei integrare analitică
este dificilă. În acest exemplu, expresia analitică este utilă pentru a putea face comparaţii
privind precizia de integrare.
Rezolvarea este făcută în tabelul din figura 10.1, care se completează astfel:
- Pentru metoda trapezelor
• Se completează domeniul D3:L3 cu valorile abscisei x;
• Se completează domeniul D4:L4 cu valorile funcţiei y. Ele pot fi date măsurate
experimental. În acest exemplu au fost folosite formule analitice. Astfel, în celula D4 se
introduce formula =D3^2-4, în celula E4 se introduce formula =E3^2-4, etc. Şi mai simplu,
se poate proceda selectând celula D4, “apucând-o” de mânerul din colţul din dreapta de jos şi
extinzându-i conţinutul peste restul domeniului;
Dacă se calculează pe cale analitică integrala se obţine:
x
2 3
∫ ( x − 4)dx = ( x + 8) / 3 − 4( x + 2)
−2
• În domeniul D5:L5 au fost introduse formulele de calcul analitic următoare: în celula
D5 formula =(D3^3+8)/3-4*(D3+2), în celula E5 formula =(E3^3+8)/3-4*(E3+2), etc, sau
prin selectare şi extindere, ca mai înainte.
• În domeniul E6:L6 se introduc diferenţele x − x , sub forma: în celula E6 formula
i i −1
=E3-D3, în celula F6 formula =F3-E3, etc. Şi aici se poate proceda prin selectare şi extindere
a conţinutului;
• În domeniul E7:L7 se introduc sumele ( y + y ) / 2 , sub forma: în celula E7 formula
i i −1
=(E4+D4)/2, în celula F7 formula =(F4+E4)/2, etc, sau prin selectare şi extindere, ca mai sus;
• În domeniul E8:L8 se introduc produsele ( x − x )( y + y ) / 2 , sub forma: în
i i −1 i i −1
celula E8 formula =E6*E7, în celula F8 formula =F6*F7, etc, sau prin selectare şi extindere,
ca mai sus;
• Pentru calculul integralei, mai întâi se completează celula D9 cu valoarea 0, apoi
• în celula E9 se introduce formula =D9+E8;
• Se selectează celula E9 şi se extinde conţinutul ei peste restul domeniului.
Metode Numerice – Laborator 10 43

- Pentru metoda Simpson


• În domeniul E10:K10 se introduc formulele (5yi-1 + 8yi - yi+1)/12 astfel: în celula E10
se introduce formula =(5*D4+8*E4-F4)/12 şi apoi se extinde pe restul domeniului;
• În domeniul E11:K11 se introduc produsele (xi-xi-1) (5yi-1 + 8yi - yi+1)/12 astfel: în
celula E11 se introduce formula =E6*E10 şi se extinde pe restul domeniului;
• Pentru calculul integralei, mai întâi se completează celula D12 cu valoarea 0, apoi
• în celula E12 se introduce formula =D12+E11;
• Se selectează celula E12 şi se extinde conţinutul ei peste restul domeniului.
- Pentru calculul erorilor metodelor
• În domeniul E13:L13 se introduc formulele 100(Ie-Ia)/Ie (unde Ie=integrala exactă iar
Ia=integrala aproximativă), sub forma: în celula E13 formula =100*(E5-E9)/E5 şi se extinde
pe restul domeniului;
• În domeniul E14:K14 se introduc formulele similare sub forma: în celula E14 formula
=100*(E5-E12)/E5 şi se extinde pe restul domeniului.
Se observă prezenţa unor erori datorate formei de aproximare a integralei. Ele vor fi cu atât
mai mici cu cât diviziunea intervalului este mai fină. De asemenea, erorile sunt extrem de
mici în cazul metodei Simpson. Teoretic ele ar trebui să fie nule deoarece formula Simpson
este exactă pentru polinoame de până la gradul doi inclusiv. Dacă apar unele mici erori ele se
datorează unor erori de trunchiere comise de calculator.

10.2. Metoda de cuadratură Gauss.


Această metodă este destinată integrării numerice a funcţiilor analitice complicate, pentru
care găsirea unei formule de integrare analitice ar necesita un efort prea mare de calcul
analitic.
În continuare vom prezenta metoda de cuadratură Gauss pentru ordinele n=2 şi n=3, care
necesită calculul valorilor funcţiei de integrat în 2 şi, respectiv, 3 puncte, exactă pentru
polinoame de până la gradele 3 şi, respectiv, gradul 5.
- Pentru metoda de cuadratură Gauss n=2, conform tabelului din figura 10.2, se procedează
astfel:

Fig.10.2. Fig.10.3.

• În celula D16 se introduce formula =-0,5*(L3-D3)/SQRT(3)+0,5*(L3+D3)


• În celula D17 se introduce formula =0,5*(L3-D3)/SQRT(3)+0,5*(L3+D3)
• În celula D18 se introduce formula =D16^2-4
• În celula D19 se introduce formula =D17^2-4
• În celula D20 se introduce formula =0,5*(L3-D3)*D18
• În celula D21 se introduce formula =0,5*(L3-D3)*D19
• În celula D22 se introduce formula =D20+D21
44

• În celula D23 se introduce formula =(L5-D22)/L5*100


- Pentru metoda de cuadratură Gauss n=3, conform tabelului din figura 10.3, se procedează
astfel:
• În celula D25 se introduce formula =-0,5*(L3-D3)*0,7746+0,5*(L3+D3)
• În celula D26 se introduce formula =0+0,5*(L3+D3)
• În celula D27 se introduce formula =0,5*(L3-D3)*0,7746+0,5*(L3+D3)
• În celula D28 se introduce formula =D25^2-4 şi se extinde şi peste D29 şi D30;
• În celula D31 se introduce formula =0,5*(L3-D3)*D28
• În celula D32 se introduce formula =0,5*(L3-D3)*D29
• În celula D33 se introduce formula =0,5*(L3-D3)*D30
• În celula D34 se introduce formula =0,5556*D31+0,88888*D32+0,55556*D33
• În celula D35 se introduce formula =(L5-D34)/L5*100
Metode Numerice – Laborator 11 45

Laborator Nr.11: Aplicaţie de integrare a ecuaţiilor diferenţiale prin metode


Euler sub EXCEL
În figura 11.1 este prezentată o aplicaţie care ilustrează principiul de lucru cu metodele de
integrare Euler directă (simplă) şi Euler perfecţionat (Euler predictor corector).
Pentru simplitate a fost aleasă funcţia y = x 2 a cărei derivată este y ′ = f ( x, y ) = 2 x .
Lucrarea decurge astfel:
• Se crează tabelul din domeniul C3:J7 şi se completează domeniul D3:J3 cu valorile abscisei x;
• Se completează domeniul D4:J4 cu valorile funcţiei f(x,y), astfel: în celula D4 se introduce
formula =2*D3, apoi se copiază această formulă pe restul domeniului, pâna la J4;
• Pentru comparaţie, se completează domeniul D5:J5 cu formula analitică a lui y, astfel: în
celula D5 se introduce formula =D3^2, apoi se extinde formula pe restul domeniului;
• Se completează celula D6 cu valoarea iniţială y0, adică 0;
• Se completează domeniul E6:J6 cu formula de integrare Euler directă,
y
i +1
=y + x(
i i +1 i
) ( )
− x ⋅ f x , y , astfel: în celula E6 se introduce formula =D6+D4*(E3-D3),
i i
apoi se extinde această formulă pe restul domeniului;
• Se completează celula D7 cu valoarea iniţială y0, adică 0;
i
(
• yi(+11) = y + 0.5 ⋅ x )[ ( ) (
−x ⋅ f x ,y + f x
i +1 i i i
)]
, y (0 ) , astfel: în celula E6 se introduce
i + 1 i +1
formula =D7+0,5*(E3-D3)*(D4+E4) apoi se extinde această formulă pe restul domeniului;
Se observă că, deoarece f(x,y) nu depinde de y, condiţia lui Lipschitz este automat îndeplinită şi
formula predictor corector a lui Euler dă, în acest caz, rezultate exacte, spre deosebire de cea
directă, aşa cum se vede din diagrama din figură ca şi din tabel.

Fig.11.1.
Aplicaţie de integrare a ecuaţiilor diferenţiale prin metode Runge-Kutta IV sub EXCEL
Se consideră ecuaţia y = x 2 2 , cu derivata y′ = x . Pentru a integra ecuaţia y′ = x se va folosi
mai întâi formula Runge-Kutta de ordinul IV - varianta formulei de treime, şi apoi varianta formulei
de optime, construind tabelele din figura 11.1.
46

Formulele după care se rezolvă o ecuaţie diferenţială de forma y ′ = f (x, y ) cu condiţia iniţială
y (x0 ) = y0 , folosind metoda Runge-Kutta de ordinul 4, sunt:
• Pentru formula de treime:
yi +1 = yi + (k 0 + 2k1 + 2k 2 + k3 ) / 6 ; k 0 = h ⋅ f ( xi , yi ) ; k1 = h ⋅ f ( xi + h / 2, yi + k 0 / 2)
k 2 = h ⋅ f ( xi + h / 2, yi + k1 / 2) ; k3 = h ⋅ f ( xi + h, yi + k 2 )
• Pentru formula de optime:
yi +1 = yi + (k 0 + 3k1 + 3k 2 + k3 ) / 8 ; k 0 = h ⋅ f ( xi , yi ) ; k1 = h ⋅ f ( xi + h / 3, yi + k 0 / 3) ;
k 2 = h ⋅ f ( xi + 2h / 3, yi + k1 − k 0 / 3) ; k3 = h ⋅ f ( xi + h, yi + k 2 − k1 + k 0 )
Pentru varianta formulei de treime se procedează astfel:
• Se selectează celula D3;
• Din meniul Insert > Name > Define, se atribuie celulei D3 numele h;
• În celula D4 se introduce valoarea 0 pentru x0;
• În celula E4 se introduce formula =D4+h
• Se extinde formula din celula E4 peste restul domeniului E4:J4
• În celula D5 se introduce formula =D4 şi se extinde această formulă peste restul domeniului
D5:J5
• În celula D6 se introduce formula =D4^2/2 şi se extinde această formulă peste restul
domeniului D6:J6
• În celula E7 se introduce formula =h*D5 şi se extinde această formulă peste restul
domeniului E7:J7
• În celula E8 se introduce formula =D4+h/2 şi se extinde această formulă peste restul
domeniului E8:J8
• În celula E9 se introduce formula =h*E8 şi se extinde această formulă peste restul
domeniului E9:J9
• În celula E10 se introduce formula =D4+h/2 şi se extinde această formulă peste restul
domeniului E10:J10

Fig.11.2.
Metode Numerice – Laborator 11 47

• În celula E11 se introduce formula =h*E10 şi se extinde această formulă peste restul
domeniului E11:J11
• În celula E12 se introduce formula =D4+h şi se extinde această formulă peste restul
domeniului E12:J12
• În celula E13 se introduce formula =h*E12 şi se extinde această formulă peste restul
domeniului E13:J13
• În celula D14 se completează valoarea iniţială 0 pentru y
• În celula E14 se introduce formula =D14+(E7+2*E9+2*E11+E13)/6 şi se extinde această
formulă peste restul domeniului E14:J14
Cu aceasta, tabelul de calcul pentru rezolvarea ecuaţiei diferenţiale y ′ = x prin metoda Runge-
Kutta de ordinul IV cu formula de treime, este terminat.
Dacă se doreşte un alt pas, se modifică numai valoarea pasului de la celula D3.
Pentru altă valoare iniţială a lui y se modifică numai valoarea din celula D14.
Pentru a extinde domeniul de integrare se procedează astfel:
• Se selectează domeniul J4:J14
• Se extinde domeniul selectat spre dreapta cu numărul de coloane dorite.

Pentru varianta formulei de optime se procedează astfel:


• În celula D17 se introduce valoarea 0 pentru x0;
• În celula E17 se introduce formula =D17+h
• Se extinde formula din celula E17 peste restul domeniului E17:J17
• În celula D18 se introduce formula =D17 şi se extinde această formulă peste restul
domeniului D18:J18
• În celula D19 se introduce formula =D17^2/2 şi se extinde această formulă peste restul
domeniului D19:J19
• În celula E20 se introduce formula =h*D18 şi se extinde această formulă peste restul
domeniului E20:J20
• În celula E21 se introduce formula =D17+h/3 şi se extinde această formulă peste restul
domeniului E21:J21
• În celula E22 se introduce formula =h*E21 şi se extinde această formulă peste restul
domeniului E22:J22
• În celula E23 se introduce formula =D17+2*h/3 şi se extinde această formulă peste restul
domeniului E23:J23
• În celula E24 se introduce formula =h*E23 şi se extinde această formulă peste restul
domeniului E24:J24
• În celula E25 se introduce formula =D17+h şi se extinde această formulă peste restul
domeniului E25:J25
• În celula E26 se introduce formula =h*E25 şi se extinde această formulă peste restul
domeniului E26:J26
• În celula D27 se completează valoarea iniţială 0 pentru y
• În celula E27 se introduce formula =D27+(E20+3*E22+3*E24+E26)/8 şi se extinde această
formulă peste restul domeniului E27:J27
Cu aceasta, tabelul de calcul pentru rezolvarea ecuaţiei diferenţiale y′ = x prin metoda Runge-
Kutta de ordinul IV cu formula de optime, este terminat. Procedurile de schimbare a pasului,
condiţiei iniţiale şi de extindere a domeniului de integrare sunt similare cu cele de mai înainte.
48

Laborator Nr.12: Valori şi vectori proprii. Calculul pulsaţiilor proprii ale


unui arbore cu mase concentrate, la vibraţii de încovoiere. Rezolvare cu
EXCEL.
Se consideră arborele din figura 1,
având secţiunea constantă, cu
momentul de inerţie I, cu 3 mase
concentrate egale de valoare m.
Forţa de inerţie care acţionează
asupra unei mase concentrate în timpul
vibraţiei este:
F = −m&y&
j j
(12.1)
Conform principiului reciprocităţii
Fig.12.1. deplasărilor, deplasarea pe verticală a
unui punct i în vibraţie este:
(12.2)
3
yi = − ∑ δ ij m&y& j
j =1

unde δ ij este coeficientul de influenţă care dă mărimea deplasării punctului i cauzată de o


forţă unitară aplicată în punctul j.
Din calculul deformaţiilor la încovoiere, cu forţe Fi=1, se obţin coeficienţii de influenţă cu
valorile:

δ11 = δ 33 = 9α , δ 22 = 16α , δ12 = δ 21 = δ 23 = δ 32 = 11α , δ13 = δ 31 = 7α (12.3) ,


l3
unde α = (12.4)
768EI

Admiţând că vibraţiile sunt armonice, deci că funcţiile de timp ale deplasărilor sunt de
forma:
yi = f i sin (ωt + ϕ ) (12.5)
după derivări, înlocuiri, restrângeri şi ordonări, se obţine sistemul:
(9 − λ ) f1 + 11 f 2 + 7 f 3 = 0 
 1
11 f1 + (16 − λ ) f 2 + 11 f 3 = 0 (12.6) unde λ= (12.7 )
mαω 2
7 f1 + 11 f 2 + (9 − λ ) f 3 = 0 

Pentru ca sistemul să aibă soluţii diferite de soluţia banală f1=f2=f3=0, trebuie ca


determinantul său să fie nul, adică trebuie ca:

9−λ 11 7
11 16 − λ 11 = 0 (12.8)
7 11 9−λ

ceea ce conduce la o ecuaţie de gradul 3 în λ numită “ecuaţie caracteristică”, ale cărei


rădăcini numite “valori proprii” dau pulsaţiile proprii ale arborelui.
Pe acest suport teoretic, în continuare, sunt prezentate următoarele etape de lucru în
EXCEL:

Rezolvarea ecuaţiei - determinarea valorilor proprii.


Deoarece pulsaţiile proprii sunt mărimi fizice, nu are sens căutarea de soluţii în domeniul
negativ şi eventuala explorare a acestuia este utilă numai pentru a vedea câte soluţii pozitive
Metode Numerice – Laborator 12 49

mai rămân de determinat.


Tot ceea ce se ştie cu precizie este faptul că ecuaţia caracteristică este de gradul trei şi că,
deci, sunt de căutat trei soluţii reale. Nu există indicii asupra valorilor aproximative ale
rădăcinilor ecuaţiei caracteristice aşa încât va fi iniţiat un proces de calcul al valorilor ecuaţiei
pe un anumit domeniu, până când sunt determinate intervalele de schimbare a semnului. Dacă
se reuşeşte să se găsească patru asemenea intervale, se dispune de o localizare aproximativă a
rădăcinilor.

Fig.12.2.
Cu ajutorul facilităţii Chart, tipul Scatter, se construieşte diagrama ecuaţiei caracteristice.
După aceasta se face o aproximare polinomială de gradul trei cu ajutorul facilităţii Trendline.
Aceasta permite aprecierea vizuală a variaţiei ecuaţiei caracteristice, pentru a vedea poziţia
aproximativă a rădăcinilor ecuaţiei şi punctele ei de extremum. Acest lucru este necesar
deoarece printre procedurile folosite de Solver se află unele de tip Newton-Raphson, care
caută soluţii de-a lungul tangentei la o curbă, în direcţia axei rădăcinilor, şi această direcţie
depinde de poziţia valorii iniţiale a variabilei la prima iteraţie, în raport cu poziţia extremului
cel mai apropiat.
Pentru această primă fază, în concordanţă cu figura 12.2, lucrarea decurge astfel:
50

• În celula C4 se introduce o valoare iniţială pentru variabila λ;


• În domeniul C5:E7 se introduce matricea coeficienţilor ecuaţiilor sistemului (12.6), astfel:
în celula C5, formula =9-C4; în celula D6, formula =16-C4; în celula E7, formula =9-C4, iar
în restul celulelor domeniului se introduc, corespunzător, valorile 11 şi 7 conform poziţiilor
lor în matrice;
• În celula F5 se introduce formula =MDETERM(C5:E7);
• Se construieşte tabelul din domeniul C9:M10;
• În domeniul C9:M9 se introduc valorile lui λ. Aceste valori au foste determinate prin
încercări urmărind, cât mai atent cu putinţă, unde are loc schimbarea de semn a rezultatului
afişat de celula F5;
• În domeniul C10:M10 se introduc rezultatele afişate de celula F5 ca urmare a introducerii
de valori în celula C4 pentru λ;
• Din meniul Insert > Chart > On This Sheet, se deschide cutia de dialog Chart Wizard
cu care se crează diagrama funcţiei caracteristice. Pe această diagramă se observă aproximativ
valorile rădăcinilor, ceea ce este suficient pentru a oferi facilităţii Solver valori iniţiale de
calcul;
• Pentru a determina valoarea primei soluţii λ1, se introduce în celula C4 o valoare apropiată
de cea a soluţiei, de exemplu prima valoare unde are loc o schimbare de semn, adică 0,5;
• Din meniul Tools > Solver, se deschide cutia de dialog Solver Parameters, unde se fac
setările:
- În câmpul Set Target Cell se introduce celula F5;
- Ca opţiune Equal To se selectează Value of: şi se completează câmpul de valoare cu
valoarea 0;
- În câmpul By Changing Cells se introduce celula C4;
• Se apasă butonul Solve. Ca rezultat se obţine valoarea 0,444 pentru λ1;
• În continuare nu mai este necesară modificarea setărilor din Solver Parameters. Pentru a
determina valoarea λ2 şi λ3 se dau ca valori iniţiale ale celulei C4 valorile 2,5 şi, respectiv, 30
şi se obţin soluţiile 2 şi 31,556;
• Pe măsură ce se obţin valorile proprii, ele se înscriu în tabelul din domeniul L3:M6 pe
coloana λ;
• În celula M4 se introduce formula =SQRT(768/L4), În celula M5 se introduce formula
=SQRT(768/L5), iar în celula M6 se introduce formula =SQRT(768/L6). Ceea ce se obţine
768 EI EI
nu sunt valorile pulsaţiilor proprii ωi, care are formula de calcul ωi = = ci ,
λi ml 3
ml 3
ci valorile coeficienţilor ci;
Determinarea vectorilor proprii.
Vectorii proprii sunt acele valori ale lui fij, j=1...3, care satisfac sistemul (12.6) pentru
diferitele valori ale lui λj, i=1...3. Aceşti vectori compun o matrice [f] denumită matrice
modală ale cărei coloane se numesc vectori proprii:
 f11 f12 f13 
[{ }{ }{ }]
1 2 3
{ }
[ f ] = f f f =  f 21 f 22 f 23  , unde vectorul propriu f j se obţine din sistemul
 f 31 f 32 f 33 
(12.6) în care a fost introdusă valoarea λj, i=1...3.
Pentru a obţine aceste valori se procedează astfel:
• În celula C27 se introduce valoarea pentru λ1;
• Dacă determinantul minor al variabilei f1 este nenul, se atribuie lui f1 valoarea 1, se înscrie
această valoare în celula F28 şi se completează domeniul C28:D29 cu valorile minorului
Metode Numerice – Laborator 12 51

rezultat din eliminarea liniei şi coloanei 1 din determinantul (12.8) având coeficienţii
recalculaţi pentru valoarea λ1;
• Cu valoarea f1=1, ecuaţiile a doua şi a treia din sistemul (12.6) vor căpăta ca membru drept
valorile -11 şi -7, valori care se înscriu în celulele E28 şi E29. Se vede, deci, că folosind ca
valoare f1=1, sistemul de ecuaţii ordinul 3 (12.6) a devenit un sistem de ordinul 2, în
necunoscutele f2 şi f3;
• În celula C30 se introduce formula =MDETERM(C28:D29)
• În domeniul C31:D32 se introduce determinantul variabilei f2 provenit din determinantul
sistemului redus la care a fost înlocuită prima coloană cu coloana termenilor liberi E28:E29
• În domeniul C34:D35 se introduce determinantul variabilei f3 provenit din determinantul
sistemului redus la care a fost înlocuită a doua coloană cu coloana termenilor liberi E28:E29
• În celula C33 se introduce formula =MDETERM(C31:D32)
• În celula C36 se introduce formula =MDETERM(C34:D35)
• În celula F31 se introduce formula de calcul pentru f2 sub forma =C33/C30
• În celula F34 se introduce formula de calcul pentru f3 sub forma =C36/C30. Acum, în
celulele F28, F31, F34 se găsesc valorile vectorului propriu f1, adică f11, f21 şi f31;
• Aşa cum se vede în figura 12.2, se procedează similar pentru determinarea celorlalţi doi
vectori proprii.
Fiecare dintre aceşti trei vectori proprii descriu modul de deformare al arborelui în timpul
vibraţiei cu pulsaţiile proprii.
Pentru a pune în evidenţă aceste forme, se procedează astfel:
• Se construieşte tabelul din domeniul C41:G44, unde: pe prima linie se scriu valori
convenţionale ale coordonatei x, adică 0, 1, 2, 3, 4, unde 0 şi 4 reprezintă reazemele arborelui,
iar 1, 2, 3, reprezintă punctele de concentrare ale maselor (acest mod de atribuire a
coordonatelor x este posibil dată fiind echidistanţa maselor concentrate); pe a doua linie se
scriu valorile deformaţiilor în punctele caracteristice, adică valorile vectorului propriu f1
completate în faţă şi în spate cu 0 (în reazeme deformaţia este nulă); pe a doua şi a treia linie
se procedează la fel pentru vectorii proprii f2 şi f3;
• Cu ajutorul meniului Insert > Chart > On This Sheet, se crează diagrama din partea de
jos a figurii 12.2, unde, după aproximarea prin funcţii polinomiale de ordin 2, 3 şi 4
(corespunzător cu numărul de intersecţii cu axa x) folosind facilitatea Trendline, se obţin
spectrele de deformare la vibraţie ale arborelui pentru cele trei pulsaţii proprii.
52

Laborator Nr. 13: Probleme de optimizare rezolvate cu EXCEL.

13.1 Probleme de optimizare lineară.


Fie următoarea problemă de optimizare:
Să se găsească
(
max 0,5 x1 + x2 )
x1 ≤ 2
x1 + x2 ≤ 3
− x1 + x2 ≤ 1
x1, x2 ≥ 0
Aceasta este o problemă de optimizare simplă
care are avantajul de a fi exprimată numai prin
Fig.13.1. două variabile, x1 şi x2, ceea ce oferă posibilitatea
unei interpretări geometrice în spaţiul 3D. Deoarece toate funcţiile şi restricţiile sunt lineare,
avem de a face cu o problemă de optimizare lineară.
Funcţia pentru care se cere maximul poate fi scrisă sub forma: z = 0,5 x1 + x2
ceea ce reprezintă ecuaţia unui plan înclinat faţă de toate axele.
Dacă se taie planul cu un plan de nivel de cotă z=d variabilă, se obţine o dreaptă de nivel a
cărei ecuaţie este 0,5 x1 + x2 = d , figura 13.1, dreaptă a cărei poziţie variază în funcţie de
valoarea lui d. Distanţa de la origine la dreaptă poate fi calculată şi este egală cu 2d / 5 .
Pe de altă parte, funcţiile restricţie, reprezintă semispaţii delimitate de plane
perpendiculare pe planul orizontal, determinând la intersecţia cu acesta drepte cu ecuaţiile
egalităţi prezentate în figură. Volumul din spaţiu comun acestor semispaţii este o prismă
verticală cu baza de forma poligonului cenuşiu din figura 13.1.
Soluţiile admisibile ale problemei sunt cuprinse în interiorul acestui volum.
Dată fiind poziţia în spaţiu a planului, punctul soluţie a problemei se va găsi pe dreapta de
nivel cea mai depărtată de origine, pentru care distanţa 2d / 5 va fi maximă şi va îndeplini
totodată şi restricţiile impuse.
Acest punct este punctul B(1,2) şi, în continuare, vom
arăta cum se poate afla acest lucru folosind posibilităţile
facilităţii Solver din EXCEL.
Etapele de lucru sunt următoarele:
• Se construieşte tabelul din figura 13.2;
• În celula D3 se introduce o valoare arbitrară pentru
variabila x1 (de exemplu 0), iar în celula E3 se introduce o
Fig.13.2. valoare arbitrară pentru variabila x2 (de exemplu 0);
• În celula D4 se introduce formula pentru
funcţia obiectiv, sub forma =0,5*D3+E3
• În celula D5 se introduce formula pentru
prima funcţie restricţie, sub forma =D3
• În celula D6 se introduce formula pentru
a doua funcţie restricţie, sub forma
=D3+E3
• În celula D7 se introduce formula pentru
a treia funcţie restricţie, sub forma =-
D3+E3
• Din meniul Tools > Solver > se
Fig.13.3. deschide cutia de dialog Solver
Parameters din figura 13.3.
Metode Numerice – Laboratorul 13 53

• Se plasează cursorul în câmpul Set Target Cell şi apoi se selectează celula cu formula
funcţiei obiectiv, D4
• Dintre opţiunile Equal To se selectează opţiunea Max
• Se plasează cursorul în câmpul By Changing Cells şi se selectează domeniul D3:E3
constituit din celulele în care sunt memorate variabilele x1 şi x2 ale problemei;
• Pentru a introduce restricţiile problemei se apasă pe butonul Add > se deschide cutia de
dialog Add Constraint, figura 13.4;
• În câmpul Cell Reference se introduce celula care conţine formula de restricţionat. De
exemplu, pentru a introduce restricţia x1 ≤ 2 , se selectează celula D5 care conţine referinţa
către celula D3, care conţine pe x1;
• Din butonul listei derulante Constraint se selectează tipul de restricţie dorit. În acest caz a
fost selectat <=
• În câmpul alăturat listei Constraint se introduce
valoarea restricţie, în acest caz ea fiind 2;
• Pentru a adăuga o restricţie nouă fără a reveni în
cutia de dialog Solver Parameters, se apasă butonul
Add;
Fig.13.4. • Când introducerea restricţiilor a luat sfârşit, se apasă
butonul OK şi se revine la cutia de dialog Solver
Parameters;
• Restricţiile introduse sunt: D3:E3>=0 (adică x1 , x2 ≥ 0 ), D5 <=2 (adică x2 ≤ 2 ), D6<=3
(adică x1 + x2 ≤ 3 , şi D7<=1 (adică − x1 + x2 ≤ 1 );
• Dacă s-a comis vreo greşeală la introducerea unei anumite restricţii, respectiva restricţie
trebuie selectată cu un clic în lista Subject to the Constraints din cutia de dialog Solver
Parameters şi, după caz, se foloseşte butonul Delete pentru a o elimina sau butonul Change
pentru a deschide cutia de dialog Change Constraint (asemănătoare cu Add Constraint)
unde pot fi operate corecturile dorite;
• Stabilirea opţiunilor de rezolvare se realizează apăsând butonul Options > se deschide
cutia de dialog Solver Options, figura 13.5;
• Deoarece problema de rezolvat este lineară, se
selectează opţiunea Assume Linear Model;
• Timpul maxim de rezolvare este limitat la o valoare
care se stabileşte din câmpul Max Time şi care nu
poate fi mai mare de 32767 secunde;
• Numărul de iteraţii este limitat la o valoare care se
stabileşte din câmpul Iterations şi care nu poate fi mai
mare de 32767;
• Precizia de determinare a soluţiilor este stabilită prin
valoarea din câmpul Precision sub forma unui număr
cuprins între 0 şi 1. O valoare mică este benefică pentru
exactitatea soluţiei dar măreşte timpul de calcul. Pentru
Fig.13.5. teste, când nu suntem siguri că există o soluţie, se poate
încerca mai întâi cu o valoare mai mare;
• Dacă problema de optimizare conţine restricţii de tip întreg, valoarea Tolerance reprezintă
procentul admisibil de abatere a soluţiei întregi de la valoarea exactă;
• Opţiunile Estimate - Tangent şi Quadratic sunt folosite în procedura de căutare a unei
soluţii prin extrapolarea lineară după tangentă, respectiv prin extrapolare după o parabolă
(mai indicată pentru problemele nelineare);
• Opţiunile Derivatives - Forward şi Central se referă la modul de calcul al derivatelor
funcţiei obiectiv şi ale funcţiilor restricţie (formulă de derivare laterală sau centrată);
54

• Opţiunile Search - Newton şi Conjugate indică metoda de căutare a soluţiei: Newton


pentru metode de tip Newton care obţin soluţia mai repede dar cu consum de memorie mai
mare, Conjugate pentru obţinerea soluţiei cu un mai mic consum de memorie dar într-un
număr mai mare de iteraţii;
• Se apasă butonul OK şi se revine la cutia de dialog Solver Parameters;
• În cutia de dialog Solver Parameters se
apasă butonul Solve. Este declanşat procesul
de rezolvare, după care se deschide cutia de
dialog Solver Results, figura 13.6;
• Dacă se doreşte păstrarea rezultatelor
rezolvării se selectează opţiunea Keep Solver
Solution şi se apasă butonul OK.
Fig.13.6. În problema noastră a fost obţinut rezultatul
x1=1 şi x2=2, valoarea funcţiei obiectiv fiind
2,5.
O problemă de optim poate să nu aibă soluţie. Fie problema:
max( x1 + x2 )
x1 − x2 ≥ 0
− 0,5 x1 + x2 ≥ 0
x1 , x2 ≥ 0
Aceasta corespunde situaţiei din figura 13.7, unde domeniul soluţiilor admisibile
(reprezentat cu gri) este deschis către infinit, astfel încât orice valoare ar lua cota d a planului
de nivel există întotdeauna în planul funcţiei obiectiv puncte situate mereu mai sus.

Fig.13.7. Fig.13.8.
Pentru a rezolva aceastăm problemă se procedează asemănător cu rezolvarea anterioară:
• Se realizează tabelul din figura 13.8, în aceeaşi foaie de lucru cu exerciţiul de mai înainte;
• În celula I3 se introduce o valoare arbitrară (de exemplu 1) pentru variabila x1, iar în
celula J3 o valoare arbitrară (1) pentru variabila x2;
• În celula I4 se introduce formula funcţiei obiectiv, de forma =I3+J3
• În celula I5 se introduce formula primei funcţii restricţie, de forma =I3-J3
• În celula I5 se introduce formula celei de a doua funcţii restricţie, de forma =-0,5*I3+J3
• Din meniul Tools > Solver > se deschide cutia de dialog Solver Parameters;
• Cutia Solver Parameters memorează toţi parametrii de rezolvare introduşi la problema
anterioară. Pentru a-i elimina, făcând cutia disponibilă pentru noul caz de rezolvare, se apasă
butonul Reset All;
• În continuare se procedează la fel ca la rezolvarea anterioară, cu deosebirea că, de această
dată cutia de dialog Solver Results va raporta că nu a fost posibilă găsirea unei soluţii.
• Dacă însă vom schimba condiţia de maxim în condiţie de minim, va fi găsită soluţia x1=0
şi x2=0, cu valoarea funcţiei obiectiv egală cu 0.
Metode Numerice – Laboratorul 13 55

Observaţie: Exemplele prezentate mai sus sunt concepute pentru un vector al variabilelor
X = ( x1 , x2 ) ∈ R 2 . Pentru un vector al variabilelor X = ( x1 , x2 ,...) ∈ R n interpretarea grafică nu
mai este posibilă, dar procedura de rezolvare poate fi extinsă fără modificări.

13.2. Probleme de optimizare nelineară.


Să presupunem acum că funcţia obiectiv nu mai este liniară.
De exemplu, problema:
(2 2
min x1 + x2 − 4 x1 − 4 x2 )
x1 + x2 ≤ 3
x1 ≤ 2,5
x2 ≤ 1
x1, x2 ≥ 0

este o problemă de optimizare nelineară cu restricţii lineare.


Fig.13.9. Funcţia obiectiv z = x12 + x22 − 4 x1 − 4 x2 este o suprafaţă
obţinută prin rotaţia unei curbe conice în jurul axei verticale
care trece prin punctul de minim necondiţionat (2,2), figura 13.9. Cercul reprezentat cu linie
întreruptă se obţine din intersecţia suprafeţei funcţiei obiectiv cu planul de cotă z=0.
Funcţiile restricţie determină semispaţiile delimitate de plane verticale şi evidenţiat prin
domeniul gri din figura 13.9.
Pentru rezolvarea acestui tip de problemă, ca şi pentru problema nelineară cu restricţii
nelineare (când locul planelor verticale este luat de suprafeţe verticale curbe) sunt folosite
metode de gradient.
Cu ajutorul EXCEL-ului, această problemă se rezolvă astfel:
• Se construieşte tabelul din figura 13.10;
• În celulele D3 şi E3 se introduc valori arbitrare pentru variabilele x1 şi x2;
• În celula D4 se introduce pentru funcţia obiectiv formula =D3^2+E3^2-4*D3-4*E3
• În celula D5 se introduce pentru prima funcţie restricţie formula =D3+E3
• În celula D6 se introduce pentru a doua funcţie restricţie formula =D3
• În celula D7 se introduce pentru a doua funcţie restricţie formula =E3
• Din meniul Tools > Solver > se deschide cutia de dialog Solver Parameters;
• Se selectează celula D4 pentru completarea câmpului Set Target Cell;
• În câmpul By Changing Cells se selectează domeniul D3:E3
• Restricţiile introduse vor fi: D3:E3>=0, D5<=3,
D6<=2,5, D7<=1
• De această dată, din cutia Solver Options se va
deselecta opţiunea Assume Linear Model, deoarece
problema este nelineară;
• Se apasă butonul Solve al cutiei de dialog Solver
Parameters şi se obţine soluţia optimă x1=1, x2=2, pentru
Fig.13.10. care valoarea minimă a funcţiei obiectiv este z= -7 (prin
care trece cercul cu linie continuă din figura 13.9).
13.3. O problemă practică - dimensionarea unui arbore cu volumul minim necesar
pentru a satisface condiţia de rezistenţă la încovoiere.
Fie arborele simplu rezemat din figura 13.11, cu încărcările figurate.
Din calculul de echilibru al forţelor şi momentelor se obţin:
56

 a a
V = F1 −  , V = F
1  L 2 L
Din calculul momentelor încovoietoare pe lungimea
arborelui se obţin, în punctele de moment maxim pe
tronsoanele arborelui, valorile:
M1 = V1 ⋅ l1 , M 2 = V1 ⋅ a, M 3 = V2 ⋅ l 3
Din condiţia de rezistenţă la încovoiere în secţiunea de
calcul cu indice 1:
M 32 V1l1
σ = 1 = ≤σ
1 W π d3 a
z1 1
se obţine prin reordonare:
Fig.13.11. πσ
a d3 − l ≥ 0
32V 1 1
1
În final, procedând la fel şi pentru secţiunile de calcul 2 şi 3, şi luând în considerare
condiţia de lungime constantă şi condiţiile de nenegativitate a variabilelor, se obţine problema
de minimizare a greutăţii arborelui exprimată în cele 6 variabile d1, d2, d3, l1,l2 şi l3, definită
sub forma:
π
min ρ  l d + l d + l d 
2 2 2
4 1 1 2 2 3 3
πσ
a d3 − l ≥ 0
32V 1 1
1
πσ
a d3 − a ≥ 0
32V 2
1
πσ
a d3 − l ≥ 0
32V 3 3
2
l +l +l = L
1 2 3
[
d1, d 2 , d 3 , l1, l2 , l3 ≥ 0 optional intregi ]
unde ρ este densitatea oţelului (7,8 10-3 g/mm3) şi σa este rezistenţa admisibilă la
încovoiere a oţelului din care este făcut arborele (de exemplu 100 N/mm2).
Se observă că aceasta este o problemă de optimizare nelineară cu restricţii nelineare şi,
opţional, în domeniul numerelor întregi. O astfel de problemă este foarte dificil de tratat
matematic şi, de asemenea, este foarte dificilă programarea ei cu un limbaj oarecare.
Cu această formulare se poate trece la rezolvarea problemei cu EXCEL.
Procedura de lucru este următoarea:
• Se crează tabelul din figura 13.12;
• În celula D4 se scrie valoarea forţei în N, de exemplu 10000;
• În celula D5 se scrie valoarea braţului forţei în mm, de exemplu 150;
• În celula D6 se scrie valoarea distanţei dintre reazeme L în mm, de exemplu 400;
• În celula D7 se scrie valoarea tensiunii admisibile la încovoiere σa în N/mm2, de exemplu 100;
• În celula D8 se scrie formula de calcul a reacţiunii V1, sub forma =D4*(D6-D5)/D6
• În celula D9 se scrie formula de calcul a reacţiunii V2, sub forma =D4-D8
• În celula D10 se scrie formula de calcul a coeficientului termenului în d3 din prima şi a
doua funcţie restricţie, sub forma =3,1418*D7/32/D8
Metode Numerice – Laboratorul 13 57

Fig.13.12.

• În celula D11 se scrie formula de calcul a coeficientului termenului în d3 din a treia funcţie
restricţie, sub forma =3,1418*D7/32/D9
• În celulele G4, H4 şi I4 se scriu, în mod arbitrar, valorile lungimilor tronsoanelor, fără să
fie necesar să avem grijă ca suma lor să fie egală cu distanţa dintre reazeme L;
• În celulele G5, H5 şi I5 se introduc valori arbitrare pentru diametrele tronsoanelor;
• Cu ajutorul butonului AutoSum (cel cu simbolul Σ, de pe bara cu scule Standard) se
introduce, în celula J4, formula de calcul a lungimii totale a tronsoanelor, =SUM(G4:I4)
• În celulele G6, H6 şi I6 se introduc formulele de calcul ale greutăţilor tronsoanelor, sub
formele =G4*G5*G5*3,1418*0,0078/32, =H4*H5*H5*3,1418*0,0078/32 şi, respectiv,
=I4*I5*I5*3,1418*0,0078/32
• În celula J6 se introduce formula de calcul a funcţiei obiectiv ca sumă a greutăţilor
tronsoanelor, sub forma =SUM(G6:I6) folosind butonul AutoSum, ca mai sus;
• În celulele G7, H7 şi I7 se introduc formulele de calcul ale primelor trei funcţii restricţie,
sub formele =D10*G5^3-G4, =D10*H5^3-D5 şi, respectiv, =D11*I5^3-I4
• Din meniul Tools > Solver > se deschide cutia de dialog Solver Parameters;
• Se selectează celula J6 pentru completarea câmpului Set Target Cell;
• Se selectează opţiunea Min din grupul Equal To;
• În câmpul By Changing Cells se introduce domeniul variabilelor G4:I5
• În lista Subject to the Constraints se introduc restricţiile: $G$4:$I$5>=0 pentru
nenegativitatea variabilelor, $G$4:$I$5=integer pentru selectarea valorilor optime ale
variabilelor din domeniul numerelor întregi, $G$7:$I$7>=0 pentru funcţiile restricţie
determinate de condiţiile de rezistenţă la încovoiere, J4=D6 pentru condiţia de egalitate a
sumei lungimilor tronsoanelor cu distanţa dintre reazeme;
• Se apasă butonul Solve. După circa 66 de iteraţii este obţinută soluţia optimă cu valorile
din figura 13.12. Dacă nu ar fi fost folosită condiţia de selectare a optimului din domeniul
numerelor întregi, rezultatul ar fi fost obţinut mult mai repede, după numai 8 iteraţii.
58

Cuprins
LABORATOR Nr.1: Utilizarea programului EXCEL pentru crearea unui document de calcul simplu:
calculul variaţiilor unor funcţii şi crearea unei diagrame centralizatoare .......................................................1
1.1 Intrarea în program.........................................................................................................................................1
1.2 Operaţii elementare frecvente ........................................................................................................................1
1.2.1 Operaţii de selectare .................................................................................................................................1
1.2.2 Operaţia de mutare a unei entităţi (foaie, celulă, rând, coloană): .............................................................1
1.2.3 Operaţia de copiere a unei entităţi ............................................................................................................2
1.2.4 Operaţia de inserare a unei entităţi ...........................................................................................................2
1.2.5 Operaţia de ştergere a unei entităţi ...........................................................................................................2
1.2.6 Intrarea în regimul de editare intracelulară ..............................................................................................2
1.3 Aranjarea convenabilă a documentului ..........................................................................................................2
1.4 Crearea tabelului ............................................................................................................................................8
1.5 Crearea diagramei centralizatoare ..................................................................................................................3
1.6 Crearea de macrocomenzi prin înregistrare....................................................................................................3
1.6.1 Comutarea din foaia de lucru Sheet1, unde se găseşte tabelul, în foaia Chart1 unde se găseşte diagrama
.................................................................................................................................................................................4
1.6.2 Comutarea din foaia de diagramă Chart1 în foaia de lucru Sheet1 ..........................................................4
1.7 Crearea de obiecte de interacţiune grafică .....................................................................................................4
1.7.1 Crearea unui buton de comutare din foaia de lucru în foaia cu diagrama ................................................4
1.7.2 Crearea unui buton de comutare din foaia cu diagrama în foaia de lucru ................................................5
1.7.3 Crearea unei cutii de dialog pentru comutarea de la tabel la diagramă ....................................................5
1.8 Salvarea fişierului...........................................................................................................................................6

LABORATOR Nr.2: Folosirea funcţiilor definite de utilizator sub EXCEL - Aplicaţie: Calculul volumului
de apă dislocat ........................................................................................................................................................7
2.1 Baze teoretice ..................................................................................................................................................7
2.2 Realizarea aplicaţiei sub EXCEL ....................................................................................................................7

LABORATOR Nr. 3: Rezolvarea ecuaţiilor prin metoda iterativă ................................................................11


3.1 Enunţul temei ................................................................................................................................................11
3.2 Rezolvare ......................................................................................................................................................11
3.3 Discuţii cu privire la cazurile b şi c...............................................................................................................13

LABORATOR Nr. 4: Rezolvarea sistemelor de ecuaţii liniare .......................................................................15


4.1 Enunţul temei ................................................................................................................................................15
4.2 Rezolvare ......................................................................................................................................................15

LABORATOR Nr. 5: Rezolvarea ecuaţiilor algebrice neliniare prin metode iterative ................................20
5.1 Enunţul temei ................................................................................................................................................20
5.2 Elemente teoretice .........................................................................................................................................20
5.3 Rezolvare ......................................................................................................................................................20

LABORATOR Nr. 6: Rezolvarea sistemelor de ecuaţii algebrice neliniare prin metoda Newton-Raphson
...............................................................................................................................................................................23
6.1 Enunţul temei ................................................................................................................................................23
6.2 Rezolvare clasică...........................................................................................................................................23
6.3 Rezolvare prin metoda Newton-Raphson (metoda Jacobianului) .................................................................20

LABORATOR Nr.7: Aplicaţie la aproximarea funcţiilor................................................................................27


7.1. Definirea temei.............................................................................................................................................27
7.2 Realizarea aplicaţiei ......................................................................................................................................28

LABORATOR Nr. 8: Aproximarea funcţiilor prin metoda funcţiilor spline carteziene şi prin metoda
regresiei.................................................................................................................................................................31
59
8.1. Enunţul temei de aproximare Spline ............................................................................................................31
8.2. Elemente teoretice ........................................................................................................................................31
8.3. Realizarea aplicaţiei .....................................................................................................................................31
8.4. Enunţul temei de regresie.............................................................................................................................35

LABORATOR Nr.9: Derivarea numerică.........................................................................................................38


9.1 Tema: Aplicaţie de derivare numerică a unei funcţii definită prin puncte şi aproximată prin interpolare prin
metoda Lagrange, folosind EXCEL.......................................................................................................................38
9.2 Realizarea folosind strict facilităţile de calcul celular...................................................................................38
9.3 Realizarea folosind facilităţile de calcul celular combinate cu funcţiile definite de utilizator prin VBA .....40

LABORATOR Nr.10: Aplicaţii de integrare numerică sub EXCEL..............................................................42


10.1. Metoda trapezelor şi metoda Simpson .......................................................................................................42
10.2. Metoda de cuadratură Gauss ......................................................................................................................43

LABORATOR Nr.11: Aplicaţie de integrare a ecuaţiilor diferenţiale prin metode Euler sub EXCEL .....45

LABORATOR Nr.12: Valori şi vectori proprii. Calculul pulsaţiilor proprii ale unui arbore cu mase
concentrate, la vibraţii de încovoiere. Rezolvare cu EXCEL...........................................................................48

LABORATOR Nr.13: Probleme de optimizare rezolvate cu EXCEL ............................................................52


13.1. Probleme de optimizare lineară..................................................................................................................52
13.2. Probleme de optimizare nelineară ..............................................................................................................55
13.3. O problemă practică - dimensionarea unui arbore cu volumul minim necesar pentru a satisface condiţia
de rezistenţă la încovoiere......................................................................................................................................56

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