LabNum.pdf
-
Upload
chesa-madalina -
Category
Documents
-
view
25 -
download
0
Transcript of LabNum.pdf
-
5/25/2018 LabNum.pdf
1/126
UniversitateaTransilvaniadin Brasov
Facultatea de Matematica-Informatica
E. SCHEIBER
Laborator de ANALIZ A NUMERIC A
SCILAB & MathCAD
Brasov
-
5/25/2018 LabNum.pdf
2/126
Tema de LABORATOR
Pentru a fi primit n examen trebuie efectuata si predata cadrului didacticcoordonator al activitatii de laboratorLucrarea de laborator de Analiza numer-ica/Calcul numeric.
Lucrarea consta din 2 teme:
Rezolvarea a cte unei probleme din toate temele cuprinse n Culegerea deprobleme.
Programarea unor metode de calcul numeric.
Fiecare tema primeste o nota iar media notelor reprezinta 50% din nota de exa-men.
Rezolvarea problemelor din Culegerea de probleme
Pe o foaieA5se vor scrie
1. Titlul capitolului;
2. Enuntul temei si al problemei;
3. Produsul informatic cu care s-a rezolvat probleme;
4. Rezultatele obtinute.
Pe prima foaie se trece
1. Numele si prenumele;2. Elemente de identificare a formatiei de studiu;
3. Numarul de ordine din catalog sau cel primit de la coordonatorul activitatiide laborator. n continuare ne referim la acest numar prin notatia I D.
2
-
5/25/2018 LabNum.pdf
3/126
3
La o tema, un student rezolva problema avnd numarul de ordineI D. DacaI Deste mai mare dect numarul problemelor atunci problema ce trebuie rezol-vata se obtine cu formula
I D mod1 NumarulProblemelor+1.
Se vor folosi urmatoarele produse informatice
Scilab - produs gratuit descarcabil din internet;
ndrumarul de laborator de Analiza numerica/Calcul numeric prezintamodulde rezolvare a problemelor.
1Restul mpartirii.
-
5/25/2018 LabNum.pdf
4/126
Tema de programare
Programarea unor metode de calcul numeric
Fiecare student va prezenta 2 aplicatii programate n Scilab.Cele doua aplicatii se aleg dintre
1. Rezolvarea unui sistem algebric printr-o metoda finita;
2. Rezolvarea unui sistem algebric printr-o metoda iterativa;
3. Formula de derivare numerica;
4. Formula de integrare numerica.
Documentatia cuprinde:
1. Datele de identificare.
(a) Autorul (nume, prenume, specializarea, grupa);
(b) Data predarii proiectului;
(c) Tema proiectului.
2. Formulele de calcul utilizate.
3. Problema de test cu rezolvarea matematica si calculele auxiliare pentru de-panare.
4. Reprezentarea algoritmilor n pseudocod (l. romna).
Exemplu de aplicatie Scilab
Metoda tangentei pentru rezolvarea ecuatiei algebrice f(x)=0, f : R Rconsta n construirea sirului (xk)kNdefinit prinxk+1 = xk f(xk)f(xk) .
Documentatia cuprinde:
4
-
5/25/2018 LabNum.pdf
5/126
5
1. Formula de calcul.
x0
R
xk+1 = xk f(xk)f(xk)
, kN
2. Problema de test.
Sa se rezolve ecuatie 2x x2 = 0, x0 = 1S-au calculatx1 = 2.6294457, x2 = 1.8807153.
3. Algoritmul metodei este dat pe pagina urmatoare.
Algorithm 1Pseudocodul metodei
1: procedureMETODA TANGENTEI2: generarea aproximaiei iniialexv3: i ter 04: do
5: i ter i ter +16: x xv f(xv)f(xv)7: nr m |x xv|8: xv x9: while(nr m eps) sii ter < nmi)
10: ifnr m< epsthen11: er
0
12: else
13: er 114: end if
15: returnx16: end procedure
4. Textele sursa.
Proiectul este alcatuit din 2 programeScilab:
(a) Datele problemei de test
function [f,df,x0,nmi,tol]=datas()
deff(y=f(x),y=2.^x-x.*x);
deff(y=df(x),y=2.^x.*log(2)-2*x);
x0=-0.5;
-
5/25/2018 LabNum.pdf
6/126
6
nmi=50;
tol=1e-5;
endfunction
(b) Rezolvarea problemei nucleul proiectului.
function [x,er]=mtangentei(path)
exec(path+\datas.sci,-1);
[f,df,x0,nmi,tol]=datas();
xv=x0;
sw=%t;
iter=0;
while sw
iter=iter+1;
x=xv-f(xv)./df(xv);printf("iter=%d x=%f\n",iter,x);
nrm=max(abs(x-xv));
xv=x;
if((iter>=nmi) | (nrm
-
5/25/2018 LabNum.pdf
7/126
7
n timp, la elaborarea acestuindru-
mar de laboratorau contribuit: Silviu Dumitrescu
Cristina Luca
Vlad Monescu
-
5/25/2018 LabNum.pdf
8/126
Cuprins
I Scilab 11
1 Elemente de programare n SCILAB 12
1.1 Obiecte Scilab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.2 Elemente de programare in Scilab . . . . . . . . . . . . . . . . . . . . 20
1.3 Functii(subprograme) n Scilab . . . . . . . . . . . . . . . . . . . . . . 22
1.4 Salvarea si restaurarea datelor . . . . . . . . . . . . . . . . . . . . . . 25
1.5 Grafica nScilab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
1.5.1 Grafica 2D . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
1.5.2 Grafica 3D . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
2 Algebra liniara numerica 31
2.1 Factorizarea unei matrice . . . . . . . . . . . . . . . . . . . . . . . . . 31
2.2 Rezolvarea sistemelor algebrice de ecuatii liniare . . . . . . . . . . . 33
3 Rezolvarea sistemelor si ecuatiilor algebrice 37
3.1 Rezolvarea sistemelor algebrice de ecuatii neliniare. . . . . . . . . . 37
3.2 Rezolvarea ecuatiilor algebrice . . . . . . . . . . . . . . . . . . . . . . 39
3.3 Rezolvarea ecuatiilor polinomiale . . . . . . . . . . . . . . . . . . . . 40
4 Rezolvarea problemelor de interpolare 42
4.1 Interpolare polinomiala . . . . . . . . . . . . . . . . . . . . . . . . . . 42
4.2 Interpolare cu functii spline cubice . . . . . . . . . . . . . . . . . . . 45
5 Derivare numerica 475.1 Derivarea functiilor de o variabila reala . . . . . . . . . . . . . . . . . 47
5.2 Cazul functiilor de mai multe variabile . . . . . . . . . . . . . . . . . 47
6 Metoda celor mai mici patrate 49
8
-
5/25/2018 LabNum.pdf
9/126
CUPRINS 9
7 Integrare numerica 55
7.1 Integrarea functiilor de o variabila reala . . . . . . . . . . . . . . . . . 557.2 Calculul numeric al integralelor duble. . . . . . . . . . . . . . . . . . 57
II MathCAD 62
8 Prezentare generala 63
8.1 Efectuarea calculelor numerice . . . . . . . . . . . . . . . . . . . . . . 648.1.1 Operatori MathCAD . . . . . . . . . . . . . . . . . . . . . . . . 648.1.2 Identificatori MathCAD . . . . . . . . . . . . . . . . . . . . . . 658.1.3 Constante MathCAD . . . . . . . . . . . . . . . . . . . . . . . . 658.1.4 Tipuri de date MathCAD. . . . . . . . . . . . . . . . . . . . . . 668.1.5 Vectorizare . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
8.1.6 Unitati de masura. . . . . . . . . . . . . . . . . . . . . . . . . . 738.2 Reprezentari grafice . . . . . . . . . . . . . . . . . . . . . . . . . . . . 748.3 Crearea unei animatii . . . . . . . . . . . . . . . . . . . . . . . . . . . 778.4 Editare de text . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 788.5 Salvarea / restaurarea datelor numerice . . . . . . . . . . . . . . . . . 788.6 Instrumente de calcul simbolic . . . . . . . . . . . . . . . . . . . . . . 798.7 Elemente de programare functionala . . . . . . . . . . . . . . . . . . 818.8 Elemente de programare procedurala . . . . . . . . . . . . . . . . . . 82
9 Algebra liniara numerica 89
9.1 Factorizarea unei matrice . . . . . . . . . . . . . . . . . . . . . . . . . 899.2 Rezolvarea sistemelor algebrice de ecuatii liniare . . . . . . . . . . . 90
10 Sisteme si ecuatii algebrice 92
10.1 Sisteme algebrice neliniare . . . . . . . . . . . . . . . . . . . . . . . . 9210.2 Rezolvarea ecuatiilor algebrice . . . . . . . . . . . . . . . . . . . . . . 9410.3 Rezolvarea ecuatiilor polinomiale . . . . . . . . . . . . . . . . . . . . 94
11 Rezolvarea problemelor de interpolare 96
11.1 Interpolare polinomiala . . . . . . . . . . . . . . . . . . . . . . . . . . 9611.2 Interpolare cu functii spline cubice . . . . . . . . . . . . . . . . . . . 97
12 Derivare numerica 101
12.1 Derivarea functiilor de o variabila reala . . . . . . . . . . . . . . . . . 10112.2 Cazul functiilor de mai multe variabile . . . . . . . . . . . . . . . . . 102
13 Metoda celor mai mici patrate 103
-
5/25/2018 LabNum.pdf
10/126
10 CUPRINS
14 Integrare numerica 105
14.1 Integrare numerica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10514.2 Calculul numeric al integralelor duble. . . . . . . . . . . . . . . . . . 106
III CULEGERE DE PROBLEME 108
15 Metode numerice n algebra liniara 109
16 Sisteme si ecuatii algebrice 113
17 Probleme de interpolare 117
18 Derivare numerica 120
19 Metoda celor mai mici patrate 122
20 Integrare numerica 123
Bibliografie 125
-
5/25/2018 LabNum.pdf
11/126
Part I
Scilab
11
-
5/25/2018 LabNum.pdf
12/126
Capitolul 1
Elemente de programare n SCILAB
Cap. 2
Prezentam pe scurt elemente ale limbajului de programare utilizat n pro-dusul Scilab. Elementele prezentate n sectiunile urmatoare reprezinta doar ghid
de utilizarerapida. Se presupune ca utilizatorul poseda cunostinte de progra-mare, avnd experienta de lucru n cel putin un limbaj de programare procedu-rala.
Scilabeste un produs de calcul numeric produs de INRIA Franta disponi-bil n mediile Windows si Linux. Produsul este distribuit gratuit. Produsul estensotit de o documentatie cuprinzatoare.
Ca produs informatic Scilabaretrasaturi comune cu produsul comercial Mat-lab.
1.1 Obiecte Scilab
Constante
12
-
5/25/2018 LabNum.pdf
13/126
1.1. OBIECTE SCILAB 13
Tip Mnemonic Valoare
real %pi
real %e ereal %eps 2.21016%inf
complex %i iboolean %t trueboolean %f falsepolinom %s s
%nan Not A Number
Literali
Literali numerici
Exemple:1. Numarul real 10,23 se poate scrie:10.23=0.1023e+2=0.1023E+2=1023e-2=1023E-2.
2. Numarul complex 1+ 5ise scrie 1+5%i.
Literali nenumerici
Un caracter sau un sir se caractere string se defineste (scrie):
c sau "c"string sau "string"
Functii matematice uzuale:
-
5/25/2018 LabNum.pdf
14/126
14 CAPITOLUL 1. ELEMENTE DE PROGRAMARE N SCILAB
Mnemonic Semnificatie Mnemonic Semnificatie
abs(x) |x| exp(x) ex
log(x) ln(x) log10(x) lg(x)sin(x) sin(x) asin(x) arcsin(x)sinh(x) sh(x) asinh(x) arcsh(x)cos(x) cos(x) acos(x) arccos(x)cosh(x) ch(x) acosh(x) arcch(x)tan(x) tg(x) atan(x) arctg(x)tanh(x) th(x) atanh(x) arcth(x)cotg(x) ctg(x) coth(x) cth(x)sqrt(x)
x sinc(x) sin xx
floor(x) [x] ceil(x) xerf(x) 2
x0 et2dt gamma(x) (x)
=
0 tx1etdt
gammah(x) ln(x) dlgamma(x) (x)(x)
real(z) (z) imag(z) (z)
Siruri de numere
Progresia aritmetica introduce definind primul termen (a), ratia (r) si omarginea superioara sau inferioara (M), dupa cum ratia este pozitiva saunegativa, prin sintaxa
a: r: M
Daca parametrulr lipseste atunci ratia este 1.
a=0.2:0.3:1
0.2 0.5. 0.8
b=1:-0.3:0
1. 0.7 0.4 0.1
Functia Scilab linspace(a,b,n)defineste progresia a+iban1 ,i= 0,1,...,n1.
Un sir de numere (ai)1inse poate defini prin
1. i=1:na=formula termenului general, functie de i
2. a= [a1, a2, . . . , an],undea1, a2, . . . , ansunt termenii sirului.
-
5/25/2018 LabNum.pdf
15/126
1.1. OBIECTE SCILAB 15
Indicele primului termen al unui sir este 1.
i=1:4
1 2 3 4
a=i^2
1 4 9 1 6
b=[1,4,9,16]
a==b
T T T T
Matrice
Definirea unei matrice.
Exemplu: Matriceaa=
1 2 34 5 6
se defineste nScilabprin
a=[1,2,3;4,5,6]
Elementele unei linii se pot separa prin virgula sau spatiu. Elementeleunei matrice pot fi: constante/variabile numerice, constante booleene,siruri de caractere, polinoame, functii rationale.
O progresie aritmeticaprog=
a: r: Meste interpretata ca un vectorlinie (adica o matrice cu o singura linie).
Exemplu. Progresiile aritmetice a= 0.2,0.6,1.0,1.4,1.8 si b= 0,1,2,3,4se obtin prin
a=0.2 : 0.4 : 2
a=
! 0.2 0.6 1.0 1.4 1.8 !
b=-1 : -1 : -4
b=
! -1 -2 -3 -4 !
FunctiaScilabsize(variabilaMatrice) returneaza numarul liniilor sinumarul coloanelorvariabileiMatrice.
Definirea unei matrice rarase face cu functiaScilab
a=sparse([l1,c1; l2,c2;...],[v1, v2,...])
-
5/25/2018 LabNum.pdf
16/126
16 CAPITOLUL 1. ELEMENTE DE PROGRAMARE N SCILAB
undeali,ci= vi. i.Functiafull(a)afiseaza o matrice raraan formatul obisnuit.
Matrice speciale.
* zeros(m,n) defineste o matrice nula cumlinii sincoloane;
* ones(m,n) defineste o matrice cu toate elementele egale cu 1avndmlinii sincoloane;
* eye(m,n) defineste o matrice unitate cumlinii sincoloane;
* rand(m,n) defineste o matrice cumlinii sincoloane avnd caelemente numere (semi)aleatoare cuprinse ntre 0 si 1.
Selectarea unui elementse obtine prin sintaxa
variabilaMatrice(numarLinie, numarColoana)
Prima linie si prima coloana are numarul de ordine 1.
Operatori matriceali.
Simbol Semnificatie+ adunare- scadere nmultire de matrice. nmultire pe componente ridicare la putere prin produs matriceal. ridicarea la putere a componentelor\ a\b= a1 b
. \ a.\b= ( bi,jai,j)i,j/ b/a
=b
a1
. / b/a= ( bi,jai,j)i,j transpunere
Functii matriceale.
-
5/25/2018 LabNum.pdf
17/126
1.1. OBIECTE SCILAB 17
Mnemonic Semnificatia
triu(A) Matricea superior triunghiulara a luiA
tril(A) Matricea inferior triunghiulara a luiAdiag(A) Vectorul cu elementele diagonale ale luiAsize(A) Sir cu dimensiunile luiAlength(A) Numarul elementelor luiAmax(A) Cel mai mare element al luiAmin(A) Cel mai mic element al luiAmatrix(A,m,n) Transforma matricea A ntr-o matrice cum
linii sincoloane
Extinderea unei matrice.Date fiind o matriceasi un vector liniev
* adaugarea linieivca prima linie a matriceiase obtine prin
[v; a]
* adaugarea linieivca ultima linie a matriceiase obtine prin
[a; v]
* adaugarea vectoruluivca prima coloana a matriceiase obtineprin
[v, a] sau [v; a]
* adaugarea vectoruluivca ultima coloana a matriceiase obtine
prin [a, v] sau [a; v]
Trebuie observata diferenta dintre cazul n care extinderea se face prinlinie fata de cel n care se extinde prin coloana prin utilizarea ; sirespectiv ,.
Extragereaunei submatrice.O zona compactafixata prin liniile l1: l2si coloanelec1: c2, inclusiv, se extrage din matriceaaprin
a(l1: l2,c1: c2)
Pentru extragerea unei zone necompacte aflata la intersectia liniilorl1, l2, . . . , lpcu coloanelec1,c2, . . . , cq dintr-o matriceaavndmliniisincoloane se definesc vectori linie
l i n= (l i ni)1im, l i ni=
%t dacai {l1, . . . , lp}%f n caz contrar
-
5/25/2018 LabNum.pdf
18/126
18 CAPITOLUL 1. ELEMENTE DE PROGRAMARE N SCILAB
col= (colj)1jn, colj=
%t dacaj {c1, . . . , cq}%f n caz contrar
Extragerea rezulta dina(l i n,col)
Comenzilea(:,$) si a($,:) extrag din matriceaaultima coloana, re-spectiv ultima linie.
Polinoame si functii rationale
Scilabposeda o modalitate deosebita de lucru cu polinoame definite pesteRsau C.
Pentru a defini un polinom n nedeterminata (variabila) Xse poate defininti nedeterminata
X=poly(0,X);
iar apoi polinomul se introduce nemijlocit, de exemplu
p=X^2+3*X+2
Altfel, un polinom se defineste prin intermediul functieiScilabpoly
polinom=poly(vector, nedeterminata, [string])
Dacavector= (a1, a2, . . . , an) si string=coefatunci se obtine polinomul degradn1
polinom= a1 + a2X+. . . + anXn1,iar dacastring=rootsatunci se obtine polinomul de gradn
polinom= (Xa1)(Xa2) . . . (Xan)
A doua varianta este cea implicita.
v=[1,2,3];
p=poly(v,X)
p=-6 + 11X - 6X^2 +X^3
q=poly(v,X,coef)
q=
1 + 2X + 3X^2
-
5/25/2018 LabNum.pdf
19/126
1.1. OBIECTE SCILAB 19
DacaAesteomatricepatrataatunci poly(A, X) genereaza polinomul car-acteristic matriceiA, adica det(X IA).
Dacapsiqsunt doua polinoame n nederminataXatuncip/qdefineste ofunctie rationala.
Scilabefectueaza operatiile uzuale cu polinoame si functii rationale n modsimbolic.
Dacar este o functie rationala atuncir(num) furnizeaza numaratorul sir(den) furnizeaza numitorul luir.
Functiacoeff(polinom)returneaza sirul coeficientilor polinomului.
coeff(p)
-6. 11. -6. 1.
Dacapeste un polinom atunci functiaScilab horner(p, x) returneazap(x).
Lista.O lista se defineste prin
list(e1, e2, . . . ,en)
undeeisunt obiecteScilab.
Exemplu.
l=list(1,%t,abc,[1,2;3,4])
l=
l(1)
1
l(2)
T
l(3)
abc
l(4)
! 1. 2. 3. 4. !
Ali-lea element al unei listeleste accesibil cul(i).
l(i)=nullsterge ali-lea element din lista l.
-
5/25/2018 LabNum.pdf
20/126
20 CAPITOLUL 1. ELEMENTE DE PROGRAMARE N SCILAB
1.2 Elemente de programare in Scilab
Programarea nScilabse face n cadrul functiilor definite n exterior. Pentru
editarea acestor functiiScilabposeda un editor propriu, dar se poate fi utilizatorice editor de fisiere.
O linie de comentariu este //text - comentariu.Fiecare instructiune introdusa n dreptul promptuluiScilabeste executata si
rezultatul este afisat. ncheierea unei comenzi cu caracterul ; are ca efect in-hibarea afisarii rezultatului.
Pentru exprimarea conditiilor se utilizeaza
Operatori relationali Operatori logiciSimbol Semnificatie Simbol Semnificatie
== = & si= = | sau= > >
Instructiunea de atribuirevariabila=expresie
Instructiuni conditionate1.
ifconditietheninstructiuni
elseifconditietheninstructiuni
else
instructiuniend
Exemplul 1.1 Rezolvarea ecuatiei x2 + ax+b= 0n linie de comanda.
a=3;b=2;delta=a^2-4*b;
if delta>=0 then x=(-a+sqrt(delta))/2;y=(-a-sqrt(delta))/2;
else x=-a/2;y=sqrt(-delta)/2;end
-
5/25/2018 LabNum.pdf
21/126
1.2. ELEMENTE DE PROGRAMARE IN SCILAB 21
2.
selectexpresie
caseexpresie1theninstructiuni...else
instructiuniend
casesithentrebuie scrise pe aceeasi linie.
Instructiuni de ciclare
1.
forn= n1 : pas: n2,instructiuni,endDacapas= 1, atunci acest parametru este optional.
Exemplul 1.25
i=1 i
s=0;
for i=1:5, s=s+i;,end
Exemplul 1.3 mpartirea elementelor unei multimi n clase de echivalentamodulo 3.
a=[1,2,3,4,5,6,7,8,9];
c0=zeros(3,1);c1=zeros(3,1);c2=zeros(3,1);
i0=0;i1=0;i2=0;
for i=1:length(a),select a(i)-floor(a(i)/3)*3
case 0 then i0=i0+1;c0(i0)=a(i);
case 1 then i1=i1+1;c1(i1)=a(i);
case 2 then i2=i2+1;c2(i2)=a(i);
end,
end
Exemplul 1.4 Sirul lui Fibonacci generat n linie de comanda.
F=[1,1];
n=15;
for i=3:n do, F(i)=F(i-1)+F(i-2);, end
2.
whileconditie
,do
then
instructiuni,end
whilesidosauthentrebuie scrise pe aceasi linie.
-
5/25/2018 LabNum.pdf
22/126
22 CAPITOLUL 1. ELEMENTE DE PROGRAMARE N SCILAB
Exemplul 1.55
i=1 i
s=0;
i=0;
while i
-
5/25/2018 LabNum.pdf
23/126
1.3. FUNCTII(SUBPROGRAME) N SCILAB 23
Variabilele functiei pot fi numere, vectori, matrice. n cazul n care vari-abilele sunt tablouri, operatiile algebrice se fac ntre componentele core-spunzatoare.
O functie definita n linie de comanda se salveaza
save(cale\numeFisier.bin,f)
Functiasavesalveaza orice tip de obiect. Dacaa,bsunt variabileScilabatunci sintaxa utilizata va fisave(cale\numeFisier.bin,a,b).
Rencarcarea se realizeaza prin
load(cale\numeFisier.bin)
Exterior.Cu un editor de fisiere se creaza subprogramul
function[y1, . . . ,yn]=f(x1, . . . , xm)instructiuni Scilab
endfunction
care se salveaza obligatoriu cu numelef.scesauf.sci.
Pentru a putea fi utilizata functia exterioara trebuie ncarcata prin
exec(cale\f.sce,-1)
Valoarea -1 pentru al doilea parametru are ca efect lipsa afisarilor legate deoperatia de ncarcare a functiei.
Pentru functia din exemplul anterior, codul script-ului de definitie exte-rioara este
function [u,v]=f(x,y)
u=x+y;
v=x^2+y^2;
endfunction
Functiile definite n exterior pot fi organizate n biblioteci. Astfel functiileScilab deci avnd extensia .sci aflate ntr-un catalog localizat princalesunt reunite ntr-o biblioteca prin comanda
genlib(numeBiblioeca,cale)
-
5/25/2018 LabNum.pdf
24/126
24 CAPITOLUL 1. ELEMENTE DE PROGRAMARE N SCILAB
Prin aceasta operatie are loc compilarea functiilor si crearea unui fisiernamescu cuprinsul bibliotecii.
O biblioteca odata creata, resursele ei pot fi utilizate dupa rencarcarea eiprin
numeBiblioteca=lib(cale)
Exemplul 1.6 Functie pentru rezolvarea ecuatiei de gradul al doilea.
function [u,v]=eq2(a,b)
delta=a*a-4*b;
if delta>=0 then
u=0.5*(-a+sqrt(delta));
v=0.5*(-a-sqrt(delta));disp(Real roots)
else
u=-a/2;
v=sqrt(-delta);
disp(Complex conjugate roots)
end
endfunction
Functiadisp(obiectScilab)afiseaza valoarea argumentului.
Exemplul 1.7 Functie pentru calculul valorii unui polinom.
function r=polyval1(x,c)
[l,n]=size(c);
r=c(1);
for i=2:n
r=r*x+c(i);
end
endfunction
function r=polyval2(x,c)
[l,n]=size(c);i=0:n-1;
u=x^i;
r=u*c;
endfunction
-
5/25/2018 LabNum.pdf
25/126
1.4. SALVAREA SI RESTAURAREA DATELOR 25
Exemplul 1.8 Functie pentru calculul primelor n termeni ai sirului Fibonacci.
function t=fib(n)
t=[1,1];for i=3:n
t(i)=t(i-1)+t(i-2);
end
endfunction
Exemplul 1.9 Functie pentru calculul limitei sirului(an)nNdefinit prin a0 =
2,an+1 =an+2.
function [l,error]=lim(tol,nmi)
v=sqrt(2);
cont=%t;
ni=1;
while(cont)
ni=ni+1;
l=sqrt(v+2);
d=abs(v-l);
v=l;
if(dnmi)
cont=%f
end
end
if(d
-
5/25/2018 LabNum.pdf
26/126
26 CAPITOLUL 1. ELEMENTE DE PROGRAMARE N SCILAB
M=csvRead(filename)
M=csvRead(filename, separator)
1.5 Grafica n Scilab
1.5.1 Grafica 2D
Din multimea functiilor grafice ale produsuluiScilabamintim
plot2d.Cea mai simpla forma de utilizare este
plot2d(x,y)
unde
x= x1,1 . . . x1,n. . . . . . . . .
xm,1 . . . xm,n
y=
y1,1 . . . y1,n. . . . . . . . .
ym,1 . . . ym,n
suntdoua matrice de acelasi tip. Functia construieste n acelasi panou (fer-eastra grafica) graficele ancurbe ce trec respectiv prin punctele
(xi,j,yi,j)1im, j {1,..., n}.
fplot2d.Utilizarea functiei este
fplot2d(x,f)
unde
xeste un sir de numere reale;
f este o functieScilab
iar rezultatul este graficul functieifconstruitpe baza valorilor ei n puncteleluix.
comet.Reprezentare grafica animata. Utilizarea este asemanatoare cu ceaa fuctieiplot2d.
paramfplot2d realizeaza o animatie reprezentnd evolutia graficele functi-ilorft(x),x [a,b] cnd parametrultparcurge o multime de valori. Modulde utilizare
-
5/25/2018 LabNum.pdf
27/126
1.5. GRAFICA NSCILAB 27
paramfplot2d(f, x, t)
unde
f(x, t) este o functieScilab.
xsitsunt siruri.
Exemplul 1.10 Reprezentarea grafica a functiilorsin x sicos x n[,]
Reprezentarea grafica se obtine prin
t=-%pi:0.1:%pi;
x=[t,t];
y=[sin(t),cos(t)];
plot2d(x,y)Va rezulta imaginea din Fig.1.1
1.5.2 Grafica 3D
plot3d(X,Y,Z)
X= (Xi)1im siY=(Y1jnsunt vectori dati n ordine crescatoare, iarZ= (Zi,j), i {1,..., m}, j {1,..., n} reprezinta valoarea functiei calculata
n (Xi,Yj).
Pozitia observatorului este indicata prin parametrii theta=
longitudine, alpha=90 latitudine. Valorile implicite sunttheta= 35, alpha= 45.
Daca suprafata este definita prinz=f(x,y), x [a,b],y [c,d] atunci sedefineste functiaScilab
function [x,y,z]=suprafata(m,n)
u=linspace(a,b,m);
v=linspace(c,d,n);
for i=1:m
for j=1:n
x(i,j)=. . .
y(i,j)=. . .end
end
z=f(x,y);
endfunction
-
5/25/2018 LabNum.pdf
28/126
28 CAPITOLUL 1. ELEMENTE DE PROGRAMARE N SCILAB
Figure 1.1: Grafica 2D.
exec(. . .\suprafata.sce,-1)
[x,y,z]=suprafata(m,n);
plot3d(x,y,z)
Se poate proceda mai simplu
[x,y]=meshgrid(a:dx:b,c:dy:d);
z=f(x,y);
mesh(x,y,z)
fplot3d(X,Y,f)
Exemplul 1.11 Reprezentarea sferei x2 +y2 + z2 = 1.
Semisfera superioara este data dez=
1 x2 y2, pentru care construimfunctiaScilab
-
5/25/2018 LabNum.pdf
29/126
1.5. GRAFICA NSCILAB 29
function[x,y,z]=sfera(r,m,n)
x=linspace(-r,r,m);
y=linspace(-r,r,n);
for i=1:m
for j=1:nif x(i)^2+y(j)^2
-
5/25/2018 LabNum.pdf
30/126
30 CAPITOLUL 1. ELEMENTE DE PROGRAMARE N SCILAB
Exercitii
1. Sa se reprezinte grafic functiile n intervalele indicate
a. |x| x [4,4]b. ex
2x [4,4]
c. 4xsin x32+x2 x [0,4]
d. x
x2 1 x [4,4]
2. Sa se reprezinte evolutia functiilor
a. xt x [0,1] t {0,1,2,...,500}b. sin t x x [0,/2] t {1,2,...,100}c. sin t x x [0,2] t= 10.05i,i {0,1,...,20}
3. Sa se reprezinte:
a. z= x2a2
+ y2
b2 a= 4,b= 3 x [3,3],y [3,3]
Paraboloidul eliptic
b. z= x2a2
y2
b2 a= 4,b= 3 x [3,3],y [3,3]Paraboloidul hiperbolic
-
5/25/2018 LabNum.pdf
31/126
Capitolul 2
Algebra liniara numerica
Cap. 1 Cap. 3
2.1 Factorizarea unei matrice
Functiile
[L,U,P] = lu(A) calculeaza factorizarea LU a matricei A:P A= LU.
[Q,R] = qr(A) calculeaza factorizarea QR a matriceiA: A= QR
Exemplul 2.1 Sa se calculeze factorizarea LU a matricei
A=
1 2 1 3 22 4 2 5 1
1 2 1 3 43 6 2 10 71 2 4 0 4
.
A=[1,2,-1,3,2;2,4,-2,5,1;-1,-2,1,-3,-4;,3,6,2,10,7;1,2,4,0,4];
[L,U,P]=lu(A)
P =
31
-
5/25/2018 LabNum.pdf
32/126
32 CAPITOLUL 2. ALGEBRA LINIARA NUMERICA
0. 0. 0. 1. 0.
0. 1. 0. 0. 0.
0. 0. 0. 0. 1.
1. 0. 0. 0. 0.
0. 0. 1. 0. 0.
U =
3. 6. 2. 10. 7.
0. 0. - 3.3333333 - 1.6666667 - 3.6666667
0. 0. 3.3333333 - 3.3333333 1.6666667
0. 0. 0. - 2. 0.5
0. 0. 0. 0. - 2.
L =
1. 0. 0. 0. 0.
0.6666667 1. 0. 0. 0.
0.3333333 0. 1. 0. 0.
0.3333333 0. - 0.5 1. 0.
- 0.3333333 0. 0.5 - 1. 1.
Exemplul 2.2 Sa se calculeze factorizarea QR a matricei
X
=
6 6 13 6 1
2 1 1
X=[6,6,1;3,6,1;2,1,1];
[Q,R]=qr(X)
R =
7. 8. 1.5714286
0. 3. 0.1428571
0. 0. 0.7142857
Q =
0.8571429 - 0.2857143 - 0.4285714
0.4285714 0.8571429 0.2857143
0.2857143 - 0.4285714 0.8571429
-
5/25/2018 LabNum.pdf
33/126
2.2. REZOLVAREA SISTEMELOR ALGEBRICE DE ECUATII LINIARE 33
Q*R-X
0. 8.882D-16 4.441D-16
- 4.441D-16 - 5.329D-15 - 1.554D-15
0. - 3.109D-15 - 8.882D-16
2.2 Rezolvarea sistemelor algebrice de ecuatii liniare
Pentru rezolvarea unui sistem algebric de ecuatii liniare Ax= b, n cazul ncare
numarul ecuatiilor coincide cu numarul necunoscutelor;
determinantul sistemului este diferit de zero;
se procedeaza dupa cum urmeaza:
1. se fixeaza matriceleAsib;
2. se calculeazax=A1b.
ExpresiaA1 se poate introduce ntocmai (A(-1)) sau se poateutiliza functiaScilabinv(A).
FunctiaScilabdet(A)calculeaza determinantul matriceiA.
Exemplul 2.3 Sa se rezolve sistemul algebric de ecuatii liniare
x1 + 2x2 + 3x3 + 4x4 = 112x1 + 3x2 + 4x3 + x4 = 123x1 + 4x2 + x3 + 2x4 = 134x1 + x2 + 2x3 + 3x4 = 14
Rezolvarea consta din
A = [1,2,3,4;2,3,4,1;3,4,1,2;4,1,2,3];
b = [11;12;13;14];det(A)
ans=
160
x=inv(A)*b
-
5/25/2018 LabNum.pdf
34/126
34 CAPITOLUL 2. ALGEBRA LINIARA NUMERICA
x=
! 2 !
! 1 !
! 1 !
! 1 !
n general, pentru sistemul algebric de ecuatii liniareAx+b= 0, functia Scilab[x,k]=linsolve(A,b) calculeaza
1. x o solutie particulara;
2. k o baza a subspatiului liniar Ker(A) = {x|Ax= 0}.
Solutia sistemuluiAx+b= 0 estex+kcunde c este un vector oarecare a caruidimensiune coincide cu numarul coloanelor matriceik.
Daca sistemul este incompatibil atunci rezultatele sunt egale cu matricea vida[ ].
Exemplul 2.4 Sa se rezolve sistemul algebric de ecuatii liniare
x1 + x2 + x3 + x4 = 22x1 x2 + 2x3 x4 = 1
x1 + 2x2 x3 + 2x4 = 12x1 + x2 + 4x3 + x4 = 73x1 + 2x2 2x3 + 2x4 = 5
avnd solutiax1 = 1,x2 = 1 x4,x3 = 2.Scris matriceal, solutia sistemului este
x1x2x3x4
=
1120
+
0101
c=
1120
+
01
2012
c.
Rezolvarea sistemului este
A=[1,1,1,1;2,-1,2,-1;1,2,-1,2;2,1,4,1;3,2,-2,2];
b=[2;1;-1;7;-5] ;[x,k]=linsolve(A,-b)
k =
- 5.551D-17
-
5/25/2018 LabNum.pdf
35/126
2.2. REZOLVAREA SISTEMELOR ALGEBRICE DE ECUATII LINIARE 35
0.7071068
2.776D-16
- 0.7071068
x =
- 1.
0.5
2.
0.5
Observatie.kaproximeaza vectorul de norma euclidiana 1
012
01
2
.Notnd cuusivcele doua solutii particulare puse n evidenta mai sus
u=
1120
v=
10.52
0.5
gasim
u v=
0
0.50
0.5
= 12k KerA
n cazul unui sistem algebric de ecuatii liniare incompatibil se poate calculaelementul care minimizeaza functionala J(x)= bAx22. Acest element estesolutia sistemului algebric de ecuatii liniare compatibil ATAx=ATbsi este datde functiaScilabx=lsq(A,b).
Exemplul 2.5 Sa se rezolve sistemul algebric de ecuatii liniare
2x y + 3z = 7x + y + z = 4
3x 3y + 5z = 8
n sensul celor mai mici patrate.
-
5/25/2018 LabNum.pdf
36/126
36 CAPITOLUL 2. ALGEBRA LINIARA NUMERICA
Rezolvarea este
A=[2,-1,3;1,1,1;3,-3,5];
b=[7;4;8];x=lsq(A,b)
x =
1.4871795
1.2948718
1.5512821
Functialinsolve(A,b)returneaza [ ].
-
5/25/2018 LabNum.pdf
37/126
Capitolul 3
Rezolvarea sistemelor si ecuatiilor
algebrice
Cap. 2 Cap. 4
3.1 Rezolvarea sistemelor algebrice de ecuatii neliniare
Pentru rezolvarea sistemului algebric de ecuatii neliniare
f1(x1, . . . , xn) = 0...fn(x1, . . . , xn) = 0
sau scris sub forma concentrataf(x) = 0 cu
x=
x1..
.xn f(x) =
f1(x1, . . . , xn)..
.fn(x1, . . . , xn) ,
se utilizeaza functiaScilab
[x [,y [,info ] ] ]=fsolve(x0, f [,fjac [,tol ] ] )
37
-
5/25/2018 LabNum.pdf
38/126
38 CAPITOLUL 3. REZOLVAREA SISTEMELOR SI ECUATIILOR ALGEBRICE
unde semnificatia parametrilor este:
x0 reprezinta o aproximatie initiala a solutiei sistemului.
f identificatorul functieiScilabcare definette sistemul neliniarf(x) = 0.
f jacidentificatorul functieiScilabal jacobianului finctiei f, adica
f j ac(x) =
f1x1
(x) . . . f1xn
(x)
. . . . . . . . .fnx1
(x) . . . fnxn
(x)
toltoleranta, parametrul utilizat n testele de precizie (scalar real).
xaproximatia calculata a solutiei sistemului algebric.
yreprezinta valoarea functiei f calculata nx; y=f(x).
in f o indicatorul de raspuns al programului fsolve.n cazul rezolvarii cusucces, valoarea indicatorului este 1.
Astfel, rezolvarea consta din
1. definirea functei f (si eventual al jacobianuluif jac);
2. apelarea functieiScilabfsolve.
Exemplul 3.1 Sa se rezolve sistemul algebric de ecuatii neliniare
10x1 + x21 2x2x3 0.1 = 010x2 x22 + 3x1x3 + 0.2 = 010x3 + x23 + 2x1x2 0.3 = 0
Rezolvarea consta din:
deff(q=f(p),[x=p(1),y=p(2),z=p(3),
q(1)=10*x+x.^2-2*y.*z-0.1,q(2)=10*y-y.^2+3*x.*z+0.2,
q(3)=10*z+z.^2+2*x.*y-0.3])
p0=[0,0,0];
[p,q,info]=fsolve(p0,f)
-
5/25/2018 LabNum.pdf
39/126
3.2. REZOLVAREA ECUATIILOR ALGEBRICE 39
info=
1.
q=
1.0E-15*
! - .2636780 !
! .2775558 !
! .9436896 !
p=
! .0098702 !
! - .0200485 !
! .0299499 !
3.2 Rezolvarea ecuatiilor algebriceDacan= 1, adica dimensiunea spatiului este 1, atuncif(x) = 0 cu f :I R
Rreprezinta o ecuatie algebrica.Pentru rezolvarea ecuatiilor algebrice se utilizeaza de asemenea functia Scilab
fsolve.
Exemplul 3.2 Sa se rezolve ecuatia2x = x2.
Rezolvarea ecuatiei f(x) = 2x x2 = 0 este
deff(y=f(x),y=2.^x-x.^2)[x,y,info]=fsolve(1,f)
info
1.
y=
0.
x=
2.
sau cu precizarea derivatei functiei f(x)
deff(y=df(x),y=(2.^ x).*log(x)-2*x)[x,y,info]=fsolve(1,f,df)
info=
1.
y=
-
5/25/2018 LabNum.pdf
40/126
40 CAPITOLUL 3. REZOLVAREA SISTEMELOR SI ECUATIILOR ALGEBRICE
0
x=
2.
Dacax0 = 5 atuncix= 4, iar pentrux0 = 1 gasimx= 0.7666647.Graficul functiei f este reprezentat n Fig.3.1.
Figure 3.1:y= 2x x2
3.3 Rezolvarea ecuatiilor polinomiale
n cazul particularal ecuatiilor polinomiale se cere determinarea tuturor radacinilor
reale sau complexe.Pentru aflarea radacinilor unui polinom se procedeaza astfel:
1. Se defineste polinomulScilab pde variabilax.
2. Radacinile polinomuluipsunt calcutate ajutorul functieiScilab
-
5/25/2018 LabNum.pdf
41/126
3.3. REZOLVAREA ECUATIILOR POLINOMIALE 41
x=roots(p)
unde
peste polinomulScilabcu coeficienti reali sau complecsi de grad celmult 100.
xeste un tablou cu radacinile polinomuluip.
Exemplul 3.3 Sa se determine radacinile polinomului p= x4 +2x3 +3x2 +2x+1.
Rezolvarea consta din:
c=[1,2,3,2,1];
p=poly(c,x,coef);x=roots(p)
x=
! - .5 + .8660254i !
! - .5 - .8660254i !
! - .5 + .8660254i !
! - .5 - .8660254i !
-
5/25/2018 LabNum.pdf
42/126
Capitolul 4
Rezolvarea problemelor de
interpolare
Cap. 3 Cap. 5
Fie Fo familie interpolatoare de ordin npe axa reala. Dndu-se nodurile(xi)1
i
nsi numerele (yi)1
i
n, daca
Feste functia de interpolare care satis-
face conditiile(xi) =yi, 1 i n, se cere sa se calculeze(z), undezeste unpunct dat.
4.1 Interpolare polinomiala
Pentru F= Pn1solutia problemei de interpolare Lagrange este polinomul
L(Pn1; x1, . . . , xn;y1, . . . ,yn)(z) =n
i=1yi
nj=1j=i
z xjxi xj
Valoarea acestui polinom este calculat de functiaScilab
function f=lagrange(xd,x,y)
[mx,nx]=size(x);
42
-
5/25/2018 LabNum.pdf
43/126
4.1. INTERPOLARE POLINOMIAL A 43
[my,ny]=size(y);
ierror=0;
if (nx~=ny)|(mx~=1)|(my~=1),
ierror=1;
disp(data dimension error)
abort
end
xx=gsort(x);
for k=1:nx-1,
if xx(k)==xx(k+1),
ierror=1;
break,
end
endif ierror~=0,
disp(data error)
abort
end
[m,n]=size(xd);
f=zeros(m,n);
p=zeros(m,n);
q=zeros(m,n);
w=ones(1,nx);
for i=1:nx,
for j=1:nx,if i~=j,
w(i)=w(i)*(x(i)-x(j)),
end
end
end
for i=1:m,
for j=1:n,
u=find(x==xd(i,j));
if ~isempty(u),
f(i,j)=y(u);else
for k=1:nx,
p(i,j)=p(i,j)+y(k)/(xd(i,j)-x(k))/w(k);
q(i,j)=q(i,j)+1/(xd(i,j)-x(k))/w(k);
-
5/25/2018 LabNum.pdf
44/126
44 CAPITOLUL 4. REZOLVAREA PROBLEMELOR DE INTERPOLARE
end
f(i,j)=p(i,j)/q(i,j);
end
end
end
endfunction
Semnificatiile parametrilor formali si a rezultatului sunt:
xdeste o matrice de numere. n fiecare element al matriceixdse cal-culeaza valoarea polinomului de interpolare Lagrange.
x= (xi)1in, sirul nodurilor de interpolare;
y= (xi)1in, sirul valorilor interpolate;
feste o matrice de aceleasi dimensiuni cax d si are ca elemente valorilepolinomului de interpolare Lagrange calculate n elementele corespunza-toare ale matriceixd.
Programul de mai sus, pentru calculul valorii polinomului de interpolare La-grange, foloseste formula baricentrica.
Exemplul 4.1 Sa se calculeze L(Pn; x0, . . . , xn;f)(z)pentru
f(x) = x2xi = i, i {0,1,...,5}z = 0.5,3,5,10
Rezolvarea este:
deff(y=fct(x),[y=x^2])
exec(c:\lucru\scilab\lagrange.sci,-1)
x=0:5;y=fct(x);
z=[0.5,3.5,10];
f=lagrange(z,x,y)
! 0.25 12.25 100 !
-
5/25/2018 LabNum.pdf
45/126
4.2. INTERPOLARE CU FUNCTII SPLINE CUBICE 45
4.2 Interpolare cu functii spline cubice
DacaF
=S3, multimea functiilor spline cubice atunci pentru rezolvarea prob-
lemei de interpolare utilizam functiileScilab
1. d=splin(x,y);saud=splin(x,y,[,spline_type[,der]]) 1
2. [f0 [,f1 [,f2 [,f3]]]]=interp(xd,x,y,d).
Semnificatia parametrilor este
x= (xi)1in, sirul nodurilor de interpolare;
y= (xi)1in, sirul valorilor interpolate; spline_typeeste un string care precizeaza conditiile la limita utilizate si
poate fi:
not_a_knot - alegerea implicita: Dacax1 < x2 < . . . < xn1 < xnatunciconditiile la limita sunt
s(3)(x2 0) = s(3)(x2 +0)s(3)(xn1 0) = s(3)(xn1 +0)
clamped:s(x1) = der1s(xn) = der2
natural:
s(x1) = 0s(xn) = 0
periodic: Dacay1 =yn, conditiile la limita sunt
s(x1) = s(xn)s(x1) = s(xn)
1Parantezele patrate nu fac parte din sintaxa. Ele arata caracterul optional al elementelorcuprinse ntre ele.
-
5/25/2018 LabNum.pdf
46/126
46 CAPITOLUL 4. REZOLVAREA PROBLEMELOR DE INTERPOLARE
dparametri functiei spline cubice de interpolare;
xdeste o matrice de numere. n fiecare element al matriceixdse cal-
culeaza valoarea functiei spline cubice de interpolare. Aceste elemente tre-buie sa fie cuprinse n intervalul determinat de nodurile dinx.
f0,f1,f2,f3 sunt matrice de aceleasi dimensiuni caxdsi au ca elementevalorile functiei spline cubice de interpolare si respectiv a derivatelor deordinul 1, 2 si 3, calculate n elementele corespunzatoare ale matriceixd.
Exemplul 4.2 Sa se calculeze valorile functiei spline cubice de interpolare si alederivatelor sale de ordin 1, 2, 3 pentru datele de interpolare
f(x) = x3
xi = i, i {0,1,...,5}z = 0.5,3,5,10
Rezolvarea consta din
deff(y=f(x),[y=x^3])
x=0:5;
y=f(x);
z=[0.5,3.5,10];
d=splin(x,y);
[s,s1,s2,s3]=interp(z,x,y,d)
s3=
! 6. !
! 6. !
! 0. !
s2=
! 3. !
! 21. !
! 0. !
s1=
! 0.75 !
! 36.75 !! 0. !
s=
! .125 42.875 0 !
-
5/25/2018 LabNum.pdf
47/126
Capitolul 5
Derivare numerica
Cap. 4 Cap. 6
5.1 Derivarea functiilor de o variabila reala
Pentru calculul derivatei f(x0) unde f :I
Reste o functie derivabila,Iun
interval iarx0 Int(I),Scilabofera functia : g= numdiff(f, x0[,h]).Exemplul 5.1 Sa se calculeze f(1)unde f(x) = x3.
Rezolvarea este:
deff(y=f(x),y=x^3)
numdiff(f,1)
ans =
3.0000001
5.2 Cazul functiilor de mai multe variabile
Dacaf :RnRm atuncijacobianulsihessianulse obtin cu functiaScilab
47
-
5/25/2018 LabNum.pdf
48/126
48 CAPITOLUL 5. DERIVARE NUMERICA
[J[, H]] = derivative(f, x[,h,order])unde
x- punctul n care se calculeaza jacobianulJsi hessianulH;
hR pasul utilizat n formula de derivare numerica;
order {1,2, 4} ordinul formulei de derivare numerica (valoarea implicitaeste2).
Exemplul 5.2 Sa se calculeze jacobianul si hessianul functiei f(x,y) =
x2yx3 +y
n(1,2).
Jacobianul si hessianul functiei f sunt
f(x,y) =
2x y x2
3x2 1
f(x,y) =
2y 2x 2x 06x 0 0 0
Astfel rezultatele exacte sunt
f(1,2) =
4 13 1
f(1,2) =
4 2 2 06 0 0 0
RezolvareaScilabeste
deff(q=fct(p),[x=p(1),y=p(2),q(1)=x.^2.*y,q(2)=x.^3+y])
p=[1;2]
[J,H]=derivative(fct,p)
H =
4. 2. 2. 0.
6. 0. 0. 0.
J =
4. 1.
3. 1.
-
5/25/2018 LabNum.pdf
49/126
Capitolul 6
Construirea unei functii
de aproximare prin metoda
celor mai mici patrate
Cap. 5 Cap. 7
Cazulliniar.Determinarea unui polinom de aproximare construit prin metodacelor mai mici patrate de gradmpentru datele (xi,yi)1in(m
-
5/25/2018 LabNum.pdf
50/126
50 CAPITOLUL 6. METODA CELOR MAI MICI PATRATE
function coef=lq(m,x,y)
[mx,nx]=size(x);
[my,ny]=size(y);
if((nx~=ny)|(mx~=1)|(my~=1)),
disp("data dimension error")
abort
end
u=zeros(m+1,nx);
for i=1:m+1,
for j=1:nx,
u(i,j)=x(j)^(i-1);
end
end
coef=(u*u)^(-1)*u*y;endfunction
Exemplul 6.1 Sa se calculeze polinoamele de aproximare de grad unu si doi, con-stituite prin metoda celor mai mici patrate, pentru datele(xi,yi)0i20unde xi=2+0.2i, yi=f(xi), f(x) = |x|.Sa se reprezinte grafic functiile astfel obtinute.
x=-2:0.2:2;
y=abs(x);
c1=lq(1,x,y)
exec(e:\scilab\lq.sci,-1)c1=
1.047619
1.110D-16
c2=lq(2,x,y)
c2=
0.3883622
1.110D-16
0.4494933
deff(y=p1(x),[y=c1(1)+c1(2)*x])
deff(y=p2(x),[y=c2(1)+c2(2)*x+c2(3)*x.*x])
y1=p1(x);y2=p2(x);
xx=[x,x,x];
yy=[y,y1,y2];
plot2d(xx,yy,[1,2,3],121,abs@p1@p2)
-
5/25/2018 LabNum.pdf
51/126
51
Astfel, polinoamele de aproximare de gradul nti si doi sunt
p1(x)=
1.047619
si respectiv
p2(x) = 0.3883622+0.4494933x2
Graficele celor trei functii sunt date Fig. 6.1.
Figure 6.1: Aproximarea functieix2 prin polinom de grad 1 si 2.
Cazul neliniar.
Pentru determinarea functiei de aproximarey=(t, x1, . . . , xn) care minimizeaza
expresia
(x1, . . . , xn) =m
i=1[(ti, x1, . . . , xn)yi]2 (6.1)
cu metoda Gauss-Newton se utilizeaza functiaScilableastsq:
-
5/25/2018 LabNum.pdf
52/126
52 CAPITOLUL 6. METODA CELOR MAI MICI PATRATE
[fopt[,xopt[,gopt]]]=leqstsq(fct,x0)[fopt[,xopt[,gopt]]]=leqstsq(fct,dfct,x0)
unde
x0 este aproximatia initiala a parametrilor;
f c tdefineste termenii din suma (6.1);
d f ct este jacobianul functiei f ct;
f optvaloarea functiei calculata nxopt;
xoptvaloarea optima gasita a parametrilorx;
gopt gradientul functiei calculata nxopt.
Exemplul 6.2 Sa se calculeze functia de aproximare de forma y= aebt n cazuldatelor
t=0:5
y=2*exp(-t)
Definim functiileScilab
function y=f1(x,t)
y=x(1)*exp(x(2)*t);endfunction
Necunoscutelea,bdevin componentele vectoruluix(a= x1,b= x2)
function u=fct(x,t,y)
exec("e:\scilab\f1.sce",-1);
u=f1(x,t)-y;
endfunction
Rezolvarea este
exec(e:\scilab\fct.sce,-1)x=[2.5,-0.5];
[fopt,xopt,gopt]=leastsq(list(fct,t,y),x)
gopt =
-
5/25/2018 LabNum.pdf
53/126
53
0. 0.
xopt =
2. - 1.
fopt =
0.
Dacasefixeaza gradientul functieif c t:d f ct = (f c ta ,
f c tb ) = (
f c tx1
,f c tx2
) = (ebt, atebt)n functia
function u=dfct(x,t,y)
s=exp(x(2)*t);
u=[s,x(1).*t.*s];
endfunction
atunci apelarea va fi
[fopt,xopt,gopt]=leastsq(list(fct,t,y),dfct,x)
Metoda Levenberg-Marquardt este implementata de functiascilab lsqrsolve:[xopt[,v]]=lsqrsolve(x0,fct,m)[xopt[,v]]=lsqrsolve(x0,fct,m,dcft)
unde
x0 este aproximatia initiala a parametrilor;
f c tdefineste termenii din suma (6.1);
mreprezinta numarul termenilor din suma (6.1);
d f ct este jacobianul functiei f ct;
xoptvaloarea optima gasita a parametrilorx;
vvaloarea fiecarui termen din suma (6.1) calculata nxopt.
Rezolvarea exemplului anterior cu metoda Levenberg-Marquardt consta dindefinirea functiilorf1.sce, data.sce si fctlm.sce:
function [t,y]=data(m)
t=1:m;
y=2*exp(-t);
endfunction
-
5/25/2018 LabNum.pdf
54/126
54 CAPITOLUL 6. METODA CELOR MAI MICI PATRATE
function y=fctlm(x,m)
exec("e:\scilab\data.sce",-1);
exec("e:\scilab\f1.sce",-1);
[t,y]=data(m);
y=f1(x,t)-y;
endfunction
si
x=[2.5,-0.5]
[xopt,v]=lsqrsolve(x,fctlm,6)
v =
1.0D-16 *
1.110223
0.5551115
0.2775558
0.0693889
0.0346945
0.0086736
xopt =
2. - 1.
-
5/25/2018 LabNum.pdf
55/126
Capitolul 7
Integrare numerica
Cap. 6 Cap. 8
7.1 Integrarea numerica a functiilor
de o variabila realaPentru calculul integralei
I=b
af(x)dx
undef : [a,b] Reste o functie continua,Scilabofera mai multe programe:
[x]=integrate(exp, var,a,b[,ea[,er] ] )unde:
xvaluarea calculata a integralei;
expeste expresia functiei de integrat, dat ca un sir de caractere; vareste variabila de integrare dat ca string;
aextremitatea stnga a intervalului de integrare;
bextremitatea dreapta a intervalului de integrare;
55
-
5/25/2018 LabNum.pdf
56/126
56 CAPITOLUL 7. INTEGRARE NUMERICA
ea, erreprezinta o eroare absoluta si o eroare relativa. Preciznd acestiparametri, regula de oprire a programului este |xI| max{ea,er|I|}.
Exemplul 7.1 Sa se calculeze integralele:
1.1
016 x15dx
2.
2
0
sin(x)
x dx
Rezolvarile sunt:1.
I=integrate(16*x.^15,x,0,1)
I=
1.
2.
I=integrate(if x==0 then 1; else sin(x)/x; end,x,0,%pi/2)
I=
1.3707622
[x,er r]=intg(a,b,f [,ea[,er] ] )unde
xvaluarea calculata a integralei;
er rvaloarea estimata a erorii absolute;
aextremitatea stnga a intervalului de integrare;
bextremitatea dreapta a intervalului de integrare;
f identificatorul functieiScilabde integrat;
ea, erreprezinta o eroare absoluta si o eroare relativa. Preciznd acestiparametri, regula de oprire a programului este |xI| max{ea,er|I|}.
Utilizndintg,integralele exemplului anterior se calculeaza astfel:
1.
-
5/25/2018 LabNum.pdf
57/126
7.2. CALCULUL NUMERIC AL INTEGRALELOR DUBLE 57
deff(y=f(x),y=16*x.^15)
[x,err]=intg(a,b,f)
err=
1.110 E-14
x=
1.
2.
deff(y=g(x),if x==0 then y=1; else y=sin(x)/x; end)
[x,err]=intg(0,%pi/2,g)
err=
1.522 E-14
x=1.3707622
Daca f(x, p1, p2, . . .) este o functieScilabavnd pe prima pozitie variabila deintegrare atunci
intg(a,b,list(f, p1, p2,...))
calculeaza integrala ba
f(x, p1, p2,...)dx
7.2 Calculul numeric al integralelor duble
Pentru domeniulDdefinit prin
D= {(x,y) : a x b, f in f (x) yf sup(x)}
integrala D
f c t(x,y)dxdy
este calculata de programul [y,er]=integr(cale, tol). Semnificatia parametrilor
formali este: cale calea la catalogul care contine subprogramene (functiile) necesare
programului:init, tab, integ2, prodscal, fct, datas, finf, fsup;
t oltoleranta utilizata n regula de oprire;
-
5/25/2018 LabNum.pdf
58/126
58 CAPITOLUL 7. INTEGRARE NUMERICA
y valoarea calculata a integralei duble;
er indicatorul de raspuns:
0 integrala s-a calculat cu succes;
1 nu s-a ndeplinit conditia de convergenta n 10 iteratii.
Textele sursa ale programelor sunt
function [y,er]=integr(cale,tol)
exec(cale+\datas.sci,-1)
exec(cale+\init.sci,-1)
exec(cale+\finf.sci,-1)
exec(cale+\fsup.sci,-1)
exec(cale+\fct.sci,-1)exec(cale+\tab.sci,-1)
exec(cale+\prodscal.sci,-1)
exec(cale+\integ2.sci,-1)
n=3;
u=init(n);
old=integ2(u);
nmi=10;
cont=0;
ni=0;
while cont==0 doni=ni+1;
v=tab(u);
new=integ2(v);
nrm=abs(new-old);
old=new;
u=v;
if nrm
-
5/25/2018 LabNum.pdf
59/126
7.2. CALCULUL NUMERIC AL INTEGRALELOR DUBLE 59
endfunction
function u=init(n)
[a,b]=datas();
hx=(b-a)/n;
u=zeros(n+1,n+1);
for j=1:n+1,
x=a+(j-1)*hx;
fi=finf(x);
fs=fsup(x);
hy=(fs-fi)/n;
for i=1:n+1,
y=fi+(i-1)*hy;
u(i,j)=fct(x,y);end
end
endfunction
function v=tab(u)
[a,b]=datas()
[m,n]=size(u);
hx=(b-a)/(n-1);
for j=1:n,
for i=1:m,
v(2*i-1,2*j-1)=u(i,j);end
x=a+(j-1)*hx;
fi=finf(x);
fs=fsup(x);
hy=(fs-fi)/(m-1);
for i=1:m-1,
y=fi+hy*(i-0.5);
v(2*i,2*j-1)=fct(x,y);
end
endfor j=1:m-1,
x=a+(j-0.5)*hx;
fi=finf(x);
fs=fsup(x);
-
5/25/2018 LabNum.pdf
60/126
60 CAPITOLUL 7. INTEGRARE NUMERICA
hy=(fs-fi)/(m-1)/2;
for i=1:2*n-1,
y=fi+hy*(i-1);
v(i,2*j)=fct(x,y);
end
end
endfunction
function z=integ2(u)
[a,b]=datas()
[m,n]=size(u);
hx=(b-a)/(n-1);
w=zeros(1,n);
c=ones(1,n);if n==3,
c(2)=4;
else
n0=(n-1)/2;
for j=1:n0,
c(2*j)=4;
end
for j=1:n0-1,
c(2*j+1)=2;
end
endfor j=1:n,
x=a+(j-1)*hx;
fi=finf(x);
fs=fsup(x);
hy=(fs-fi)/(m-1);
w(j)=prodscal(c,u(:,j))*hy/3;
end
z=prodscal(c,w)*hx/3;
endfunction
function e=prodscal(x,y)
[m,n]=size(x);
e=0;
for i=1:n,
-
5/25/2018 LabNum.pdf
61/126
7.2. CALCULUL NUMERIC AL INTEGRALELOR DUBLE 61
e=e+x(i)*y(i);,
end
endfunction
Utilizatorul trebuie sa precizeze datele problemei n subprogramele datas,fct, finf, fsup.
Exemplul 7.2 Sasecalculeze
Dx ydxdy unde domeniul D este delimitat de curbeley= x2 si y = x.
n acest caz se definesc functiile:
function [a,b]=datas()
a=0;b=1;
endfunction
function z=fct(x,y);
z=x*y;
endfunction
function y=finf(x)
y=x.*x;
endfunction
function y=fsup(x)
y=sqrt(x);
endfunction
Rezolvarea finala este
exec(c:\lucru\scilab\integr.sci,-1)
[y,er]=integr(c:\lucru\scilab,1.e-6)
er=
0.
y=
.0833333
-
5/25/2018 LabNum.pdf
62/126
Part II
MathCAD
62
-
5/25/2018 LabNum.pdf
63/126
Capitolul 8
Prezentare generala
Cap. 7 Cap. 9
MathCAD este un produsinformatic comercial destinat rezolvarii problemelorde calcul numeric, cu posibilitatea documentarii si a reprezentarii grafice planesi spatiale.
MathCAD permite att programarefunctionala, adica prin compunerea functi-ilor, ct si programare procedurala, fiind nzestrat cu o paleta de programare efi-cienta.
MathCAD ofera posibilitatea de calcul simbolic, nglobndo bibliotecaMaplede functii simbolice.
MathCAD utilizeaza notatia matematica obisnuita.
Produsul are un editor propriu. Simbolurile operatorilor si ale functiilor sepot introduce fie prin intermediul paletelor, fie prin codurile atasate. Tot ceea cese introduce conduce la formarea unui document MathCAD.
ntr-un document MathCAD orice definitie, ecuatie, text-comentariu sau reprezentare
grafica ocupa un spatiu numitregiune.Regiunile sunt disjuncte doua cte doua.Procesul de calcul consta n evaluarea regiunilor Si are loc de sus n jos, jar penivel orizontal de la stnga spre dreapta. Regiunile pot fi vizualizate prin clic pebutonulView/Region,care functioneaza n regim "aprins/stins".
Un calcul se poate opri fortat prin butonulEsc.
63
-
5/25/2018 LabNum.pdf
64/126
64 CAPITOLUL 8. PREZENTARE GENERALA
Figure 8.1: Ecran MathCAD
8.1 Efectuarea calculelor numerice
8.1.1 Operatori MathCAD
Operatori de definire si evaluare
1. Operatorul de atribuire / definire:=
Se obtine tastnd : sau prin alegerea din panoulEvaluation Toolbar.
Sintaxa este:
variabila :=expresiefunctie(lista de variabile) :=expresie
Exemplul 8.1a:= 1f(x) := 1 x2
2. Operatorul de afisare / calcul=
Sintaxa este:
variabila =functie(variabile) =expresie=
-
5/25/2018 LabNum.pdf
65/126
8.1. EFECTUAREA CALCULELOR NUMERICE 65
Exemplul 8.2
x:= 3 x= 3h(x) :
=5x3
2 h(0)
= 2
7+3 x= 14
3. Operatorul de definire globala Se obtine tastndShift+ sau prin panoulEvaluation Toolbar. Sintaxa este:
parametrul MathCAD expresieOperatorulde definire globala permite fixarea sau modificarea unor parametriiMathCAD la nivel global, adica avnd domeniul de valabilitate ntregul doc-ument.
8.1.2 Identificatori MathCAD
Identificatorii MathCAD, adica numele dat variabilelor, constantelor si functi-ilor, pot contine oricare din urmatoarele caractere:
litere latine mari si mici; se face distinctie ntre literele mari si mici;
cifre de la 0 la 9; un identificator nu poate ncepe cu o cifra;
litere grecesti :, , . . . , . Aceste litere se obtin din panoulGreek;
caractere speciale: _ (linie de subliniere),% (procent), (simbolul infinit), (a nu se confunda cu apostrogul ), . (punctul simbolurile care urmeazasunt interpretate de MathCAD ca indice literal).
Exemplul 8.3
a1_2 _ind %p_presiunea c on st a .bc d ab
8.1.3 Constante MathCAD
MathCAD recunoaste cteva constante uzuale:,e- baza logaritmului natu-
ral, - infinit, i(sauj) - unitatea imaginara. Pe lnga aceste constante mai existasi o serie de constante sistem predefinite (globale):
TOLacarei valoare implicita este 0.001 si care reprezinta toleranta utilizatan testele de convergenta.
-
5/25/2018 LabNum.pdf
66/126
66 CAPITOLUL 8. PREZENTARE GENERALA
CTOL a carei valoare implicita este 0.001 si care reprezinta toleranta deconstrngere si care controleaza restrictiile din cadrul unui bloc de rezolvarea sistemelor de ecuatii.
ORIGIN cu valoare implicita egala cu zero reprezinta valoarea indiceluiprimului element al unui vector sau al unei matrice.
CWD retine ntr-un sir de caractere calea directorului curent.
8.1.4 Tipuri de date MathCAD
MathCAD utilizeaza variabile avnd urmatoarele tipuri de date:
1. Variabila numerica reala sau complexa
Pentru a defini o variabila:
se tasteaza numele variabilei;
se tasteaza operatorul de definitie;
se introduce expresia care defineste variabila.
Exemplul 8.4 Pentru a calcula valoarea expresiei y= x2 3x+2n punctul0.5se defineste
x:= 0.5 y:= x2 3 x+2Rezultatul se obtine tastnd y, =.
y= 0.75
O constanta numerica ntreaga se poate defini n baza 10, 8 sau 16. Dacareprezentarea se face n baza 8, numarul va fi urmat de de literaosauO(deexemplu 15o), iar n cazul bazei hexazecimale numarul va fi urmat de literahsauH(de exemplu A1Eh).
Pentru a defini o constanta complexa se utilizeaza forma algebricaa+ bi.nloculluiisepoatefolosicaunitateimaginara si j. Pentrua defini unitateaimaginara se tasteaza 1i sau 1j.
Operatorii algebrici uzuali sunt
-
5/25/2018 LabNum.pdf
67/126
8.1. EFECTUAREA CALCULELOR NUMERICE 67
Operator algebric Se obtine tastnd
+ (adunare) +
(scadere) (nmultire) / (mpartire) /
(ridicare la putere)
2. Variabila domeniu : progresie aritmetica
O variabila domeniu este o progresie aritmetica. Definirea unei progresiiaritmetice se face prin:
variabila_domeniu:=val_ initiala, val_urmatoare .. margine
Elementele folosite n definitia de mai sus, respectiv valoarea initiala, val-oarea urmatoare si margine a pot fi constante, variabile sau expresii. Ratiaprogresiei este egala cu
val_urmatoare - val_initiala.
Pentru a obtine .. se tasteaza ; .
Exemplul 8.5 x:= 0,0.9..4defineste progresia aritmetic a
x=0
0.91.82.73.6
Daca n sintaxa de definire a unei variabile de tip domeniu lipsesc virgulasi val_urmatoare, ratia progresiei aritmetice este
sgn(val_finala-val_initiala).
Exemplul 8.6 Sirurile i:= 0.5..3 si j:= 5..2.5definesc urmatoarele progresi-ile aritmetice
-
5/25/2018 LabNum.pdf
68/126
68 CAPITOLUL 8. PREZENTARE GENERALA
i= j=0.51.5
2.5
54
3
3. Variabila indice
O variabila domeniu ale carei valori sunt numere naturale consecutive senumestevariabila indice.
Exemplul 8.7 Pentru a defini un indice k ale carui valori sa fie succesiv 2,3, 4, 5, se editeaza k : 2 ; 5 rezultnd k:= 2..5
4. Sir
Prin intermediul unei variabile indice se poate defini un sir oarecare prinsintaxa:
variabila_sirvariabila_indice :=expresie.
Pentru a scrie indicele, dupa numele variabilei de tip sir se tasteaza [ .
Exemplul 8.8 Pentru variabila k definita n exemplul anterior definim sirulxk = k2 astfel:
xk:= k2
Vizualizam rezultatul prin
x=
0049
1625
sau
xk=49
1625
Sirul astfel obtinut contine pe primele doua pozitii valoarea 0 deoarece re-spectivele pozitii nu au fost definite.
Functii uzuale aplicabile unui sira= (ai)iI
-
5/25/2018 LabNum.pdf
69/126
8.1. EFECTUAREA CALCULELOR NUMERICE 69
Apelare Semnificatie
length(a) Numarul elementelor sirului
last(a) Indicele ultimului elementmax(a) Cel mai mare element al siruluimin(a) Cel mai mic element al sirului|a| Norma euclidiana a sirului
5. Tablouri : vectori si matrice
MathCAD permite definirea matricelor si are prevazute operatiile uzualede calcul matriceal. Vectorii de dimensiunense considera matrice cunlinii si o coloana.
Pentru a introduce o matrice n documentul curent se selecteaza din me-
niulInsert/Matrixsau prin paleta Matrix. Ca urmare, pe ecran apareo fereastra de dialog n care se completeaza numarul de linii, respectiv decoloane corespunzatoare matricei ce se doreste a fi inserata. Dupa pre-cizarea dimensiunilor matricei, toate pozitiile marcate se vor completa cuexpresii sau numere, trecerea de la o pozitie la alta facndu-se prin apasareatastei Tab. Aceasta metoda de definire a unei matrice este o metoda explic-ita. Vorbim de o metoda implicita de definire a unei matrice n cazul n careexista o formula de legatura ntre indici si elementele din matrice.
ntr-un tablou valoarea initiala a indicilor este 0. Daca dorim ca valoareainitiala a indicilor sa fie 1, trebuie sa atribuim parametrului ORIGIN val-
oarea 1. Aceasta se obtine prin definitia globala ORIGIN 1.Referirea unui element al unui tablou se face indicnd numele tabloului(variabila) urmat de indicii elementului separati prin virgula. Trecerea laindicarea indicelor se obtine prin tasta [.
Exemplul 8.9
Daca
i:= 0..3 j:= 0..3 Xi,j:= i2 +j
2
atunci se obtine
X=
0 0.5 1 1.51 1.5 2 2.54 4.5 5 5.59 9.5 10 10.5
-
5/25/2018 LabNum.pdf
70/126
70 CAPITOLUL 8. PREZENTARE GENERALA
Exemplul 8.10
DacaA:=
1 32 4
atunci
A0,0 = 1 A0,1 = 3 A1,0 = 2 A1,1 = 4
Pentru a defini siruri de vectori se utilizeaza indici superiori. Un indicesuperior se obtine tastndCtrl+6sau prin paletaMatrixM.
Exemplul 8.11
Fie
u =
12
A=
1 02 1
Pentrui:= 0..4 calculam
u:=A u
obtinnd
u = 12 u = 10
iar
u=
1 1 1 1 1 12 0 2 0 2 0
u1,4 = 2 u0,4 = 1
DacaMeste o matrice, expresiaMdesemneaza coloana ia matriceiM.
Operatori matriceali
Operator algebric Se obtine tastnd+ (adunare) + (scadere) (nmultire)
(ridicare la putere)
-
5/25/2018 LabNum.pdf
71/126
8.1. EFECTUAREA CALCULELOR NUMERICE 71
Functii uzuale aplicabile (operatori aplicabili) unei matriceA= (ai,j)iI,jJ
Apelare Semnificatie
rows(A) Numarul liniilor matriceicols(A) Numarul coloanelor matriceitr(A) urma matriceiAT transpusa matricei|A| determinantul matriceiA1 inversa matriceirank(A) rangul matriceinorm1(A) norma Minkovski, maxj
i|ai,j|
norm2(A) norma euclidiana,
maxeigenvals(aT a)norme(A) norma Frobenius,
i,ja
2i,j
normi(A) norma Cebsev, maxi
j|ai,j|
6. Functii
MathCAD poseda o bogata familie de functii predefinite si ofera posibili-tatea definirii de functii noi conform sintaxei
numeFunctie(ar g1, ar g2, . . . ) := expresie
Functii numerice uzuale aplicabile aplicabile unui numar real sau complexx
-
5/25/2018 LabNum.pdf
72/126
72 CAPITOLUL 8. PREZENTARE GENERALA
Apelare Semnificatie
sin(x) sin x
cos(x) cos xtan(x) tgxcot(x) ctgxasin(x) arcsin(x)acos(x) arccos(x)atan(x) arctg(x)sinh(x) shxcosh(x) chxtanh(x) thxasinh(x) arcsh(x)acosh(x) arcch(x)
atanh(x) arcth(x)exp(x) ex
log(x) lg(x)ln(x) ln(x)
8.1.5 Vectorizare
Sa presupunem ca o functie f(x,y) trebuie aplicata succesiv unui sistem devariabile (xi,yi)1in, obtinnd zi= f(xi,yi), i {1,2,. .. ,n}.. MathCAD oferaposibilitatea efectuarii acestor calcule prin vectorizare, un procedeu care este
multmai rapid dect prin folosirea indecsilor. Sintaxa utilizata este
x:=
x1...
xn
y:=
y1...
yn
z= f(x,y)
Operatorul de vectorizare se obtine tastnd Crtl + -fie din paletaMatrixcu cursorul MathCAD plasat pe relatia de calcul.
Exemplul 8.12 Rezolvarea ecuatiilor de gradul doi avnd coeficientii
a:=
1111
b:=
3210
c:=
2114
-
5/25/2018 LabNum.pdf
73/126
8.1. EFECTUAREA CALCULELOR NUMERICE 73
Formulele
x:=
b+
b2 4 ac2 a
y:=
b
b2 4 a c2 a
produc rezultatele
x=
11
0.5+0.866i2i
y=
21
0.50.866i2i
8.1.6 Unitati de masura
Variabilele MathCAD pot reprezenta marimi fizice, n care caz valoarea nu-
merica este urmatadeounitatedemasura. MathCAD dispune de un set completde unitati de masura predefinite. Pentru a asocia unui numar sau unei expresiio unitate de masura se foloseste semnul de nmultire dupa numar sau expresieapoi a se scrie explicit unitatea dorita. Sunt recunoscute majoritatea unitatilorprin forma lor abreviata. Implicit MathCAD foloseste unitatile dinSistemul In-ternational (SI). Acest lucru nseamna ca la folosirea semnului egal un rezultat cecontine si unitati de masuravafiafisat n termenii unitatilor de baza sau derivateale SI. Pentru orice expresie care implica unitati de masura MathCAD efectueazaverificari de consistenta. Daca se ncearca efectuarea sumei sau diferentei ntrevalori incompatibile din punct de vedere al unitatilor de masura se va afisa unmesaj de eroare.
De asemenea pe lnga (SI) sunt disponibile si alte sisteme de unitati de ma-sura: CGS, U.S. si MKS. Fiecare dintre aceste standarde constituie un tabel cecontine unitatile de baza specifice si unitatile ce masoara:
unghiuri si lungimi masa si timp arii si volumeviteze si acceleratii forte, energii si puteri presiuni si vscozitatielectricitate frecventa temperatura
Alegerea / schimbarea sistemulul de unitati de masurasefaceprinmeniul Tools/Worksheetoptions.../Unit system.
Exemplul 8.13 Sa se calculeze marimea fortei ce actioneaza asupra unui corp de
masa 5 kg si c areia i imprima o acceleratie de 2 ms2 .
masa:= 5 kg acc := 2 ms2
F:= masa ac cF= 10N
-
5/25/2018 LabNum.pdf
74/126
74 CAPITOLUL 8. PREZENTARE GENERALA
Transformarea unitatilor
Pentru transformarea unei marimi dintr-un sistem n altul este suficienta cunoaster
notatiilor unitatilor respective n cele doua sisteme. Transformarea se face prin:
1. tastarea marimii si a unitatii de masura corespunzatoare;
2. a operatorul de afisare / calcul (=) ;
3. n pozitia marcata se introduce noua unitatea de masura;
4. clic n afara regiunii de lucru.
1
m
=1
103mm
Definirea altor unitati de masura
Se pot defini unitati de masura noi prin
1. se tasteaza numele noii unitati de masura;
2. operatorul de atribuire (:=);
3. definitia noii unitati de masura.
Exemplul 8.14
g:= 11000
kg 3 kg= 3103g
mi n:= 60 s h:= 60 mi n 1 h= 3.6103s
8.2 Reprezentari grafice
Prin intermediul paletei Graph sau prin meniul Insert/Graph, se pot realizaurmatoarele reprezentari grafice
X-Y Plot Reprezentare grafica 2D n coordonate carteziene. Comanda sepoate da si prin combinatia de taste Shift+2 (@).
Polar Plot Reprezentare grafica 2D n coordonate polare. Comanda sepoate da si prin combinatia de taste Ctrl+7.
-
5/25/2018 LabNum.pdf
75/126
8.2. REPREZENTARI GRAFICE 75
Surface plot Reprezentare grafica 3D n coordonate carteziene. Comandase poate da si prin combinatia de taste Ctrl+2.
Contur Plot Reprezentare prin linii de nivel Comanda se poate da si princombinatia de taste Ctrl+5.
3D Bar Plot
3D Scatter Plot
Vector Field Plot
Reprezentarea grafica 2 D n
coordonate carteziane
Sa presupunem ca dorim sa reprezentam functia x f(x). Dupa definireafunctiei, n urma comenzii de realizare a reprezentarii grafice apare un cadrucu doua pozitii marcate, care se completeza cux(pe axa orizontala) si respectivf(x) (pe axa verticala). n cadru apar, corespunzator fiecarei axe, alte doua poz-itii marcate, pentru fixarea intervalelor. Completarea acestor pozitii marcate esteoptionala. Un clic n afara cadrului sauEnterdeclanseaza realizarea reprezen-tarii grafice.
x
f(x)
MathCAD permite reprezentarea functiilor cunoscute prin valori discrete:(xi,yi)1in, yi=f(xi),i. n acest caz cele doua pozitii marcate initiale se com-pleteaza cuxisi respectivyi.
Pentru a obtine n acelasi cadrureprezentarea grafica pentrumai multe functii,se introduc variabilele si functiile separate prin virgula.
x, x,y
f(x),g(x),h(y)
-
5/25/2018 LabNum.pdf
76/126
76 CAPITOLUL 8. PREZENTARE GENERALA
Reprezentarea grafica 2 D n
coordonate polare
Daca curba are ecuatia polarar= r(t) atunci n urma comenzii de realizare areprezentarii grafice apare un cadru cu doua pozitii marcate, care se completezacut si respectivr(t). n cadru apar alte doua pozitii marcate, pentru fixarea in-tervalului n care variazat.. Completarea acestor pozitii marcate este optionala.Un clic n afara cadrului sauEnterdeclanseaza realizarea reprezentarii grafice.
tr(t)
Formatarea graficelor 2D
MathCAD realizeaza reprezentarile grafice cu o serie de parametri impliciti.Aceste setari pot fi schimbate de utilizator si de asemenea se pot adauga titluri sietichete. Pentru a formata o zona grafica se executa dublu clic pe zona respectivasau se selecteaza zona grafica si apoi din meniulFormat/Graph/X-Y PlotsauPolar Plot. n urma actiunii executate se deschide o fereastra de dialog prinintermediul careia se poate modifica
Natura axelor de coordonate;
Modul de trasarea curbei (continuu, discret prin simboluri, etc.);
Culoarea de desenare.
-
5/25/2018 LabNum.pdf
77/126
8.3. CREAREA UNEI ANIMATII 77
Reprezentare grafica 3 D n
coordonate carteziene
Reprezentare grafica prin linii de nivel
Reprezentare grafica 3D Bar
Reprezentare grafica 3D Scatter
Reprezentare grafica Vector Field
8.3 Crearea unei animatii
Prin intermediul variabilei predefinite FRAME potfi create si apoi rulatescurteclipuri animate. Orice obiect MathCAD care poate fi facut sa depinda de vari-abila FRAME poate fi animat. Sunt incluse aici nu numai punctele din graficeci si rezultatele numerice. Clipurile animate pot fi rulate la diverse viteze si deasemenea pot fi salvate pentru a fi apoi rulate n cadrul altor aplicatii.
Pentru realizarea unei animatii n MathCAD trebuie urmati pasii:
1. Se defineste o expresie care depinde de valoarea variabilei FRAME;
2. Se selecteaza optiuneaRecorddin meniulTools/Animation;
3. Dupadeschidereacasutei de dialog se selecteaza din foaia de lucruregiunea
ce se doreste sa apara n animatie;
4. n cadrul casutei de dialog se fixeaza limitele inferioara, respectiv supe-rioara a variabilei FRAME, precum si viteza de rulare (numarul de cadre pesecunda);
5. Se porneste animatia prin apasarea butonuluiAnimate.
O animatie creata poate fi salvatacafisier .avi si poate fi vizualizat si independentde MathCAD. Pentru aceasta se selecteaza butonul Save as dincadrulcasutei dedialog.
Pentru a rula n MathCAD un fisier avi existent din meniul Tools/Animationse alege optiuneaPlayback.
Exemplul 8.15 n intervalul[1,1],sa se transforme graficul functiei g(x) = x nf(x) = x2 prin efectul "morphing".
-
5/25/2018 LabNum.pdf
78/126
78 CAPITOLUL 8. PREZENTARE GENERALA
Astfel definim
f(x) :
=x2 g(x) :
=x M axF RAME :
=60
h(x) := FRA M EMaxFRAME
f(x)+ (1 FRA M EMaxFRAME
) g(x)
a:= 1 b:= 1si construim graficul functieih(x)(FRA M E= 0!). Efectuam operatiile mention-ate mai sus si obtinem rezultatele din Fig.8.2.
8.4 Editare de text
ntr-un document MathCAD pot fi incluse texte si comentarii asupra calculelorce se efectueaza. O regiune text se obtine tastnd " (ghilimele). n masura n carese adauga text, regiunea se extinde la dreapta. TastndEnterse trece pe liniaurmatoare. Regiunea text se paraseste prin plasarea cursorului n afara ei.
MeniulFormatofera facilitati de formatare a textului.
8.5 Salvarea / restaurarea datelor numerice
Comunicatii ntre medii de programare
Date numerice sub forma unei matrice se pot salva si / sau ncaca n / dinfisiere ASCII asigurnd astfel un canal de comunicatie cu un alt mediu de pro-gramare.
n acest sens sunt definite functiile
READPRN(fisier)citeste date structurate dintr-un fisier. Functia returneazao matrice, fiecare linie din fisier devine o linie n matrice. Numarul deelemente de pe fiecare linie trebuie sa fie acelasi. n general functia sefoloseste n instructiuni de forma:
A:= READPRN(fisier)
WRITEPRN(fisier) scrie o matrice ntr-un fisier. Fiecare liniea matricei devinelinie n fisierul specificat. Modalitatea de apel a functiei este:
W R I T E P R N (fisier) :=A
-
5/25/2018 LabNum.pdf
79/126
8.6. INSTRUMENTE DE CALCUL SIMBOLIC 79
APPENDPRN(fisier) adaugarea o matrice la sfrsitul unui fisier deja existent.Fiecare linie a matricei devine o noualinienfisier. Forma de apel a functieieste:
AP PE NDPRN(fisier) :=A
n toate cazurile de mai sus,fisiereste un string care identifica fisierulvolum:\cale\numeFisier.extensie.
Amintim posibilitatea inserarii n MathCAD de componente MSOffice, dar si
pentru alte produse informatice.
8.6 Instrumente de calcul simbolic
Exista doua componente prin care se pot efectua calcule simbolice:
Utiliznd comenzile meniului Symbolic, accesibil din bara superioara demeniuri (MenuBar) (Fig.8.3);
Utiliznd functiile casetei Symbolic, ce permite obtinerea rezultatelor sim-bolice la fel de usor ca cele numerice (Fig.8.3).
Utilizarea meniului Symbolic.Operatiile meniului Symbolic sunt continuten tabelul urmator:
-
5/25/2018 LabNum.pdf
80/126
80 CAPITOLUL 8. PREZENTARE GENERALA
Numele comenzii Semnificatia
Evaluate EvaluareSimplify Simplifica o expresieExpand Dezvoltarea unei expresiiFactor Descompunere n factoriCollect Dezvolta dupa o expresiePolynomial Coefficients Coeficientii polinomuluiVariable ... Variabila ...
Solve Rezolva ecuatiaSubstitute SubstituieDifferentiate DeriveazaIntegrate IntegreazaExpand to Series ... Dezvoltare n serie
order of approximation pna la ordinulConvert to partial fraction Dezvoltare n fractii simple
Matrix ... Operatii matriceale ...Transpose Matricea transpusaInvert Matricea inversaDeterminant Determinantul matricei
Transformations ... Transformari integrale ...Fourier Transformarea FourierInverse Fourier Transformarea Fourier inversaLaplace Transformarea LaplaceInverse Laplace Transformarea Laplace inversaZ TransformareazInverseZ Transformareazinversa
Pentru a putea aplica comenzile meniului Symbolictrebuie sa selectam varia-bila sau expresia asupra careia are loc actiunea.
Selectarea unui element se obtine prin clic asupra elementului sau utilizndtastatura, cu ajutorul tastelor directionale pozitionam cursorul pe elementul dorit.Elementul selectionat este ncadrat. Cu ajutorul tastei Space o zona selectata sepoate extinde si restrnge iar cu tastele directionale selectia se poate muta de peun termen / operand pe altul.
Pentru actionarea comenzilor meniului Symbolic se procedeaza dupa cumurmeaza:
1. Se tasteaza expresia/ecuatia asupra careia va actiona comanda.
2. Se selecteaza expresia sau variabila activa.
-
5/25/2018 LabNum.pdf
81/126
8.7. ELEMENTE DE PROGRAMARE FUNCTIONAL A 81
3. Se selecteaza comanda dorita din meniul Symbolic si se lanseaza n exe-cutie prin clic sau tastndEnter.
Rezultatul apare sub expresia n cauza.Pentru editarea unei ecuatii ntre membrul stng si membrul drept se puneegalul simbolic, care se obtine tastndCtrl+=.
Utilizareafunctiilor casetei Symbolic.Functiilecasetei Symbolic se apeleazaprintr-un clic, n dreptul cursorului MathCADapare functia apelata mpreuna cupozitii marcate ce urmeaza a fi completate cu expresii si/sau variabile asupracarora are loc actiunea.
Evaluarea unei asemenea expresii se realizeaza prin comanda de simplificaresimbolica ce se obtine tastndCtrl + . urmat de clic n afara regiunii expresieisau tastndEnter.
n plus, dispunem de o serie de operatori de calcul simbolic:
Functiunea Se obtine tasnd
Calculul unei sume Ctrl+ $Calculul unui produs Ctrl+ #Calculul unei limite Ctrl + lLimita la dreapta Ctrl + Shift + aLimita la stnga Ctrl + Shift + bDerivare Ctrl + ? si ?Calculul unei primitive Ctrl + i
Calculul unei integrala Ctrl+ &
Cu ajutorul clauzeiassumese pot impune restrictii asupra unor variabile.
8.7 Elemente de programare functionala
Posibilitatea de a crea noi functii mpreuna cu operatia de compunere fac dinprogramarea functionala modul natural de lucru n MathCAD.
Pentru programarea unui test de decizie se poate folosi operatorul de controlif( cond,exp1,exp2). Daca expresia condeste adevarata atunci valoarea retur-
nata de operator esteexp1iar n caz contrarexp2.condeste o expresie logica.n MathCAD orce valoare nenula reprezinta valoarea logicaadevarat si0reprez-
inta valoarea logica fals.Operatorii relationali si operatorii logici se pot obtine prin paletaBoolean
sau tastnd
-
5/25/2018 LabNum.pdf
82/126
82 CAPITOLUL 8. PREZENTARE GENERALA
Operatori relationali Se obtine tastnd
= Ctrl + =
< >> < Ctrl + 9 Ctrl + 0= Ctrl + 3
Operatori logici Se obtine tastnd
(negatia) Ctrl + Shift + 1 (disjunctia) Ctrl + Shift + 7 (conjunctia) Ctrl + Shift + 6
(sau exclusiv) Ctrl + Shift + 5Exemplul 8.16 Sa se calculeze limita sirului(an)nNdefinita prin formula de re-curent a
an+1 =
an+2 a0 =
2
cu o precizie= 106 n sensul|an an1| < .
Codul MathCAD este
N:=
100 n:=
1..N :=
106
a0:=
2 a1:=
2+
2
an+1:= if|an an1| ,
an+2, an
l i m:= alast (a) l i m= 2
8.8 Elemente de programare procedurala
MathCADeste dotat cu un limbaj de programare vizual deosebit de eficient.Functiile astfel create pot fi incorporate n expresiile supuse calculului simbolic.
Realizarea unui program se obtine cu instrumentele casetei de programare(din bara/panoul cu unelteleMathCAD) (Fig.8.4).
Un program MathCAD va apare ca o functie
-
5/25/2018 LabNum.pdf
83/126
8.8. ELEMENTE DE PROGRAMARE PROCEDURAL A 83
NumeFunctie(vari abile f ormale) :=
instructiunile
programului. . .expresia returnata
Fiecare instructiune a panoului de programare se introduce exclusiv n doc-umentul (foaia de calcul) n care se editeaza programul printr-un clic al mouse-ului. Introducerea are loc pe pozitia cursoruluiMathCAD.
Astfel daca dorim sa ncepem editarea unui program este suficient sa tastam
NumeFunctie(vari abile f ormale) :=
urmat de clic pe Add Line.Rezultatul va fi
NumeFunctie(vari abile f ormale) :=
Semnul desemneaza cursorulMathCAD.Cele doua pozitii marcate permit extinderea numarului de rnduri (din nou
clic pe Add Line) si urmeaza a fi completate cu instructiunile programului.n procesul editarii se utilizeaza regulileMathCADpentru operatii, operatori,
indici, etc.
corespunde instructiunii de atribuire, variabilei din membrul stng i seatribuie valoarea expresiei din membrul drept.
ifeste instructiunea conditionala. Selectnd aceasta instructiune, po-zitiamarcata de cursorulMathCADse transforma n
i f
Cele doua pozitii marcate se completeaza cu
1. expresia care se obtine daca conditia este adevarata (pozitia marcatadin stnga);
2. conditia instructiuniiif(pozitia marcata din dreapta).
-
5/25/2018 LabNum.pdf
84/126
84 CAPITOLUL 8. PREZENTARE GENERALA
Daca prima pozitie marcata se extinde cu o linie atunci schema graficadevine
i fn acest caz pozitiile marcate se completeaza cu activitatile corespunza-toare cazului n care conditia este ndeplinita. Daca conditia este falsaatunci se continua cu instructiunea urmatoare.
otherwisefolosit dupa ifpermite specificarea actiunilor de efectuat n cazuln care conditia instructiunii conditionale este falsa. Selectarea instructiu-niiotherwisetransforma pozitia marcata de cursorulMathCADn
otherwise
Noua pozitie marcata se completeaza cu activitatile corespunzatoare cazu-lui n care conditia este falsa.
on erroreste instructiunea de tratare a exceptiei de depasire flotanta. Selec-tnd instructiuneaon errorpozitia marcata de cursorulMathCADdevine
on err or
Pozitiile marcate se completeaza cu
1. expresia returnata n caz de eroare;
2. expresia care poate genera eroare.
Urmatorul exemplu este edificator. Pentru functia
f(x) := on err or 1x
se obtinef(1) = 1 f(0) := 1 10307
Ultima valoare este cel mai mare numar cu care opereazaMathCAD.
whilesiforreprezinta instructiunile de ciclare cu test initial si respectiv cucontor.
Selectnd instructiunea while, pozitia marcata de cursorul MathCADdevine
while
Cele doua pozitii marcate se completeaza cu
-
5/25/2018 LabNum.pdf
85/126
8.8. ELEMENTE DE PROGRAMARE PROCEDURAL A 85
1. testul initial buclei;
2. instructiunile ciclului.
Selectnd instructiunea for, pozitia marcata din dreptul cursoruluiMath-CADse nlocuieste prin
f or
Cele trei pozitii marcate se completeaza cu
1. indicele ciclului;
2. intervalul n care variaza indicele;
3. instructiunile buclei.
Instructiunea breakse foloseste pentru ntreruperea unei instructiuni deciclare while, for. Bucla curenta este oprita si executia continua de la in-structiunea urmatoare.
Instructiunea continuese foloseste pentru scurtcircuitarea partiala a uneiinstructiuni de ciclarewhile, for;executia se reia de la prima instructiune abuclei, sarindu-se peste secventa de cod cuprinsa ntre instructiuneacon-tinuesi sfrsitul buclei.
Instructiuneareturnare ca efect scurtcircuitarea programului. Instruc- ti-unile care urmeaza nu mai sunt executate. Selectarea acestei instructiuni
introduce pe pozitia marcata de cursorulMathCAD
return
Noua pozitie marcata se completeaza cu valoarea returnata de functie.
Binenteles, ntr-un program MathCADse poate utiliza ntreaga familie de functiinumerice ale produsului.
Exemplificam posibilitatile oferite prin calculul sirului primelorNnumereprime (8.5).
-
5/25/2018 LabNum.pdf
86/126
86 CAPITOLUL 8. PREZENTARE GENERALA
Figure 8.2: Animatie tip "morphing"
-
5/25/2018 LabNum.pdf
87/126
8.8. ELEMENTE DE PROGRAMARE PROCEDURAL A 87
Figure 8.3: Meniul si caseta Symbolic.
Figure 8.4: Caseta cu instrumentele de programare.
-
5/25/2018 LabNum.pdf
88/126
88 CAPITOLUL 8. PREZENTARE GENERALA
Figure 8.5: ProgramMathCAD: Calculul sirului primelorNnumere prime.
-
5/25/2018 LabNum.pdf
89/126
Capitolul 9
Algebra liniara numerica
Cap. 8 Cap. 10
9.1 Factorizarea unei matrice
Functiile
M= lu(A) calculeaza factorizarea LU a matriceiA Mn(R) :P A= LU.MatriceaMs-a obtinut prin alaturarea matricelorP, L,U. Matricea Atre-buie sa fie nesingulara.
M= qr(A) calculeaza descompunerea QR a matriceiA Mn,k(R) :QA= R.MatriceaMs-a obtinut prin alaturarea matricelor QsiR.
Exemplul 9.1 Sa se calculeze factorizarea LU a matricei
A:=
1 2 3 42 3 4 13 4 1 24 1 2 3
.
89
-
5/25/2018 LabNum.pdf
90/126
90 CAPITOLUL 9. ALGEBRA LINIARA NUMERICA
M:=lu(A)
P:=submatrix(M,0,3,0,3)
L:=submatrix(M,0,3,4,7)
U:=submatrix(M,0,3,8,11)
P=
0 0 0 10 0 1 00 1 0 01 0 0 0
L=
1 0 0 00.75 1 0 00.5 0.769 1 0
0.25 0.538 0.818 1
U=
4 1 2 30 3.25 0.5 0.250 0 3.385 0.3080 0 0 3.636
Exemplul 9.2 Sa se calculeze factorizarea QR a matricei
X= 6 6 13 6 1
2 1 1
M:=qr(X)Q:=submatrix(M,0,2,0,2)
R:=submatrix(M,0,2,3,5)
Q= 0.857 0.286 0.4290.429 0.857 0.286
0.286 0.429 0.857
R=
7 8 1.5710 3 0.143
0 0 0.714
9.2 Rezolvarea sistemelor algebrice de ecuatii liniare
Pentru rezolvarea sistemelor algebrice de ecuatii liniare de forma Ax
=bn
care numarul necunoscutelor coincide cu numarul ecuatiilor, MathCAD oferadoua modalitati de abordare.
Mai ntai se defineste matriceaAa sistemului si apoi vectorul coloanabprinatribuire. Daca matriceaAa sistemului este nesingulara solutiaxse calculeazacu ajutorul formuleix:=A1 b. Acelasi rezultat se obtine si prin intermediulcomenziix:= lsolve(A,b). n cazul n care determinantul matricei sistemuluieste nul, aceasta nsemnnd ca sistemul algebric de ecuatii liniare dat are ne-cunoscute secundare, o solutie particulara a acestuia se poate obtine prin inter-mediul aceleiasi comenzix:= lsolve(A,b).
Exemplul 9.3 Sa se rezolve sistemul algebric de ecuatii liniare:
x1 + 2x2 + 3x3 + 4x4 = 112x1 + 3x2 + 4x3 + x4 = 123x1 + 4x2 + x3 + 2x4 = 134x1 + x2 + 2x3 + 3x4 = 14
-
5/25/2018 LabNum.pdf
91/126
9.2. REZOLVAREA SISTEMELOR ALGEBRICE DE ECUATII LINIARE 91
Pentru rezolvarea sistemului se defineste matricea patraticaAde dimensiunepatru si vectorulb, se calculeaza determinantul matricei A si apoi se calculeazasolutia sistemului.
A:=
1 2 3 42 3 4 13 4 1 24 1 2 3
b:=
11121314
|A| = 160 x:=A1 b x=
2111
Acelasi rezultat se obtine si prin
x:= lsolve(A,b) x=
2111
Exemplul 9.4 Sa se rezolve sistemul algebric de ecuatii liniare:
x + y + z + t = 10x + y z + 2t = 8
5x + 5y z 4t = 4x + y + 3z + 4t = 28
Rezolvarea sistemului dat consta n executarea urmatorilor pasi
A:=
1 1 1 11 1 1 25 5 1 41 1 3 4
b:=
108428
|A| = 0 x:= lsolve(A,b) x=
26.4
25.4
90
Solutia astfel obtinuta reprezinta o solutie particulara a sistemului dat.
-
5/25/2018 LabNum.pdf
92/126
Capitolul 10
Rezolvarea sistemelor si ecuatiilor
algebrice
Cap. 9 Cap. 11
10.1 Rezolvarea sistemelor algebrice de ecuatii neliniarePentru rezolvarea sistemelor algebrice neliniare de forma
f1(x1, . . . , xn) = 0...fn(x1, . . . , xn) = 0
sau scris sub forma condensataf(x) = 0 cu
x=
x1...
xn f(x) =
f1(x1, . . . , xn)...
fn(x1, . . . , xn)
MathCAD ofera doua functii: findsiminerr. Pentru gasirea unei solutii estenecesara precizarea unei aproximatii initiale. Pornind de la aceasta aproximatieMathCAD construieste prin intermediul unui proces iterativ noi aproximatii ale
92
-
5/25/2018 LabNum.pdf
93/126
10.1. SISTEME ALGEBRICE NELINIARE 93
solutiei. Daca valorile aproximatiei initiale nu sunt alese din domeniul de con-vergenta procesul iterativ diverge. Astfel, alegerea aproximatiei initiale poatereprezenta n anumite cazuri partea cea mai dificila din rezolvarea problemei.
Rezolvarea unui sistemalgebric de ecuatii neliniare consta n construirea unuibloc de rezolvare care trebuie sa contina cuvntul cheie given si una din functiilefind, respectivminerr. Cuvntul cheiegiventrebuie sa preceada n blocul derezolvare ecuatiile sistemului.
Exemplul 10.1 Sa se rezolve sistemul algebric de ecuatii neliniare:
10x1 + x21 2x2x3 0.1 = 010x2 + x22 2x1x3 + 0.2 = 010x3 + x23 2x1x2 0.3 = 0
Rezolvarea consta n efectuarea urmatorilor pasi pe o foaie de lucru:
x:= 0 y:= 0 z:= 0given
10 x+y2 2 y z0.1=010 y+y2 2 x z+0.2=010 z+ z2 2 xy0.3=0
find(x,y, z) =
9.8411030.02
0.03
Semnul"egal"scris ntre cei doi membrii ai fiecarei ecuatii se obtine prinapasarea simultana a tastelor Ctrlsi simbolul =. Algoritmul pentru functia findimplica un proces special de rezolvare n care metoda este aleasa dintr-un grupde metode pe care programul le pune la dispozitie. Alegerea unei metode se faceapasnd butonul din dreapta mouse-ului pe numele functiei find siapoiprinse-lectarea unei optiuni di