Sunteți pe pagina 1din 126

Universitatea Transilvania din Bra sov

Facultatea de Matematic a-Informatic a


E. SCHEIBER
Laborator de ANALIZ

A NUMERIC

A
SCILAB &MathCAD
Bra sov
Tema de LABORATOR
Pentru a primit n examen trebuie efectuat a si predat a cadrului didactic
coordonator al activit atii de laborator Lucrarea de laborator de Analiz a numer-
ic a/Calcul numeric.
Lucrarea const a din 2 teme:
Rezolvarea a cte unei probleme din toate temele cuprinse n Culegerea de
probleme.
Programarea unor metode de calcul numeric.
Fiecare tem a prime ste o not a iar media notelor reprezint a 50% din nota de exa-
men.
Rezolvarea problemelor din Culegerea de probleme
Pe o foaie A5 se 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 identicare a formatiei de studiu;
3. Num arul de ordine din catalog sau cel primit de la coordonatorul activit atii
de laborator. n continuare ne referim la acest num ar prin notatia I D.
2
3
La o tem a, un student rezolv a problema avnd num arul de ordine I D. Dac a
I D este mai mare dect num arul problemelor atunci problema ce trebuie rezol-
vat a se obtine cu formula
I D mod
1
Numar ul Pr obl emel or +1.
Se vor folosi urm atoarele produse informatice
Scilab - produs gratuit desc arcabil din internet;
ndrumarul de laborator de Analiz a numeric a/Calcul numeric prezint a modul
de rezolvare a problemelor.
1
Restul mp artirii.
Tema de programare
Programarea unor metode de calcul numeric
Fiecare student va prezenta 2 aplicatii programate n Scilab.
Cele dou a aplicatii se aleg dintre
1. Rezolvarea unui sistem algebric printr-o metod a nit a;
2. Rezolvarea unui sistem algebric printr-o metod a iterativ a;
3. Formul a de derivare numeric a;
4. Formul a de integrare numeric a.
Documentatia cuprinde:
1. Datele de identicare.
(a) Autorul (nume, prenume, specializarea, grupa);
(b) Data pred arii proiectului;
(c) Tema proiectului.
2. Formulele de calcul utilizate.
3. Problema de test cu rezolvarea matematic a si calculele auxiliare pentru de-
panare.
4. Reprezentarea algoritmilor n pseudocod (l. romn a).
Exemplu de aplicatie Scilab
Metoda tangentei pentru rezolvarea ecuatiei algebrice f (x) 0, f : R R
const a n construirea sirului (x
k
)
kN
denit prin x
k+1
x
k

f (x
k
)
f
t
(x
k
)
.
Documentatia cuprinde:
4
5
1. Formula de calcul.
x0 R
x
k+1
x
k

f (x
k
)
f
t
(x
k
)
, k N
2. Problema de test.
S a se rezolve ecuatie 2
x
x
2
0, x0 1
S-au calculat x
1
2.6294457, x
2
1.8807153.
3. Algoritmul metodei este dat pe pagina urm atoare.
Algorithm1 Pseudocodul metodei
1: procedure METODA TANGENTEI
2: generarea aproximaiei iniiale xv
3: i t er 0
4: do
5: i t er i t er +1
6: x xv
f (xv)
f
t
(xv)
7: nr m[x xv[
8: xv x
9: while (nr meps) si i t er <nmi )
10: if nr m<eps then
11: er 0
12: else
13: er 1
14: end if
15: return x
16: end procedure
4. Textele surs a.
Proiectul este alc atuit din 2 programe Scilab:
(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;
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<=tol))
sw=%f;
end
if(nrm<=tol)
er=0;
else
er=1;
end
end
endfunction
7
n timp, la elaborarea acestui ndru-
mar de laborator au contribuit:
Silviu Dumitrescu
Cristina Luca
Vlad Monescu
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 Grac a n Scilab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
1.5.1 Grac a 2D . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
1.5.2 Grac a 3D . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
2 Algebr a liniar a numeric a 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 polinomial a . . . . . . . . . . . . . . . . . . . . . . . . . . 42
4.2 Interpolare cu functii spline cubice . . . . . . . . . . . . . . . . . . . 45
5 Derivare numeric a 47
5.1 Derivarea functiilor de o variabil a real a . . . . . . . . . . . . . . . . . 47
5.2 Cazul functiilor de mai multe variabile . . . . . . . . . . . . . . . . . 47
6 Metoda celor mai mici p atrate 49
8
CUPRINS 9
7 Integrare numeric a 55
7.1 Integrarea functiilor de o variabil a real a . . . . . . . . . . . . . . . . . 55
7.2 Calculul numeric al integralelor duble . . . . . . . . . . . . . . . . . . 57
II MathCAD 62
8 Prezentare general a 63
8.1 Efectuarea calculelor numerice . . . . . . . . . . . . . . . . . . . . . . 64
8.1.1 Operatori MathCAD . . . . . . . . . . . . . . . . . . . . . . . . 64
8.1.2 Identicatori MathCAD . . . . . . . . . . . . . . . . . . . . . . 65
8.1.3 Constante MathCAD . . . . . . . . . . . . . . . . . . . . . . . . 65
8.1.4 Tipuri de date MathCAD . . . . . . . . . . . . . . . . . . . . . . 66
8.1.5 Vectorizare . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
8.1.6 Unit ati de m asur a . . . . . . . . . . . . . . . . . . . . . . . . . . 73
8.2 Reprezent ari grace . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
8.3 Crearea unei animatii . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
8.4 Editare de text . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
8.5 Salvarea / restaurarea datelor numerice . . . . . . . . . . . . . . . . . 78
8.6 Instrumente de calcul simbolic . . . . . . . . . . . . . . . . . . . . . . 79
8.7 Elemente de programare functional a . . . . . . . . . . . . . . . . . . 81
8.8 Elemente de programare procedural a . . . . . . . . . . . . . . . . . . 82
9 Algebr a liniar a numeric a 89
9.1 Factorizarea unei matrice . . . . . . . . . . . . . . . . . . . . . . . . . 89
9.2 Rezolvarea sistemelor algebrice de ecuatii liniare . . . . . . . . . . . 90
10 Sisteme si ecuatii algebrice 92
10.1 Sisteme algebrice neliniare . . . . . . . . . . . . . . . . . . . . . . . . 92
10.2 Rezolvarea ecuatiilor algebrice . . . . . . . . . . . . . . . . . . . . . . 94
10.3 Rezolvarea ecuatiilor polinomiale . . . . . . . . . . . . . . . . . . . . 94
11 Rezolvarea problemelor de interpolare 96
11.1 Interpolare polinomial a . . . . . . . . . . . . . . . . . . . . . . . . . . 96
11.2 Interpolare cu functii spline cubice . . . . . . . . . . . . . . . . . . . 97
12 Derivare numeric a 101
12.1 Derivarea functiilor de o variabil a real a . . . . . . . . . . . . . . . . . 101
12.2 Cazul functiilor de mai multe variabile . . . . . . . . . . . . . . . . . 102
13 Metoda celor mai mici p atrate 103
10 CUPRINS
14 Integrare numeric a 105
14.1 Integrare numeric a . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
14.2 Calculul numeric al integralelor duble . . . . . . . . . . . . . . . . . . 106
III CULEGERE DE PROBLEME 108
15 Metode numerice n algebra liniar a 109
16 Sisteme si ecuatii algebrice 113
17 Probleme de interpolare 117
18 Derivare numeric a 120
19 Metoda celor mai mici p atrate 122
20 Integrare numeric a 123
Bibliograe 125
Part I
Scilab
11
Capitolul 1
Elemente de programare n SCILAB
Cap. 2
Prezent am pe scurt elemente ale limbajului de programare utilizat n pro-
dusul Scilab. Elementele prezentate n sectiunile urm atoare reprezint a doar ghid
de utilizare rapid a. Se presupune c a utilizatorul posed a cuno stinte de progra-
mare, avnd experient a de lucru n cel putin un limbaj de programare procedu-
ral a.
Scilab este un produs de calcul numeric produs de INRIA Franta disponi-
bil n mediile Windows si Linux. Produsul este distribuit gratuit. Produsul este
nsotit de o documentatie cuprinz atoare.
Ca produs informatic Scilab are tr as aturi comune cuprodusul comercial Mat-
lab.
1.1 Obiecte Scilab
Constante
12
1.1. OBIECTE SCILAB 13
Tip Mnemonic Valoare
real %pi
real %e e
real %eps 2.210
16
%inf
complex %i i
boolean %t true
boolean %f false
polinom %s s
%nan Not A Number
Literali
Literali numerici
Exemple:
1. Num arul real 10,23 se poate scrie:
10.23=0.1023e+2=0.1023E+2=1023e-2=1023E-2.
2. Num arul complex 1+5i se scrie 1+5%i .
Literali nenumerici
Un caracter sau un sir se caractere string se dene ste (scrie):
c sau "c"
string sau "string"
Functii matematice uzuale:
14 CAPITOLUL 1. ELEMENTE DE PROGRAMARE N SCILAB
Mnemonic Semnicatie Mnemonic Semnicatie
abs(x) [x[ exp(x) e
x
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)
sinx
x
oor(x) [x] ceil(x) ]x]
erf(x)
2
_

_
x
0
e
t
2
dt gamma(x) (x)
_

0
t
x1
e
t
dt
gammah(x) ln(x) dlgamma(x)

t
(x)
(x)
real(z) (z) imag(z) (z)
Siruri de numere
Progresia aritmetic a introduce denind primul termen (a), ratia (r ) si o
marginea superioar a sau inferioar a (M), dup a cum ratia este pozitiv a sau
negativ a, prin sintaxa
a : r : M
Dac a parametrul r lipse ste 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 Scilablinspace(a, b, n) dene ste progresia a+i
ba
n1
, i 0, 1, . . . , n
1.
Un sir de numere (a
i
)
1i n
se poate deni prin
1. i=1:n
a=formula termenului general, functie de i
2. a [a
1
, a
2
, . . . , a
n
],
unde a
1
, a
2
, . . . , a
n
sunt termenii sirului.
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 16
b=[1,4,9,16]
a==b
T T T T
Matrice
Denirea unei matrice.
Exemplu: Matricea
a
_
1 2 3
4 5 6
_
se dene ste n Scilab prin
a=[1,2,3;4,5,6]
Elementele unei linii se pot separa prinvirgul a sau spatiu. Elementele
unei matrice pot : constante/variabile numerice, constante booleene,
siruri de caractere, polinoame, functii rationale.
O progresie aritmetic a pr og a : r : M este interpretat a ca un vector
linie (adic a o matrice cu o singur a linie).
Exemplu. Progresiile aritmetice a 0.2, 0.6, 1.0, 1.4, 1.8 si b 0, 1, 2, 3, 4
se 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 !
Functia Scilab size(variabilaMatrice) returneaz a num arul liniilor si
num arul coloanelor variabileiMatrice.
Denirea unei matrice rar a se face cu functia Scilab
a=sparse([l
1
, c
1
; l
2
, c
2
; . . .], [v
1
, v
2
, . . .])
16 CAPITOLUL 1. ELEMENTE DE PROGRAMARE N SCILAB
unde a
l
i
,c
i
v
i
. i .
Functia full(a) a seaz a o matrice rar a a n formatul obi snuit.
Matrice speciale.
*
zeros(m, n) dene ste o matrice nul a cu m linii si n coloane;
*
ones(m, n) dene ste o matrice cu toate elementele egale cu 1
avnd m linii si n coloane;
*
eye(m,n) dene ste o matrice unitate cu m linii si n coloane;
*
rand(m,n) dene ste o matrice cu m linii si n coloane avnd ca
elemente numere (semi)aleatoare cuprinse ntre 0 si 1.
Selectarea unui element se obtine prin sintaxa
variabilaMatrice(num arLinie, num arColoan a)
Prima linie si prima coloan a are num arul de ordine 1.
Operatori matriceali.
Simbol Semnicatie
+ adunare
- sc adere
nmultire de matrice
. nmultire pe componente
ridicare la putere prin produs matriceal
. ridicarea la putere a componentelor
\ a\b a
1
b
. \ a.\b (
b
i , j
a
i , j
)
i , j
/ b/a b a
1
. / b/a (
b
i , j
a
i , j
)
i , j
transpunere
Functii matriceale.
1.1. OBIECTE SCILAB 17
Mnemonic Semnicatia
triu(A) Matricea superior triunghiular a a lui A
tril(A) Matricea inferior triunghiular a a lui A
diag(A) Vectorul cu elementele diagonale ale lui A
size(A) Sir cu dimensiunile lui A
length(A) Num arul elementelor lui A
max(A) Cel mai mare element al lui A
min(A) Cel mai mic element al lui A
matrix(A, m, n) Transform a matricea A ntr-o matrice cu m
linii si n coloane
Extinderea unei matrice. Date ind o matrice a si un vector linie v
*
ad augarea liniei v ca prima linie a matricei a se obtine prin
[v; a]
*
ad augarea liniei v ca ultim a linie a matricei a se obtine prin
[a; v]
*
ad augarea vectorului v ca prima coloan a a matricei a se obtine
prin
[v
t
, a] sau [v; a
t
]
t
*
ad augarea vectorului v ca ultim a coloan a a matricei a se obtine
prin
[a, v
t
] sau [a
t
; v]
t
Trebuie observat a diferenta dintre cazul ncare extinderea se face prin
linie fat a de cel n care se extinde prin coloan a prin utilizarea ; si
respectiv ,.
Extragerea unei submatrice. Ozon a compact a xat a prinliniile l
1
: l
2
si coloanele c
1
: c
2
, inclusiv, se extrage din matricea a prin
a(l
1
: l
2
, c
1
: c
2
)
Pentru extragerea unei zone necompacte aat a la intersectia liniilor
l
1
, l
2
, . . . , l
p
cu coloanele c
1
, c
2
, . . . , c
q
dintr-o matrice a avnd m linii
si n coloane se denesc vectori linie
l i n (l i n
i
)
1i m
, l i n
i

_
%t dac a i {l
1
, . . . , l
p
}
%f n caz contrar
18 CAPITOLUL 1. ELEMENTE DE PROGRAMARE N SCILAB
col (col
j
)
1j n
, col
j

_
%t dac a j {c
1
, . . . , c
q
}
%f n caz contrar
Extragerea rezult a din
a(l i n, col )
Comenzile a(:, $) si a($, :) extrag din matricea a ultima coloan a, re-
spectiv ultima linie.
Polinoame si functii rationale
Scilab posed a o modalitate deosebit a de lucru cu polinoame denite peste
R sau C.
Pentru a deni un polinom n nedeterminata (variabila) X se poate deni
nti nedeterminata
X=poly(0,X);
iar apoi polinomul se introduce nemijlocit, de exemplu
p=X^2+3*X+2
Altfel, un polinom se dene ste prin intermediul functiei Scilab poly
polinom=poly(vector, nedeterminat a, [string])
Dac a vect or (a
1
, a
2
, . . . , a
n
) si string=coef atunci se obtine polinomul de
grad n 1
pol i noma
1
+a
2
X +. . . +a
n
X
n1
,
iar dac a string=roots atunci se obtine polinomul de grad n
pol i nom(X a
1
)(X a
2
) . . . (X a
n
)
A doua variant a este cea implicit a.
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
1.1. OBIECTE SCILAB 19
Dac a A este o matrice p atrat a atunci poly(A, X) genereaz a polinomul car-
acteristic matricei A, adic a det(X I A).
Dac a p si q sunt dou a polinoame n nederminata X atunci p/q dene ste o
functie rational a.
Scilab efectueaz a operatiile uzuale cupolinoame si functii rationale nmod
simbolic.
Dac a r este o functie rational a atunci r (num) furnizeaz a num ar atorul si
r (den) furnizeaz a numitorul lui r.
Functia coeff(polinom) returneaz a sirul coecientilor polinomului.
coeff(p)
-6. 11. -6. 1.
Dac a p este un polinom atunci functia Scilab horner(p, x) returneaz ap(x).
List a. O list a se dene ste prin
list(e
1
, e
2
, . . . , e
n
)
unde e
i
sunt obiecte Scilab.
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. !
Al i -lea element al unei liste l este accesibil cu l (i ).
l (i )=null sterge al i -lea element din lista l.
20 CAPITOLUL 1. ELEMENTE DE PROGRAMARE N SCILAB
1.2 Elemente de programare in Scilab
Programarea n Scilab se face n cadrul functiilor denite n exterior. Pentru
editarea acestor functii Scilab posed a un editor propriu, dar se poate utilizat
orice editor de siere.
O linie de comentariu este // text - comentariu.
Fiecare instructiune introdus a n dreptul promptului Scilab este executat a si
rezultatul este a sat. ncheierea unei comenzi cu caracterul ; are ca efect in-
hibarea a s arii rezultatului.
Pentru exprimarea conditiilor se utilizeaz a
Operatori relationali Operatori logici
Simbol Semnicatie Simbol Semnicatie
== = & si
/ [ sau
< negatia
< <
>
> >
Instructiunea de atribuire
variabila=expresie
Instructiuni conditionate
1.
if conditie then
instructiuni
elseif conditie then
instructiuni
else
instructiuni
end
Exemplul 1.1 Rezolvarea ecuatiei x
2
+ax +b 0 n linie de comand a.
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
1.2. ELEMENTE DE PROGRAMARE IN SCILAB 21
2.
select expresie
case expresi e
1
then instructiuni
.
.
.
else
instructiuni
end
case si then trebuie scrise pe aceea si linie.
Instructiuni de ciclare
1.
for n n1 : pas : n2, instructiuni, end
Dac a pas 1, atunci acest parametru este optional.
Exemplul 1.2

5
i 1
i
s=0;
for i=1:5, s=s+i;,end
Exemplul 1.3 mp artirea elementelor unei multimi n clase de echivalent a
modulo 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 comand a.
F=[1,1];
n=15;
for i=3:n do, F(i)=F(i-1)+F(i-2);, end
2.
while conditie
_
_
_
,
do
then
_
_
_
instructiuni, end
while si do sau then trebuie scrise pe acea si linie.
22 CAPITOLUL 1. ELEMENTE DE PROGRAMARE N SCILAB
Exemplul 1.5

5
i 1
i
s=0;
i=0;
while i<5, i=i+1;s=s+i;,end
Instructiunea break realizeaz a un salt neconditionat la prima instructiune
aat a dup a instructiunea de ciclare.
Instructiunea continue realizeaz a un salt neconditionat la urm atorul pas
al ciclului.
Editarea unei instructiuni n linie de comand a se face ntr- o singur a linie de
cod, prezenta virgulei este obligatorie (acolo unde este cazul). Editarea codul
n functii externe se poate face pe mai multe linii, utiliznd indentarea (scrierea
decalat a). n acest caz se poate omite scrierea virgulelor date n sintaxa instructi-
unilor.
1.3 Functii(subprograme) n Scilab
O functie Scilab este corect denit a dac a produce rezultate pentru diferite
tipuri de variabile: numere, vectori, matrice. n acest scop, uzual operatiile de
nmultire, mp artire si ridicare la putere se folosesc n varianta cu punct, adic a
operatiile se fac pe componente.
Functiile Scilab predenite satisfac aceast a cerint a.
Functiile se pot deni n
Linie de comand a.
deff([y
1
, . . . , y
n
]=f (x
1
, . . . , x
m
),[y
1
expresi e
1
,. . .,y
n
expresi e
n
])
Functia f : R
2
R
2
denit a prin
f (x, y)
_
x +y
x
2
+y
2
_
se dene ste prin
deff([u,v]=f(x,y),[u=x+y,v=x^2+y^2])
1.3. FUNC TII(SUBPROGRAME) N SCILAB 23
Variabilele functiei pot numere, vectori, matrice. n cazul n care vari-
abilele sunt tablouri, operatiile algebrice se fac ntre componentele core-
spunz atoare.
O functie denit a n linie de comand a se salveaz a
save(cale\numeFisier.bin, f )
Functia save salveaz a orice tip de obiect. Dac a a, b sunt variabile Scilab
atunci sintaxa utilizat a va save(cale\numeFisier.bin,
t
a
t
,
t
b
t
).
Renc arcarea se realizeaz a prin
load(cale\numeFisier.bin)
Exterior. Cu un editor de siere se creaz a subprogramul
function [y
1
, . . . , y
n
]=f (x
1
, . . . , x
m
)
instructiuni Scilab
endfunction
care se salveaz a obligatoriu cu numele f .sce sau f .sci.
Pentru a putea utilizat a functia exterioar a trebuie nc arcat a prin
exec(cale\f .sce,-1)
Valoarea -1 pentru al doilea parametru are ca efect lipsa a s arilor legate de
operatia de nc arcare a functiei.
Pentru functia din exemplul anterior, codul script-ului de denitie exte-
rioar a este
function [u,v]=f(x,y)
u=x+y;
v=x^2+y^2;
endfunction
Functiile denite n exterior pot organizate n biblioteci. Astfel functiile
Scilab deci avnd extensia .sci aate ntr-un catalog localizat prin cale
sunt reunite ntr-o bibliotec a prin comanda
genlib(numeBiblioec a,cale)
24 CAPITOLUL 1. ELEMENTE DE PROGRAMARE N SCILAB
Prin aceast a operatie are loc compilarea functiilor si crearea unui sier
names cu cuprinsul bibliotecii.
O bibliotec a odat a creat a, resursele ei pot utilizate dup a renc arcarea ei
prin
numeBibliotec a=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
Functia disp(obiectScilab) a seaz a 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
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 pentrucalculul limitei sirului (a
n
)
nN
denit prin a
0

_
2, a
n+1

_
a
n
+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(d<tol)&(ni>nmi)
cont=%f
end
end
if(d<tol)
error=0;
else
error=1;
end
endfunction
1.4 Salvarea si restaurarea datelor
Salvarea si restaurarea datelor n siere text se obtin cu functiile Scilab:
csvWrite(M,lename, separator)
csvWrite(M,lename)
M este matricea care se salveaz a iar separatorul implicit este virgula (csv -
Comma separated values).
26 CAPITOLUL 1. ELEMENTE DE PROGRAMARE N SCILAB
M=csvRead(lename)
M=csvRead(lename, separator)
1.5 Grac a n Scilab
1.5.1 Grac a 2D
Din multimea functiilor grace ale produsului Scilab amintim
plot2d. Cea mai simpl a form a de utilizare este
plot2d(x, y)
unde
x
_
_
x
1,1
. . . x
1,n
. . . . . . . . .
x
m,1
. . . x
m,n
_
_
y
_
_
y
1,1
. . . y
1,n
. . . . . . . . .
y
m,1
. . . y
m,n
_
_
sunt dou a matrice de acela si tip. Functia construie ste nacela si panou (fer-
eastr a grac a) gracele a n curbe ce trec respectiv prin punctele
(x
i , j
, y
i , j
)
1i m
, j {1, . . . , n}.
fplot2d. Utilizarea functiei este
fplot2d(x, f )
unde
x este un sir de numere reale;
f este o functie Scilab
iar rezultatul este gracul functiei f construit pe baza valorilor ei npunctele
lui x.
comet. Reprezentare grac a animat a. Utilizarea este asem an atoare cu cea
a fuctiei plot2d.
paramfplot2d realizeaz a oanimatie reprezentndevolutia gracele functi-
ilor f
t
(x), x [a, b] cnd parametrul t parcurge o multime de valori. Modul
de utilizare
1.5. GRAFIC

A N SCILAB 27
paramfplot2d( f , x, t )
unde
f (x, t ) este o functie Scilab.
x si t sunt siruri.
Exemplul 1.10 Reprezentarea grac a a functiilor sinx si cosx n [, ]
Reprezentarea grac a 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 Grac a 3D
plot3d(X,Y,Z)
X (X
i
)
1i m
si Y (Y
1j n
sunt vectori dati n ordine cresc atoare, iar
Z (Z
i , j
), i {1, . . . , m}, j {1, . . . , n} reprezint a valoarea functiei calculat a
n (X
i
, Y
j
).
Pozitia observatorului este indicat a prinparametrii t het a l ongi t udi ne, al pha
90l at i t udi ne. Valorile implicite sunt t het a 35, al pha 45.
Dac a suprafata este denit a prin z f (x, y), x [a, b], y [c, d] atunci se
dene ste functia Scilab
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
28 CAPITOLUL 1. ELEMENTE DE PROGRAMARE N SCILAB
Figure 1.1: Grac a 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 x
2
+y
2
+z
2
1.
Semisfera superioar a este dat a de z
_
1x
2
y
2
, pentru care construim
functia Scilab
1.5. GRAFIC

A N SCILAB 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:n
if x(i)^2+y(j)^2<=r^2 then
z(i,j)=sqrt(r^2-x(i)^2-y(j)^2);
else
z(i,j)=%nan;
end
end
end
endfunction
Imaginea obtinut a este dat a n Fig. 1.2.
Figure 1.2: Grac a 3D Semisfera superioar a
Altfel
deff(z=sf(x,y),[z=sqrt(1-x.^2-y.^2)])
x=-1:0.05:1;y=x;
fplot3d(x,y,sf)
30 CAPITOLUL 1. ELEMENTE DE PROGRAMARE N SCILAB
Exercitii
1. S a se reprezinte grac functiile n intervalele indicate
a.
_
[x[ x [4, 4]
b. e
x
2
x [4, 4]
c.
4x sinx3
2+x
2
x [0, 4]
d. x
_
x
2
1 x [4, 4]
2. S a se reprezinte evolutia functiilor
a. x
t
x [0, 1] t {0, 1, 2, . . . , 500}
b. sint x x [0, /2] t {1, 2, . . . , 100}
c. sint x x [0, 2] t 10.05i , i {0, 1, . . . , 20}
3. S a se reprezinte:
a. z
x
2
a
2
+
y
2
b
2
a 4, b 3 x [3, 3], y [3, 3]
Paraboloidul eliptic
b. z
x
2
a
2

y
2
b
2
a 4, b 3 x [3, 3], y [3, 3]
Paraboloidul hiperbolic
Capitolul 2
Algebr a liniar a numeric a
Cap. 1 Cap. 3
2.1 Factorizarea unei matrice
Functiile
[L,U, P] lu(A) calculeaz a factorizarea LU a matricei A : PA LU.
[Q, R] qr(A) calculeaz a factorizarea QR a matricei A : A QR
Exemplul 2.1 S a se calculeze factorizarea LU a matricei
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
_
_
_
_
_
_
_
.
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
32 CAPITOLUL 2. ALGEBR

A LINIAR

A NUMERIC

A
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 S a se calculeze factorizarea QR a matricei
X
_
_
6 6 1
3 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
2.2. REZOLVAREA SISTEMELOR ALGEBRICE DE ECUA TII 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 n
care
num arul ecuatiilor coincide cu num arul necunoscutelor;
determinantul sistemului este diferit de zero;
se procedeaz a dup a cum urmeaz a:
1. se xeaz a matricele A si b;
2. se calculeaz a x A
1
b.
Expresia A
1
se poate introduce ntocmai (A(-1)) sause poate utiliza functia
Scilab inv(A).
Functia Scilab det(A) calculeaz a determinantul matricei A.
Exemplul 2.3 S a se rezolve sistemul algebric de ecuatii liniare
_

_
x
1
+ 2x
2
+ 3x
3
+ 4x
4
11
2x
1
+ 3x
2
+ 4x
3
+ x
4
12
3x
1
+ 4x
2
+ x
3
+ 2x
4
13
4x
1
+ x
2
+ 2x
3
+ 3x
4
14
Rezolvarea const a 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
34 CAPITOLUL 2. ALGEBR

A LINIAR

A NUMERIC

A
x=
! 2 !
! 1 !
! 1 !
! 1 !
ngeneral, pentrusistemul algebric de ecuatii liniare Ax+b 0, functia Scilab
[x,k]=linsolve(A,b) calculeaz a
1. x o solutie particular a;
2. k o baz a a subspatiului liniar Ker(A) {x[Ax 0}.
Solutia sistemului Ax+b 0 este x+kc unde c este un vector oarecare a c arui
dimensiune coincide cu num arul coloanelor matricei k.
Dac a sistemul este incompatibil atunci rezultatele sunt egale cumatricea vid a
[ ].
Exemplul 2.4 S a se rezolve sistemul algebric de ecuatii liniare
_

_
x
1
+ x
2
+ x
3
+ x
4
2
2x
1
x
2
+ 2x
3
x
4
1
x
1
+ 2x
2
x
3
+ 2x
4
1
2x
1
+ x
2
+ 4x
3
+ x
4
7
3x
1
+ 2x
2
2x
3
+ 2x
4
5
avnd solutia x
1
1, x
2
1x
4
, x
3
2.
Scris matriceal, solutia sistemului este
_
_
_
_
_
x
1
x
2
x
3
x
4
_
_
_
_
_

_
_
_
_
_
1
1
2
0
_
_
_
_
_
+
_
_
_
_
_
0
1
0
1
_
_
_
_
_
c
_
_
_
_
_
1
1
2
0
_
_
_
_
_
+
_
_
_
_
_
0
1
_
2
0
1
_
2
_
_
_
_
_
c
t
.
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
2.2. REZOLVAREA SISTEMELOR ALGEBRICE DE ECUA TII LINIARE 35
0.7071068
2.776D-16
- 0.7071068
x =
- 1.
0.5
2.
0.5
Observatie. k aproximeaz a vectorul de norm a euclidian a 1
_
_
_
_
_
0
1
_
2
0
1
_
2
_
_
_
_
_
.
Notnd cu u si v cele dou a solutii particulare puse n evident a mai sus
u
_
_
_
_
_
1
1
2
0
_
_
_
_
_
v
_
_
_
_
_
1
0.5
2
0.5
_
_
_
_
_
g asim
u v
_
_
_
_
_
0
0.5
0
0.5
_
_
_
_
_

1
_
2
k KerA
n cazul unui sistem algebric de ecuatii liniare incompatibil se poate calcula
elementul care minimizeaz a functionala J(x) |b Ax|
2
2
. Acest element este
solutia sistemului algebric de ecuatii liniare compatibil A
T
Ax A
T
b si este dat
de functia Scilab x=lsq(A,b).
Exemplul 2.5 S a se rezolve sistemul algebric de ecuatii liniare
_
_
_
2x y + 3z 7
x + y + z 4
3x 3y + 5z 8
n sensul celor mai mici p atrate.
36 CAPITOLUL 2. ALGEBR

A LINIAR

A NUMERIC

A
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
Functia linsolve(A,b) returneaz a [ ].
Capitolul 3
Rezolvarea sistemelor si ecuatiilor
algebrice
Cap. 2 Cap. 4
3.1 Rezolvareasistemelor algebrice de ecuatii neliniare
Pentru rezolvarea sistemului algebric de ecuatii neliniare
_

_
f
1
(x
1
, . . . , x
n
) 0
.
.
.
f
n
(x
1
, . . . , x
n
) 0
sau scris sub form a concentrat a f (x) 0 cu
x
_
_
_
x
1
.
.
.
x
n
_
_
_ f (x)
_
_
_
f
1
(x
1
, . . . , x
n
)
.
.
.
f
n
(x
1
, . . . , x
n
)
_
_
_,
se utilizeaz a functia Scilab
[x [,y [,info ] ] ]=fsolve(x0, f [,fjac [,tol ] ] )
37
38 CAPITOLUL 3. REZOLVAREA SISTEMELOR SI ECUA TIILOR ALGEBRICE
unde semnicatia parametrilor este:
x0 reprezint a o aproximatie initial a a solutiei sistemului.
f identicatorul functiei Scilab care denette sistemul neliniar
f (x) 0.
f j ac identicatorul functiei Scilab al jacobianului nctiei f , adic a
f j ac(x)
_
_
_
f
1
x
1
(x) . . .
f
1
x
n
(x)
. . . . . . . . .
f
n
x
1
(x) . . .
f
n
x
n
(x)
_
_
_
t ol tolerant a, parametrul utilizat n testele de precizie (scalar real).
x aproximatia calculat a a solutiei sistemului algebric.
y reprezint a valoarea functiei f calculat a n x; y f (x).
i nf o indicatorul de r aspuns al programului fsolve. n cazul rezolv arii cu
succes, valoarea indicatorului este 1.
Astfel, rezolvarea const a din
1. denirea functei f ( si eventual al jacobianului f j ac);
2. apelarea functiei Scilab fsolve.
Exemplul 3.1 S a se rezolve sistemul algebric de ecuatii neliniare
_
_
_
10x
1
+ x
2
1
2x
2
x
3
0.1 0
10x
2
x
2
2
+ 3x
1
x
3
+ 0.2 0
10x
3
+ x
2
3
+ 2x
1
x
2
0.3 0
Rezolvarea const a 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)
3.2. REZOLVAREA ECUA TIILOR ALGEBRICE 39
info=
1.
q=
1.0E-15*
! - .2636780 !
! .2775558 !
! .9436896 !
p=
! .0098702 !
! - .0200485 !
! .0299499 !
3.2 Rezolvarea ecuatiilor algebrice
Dac a n 1, adic a dimensiunea spatiului este 1, atunci f (x) 0 cu f : I R
R reprezint a o ecuatie algebric a.
Pentrurezolvarea ecuatiilor algebrice se utilizeaz a de asemenea functia Scilab
fsolve.
Exemplul 3.2 S a se rezolve ecuatia 2
x
x
2
.
Rezolvarea ecuatiei f (x) 2
x
x
2
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=
40 CAPITOLUL 3. REZOLVAREA SISTEMELOR SI ECUA TIILOR ALGEBRICE
0
x=
2.
Dac a x0 5 atunci x 4, iar pentru x0 1 g asim x 0.7666647.
Gracul functiei f este reprezentat n Fig. 3.1.
Figure 3.1: y 2
x
x
2
3.3 Rezolvarea ecuatiilor polinomiale
ncazul particular al ecuatiilor polinomiale se cere determinarea tuturor r ad acinilor
reale sau complexe.
Pentru aarea r ad acinilor unui polinom se procedeaz a astfel:
1. Se dene ste polinomul Scilab p de variabil a x.
2. R ad acinile polinomului p sunt calcutate ajutorul functiei Scilab
3.3. REZOLVAREA ECUA TIILOR POLINOMIALE 41
x=roots(p)
unde
p este polinomul Scilab cu coecienti reali sau complec si de grad cel
mult 100.
x este un tablou cu r ad acinile polinomului p.
Exemplul 3.3 S a se determine r ad acinile polinomului p x
4
+2x
3
+3x
2
+2x +1.
Rezolvarea const a din:
c=[1,2,3,2,1];
p=poly(c,x,coef);
x=roots(p)
x=
! - .5 + .8660254i !
! - .5 - .8660254i !
! - .5 + .8660254i !
! - .5 - .8660254i !
Capitolul 4
Rezolvarea problemelor de
interpolare
Cap. 3 Cap. 5
Fie F o familie interpolatoare de ordin n pe axa real a. Dndu-se nodurile
(x
i
)
1i n
si numerele (y
i
)
1i n
, dac a F este functia de interpolare care satis-
face conditiile (x
i
) y
i
, 1 i n, se cere s a se calculeze (z), unde z este un
punct dat.
4.1 Interpolare polinomial a
Pentru F P
n1
solutia problemei de interpolare Lagrange este polinomul
L(P
n1
; x
1
, . . . , x
n
; y
1
, . . . , y
n
)(z)
n

i 1
y
i
n

j 1
j /i
z x
j
x
i
x
j
Valoarea acestui polinom este calculat de functia Scilab
function f=lagrange(xd,x,y)
[mx,nx]=size(x);
42
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
end
if 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);
44 CAPITOLUL 4. REZOLVAREA PROBLEMELOR DE INTERPOLARE
end
f(i,j)=p(i,j)/q(i,j);
end
end
end
endfunction
Semnicatiile parametrilor formali si a rezultatului sunt:
xd este o matrice de numere. n ecare element al matricei xd se cal-
culeaz a valoarea polinomului de interpolare Lagrange.
x (x
i
)
1i n
, sirul nodurilor de interpolare;
y (x
i
)
1i n
, sirul valorilor interpolate;
f este o matrice de acelea si dimensiuni ca xd si are ca elemente valorile
polinomului de interpolare Lagrange calculate n elementele corespunz a-
toare ale matricei xd.
Programul de mai sus, pentru calculul valorii polinomului de interpolare La-
grange, folose ste formula baricentric a.
Exemplul 4.1 S a se calculeze L(P
n
; x
0
, . . . , x
n
; f )(z) pentru
f (x) x
2
x
i
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 !
4.2. INTERPOLARE CU FUNC TII SPLINE CUBICE 45
4.2 Interpolare cu functii spline cubice
Dac a F S
3
, multimea functiilor spline cubice atunci pentrurezolvarea prob-
lemei de interpolare utiliz am functiile Scilab
1. d=splin(x,y);
sau
d=splin(x,y,[,spline_type[,der]])
1
2. [f0 [,f1 [,f2 [,f3]]]]=interp(xd,x,y,d).
Semnicatia parametrilor este
x (x
i
)
1i n
, sirul nodurilor de interpolare;
y (x
i
)
1i n
, sirul valorilor interpolate;
spline_type este un string care precizeaz a conditiile la limit a utilizate si
poate :
not_a_knot - alegerea implicit a: Dac a x
1
<x
2
<. . . <x
n1
<x
n
atunci
conditiile la limit a sunt
s
(3)
(x
2
0) s
(3)
(x
2
+0)
s
(3)
(x
n1
0) s
(3)
(x
n1
+0)
clamped:
s
t
(x
1
) der
1
s
t
(x
n
) der
2
natural:
s
tt
(x
1
) 0
s
tt
(x
n
) 0
periodic: Dac a y
1
y
n
, conditiile la limit a sunt
s
t
(x
1
) s
t
(x
n
)
s
tt
(x
1
) s
tt
(x
n
)
1
Parantezele p atrate nu fac parte din sintax a. Ele arat a caracterul optional al elementelor
cuprinse ntre ele.
46 CAPITOLUL 4. REZOLVAREA PROBLEMELOR DE INTERPOLARE
d parametri functiei spline cubice de interpolare;
xd este o matrice de numere. n ecare element al matricei xd se cal-
culeaz a valoarea functiei spline cubice de interpolare. Aceste elemente tre-
buie s a e cuprinse n intervalul determinat de nodurile din x.
f 0, f 1, f 2, f 3 sunt matrice de acelea si dimensiuni ca xd si au ca elemente
valorile functiei spline cubice de interpolare si respectiv a derivatelor de
ordinul 1, 2 si 3, calculate n elementele corespunz atoare ale matricei xd.
Exemplul 4.2 S a se calculeze valorile functiei spline cubice de interpolare si ale
derivatelor sale de ordin 1, 2, 3 pentru datele de interpolare
f (x) x
3
x
i
i , i {0, 1, . . . , 5}
z 0.5, 3, 5, 10
Rezolvarea const a 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 !
Capitolul 5
Derivare numeric a
Cap. 4 Cap. 6
5.1 Derivarea functiilor de o variabil a real a
Pentru calculul derivatei f
t
(x
0
) unde f : I R este o functie derivabil a, I un
interval iar x
0
Int(I ), Scilab ofer a functia : g numdiff( f , x
0
[, h]).
Exemplul 5.1 S a se calculeze f
t
(1) unde f (x) x
3
.
Rezolvarea este:
deff(y=f(x),y=x^3)
numdiff(f,1)
ans =
3.0000001
5.2 Cazul functiilor de mai multe variabile
Dac a f : R
n
R
m
atunci jacobianul si hessianul se obtin cu functia Scilab
47
48 CAPITOLUL 5. DERIVARE NUMERIC

A
[J [, H]] derivative( f , x[, h, order ])
unde
x - punctul n care se calculeaz a jacobianul J si hessianul H;
h R pasul utilizat n formula de derivare numeric a;
order {1, 2, 4} ordinul formulei de derivare numeric a (valoarea implicit a
este2).
Exemplul 5.2 S a se calculeze jacobianul si hessianul functiei f (x, y)
_
x
2
y
x
3
+y
_
n (1, 2).
Jacobianul si hessianul functiei f sunt
f
t
(x, y)
_
2xy x
2
3x
2
1
_
f
tt
(x, y)
_
2y 2x 2x 0
6x 0 0 0
_
Astfel rezultatele exacte sunt
f
t
(1, 2)
_
4 1
3 1
_
f
tt
(1, 2)
_
4 2 2 0
6 0 0 0
_
Rezolvarea Scilab este
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.
Capitolul 6
Construirea unei functii
de aproximare prin metoda
celor mai mici p atrate
Cap. 5 Cap. 7
Cazul liniar. Determinarea unui polinomde aproximare construit prinmetoda
celor mai mici p atrate de grad m pentru datele (x
i
, y
i
)
1i n
(m << n) se obtine
cu ajutorul functiei
coef =lq(m,x,y)
unde
coe f sunt coecientii polinomului de aproximare;
m gradul polinomului de aproximare;
x, y doi vectori linie cu absisele si respectiv, cu ordonatele datelor proble-
mei de aproximare.
Textul surs a al functiei lq este
49
50 CAPITOLUL 6. METODA CELOR MAI MICI P

ATRATE
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 S a se calculeze polinoamele de aproximare de grad unu si doi, con-
stituite prin metoda celor mai mici p atrate, pentru datele (x
i
, y
i
)
0i 20
unde x
i

2+0.2i , y
i
f (x
i
), f (x) [x[. S a se reprezinte grac 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)
51
Astfel, polinoamele de aproximare de gradul nti si doi sunt
p
1
(x) 1.047619
si respectiv
p
2
(x) 0.3883622+0.4494933x
2
Gracele celor trei functii sunt date Fig. 6.1.
Figure 6.1: Aproximarea functiei x
2
prin polinom de grad 1 si 2.
Cazul neliniar.
Pentrudeterminarea functiei de aproximare y (t , x
1
, . . . , x
n
) care minimizeaz a
expresia
(x
1
, . . . , x
n
)
m

i 1
[(t
i
, x
1
, . . . , x
n
) y
i
]
2
(6.1)
cu metoda Gauss-Newton se utilizeaz a functia Scilab leastsq:
52 CAPITOLUL 6. METODA CELOR MAI MICI P

ATRATE
[fopt [,xopt [,gopt ]]]=leqstsq(fct,x0)
[fopt [,xopt [,gopt ]]]=leqstsq(fct,dfct,x0)
unde
x0 este aproximatia initial a a parametrilor;
f ct dene ste termenii din suma (6.1);
d f ct este jacobianul functiei f ct ;
f opt valoarea functiei calculat a n xopt ;
xopt valoarea optim a g asit a a parametrilor x;
gopt gradientul functiei calculat a n xopt .
Exemplul 6.2 S a se calculeze functia de aproximare de forma y ae
bt
n cazul
datelor
t=0:5
y=2*exp(-t)
Denim functiile Scilab
function y=f1(x,t)
y=x(1)*exp(x(2)*t);
endfunction
Necunoscutele a, b devin componentele vectorului x (a x
1
, b x
2
)
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 =
53
0. 0.
xopt =
2. - 1.
fopt =
0.
Dac a se xeaz a gradientul functiei f ct : d f ct (
f ct
a
,
f ct
b
) (
f ct
x
1
,
f ct
x
2
) (e
bt
, at e
bt
)
n functia
function u=dfct(x,t,y)
s=exp(x(2)*t);
u=[s,x(1).*t.*s];
endfunction
atunci apelarea va
[fopt,xopt,gopt]=leastsq(list(fct,t,y),dfct,x)
Metoda Levenberg-Marquardt este implementat a de functia scilab lsqrsolve:
[xopt [,v]]=lsqrsolve(x0,fct,m)
[xopt [,v]]=lsqrsolve(x0,fct,m,dcft)
unde
x0 este aproximatia initial a a parametrilor;
f ct dene ste termenii din suma (6.1);
m reprezint a num arul termenilor din suma (6.1);
d f ct este jacobianul functiei f ct ;
xopt valoarea optim a g asit a a parametrilor x;
v valoarea ec arui termen din suma (6.1) calculat a n xopt .
Rezolvarea exemplului anterior cu metoda Levenberg-Marquardt const a din
denirea functiilor f1.sce, data.sce si fctlm.sce:
function [t,y]=data(m)
t=1:m;
y=2*exp(-t);
endfunction
54 CAPITOLUL 6. METODA CELOR MAI MICI P

ATRATE
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.
Capitolul 7
Integrare numeric a
Cap. 6 Cap. 8
7.1 Integrarea numeric a a functiilor
de o variabil a real a
Pentru calculul integralei
I
_
b
a
f (x)dx
unde f : [a, b] R este o functie continu a, Scilab ofer a mai multe programe:
[x]=integrate(exp, var, a, b [, ea [,er ] ] )
unde:
x valuarea calculat a a integralei;
exp este expresia functiei de integrat, dat ca un sir de caractere;
var este variabila de integrare dat ca string;
a extremitatea stng a a intervalului de integrare;
b extremitatea dreapt a a intervalului de integrare;
55
56 CAPITOLUL 7. INTEGRARE NUMERIC

A
ea, er reprezint a o eroare absolut a si o eroare relativ a. Precizndace sti
parametri, regula de oprire a programului este [xI [ max{ea, er [I [}.
Exemplul 7.1 S a se calculeze integralele:
1.
_
1
0
16x
15
dx
2.
_
2
0
sin(x)
x
dx
Rezolv arile 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
x valuarea calculat a a integralei;
er r valoarea estimat a a erorii absolute;
a extremitatea stng a a intervalului de integrare;
b extremitatea dreapt a a intervalului de integrare;
f identicatorul functiei Scilab de integrat;
ea, er reprezint a o eroare absolut a si o eroare relativ a. Precizndace sti
parametri, regula de oprire a programului este [xI [ max{ea, er [I [}.
Utiliznd intg, integralele exemplului anterior se calculeaz a astfel:
1.
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
Dac a f (x, p
1
, p
2
, . . .) este o functie Scilab avnd pe prima pozitie variabila de
integrare atunci
intg(a,b,list( f , p
1
, p
2
, . . .))
calculeaz a integrala
_
b
a
f (x, p
1
, p
2
, . . .)dx
7.2 Calculul numeric al integralelor duble
Pentru domeniul D denit prin
D {(x, y) : a x b, f i nf (x) y f sup(x)}
integrala
__
D
f ct (x, y)dxdy
este calculat a de programul [y, er ]=integr(cal e, t ol ). Semnicatia parametrilor
formali este:
cal e calea la catalogul care contine subprogramene (functiile) necesare
programului: init, tab, integ2, prodscal, fct, datas, finf, fsup;
t ol toleranta utilizat a n regula de oprire;
58 CAPITOLUL 7. INTEGRARE NUMERIC

A
y valoarea calculat a a integralei duble;
er indicatorul de r aspuns:
0 integrala s-a calculat cu succes;
1 nu s-a ndeplinit conditia de convergent a n 10 iteratii.
Textele surs a 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 do
ni=ni+1;
v=tab(u);
new=integ2(v);
nrm=abs(new-old);
old=new;
u=v;
if nrm<tol,
cont=1;
er=0;
else
er=1;
if ni==nmi,cont=1;,end,
end
end
y=new;
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
end
for j=1:m-1,
x=a+(j-0.5)*hx;
fi=finf(x);
fs=fsup(x);
60 CAPITOLUL 7. INTEGRARE NUMERIC

A
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
end
for 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,
7.2. CALCULUL NUMERIC AL INTEGRALELOR DUBLE 61
e=e+x(i)*y(i);,
end
endfunction
Utilizatorul trebuie s a precizeze datele problemei n subprogramele datas,
fct, finf, fsup.
Exemplul 7.2 S a se calculeze
__
D
xydxdy unde domeniul D este delimitat de curbele
y x
2
si y
_
x.
n acest caz se denesc 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 nal a este
exec(c:\lucru\scilab\integr.sci,-1)
[y,er]=integr(c:\lucru\scilab,1.e-6)
er=
0.
y=
.0833333
Part II
MathCAD
62
Capitolul 8
Prezentare general a
Cap. 7 Cap. 9
MathCADeste unprodus informatic comercial destinat rezolv arii problemelor
de calcul numeric, cu posibilitatea document arii si a reprezent arii grace plane
si spatiale.
MathCADpermite att programare functional a, adic a princompunerea functi-
ilor, ct si programare procedural a, ind nzestrat cu o palet a de programare e-
cient a.
MathCADofer a posibilitatea de calcul simbolic, nglobndobibliotec a Maple
de functii simbolice.
MathCAD utilizeaz a notatia matematic a obi snuit a.
Produsul are un editor propriu. Simbolurile operatorilor si ale functiilor se
pot introduce e prin intermediul paletelor, e prin codurile ata sate. Tot ceea ce
se introduce conduce la formarea unui document MathCAD.
ntr-undocument MathCADorice denitie, ecuatie, text-comentariusaureprezentare
grac a ocup a un spatiu numit regiune. Regiunile sunt disjuncte dou a cte dou a.
Procesul de calcul const a n evaluarea regiunilor Si are loc de sus n jos, jar pe
nivel orizontal de la stnga spre dreapta. Regiunile pot vizualizate prin clic pe
butonul View/Region, care functioneaz a n regim "aprins/stins".
Un calcul se poate opri fortat prin butonul Esc.
63
64 CAPITOLUL 8. PREZENTARE GENERAL

A
Figure 8.1: Ecran MathCAD
8.1 Efectuarea calculelor numerice
8.1.1 Operatori MathCAD
Operatori de denire si evaluare
1. Operatorul de atribuire / denire :=
Se obtine tastnd : sau prin alegerea din panoul Evaluation Toolbar.
Sintaxa este:
variabil a := expresie
functie(list a de variabile) := expresie
Exemplul 8.1
a :1
f (x) :1x
2
2. Operatorul de a sare / calcul =
Sintaxa este:
variabil a =
functie(variabile) =
expresie =
8.1. EFECTUAREA CALCULELOR NUMERICE 65
Exemplul 8.2
x :3 x 3
h(x) :5x
3
2 h(0) 2
7+3 x 14
3. Operatorul de denire global a
Se obtine tastnd Shift+sau prin panoul Evaluation Toolbar. Sintaxa este:
parametrul MathCAD expresie
Operatorul de denire global a permite xarea saumodicarea unor parametrii
MathCADla nivel global, adic a avnddomeniul de valabilitate ntregul doc-
ument.
8.1.2 Identicatori MathCAD
Identicatorii MathCAD, adic a numele dat variabilelor, constantelor si functi-
ilor, pot contine oricare din urm atoarele caractere:
litere latine mari si mici; se face distinctie ntre literele mari si mici;
cifre de la 0 la 9; un identicator nu poate ncepe cu o cifr a;
litere grece sti : , , . . . , . Aceste litere se obtin din panoul Greek;
caractere speciale: _ (linie de subliniere),% (procent), (simbolul innit),
(a nu se confunda cu apostrogul ), . (punctul simbolurile care urmeaz a
sunt interpretate de MathCAD ca indice literal).
Exemplul 8.3
a1_2 _i nd %p
_presi unea const a
.bcd
ab
8.1.3 Constante MathCAD
MathCAD recunoa ste cteva constante uzuale: , e - baza logaritmului natu-
ral, - innit, i (sau j ) - unitatea imaginar a. Pe lng a aceste constante mai exist a
si o serie de constante sistem predenite (globale):
TOL a c arei valoare implicit a este 0.001 si care reprezint a toleranta utilizat a
n testele de convergenta.
66 CAPITOLUL 8. PREZENTARE GENERAL

A
CTOL a c arei valoare implicit a este 0.001 si care reprezint a toleranta de
constrngere si care controleaz a restrictiile dincadrul unui bloc de rezolvare
a sistemelor de ecuatii.
ORIGIN cu valoare implicit a egal a cu zero reprezint a valoarea indicelui
primului 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 utilizeaz a variabile avnd urm atoarele tipuri de date:
1. Variabil a numeric a real a sau complex a
Pentru a deni o variabil a:
se tasteaz a numele variabilei;
se tasteaz a operatorul de denitie;
se introduce expresia care dene ste variabila.
Exemplul 8.4 Pentru a calcula valoarea expresiei y x
2
3x +2 n punctul
0.5 se deneste
x :0.5 y :x
2
3 x +2
Rezultatul se obtine tastnd y, =.
y 0.75
O constant a numeric a ntreag a se poate deni n baza 10, 8 sau 16. Dac a
reprezentarea se face n baza 8, num arul va urmat de de litera o sau O(de
exemplu 15o), iar n cazul bazei hexazecimale num arul va urmat de litera
h sau H(de exemplu A1Eh).
Pentru a deni o constant a complex a se utilizeaz a forma algebric a a +bi .
nlocul lui i se poate folosi ca unitate imaginar a si j. Pentrua deni unitatea
imaginar a se tasteaz a 1i sau 1j.
Operatorii algebrici uzuali sunt
8.1. EFECTUAREA CALCULELOR NUMERICE 67
Operator algebric Se obtine tastnd
+ (adunare) +
(sc adere)
(nmultire)
/ (mp artire) /
(ridicare la putere)
2. Variabil a domeniu : progresie aritmetic a
O variabil a domeniu este o progresie aritmetic a. Denirea unei progresii
aritmetice se face prin:
variabil a_domeniu :=val_ initial a, val_urm atoare .. margine
Elementele folosite n denitia de mai sus, respectiv valoarea initial a, val-
oarea urm atoare si margine a pot constante, variabile sau expresii. Ratia
progresiei este egal a cu
val_urm atoare - val_initial a.
Pentru a obtine .. se tasteaz a ; .
Exemplul 8.5 x :0, 0.9..4 deneste progresia aritmetic a
x
0
0.9
1.8
2.7
3.6
Dac a n sintaxa de denire a unei variabile de tip domeniu lipsesc virgula
si val_urm atoare, ratia progresiei aritmetice este
sgn(val_nal a-val_initial a).
Exemplul 8.6 Sirurile i :0.5..3 si j :5..2.5 denesc urm atoarele progresi-
ile aritmetice
68 CAPITOLUL 8. PREZENTARE GENERAL

A
i j
0.5
1.5
2.5
5
4
3
3. Variabil a indice
O variabil a domeniu ale c arei valori sunt numere naturale consecutive se
nume ste variabil a indice.
Exemplul 8.7 Pentru a deni un indice k ale c arui valori s a e succesiv 2,
3, 4, 5, se editeaz a k : 2 ; 5 rezultnd k :2..5
4. Sir
Prin intermediul unei variabile indice se poate deni un sir oarecare prin
sintaxa:
variabila_sir
var i abi l a_i ndi ce
:= expresie.
Pentru a scrie indicele, dup a numele variabilei de tip sir se tasteaz a [ .
Exemplul 8.8 Pentruvariabila k denit a nexemplul anterior denimsirul
x
k
k
2
astfel:
x
k
:k
2
Vizualiz am rezultatul prin
x
_
_
_
_
_
_
_
_
_
0
0
4
9
16
25
_
_
_
_
_
_
_
_
_
sau
x
k

4
9
16
25
Sirul astfel obtinut contine pe primele dou a pozitii valoarea 0 deoarece re-
spectivele pozitii nu au fost denite.
Functii uzuale aplicabile unui sir a (a
i
)
i I
8.1. EFECTUAREA CALCULELOR NUMERICE 69
Apelare Semnicatie
length(a) Num arul elementelor sirului
last(a) Indicele ultimului element
max(a) Cel mai mare element al sirului
min(a) Cel mai mic element al sirului
[a[ Norma euclidian a a sirului
5. Tablouri : vectori si matrice
MathCAD permite denirea matricelor si are prev azute operatiile uzuale
de calcul matriceal. Vectorii de dimensiune n se consider a matrice cu n
linii si o coloan a.
Pentru a introduce o matrice n documentul curent se selecteaz a din me-
niul Insert/Matrix sau prin paleta Matrix. Ca urmare, pe ecran apare
o fereastr a de dialog n care se completeaz a num arul de linii, respectiv de
coloane corespunz atoare matricei ce se dore ste a inserat a. Dup a pre-
cizarea dimensiunilor matricei, toate pozitiile marcate se vor completa cu
expresii saunumere, trecerea de la opozitie la alta f acndu-se prinap asarea
tastei Tab. Aceast a metod a de denire a unei matrice este o metod a explic-
it a. Vorbimde o metod a implicit a de denire a unei matrice ncazul ncare
exist a o formul a de leg atura ntre indici si elementele din matrice.
ntr-un tablou valoarea initial a a indicilor este 0. Dac a dorim ca valoarea
initial a a indicilor s a e 1, trebuie s a atribuim parametrului ORIGIN val-
oarea 1. Aceasta se obtine prin denitia global a ORIGI N 1.
Referirea unui element al unui tablou se face indicnd numele tabloului
(variabila) urmat de indicii elementului separati prin virgul a. Trecerea la
indicarea indicelor se obtine prin tasta [.
Exemplul 8.9
Dac a
i :0..3 j :0..3 X
i , j
:i
2
+
j
2
atunci se obtine
X
_
_
_
_
_
0 0.5 1 1.5
1 1.5 2 2.5
4 4.5 5 5.5
9 9.5 10 10.5
_
_
_
_
_
70 CAPITOLUL 8. PREZENTARE GENERAL

A
Exemplul 8.10
Dac a
A :
_
1 3
2 4
_
atunci
A
0,0
1 A
0,1
3 A
1,0
2 A
1,1
4
Pentru a deni siruri de vectori se utilizeaz a indici superiori. Un indice
superior se obtine tastnd Ctrl+6 sau prin paleta Matrix M
<T>
.
Exemplul 8.11
Fie
u
<0>

_
1
2
_
A
_
1 0
2 1
_
Pentru i :0..4 calcul am
u
<i +1>
: A u
<i >
obtinnd
u
<4>

_
1
2
_
u
<5>

_
1
0
_
iar
u
_
1 1 1 1 1 1
2 0 2 0 2 0
_
u
1,4
2 u
0,4
1
Dac a M este o matrice, expresia M
<i >
desemneaz a coloana i a matricei M.
Operatori matriceali
Operator algebric Se obtine tastnd
+ (adunare) +
(sc adere)
(nmultire)
(ridicare la putere)
8.1. EFECTUAREA CALCULELOR NUMERICE 71
Functii uzuale aplicabile (operatori aplicabili) unei matrice A (a
i , j
)
i I , j J
Apelare Semnicatie
rows(A) Num arul liniilor matricei
cols(A) Num arul coloanelor matricei
tr(A) urma matricei
A
T
transpusa matricei
[A[ determinantul matricei
A
1
inversa matricei
rank(A) rangul matricei
norm1(A) norma Minkovski, max
j

i
[a
i , j
[
norm2(A) norma euclidian a,
_
maxeigenvals(a
T
a)
norme(A) norma Frobenius,
_

i , j
a
2
i , j
normi(A) norma Ceb sev, max
i

j
[a
i , j
[
6. Functii
MathCAD posed a o bogat a familie de functii predenite si ofer a posibili-
tatea denirii de functii noi conform sintaxei
numeFunctie(ar g
1
, ar g
2
, . . .) :expresie
Functii numerice uzuale aplicabile aplicabile unui num ar real sau complex
x
72 CAPITOLUL 8. PREZENTARE GENERAL

A
Apelare Semnicatie
sin(x) sinx
cos(x) cosx
tan(x) tgx
cot(x) ctgx
asin(x) arcsin(x)
acos(x) arccos(x)
atan(x) arctg(x)
sinh(x) shx
cosh(x) chx
tanh(x) thx
asinh(x) arcsh(x)
acosh(x) arcch(x)
atanh(x) arcth(x)
exp(x) e
x
log(x) lg(x)
ln(x) ln(x)
8.1.5 Vectorizare
S a presupunem c a o functie f (x, y) trebuie aplicat a succesiv unui sistem de
variabile (x
i
, y
i
)
1i n
, obtinnd z
i
f (x
i
, y
i
), i {1, 2, . . . , n}.. MathCAD ofer a
posibilitatea efectu arii acestor calcule prin vectorizare, un procedeu care este
multmai rapid dect prin folosirea indec silor. Sintaxa utilizat a este
x :
_
_
_
x
1
.
.
.
x
n
_
_
_ y :
_
_
_
y
1
.
.
.
y
n
_
_
_ z

f (x, y)
Operatorul de vectorizare se obtine tastnd Crtl + - e din paleta Matrix
cu cursorul MathCAD plasat pe relatia de calcul.
Exemplul 8.12 Rezolvarea ecuatiilor de gradul doi avnd coecientii
a :
_
_
_
_
_
1
1
1
1
_
_
_
_
_
b :
_
_
_
_
_
3
2
1
0
_
_
_
_
_
c :
_
_
_
_
_
2
1
1
4
_
_
_
_
_
8.1. EFECTUAREA CALCULELOR NUMERICE 73
Formulele
x :

b +
_
b
2
4 a c
2 a
y :

b
_
b
2
4 a c
2 a
produc rezultatele
x
_
_
_
_
_
1
1
0.5+0.866i
2i
_
_
_
_
_
y
_
_
_
_
_
2
1
0.50.866i
2i
_
_
_
_
_
8.1.6 Unit ati de m asur a
Variabilele MathCAD pot reprezenta m arimi zice, n care caz valoarea nu-
meric a este urmat a de o unitate de m asur a. MathCADdispune de un set complet
de unit ati de m asur a predenite. Pentru a asocia unui num ar sau unei expresii
o unitate de m asur a se folose ste semnul de nmultire dup a num ar sau expresie
apoi a se scrie explicit unitatea dorit a. Sunt recunoscute majoritatea unit atilor
prin forma lor abreviat a. Implicit MathCAD folose ste unit atile din Sistemul In-
ternational (SI). Acest lucru nseamn a c a la folosirea semnului egal un rezultat ce
contine si unit ati de m asur a va a sat n termenii unit atilor de baz a sau derivate
ale SI. Pentru orice expresie care implic a unit ati de m asur a MathCAD efectueaz a
veric ari de consistent a. Dac a se ncearc a efectuarea sumei sau diferentei ntre
valori incompatibile din punct de vedere al unit atilor de m asur a se va a sa un
mesaj de eroare.
De asemenea pe lnga (SI) sunt disponibile si alte sisteme de unit ati de m a-
sur a: CGS, U.S. si MKS. Fiecare dintre aceste standarde constituie un tabel ce
contine unit atile de baz a specice si unit atile ce m asoar a:
unghiuri si lungimi masa si timp arii si volume
viteze si acceleratii forte, energii si puteri presiuni si vscozit ati
electricitate frecventa temperatura
Alegerea / schimbarea sistemulul de unit ati de m asur a se face prinmeniul Tools/Worksheet
options.../Unit system.
Exemplul 8.13 S a se calculeze m arimea fortei ce actioneaz a asupra unui corp de
masa 5 kg si c areia i imprim a o acceleratie de 2
m
s
2
.
masa :5 kg acc :2
m
s
2
F :masa acc
F 10N
74 CAPITOLUL 8. PREZENTARE GENERAL

A
Transformarea unit atilor
Pentrutransformarea unei m arimi dintr-unsistemnaltul este sucient a cunoa sterea
notatiilor unit atilor respective n cele dou a sisteme. Transformarea se face prin:
1. tastarea m arimii si a unit atii de m asur a corespunz atoare;
2. a operatorul de a sare / calcul (=) ;
3. n pozitia marcat a se introduce noua unitatea de m asur a;
4. clic n afara regiunii de lucru.
1 m110
3
mm
Denirea altor unit ati de m asur a
Se pot deni unit ati de m asur a noi prin
1. se tasteaz a numele noii unit ati de m asur a;
2. operatorul de atribuire (:=);
3. denitia noii unit ati de m asur a.
Exemplul 8.14
g :
1
1000
kg 3 kg 310
3
g
mi n :60 s h :60 mi n 1 h 3.610
3
s
8.2 Reprezent ari grace
Prin intermediul paletei Graph sau prin meniul Insert/Graph, se pot realiza
urm atoarele reprezent ari grace
X-Y Plot Reprezentare grac a 2D n coordonate carteziene. Comanda se
poate da si prin combinatia de taste Shift+2 (@).
Polar Plot Reprezentare grac a 2D n coordonate polare. Comanda se
poate da si prin combinatia de taste Ctrl+7.
8.2. REPREZENT

ARI GRAFICE 75
Surface plot Reprezentare grac a 3Dn coordonate carteziene. Comanda
se poate da si prin combinatia de taste Ctrl+2.
Contur Plot Reprezentare prin linii de nivel Comanda se poate da si prin
combinatia de taste Ctrl+5.
3D Bar Plot
3D Scatter Plot
Vector Field Plot
Reprezentarea grac a 2Dn
coordonate carteziane
S a presupunem c a dorim s a reprezentam functia x f (x). Dup a denirea
functiei, n urma comenzii de realizare a reprezent arii grace apare un cadru
cu dou a pozitii marcate, care se completez a cu x (pe axa orizontal a) si respectiv
f (x) (pe axa vertical a). n cadru apar, corespunz ator ec arei axe, alte dou a poz-
itii marcate, pentru xarea intervalelor. Completarea acestor pozitii marcate este
optional a. Un clic n afara cadrului sau Enter declan seaz a realizarea reprezen-
t arii grace.
x
f (x)
MathCAD permite reprezentarea functiilor cunoscute prin valori discrete:
(x
i
, y
i
)
1i n
, y
i
f (x
i
), i . n acest caz cele dou a pozitii marcate initiale se com-
pleteaz a cu x
i
si respectiv y
i
.
Pentrua obtine nacela si cadrureprezentarea grac a pentrumai multe functii,
se introduc variabilele si functiile separate prin virgul a.
x, x, y
f (x),
g(x),
h(y)
76 CAPITOLUL 8. PREZENTARE GENERAL

A
Reprezentarea grac a 2Dn
coordonate polare
Dac a curba are ecuatia polar a r r (t ) atunci n urma comenzii de realizare a
reprezent arii grace apare un cadru cu dou a pozitii marcate, care se completez a
cu t si respectiv r (t ). n cadru apar alte dou a pozitii marcate, pentru xarea in-
tervalului n care variaz a t .. Completarea acestor pozitii marcate este optional a.
Un clic n afara cadrului sau Enter declan seaz a realizarea reprezent arii grace.
&%
'$
t
&%
'$
r (t )
Formatarea gracelor 2D
MathCAD realizeaz a reprezent arile grace cu o serie de parametri impliciti.
Aceste set ari pot schimbate de utilizator si de asemenea se pot ad auga titluri si
etichete. Pentru a formata o zon a grac a se execut a dublu clic pe zona respectiv a
sau se selecteaz a zona grac a si apoi din meniul Format/Graph/X-Y Plot sau
Polar Plot. n urma actiunii executate se deschide o fereastr a de dialog prin
intermediul c areia se poate modica
Natura axelor de coordonate;
Modul de trasarea curbei (continuu, discret prin simboluri, etc.);
Culoarea de desenare.
8.3. CREAREA UNEI ANIMA TII 77
Reprezentare grac a 3Dn
coordonate carteziene
Reprezentare grac a prin linii de nivel
Reprezentare grac a 3DBar
Reprezentare grac a 3DScatter
Reprezentare grac a Vector Field
8.3 Crearea unei animatii
Prinintermediul variabilei predenite FRAMEpot create si apoi rulate scurte
clipuri animate. Orice obiect MathCAD care poate f acut s a depind a de vari-
abila FRAME poate animat. Sunt incluse aici nu numai punctele din grace
ci si rezultatele numerice. Clipurile animate pot rulate la diverse viteze si de
asemenea pot salvate pentru a apoi rulate n cadrul altor aplicatii.
Pentru realizarea unei animatii n MathCAD trebuie urmati pa sii:
1. Se dene ste o expresie care depinde de valoarea variabilei FRAME;
2. Se selecteaz a optiunea Record din meniul Tools/Animation;
3. Dup a deschiderea c asutei de dialog se selecteaz a dinfoaia de lucruregiunea
ce se dore ste s a apar a n animatie;
4. n cadrul c asutei de dialog se xeaz a limitele inferioar a, respectiv supe-
rioar a a variabilei FRAME, precum si viteza de rulare (num arul de cadre pe
secund a);
5. Se porne ste animatia prin ap asarea butonului Animate.
Oanimatie creat a poate salvat a ca sier .avi si poate vizualizat si independent
de MathCAD. Pentru aceasta se selecteaz a butonul Save as dincadrul c asutei de
dialog.
Pentru a rula n MathCADun sier avi existent din meniul Tools/Animation
se alege optiunea Playback.
Exemplul 8.15 n intervalul [1, 1], s a se transforme gracul functiei g(x) x n
f (x) x
2
prin efectul "morphing".
78 CAPITOLUL 8. PREZENTARE GENERAL

A
Astfel denim
f (x) :x
2
g(x) :x MaxFRAME :60
h(x) :
FRAME
MaxFRAME
f (x) +(1
FRAME
MaxFRAME
) g(x)
a :1 b :1
si construim gracul functiei h(x)(FRAME 0!). Efectu am operatiile mention-
ate mai sus si obtinem rezultatele din Fig. 8.2.
8.4 Editare de text
ntr-undocument MathCADpot incluse texte si comentarii asupra calculelor
ce se efectueaz a. Oregiune text se obtine tastnd " (ghilimele). n m asura n care
se adaug a text, regiunea se extinde la dreapta. Tastnd Enter se trece pe linia
urm atoare. Regiunea text se p ar ase ste prin plasarea cursorului n afara ei.
Meniul Format ofer a facilit ati 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 nc aca n / din
siere ASCII asigurnd astfel un canal de comunicatie cu un alt mediu de pro-
gramare.
n acest sens sunt denite functiile
READPRN(sier) cite ste date structurate dintr-un sier. Functia returneaz a
o matrice, ecare linie din sier devine o linie n matrice. Num arul de
elemente de pe ecare linie trebuie s a e acela si. n general functia se
folose ste n instructiuni de forma:
A :RE ADPRN(sier)
WRITEPRN(sier) scrie omatrice ntr-un sier. Fiecare linie a matricei devine
linie n sierul specicat. Modalitatea de apel a functiei este:
WRI TEPRN(sier) : A
8.6. INSTRUMENTE DE CALCUL SIMBOLIC 79
APPENDPRN(sier) ad augarea o matrice la sfr situl unui sier deja existent.
Fiecare linie a matricei devine o nou a linie n sier. Forma de apel a functiei
este:
APPENDPRN(sier) : A
n toate cazurile de mai sus, sier este un string care identic a sierul
volum:\cale\numeFisier.extensie.
Amintim posibilitatea inser arii n MathCAD de componente MSOfce, dar si
pentru alte produse informatice.
8.6 Instrumente de calcul simbolic
Exist a dou a componente prin care se pot efectua calcule simbolice:
Utiliznd comenzile meniului Symbolic, accesibil din bara superioar a de
meniuri (MenuBar) (Fig. 8.3);
Utiliznd functiile casetei Symbolic, ce permite obtinerea rezultatelor sim-
bolice la fel de u sor ca cele numerice (Fig. 8.3).
Utilizarea meniului Symbolic. Operatiile meniului Symbolic sunt continute
n tabelul urm ator:
80 CAPITOLUL 8. PREZENTARE GENERAL

A
Numele comenzii Semnicatia
Evaluate Evaluare
Simplify Simplic a o expresie
Expand Dezvoltarea unei expresii
Factor Descompunere n factori
Collect Dezvolt a dup a o expresie
Polynomial Coefcients Coecientii polinomului
Variable ... Variabila ...
Solve Rezolv a ecuatia
Substitute Substituie
Differentiate Deriveaz a
Integrate Integreaz a
Expand to Series ... Dezvoltare n serie
order of approximation pn a la ordinul
Convert to partial fraction Dezvoltare n fractii simple
Matrix ... Operatii matriceale ...
Transpose Matricea transpus a
Invert Matricea invers a
Determinant Determinantul matricei
Transformations ... Transform ari integrale ...
Fourier Transformarea Fourier
Inverse Fourier Transformarea Fourier invers a
Laplace Transformarea Laplace
Inverse Laplace Transformarea Laplace invers a
Z Transformarea z
Inverse Z Transformarea z invers a
Pentrua putea aplica comenzile meniului Symbolic trebuie s a select amvaria-
bila sau expresia asupra c areia are loc actiunea.
Selectarea unui element se obtine prin clic asupra elementului sau utiliznd
tastatura, cuajutorul tastelor directionale pozition amcursorul pe elementul dorit.
Elementul selectionat este ncadrat. Cu ajutorul tastei Space o zona selectat a se
poate extinde si restrnge iar cu tastele directionale selectia se poate muta de pe
un termen / operand pe altul.
Pentru actionarea comenzilor meniului Symbolic se procedeaz a dup a cum
urmeaz a:
1. Se tasteaz a expresia/ecuatia asupra c areia va actiona comanda.
2. Se selecteaza expresia sau variabila activ a.
8.7. ELEMENTE DE PROGRAMARE FUNC TIONAL

A 81
3. Se selecteaz a comanda dorit a din meniul Symbolic si se lanseaz a n exe-
cutie prin clic sau tastnd Enter.
Rezultatul apare sub expresia n cauz a.
Pentru editarea unei ecuatii ntre membrul stng si membrul drept se pune
egalul simbolic, care se obtine tastnd Ctrl+=.
Utilizarea functiilor casetei Symbolic. Functiile casetei Symbolic se apeleaz a
printr-un clic, n dreptul cursorului MathCADapare functia apelat a mpreun a cu
pozitii marcate ce urmeaz a a completate cu expresii si/sau variabile asupra
c arora are loc actiunea.
Evaluarea unei asemenea expresii se realizeaz a prin comanda de simplicare
simbolic a ce se obtine tastnd Ctrl + . urmat de clic n afara regiunii expresiei
sau tastnd Enter.
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 + l
Limit a la dreapta Ctrl + Shift + a
Limit a la stnga Ctrl + Shift + b
Derivare Ctrl + ? si ?
Calculul unei primitive Ctrl + i
Calculul unei integrala Ctrl + &
Cu ajutorul clauzei assume se pot impune restrictii asupra unor variabile.
8.7 Elemente de programare functional a
Posibilitatea de a crea noi functii mpreun a cu operatia de compunere fac din
programarea functional a modul natural de lucru n MathCAD.
Pentru programarea unui test de decizie se poate folosi operatorul de control
if( cond, exp
1
, exp
2
). Dac a expresia cond este adev arat a atunci valoarea retur-
nat a de operator este exp
1
iar n caz contrar exp
2
. cond este o expresie logic a.
nMathCADorce valoare nenul a reprezint a valoarea logic a adev arat si 0 reprez-
int a valoarea logic a fals.
Operatorii relationali si operatorii logici se pot obtine prin paleta Boolean
sau tastnd
82 CAPITOLUL 8. PREZENTARE GENERAL

A
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 + 5


Exemplul 8.16 S a se calculeze limita sirului (a
n
)
nN
denit a prin formula de re-
curent a
a
n+1

_
a
n
+2 a
0

_
2
cu o precizie 10
6
n sensul [a
n
a
n1
[ <.
Codul MathCAD este
N :100 n :1..N :10
6
a
0
:
_
2 a
1
:
_
2+
_
2
a
n+1
:if
_
[a
n
a
n1
[ ,
_
a
n
+2, a
n
_
l i m :a
l ast (a)
l i m2
8.8 Elemente de programare procedural a
MathCAD este dotat cu un limbaj de programare vizual deosebit de ecient.
Functiile astfel create pot incorporate n expresiile supuse calculului simbolic.
Realizarea unui program se obtine cu instrumentele casetei de programare
(din bara/panoul cu uneltele MathCAD) (Fig. 8.4).
Un program MathCAD va apare ca o functie
8.8. ELEMENTE DE PROGRAMARE PROCEDURAL

A 83
NumeFunct i e(var i abi l e f or mal e) :
_
_
_
_
_
_
_
_
_
i nst r uct i uni l e
pr ogr amul ui
. . .
expresi a ret ur nat a
Fiecare instructiune a panoului de programare se introduce exclusiv n doc-
umentul (foaia de calcul) n care se editeaz a programul printr-un clic al mouse-
ului. Introducerea are loc pe pozitia cursorului MathCAD.
Astfel dac a dorim s a ncepem editarea unui program este sucient s a tast am
NumeFunct i e(var i abi l e f or mal e) : ]
urmat de clic pe Add Line.
Rezultatul va
NumeFunct i e(var i abi l e f or mal e) :
_
_
_
_
]
Semnul ] desemneaz a cursorul MathCAD.
Cele dou a pozitii marcate permit extinderea num arului de rnduri (din nou
clic pe Add Line) si urmeaz a a completate cu instructiunile programului.
n procesul edit arii se utilizeaz a regulile MathCAD pentru operatii, operatori,
indici, etc.
corespunde instructiunii de atribuire, variabilei din membrul stng i se
atribuie valoarea expresiei din membrul drept.
if este instructiunea conditional a. Selectnd aceast a instructiune, po-zitia
marcat a de cursorul MathCAD se transform a n
i f
Cele dou a pozitii marcate se completeaz a cu
1. expresia care se obtine dac a conditia este adev arat a (pozitia marcat a
din stnga);
2. conditia instructiunii if (pozitia marcat a din dreapta).
84 CAPITOLUL 8. PREZENTARE GENERAL

A
Dac a prima pozitie marcat a se extinde cu o linie atunci schema grac a
devine
i f
_
_
_
_
n acest caz pozitiile marcate se completeaz a cu activit atile corespunz a-
toare cazului n care conditia este ndeplinit a. Dac a conditia este fals a
atunci se continu a cu instructiunea urm atoare.
otherwise folosit dup a if permite specicarea actiunilor de efectuat n cazul
n care conditia instructiunii conditionale este fals a. Selectarea instructiu-
nii otherwise transform a pozitia marcat a de cursorul MathCAD n
ot her wi se
Noua pozitie marcat a se completeaz a cu activit atile corespunz atoare cazu-
lui n care conditia este fals a.
onerror este instructiunea de tratare a exceptiei de dep a sire otant a. Selec-
tnd instructiunea on error pozitia marcat a de cursorul MathCAD devine
on er r or
Pozitiile marcate se completeaz a cu
1. expresia returnat a n caz de eroare;
2. expresia care poate genera eroare.
Urm atorul exemplu este edicator. Pentru functia
f (x) : on er r or
1
x
se obtine
f (1) 1 f (0) :1 10
307
Ultima valoare este cel mai mare num ar cu care opereaz a MathCAD.
while si for reprezint a instructiunile de ciclare cu test initial si respectiv cu
contor.
Selectndinstructiunea while, pozitia marcat a de cursorul MathCADdevine
whi l e
Cele dou a pozitii marcate se completeaz a cu
8.8. ELEMENTE DE PROGRAMARE PROCEDURAL

A 85
1. testul initial buclei;
2. instructiunile ciclului.
Selectnd instructiunea for, pozitia marcat a din dreptul cursorului Math-
CAD se nlocuie ste prin
f or
Cele trei pozitii marcate se completeaz a cu
1. indicele ciclului;
2. intervalul n care variaz a indicele;
3. instructiunile buclei.
Instructiunea break se folose ste pentru ntreruperea unei instructiuni de
ciclare while, for. Bucla curent a este oprit a si executia continu a de la in-
structiunea urm atoare.
Instructiunea continue se folose ste pentru scurtcircuitarea partial a a unei
instructiuni de ciclare while, for; executia se reia de la prima instructiune a
buclei, s arindu-se peste secventa de cod cuprins a ntre instructiunea con-
tinue si sfr situl buclei.
Instructiunea return are ca efect scurtcircuitarea programului. Instruc- ti-
unile care urmeaz a nu mai sunt executate. Selectarea acestei instructiuni
introduce pe pozitia marcat a de cursorul MathCAD
ret ur n
Noua pozitie marcat a se completeaz a cu valoarea returnat a de functie.
Binenteles, ntr-un programMathCADse poate utiliza ntreaga familie de functii
numerice ale produsului.
Exemplic am posibilit atile oferite prin calculul sirului primelor N numere
prime (8.5).
86 CAPITOLUL 8. PREZENTARE GENERAL

A
Figure 8.2: Animatie tip "morphing"
8.8. ELEMENTE DE PROGRAMARE PROCEDURAL

A 87
Figure 8.3: Meniul si caseta Symbolic.
Figure 8.4: Caseta cu instrumentele de programare.
88 CAPITOLUL 8. PREZENTARE GENERAL

A
Figure 8.5: Program MathCAD: Calculul sirului primelor N numere prime.
Capitolul 9
Algebr a liniar a numeric a
Cap. 8 Cap. 10
9.1 Factorizarea unei matrice
Functiile
M lu(A) calculeaz a factorizarea LU a matricei A M
n
(R) : PA LU.
Matricea M s-a obtinut prin al aturarea matricelor P, L,U. Matricea A tre-
buie s a e nesingular a.
M qr(A) calculeaz a descompunerea QR a matricei A M
n,k
(R) : Q
t
A R.
Matricea M s-a obtinut prin al aturarea matricelor Q si R.
Exemplul 9.1 S a se calculeze factorizarea LU a matricei
A :
_
_
_
_
_
1 2 3 4
2 3 4 1
3 4 1 2
4 1 2 3
_
_
_
_
_
.
89
90 CAPITOLUL 9. ALGEBR

A LINIAR

A NUMERIC

A
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 1
0 0 1 0
0 1 0 0
1 0 0 0
_
_
_
_
L
_
_
_
_
1 0 0 0
0.75 1 0 0
0.5 0.769 1 0
0.25 0.538 0.818 1
_
_
_
_
U
_
_
_
_
4 1 2 3
0 3.25 0.5 0.25
0 0 3.385 0.308
0 0 0 3.636
_
_
_
_
Exemplul 9.2 S a se calculeze factorizarea QR a matricei
X
_
_
6 6 1
3 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.429
0.429 0.857 0.286
0.286 0.429 0.857
_
_
R
_
_
7 8 1.571
0 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 b n
care num arul necunoscutelor coincide cu num arul ecuatiilor, MathCAD ofer a
dou a modalit ati de abordare.
Mai ntai se dene ste matricea A a sistemului si apoi vectorul coloan a b prin
atribuire. Dac a matricea A a sistemului este nesingular a solutia x se calculeaz a
cu ajutorul formulei x : A
1
b. Acela si rezultat se obtine si prin intermediul
comenzii x : l sol ve(A, b). n cazul n care determinantul matricei sistemului
este nul, aceasta nsemnnd c a sistemul algebric de ecuatii liniare dat are ne-
cunoscute secundare, o solutie particular a a acestuia se poate obtine prin inter-
mediul aceleia si comenzi x :l sol ve(A, b).
Exemplul 9.3 S a se rezolve sistemul algebric de ecuatii liniare:
_

_
x
1
+ 2x
2
+ 3x
3
+ 4x
4
11
2x
1
+ 3x
2
+ 4x
3
+ x
4
12
3x
1
+ 4x
2
+ x
3
+ 2x
4
13
4x
1
+ x
2
+ 2x
3
+ 3x
4
14
9.2. REZOLVAREA SISTEMELOR ALGEBRICE DE ECUA TII LINIARE 91
Pentru rezolvarea sistemului se dene ste matricea p atratic a A de dimensiune
patru si vectorul b, se calculeaz a determinantul matricei A si apoi se calculeaz a
solutia sistemului.
A :
_
_
_
_
_
1 2 3 4
2 3 4 1
3 4 1 2
4 1 2 3
_
_
_
_
_
b :
_
_
_
_
_
11
12
13
14
_
_
_
_
_
[A[ 160 x : A
1
b x
_
_
_
_
_
2
1
1
1
_
_
_
_
_
Acela si rezultat se obtine si prin
x :l sol ve(A, b) x
_
_
_
_
_
2
1
1
1
_
_
_
_
_
Exemplul 9.4 S a se rezolve sistemul algebric de ecuatii liniare:
_

_
x + y + z + t 10
x + y z + 2t 8
5x + 5y z 4t 4
x + y + 3z + 4t 28
Rezolvarea sistemului dat const a n executarea urm atorilor pa si
A :
_
_
_
_
_
1 1 1 1
1 1 1 2
5 5 1 4
1 1 3 4
_
_
_
_
_
b :
_
_
_
_
_
10
8
4
28
_
_
_
_
_
[A[ 0 x :l sol ve(A, b) x
_
_
_
_
_
26.4
25.4
9
0
_
_
_
_
_
Solutia astfel obtinut a reprezint a o solutie particular a a sistemului dat.
Capitolul 10
Rezolvarea sistemelor si ecuatiilor
algebrice
Cap. 9 Cap. 11
10.1 Rezolvareasistemelor algebrice de ecuatii neliniare
Pentru rezolvarea sistemelor algebrice neliniare de forma
_

_
f
1
(x
1
, . . . , x
n
) 0
.
.
.
f
n
(x
1
, . . . , x
n
) 0
sau scris sub form a condensat a f (x) 0 cu
x
_
_
_
x
1
.
.
.
x
n
_
_
_ f (x)
_
_
_
f
1
(x
1
, . . . , x
n
)
.
.
.
f
n
(x
1
, . . . , x
n
)
_
_
_
MathCAD ofer a dou a functii: find si minerr. Pentru g asirea unei solutii este
necesar a precizarea unei aproximatii initiale. Pornind de la aceast a aproximatie
MathCAD construie ste prin intermediul unui proces iterativ noi aproximatii ale
92
10.1. SISTEME ALGEBRICE NELINIARE 93
solutiei. Dac a valorile aproximatiei initiale nu sunt alese din domeniul de con-
vergent a procesul iterativ diverge. Astfel, alegerea aproximatiei initiale poate
reprezenta n anumite cazuri partea cea mai dicil a din rezolvarea problemei.
Rezolvarea unui sistemalgebric de ecuatii neliniare const a nconstruirea unui
bloc de rezolvare care trebuie s a contin a cuvntul cheie given si una dinfunctiile
find, respectiv minerr. Cuvntul cheie given trebuie s a precead a n blocul de
rezolvare ecuatiile sistemului.
Exemplul 10.1 S a se rezolve sistemul algebric de ecuatii neliniare:
_
_
_
10x
1
+ x
2
1
2x
2
x
3
0.1 0
10x
2
+ x
2
2
2x
1
x
3
+ 0.2 0
10x
3
+ x
2
3
2x
1
x
2
0.3 0
Rezolvarea const a n efectuarea urm atorilor pa si pe o foaie de lucru:
x :0 y :0 z :0
given
10 x +y
2
2 y z 0.10
10 y +y
2
2 x z +0.20
10 z +z
2
2 x y 0.30
nd(x, y, z)
_
_
9.84110
3
0.02
0.03
_
_
Semnul "egal" scris ntre cei doi membrii ai ec arei ecuatii se obtine prin
ap asarea simultan a a tastelor Ctrl si simbolul =. Algoritmul pentru functia find
implic a un proces special de rezolvare n care metoda este aleas a dintr-un grup
de metode pe care programul le pune la dispozitie. Alegerea unei metode se face
ap asndbutonul dindreapta mouse-ului pe numele functiei find si apoi prinse-
lectarea unei optiuni din meniul de rezolvare a sistemului. De aici se poate alege
optiunea AutoSelect prinintermediul c areia MathCADva face o alegere automat a
a metodei de rezolvare a sistemului n functie de caz (sistem liniar, neliniar, sau
problem a de programare neliniar a). Pentru cazul neliniar exist a trei metode care
pot alese:
1. metoda gradientului conjugat,
2. metoda Levenberg-Marquardt,
3. metoda quasi-Newton.
94 CAPITOLUL 10. SISTEME SI ECUA TII ALGEBRICE
10.2 Rezolvarea ecuatiilor algebrice
n acest a sectiune vom trata modalitatea de rezolvare a unei ecuatii algebrice
de forma f (x) 0 cu f : I RR.
Pentru rezolvarea ecuatiilor algebrice se utilizeaz a functia root. Mai nti se
dene ste functia f (x) si apoi se alege o valoare initial a n vecin atatea c areia se
caut a solutia ecuatiei.
Exemplul 10.2 S a se rezolve ecuatia 2
x
x
2
.
Ecuatia are solutiile pozitive x 2 si x 4. Determin am solutia negativ a
f (x) : 2
x
x
2
: 0.5
root( f (), ) 0.767
Pentrua g asi toate solutiile unei ecuatii algebrice se recomand a trasarea gra-
cului functiei. Astfel se pot determina puncte din vecin atatea solutiilor, puncte
ce pot reprezenta aproximatii pentru solutiile c autate.
Dac a se cunoa ste un interval [a, b] astfel nct f (a) f (b) < 0 ( f continu a),
atunci pentrudeterminarea unei solutii a ecuatiei f (x) 0 se poate utiliza functia
root cu parametri f (x), x, a, b. n acest caz, x nu mai trebuie denit, el ap arnd
ca un parametru formal.
Exemplul 10.3
Solutia problemei anterioare este
f (x) :2
x
x
2
r oot ( f (x), x, 1, 0.5) 0.767
10.3 Rezolvarea ecuatiilor polinomiale
Ecuatia polinomial a reprezint a uncaz particular de ecuatie algebric a. ncazul
ecuatiilor polinomiale se cere determinarea tuturor r ad acinilor reale sau com-
plexe.
10.3. REZOLVAREA ECUA TIILOR POLINOMIALE 95
Pentru a rezolva n MathCAD o ecuatie polinomial a de grad n se dene ste
un vector coloan a cu n +1 componente ce reprezint a coecientii polinomului
ncepand cu coecientul monomului de grad 0 si continund n ordinea cresca-
toare a gradelor pn a la coecientul monomului de grad maxim.
R ad acinile polinomului sunt returnate de functia polyroots care are ca argu-
ment vectorul coloan a denit anterior. MathCADpune la dispozitie doi algoritmi
pentru rezolvarea ecuatiilor polinomiale:
1. metoda lui Laguerre,
2. metoda matricei companion.
Implicit, polyroots g ase ste r ad acinile ecuatiei polinomiale utiliznd metoda lui
Laguerre. Dac a se dore ste rezolvarea ecuatiei polinomiale prinintermediul metodei
matricei companion, atunci se apas a butonul din dreapta mouse-ului pe numele
functiei si din meniul respectiv se alege metoda de rezolvare dorit.
Exemplul 10.4 S a se determine r ad acinile polinomului
p 2x
4
+7x
3
2x
2
13x +6.
Rezolvarea este:
v :
_
_
_
_
_
_
_
6
13
2
7
2
_
_
_
_
_
_
_
pol yr oot s(v)
_
_
_
_
_
3
2
0.5
1
_
_
_
_
_
Capitolul 11
Rezolvarea problemelor de
interpolare
Cap. 10 Cap. 12
Fie F o familie interpolatoare de ordin n pe axa real a. Dndu-se nodurile
(x
i
)
1i n
si numerele (y
i
)
1i n
, dac a F este functia de interpolare care satis-
face conditiile (x
i
) y
i
, 1 i n, se cere s a se calculeze (z), unde z este un
punct dat.
11.1 Interpolare polinomial a
Pentru F P
n1
solutia problemei de interpolare Lagrange este polinomul
L(P
n1
; x
1
, . . . , x
n
; y
1
, . . . , y
n
)(z)
n

i 1
y
i
n

j 1
j /i
z x
j
x
i
x
j
Pentru implementare pe calculatoare se folose ste formula baricentric a a poli-
nomului lui Lagrange
L(P
n1
; x
1
, ..., x
n
; y
1
, ..., y
n
)(z)

n
i 0
y
i

n
j 1
j /i
zx
j
x
i
x
j

n
i 0

n
j 1
j /i
zx
j
x
i
x
j
96
11.2. INTERPOLARE CU FUNC TII SPLINE CUBICE 97
Valoarea acestui polinomeste calculat a prinintermediul functiei dinFig. 11.1
Semnicatia parametrilor functiei L(x, vx, vy) este:
x matrice cu punctele n care se dore ste calcularea valorii polinomului La-
grange de interpolare.
(vx, vy) (vx
i
, vy
i
)
i
datele problemei de interpolare. Componentele vec-
torului vx trebuie s a e distincte dou a cte dou a.
Exemplul 11.1 S a se calculeze L(P
n
; x
0
, . . . , x
n
; f )(z) pentru
f (x) x
2
x
i
i , i {0, 1, . . . , 5}
z 0.5, 3, 5, 10
Rezolvarea este:
f (x) :x
2
n :5 i :0..n
vx
i
:i vy
i
: f (vx
i
) z :
_
_
0.5
3.5
10
_
_
L(z, vx, vy)
_
_
0.25
12.25
100
_
_
11.2 Interpolare cu functii spline cubice
n cazul n care multimea interpolatoare este multimea functiilor spline cu-
bice se folosesc functiile MathCAD
cspline
pspline
lspline
combinat a cu utilizarea functiei interp.
Sintaxa functiilor cspline, pspline, lspline este:
c cspl i ne(vx, vy) c pspl i ne(vx, vy) c l spl i ne(vx, vy)
unde
98 CAPITOLUL 11. REZOLVAREA PROBLEMELOR DE INTERPOLARE
L x vx , vy , ( ) error "Dataerror" ( ) rows vx ( ) rows vy ( ) if
n 0
m 0
x
0 0 ,
x
IsScalar x ( ) if
n rows x ( ) 1
m cols x ( ) 1
otherwise
N rows vx ( )
w
k
1
w
k
w
k
vx
k
vx
j

( )
j k if
j 0 N 1 .. for
k 0 N 1 .. for
s 0
y
i j ,
vy
k

s 1
x
i j ,
vx
k
= if
k 0 N 1 .. for
y
i j ,
0
N 1
k
vy
k
x
i j ,
vx
k

( )
w
k

=
0
N 1
k
1
x
i j ,
vx
k

( )
w
k

=
s 0 = if
j 0 m .. for
i 0 n .. for
y
otherwise
:=
Figure 11.1: Polinomul de interpolare Lagrange
11.2. INTERPOLARE CU FUNC TII SPLINE CUBICE 99
c este un vector cu parametrii functiei spline;
(vx, vy) (vx
i
, vy
i
)
i
sunt datele problemei de interpolare. Componentele
vectorului vx trebuie date n ordine cresc atoare si sunt distincte dou a cte
dou a.
Sintaxa funciei interp este
y i nt er p(c, vx, vy, x)
unde n plus y este valoarea functiei spline cubice de interpolare calculat a n x.
Exemplul 11.2 S a se calculeze valorile functiei spline cubice de interpolare npunctele
0.5, 3.5, 10 pentru
f (x) x
3
x
i
i , i {0, 1, ..., 5}
Rezolvare este:
f (x) :x
3
n :5 i :0..n
x
i
:i y
i
: f (x
i
) z :
_
_
0.5
3.5
10
_
_
c :cspl i ne(x, y) i nt er p(c, x, y, z)
_
_
0.125
42.875
110
3
_
_
Determinarea functiei spline cubice de interpolare n Mathcad
Fie x
0
< x
1
< . . . < x
n
si valorile reale y
0
, y
1
, . . . , y
n
. Not am din nou restrictia
functiei spline cubice de interpolare la intervalul [x
i
, x
i +1
] prin s
i
(x) si h
i
x
i +1

x
i
.
Determinarea functiei spline cubice de interpolare se va face n functie de
parametrii M
i
s
tt
(x
i
), i {0, 1, . . . , n}.
Deoarece s
tt
i
(x) este polinomde gradul nti are loc egalitatea s
tt
i
(x) M
i
xx
i +1
h
i
+
M
i +1
xx
i
h
i
, i {0, 1, . . . , n 1}.
n felul acesta functia s
tt
(x) va continu a n intervalul [x
0
, x
n
].
100 CAPITOLUL 11. REZOLVAREA PROBLEMELOR DE INTERPOLARE
Integrnd de dou a ori se obtine succesiv
s
t
i
(x) M
i
(x x
i +1
)
2
2h
i
+M
i +1
(x x
i
)
2
2h
i
+A
i
s
i
(x) M
i
(x x
i +1
)
3
6h
i
+M
i +1
(x x
i
)
3
6h
i
+A
i
(x x
i
) +B
i
Conditiile s
i
(x
i
) y
i
si s
i
(x
i +1
) y
i +1
, care asigur a continuitatea functiei s(x),
determin a valorile pentru A
i
si B
i
:
A
i

y
i +1
y
i
h
i

M
i +1
M
i
6
h
i
, B
i
y
i
M
i
6
h
i
.
Continuitatea functiei s
t
(x) este asigurat a de conditiile
s
t
i 1
(x
i
) s
t
i
(x
i
), i {1, . . . , n 1}.
Rezult a ecuatiile
h
i 1
h
i 1
+h
i
M
i 1
+2M
i
+
h
i
h
i 1
+h
i
M
i +1

6
h
i 1
+h
i
_
y
i +1
y
i
h
i

y
i
y
i 1
h
i 1
_
,
i {1, . . . , n 1}.
Pentru echilibrarea sistemului algebric de ecuatii liniare se introduc conditi-
ile la limit a:
lspline
M
0
M
n
0 (conditia la limit a natural a).
pspline
M
0
M
1
0
M
n1
M
n
0.
cspline
M
0
, M
n
se a a pe dreptele determinate de punctele (x
1
, M
1
), (x
2
, M
2
) si re-
spectiv (x
n2
, M
n2
), (x
n1
, M
n1
).
Rezult a ecuatiile:
M
0

h
0
+h
1
h
1
M
1
+
h
0
h
1
M
2
0
h
n1
h
n2
M
n2

h
n2
+h
n1
h
n2
M
n1
+M
n
0.
Capitolul 12
Derivare numeric a
Cap. 11 Cap. 13
12.1 Derivarea functiilor de o variabil a real a
Pentru calculul derivatei f
t
(x
0
) unde f : I R este o functie derivabil a, I
un interval iar x
0
Int(I ), n Mathcad se utilizeaz a operatorul
d
d
care se obtine
tastnd ?. Pozitiile marcate se completeaz a cu datele calculului: expresia de
derivat, simbolul variabilei. Toate variabilele din expresia de derivat trebuie sa
e initializate, derivata va calculat a pentru acele valori.
Exemplul 12.1 S a se calculeze f
t
(1) unde f (x) x
3
.
Rezolvarea este:
x :1
d
dx
x
3
3
101
102 CAPITOLUL 12. DERIVARE NUMERIC

A
12.2 Cazul functiilor de mai multe variabile
Exemplul 12.2 S a se calculeze jacobianul si hessianul functiei f (x, y)
_
x
2
y
x
3
+y
_
n (1, 2).
f 1(x, y) :x
2
y f 2(x, y) :x
3
+y
x :1 y :2
J :
_
d
dx
f 1(x, y)
d
dy
f 1(x, y)
d
dx
f 2(x, y)
d
dy
f 2(x, y)
_
J
_
4 1
3 1
_
H1 :
_
d
dx
_
d
dx
f 1(x, y)
_
d
dy
_
d
dx
f 1(x, y)
_
d
dx
_
d
dx
f 2(x, y)
_
d
dy
_
d
dx
f 2(x, y)
_
_
H2 :
_
_
d
dx
_
d
dy
f 1(x, y)
_
d
dy
_
d
dy
f 1(x, y)
_
d
dx
_
d
dy
f 2(x, y)
_
d
dy
_
d
dy
f 2(x, y)
_
_
_
H :augment(H1, H2)
H
_
4 2 2 1.37310
15
6 0 0 0
_
Capitolul 13
Metoda celor mai mici p atrate
Cap. 12 Cap. 14
Determinarea unui polinom de aproximare construit prin metoda celor mai
mici p atrate de grad m pentru datele (x
i
, y
i
)
1i n
(m<<n) se obtine cu ajutorul
functlor MathCAD regress si interp.
Functia c = regress(vx,vy,k) returneaz a un vector c utilizat de functia y = in-
terp(c,vx,vy,x), ce calculeaz a valoarea polinomului de aproximare de grad k a
datelor (vx
i
, vy
i
)
i
n x. Ultimele k +1 componente ale vectorului c contin coe-
cientii polinomului de aproximare construit prin metoda celor mai mici p atrate.
Exemplul 13.1 S a se calculeze polinoamele de aproximare de grad unu si doi,
constituite prin metoda celor mai mici p atrate, pentru datele (x
i
, y
i
)
0i 20
unde
x
i
2+0.2i , y
i
f (x
i
), f (x) [x[. S a se reprezinte grac functiile astfel obtinute.
Din 13.1 deducem polinomele de aproximare construite prin metoda celor
mai mici p atrate de gradul 1 si respectiv 2:

1
(x) 1.048
2
(x) 0.388+0.449x
2
103
104 CAPITOLUL 13. METODA CELOR MAI MICI P

ATRATE
Figure 13.1: Polinoamele de aproximare de grad 1 si 2
Capitolul 14
Integrare numeric a
Cap. 13
14.1 Integrarea numeric a a functiilor reale
de o variabil a real a
MathCAD permite calculul aproximativ al integralelor denite. Pentru calcu-
larea valorii integralei denite
_
b
a
f (x)dx
unde functia f : [a, b] RR este continu a n domeniul de denitie.
Pentru a calcula valoarea unei integrale denite, se selecteaz a din paleta Cal-
culus simbolul integralei denite, dup a care se completeaz a pozitiile marcate:
limitele intervalului de integrare,
functia de integrat,
variabila n raport cu care se face integrarea.
105
106 CAPITOLUL 14. INTEGRARE NUMERIC

A
Integrarea se face n raport cu o singur a variabil a, iar functia poate de mai
multe variabile. Restul parametrilor n afara variabilei de integrare vor con-
siderati constante si n consecint a vor trebui s a e deniti n prealabil. n mod
implicit integrala se evalueaz a numeric pe baza unei metode alese de AutoSe-
lect. Dac a se dore ste evaluarea integralei printr-o anumit a metod a, se execut a
clic dreapta pe simbolul integralei, se deselecteaz a optiunea AutoSelect si se alege
una dim metodele pe care MathCAD le pune la dispozitie:
Romberg,
Adaptive,
Innite Limit,
Singular Endpoint.
Parametrul utilizat n testele de precizie este TOL si are valoarea implicit a 0.001.
Exemplul 14.1 S a se calculeze integralele:
1.
_
3
1
x
2
e
x
dx
2.
_
2
0
si n(x)
x
dx
Rezolvare:
1.
TOL 10
6
_
3
1
x
2
e
x
dx 97.709
2.
TOL 10
9
_
2
0
sin(x)
x
dx 1.371
14.2 Calculul numeric al integralelor duble
Pentru calculul integralelor duble de forma
__
D
f (x, y)dxdy
unde
D {(x, y) : a x b, f i nf (x) y f sup(x)}.
14.2. CALCULUL NUMERIC AL INTEGRALELOR DUBLE 107
Calcularea integralei const a n transformarea acesteia n integrale iterate, de
exemplu
_
b
a
_
f sup(x)
f i nf (x)
f (x, y)dydx.
Exemplul 14.2 S a se calculeze
__
D
xydxdy unde domeniul D este delimitat de
curbele y x
2
si y
_
x.
Reprezentndgrac domeniul de integrare, deducem f i nf (x) x
2
, f sup(x)
_
x, a 0, b 1.
_
1
0
_
_
x
x
2
x ydydx 0.0833.
Part III
CULEGERE DE PROBLEME
108
Capitolul 15
Metode numerice n algebra liniar a
I. S a se calculeze factorizarea LU a matricei:
1.
_
_
_
_
_
10 6 2 1
10 10 5 0
2 2 2 1
1 3 2 3
_
_
_
_
_
2.
_
_
5 3 11
4 5 4
3 13 19
_
_
3.
_
_
_
_
_
2 1 3 4
4 2 5 6
6 3 7 8
8 4 9 10
_
_
_
_
_
4.
_
_
_
_
_
_
_
_
_
1 1 0 0 0 0
1 2 1 0 0 0
0 1 3 1 0 0
0 0 1 4 1 0
0 0 0 1 5 1
0 0 0 0 1
7
33
_
_
_
_
_
_
_
_
_
II. S a se calculeze descompunerea / factorizarea QR a matricei:
109
110 CAPITOLUL 15. METODE NUMERICE N ALGEBRA LINIAR

A
1.
_
_
4 5 2
3 0 3
0 4 6
_
_
2.
_
_
2 1 3
1 3 1
2 8 5
_
_
3.
_
_
_
_
_
3 4 7 2
5 4 9 3
1 1 0 3
1 1 0 0
_
_
_
_
_
III. S a se rezolve sistemele algebrice de ecuatii liniare:
1.
_

_
x
1
+ x
2
x
3
x
4
1
4x
1
4x
2
+ 6x
3
2x
4
4
x
1
+ 3x
2
2x
3
2x
4
3
6x
1
6x
2
+ 9x
3
3x
4
6
2.
_

_
x
1
2x
2
+ 3x
3
+ 4x
4
22
4x
1
+ x
2
+ 2x
3
+ 3x
4
6
3x
1
+ 4x
2
x
3
+ 2x
4
4
2x
1
+ 3x
2
+ 4x
3
x
4
6
3.
_

_
6x + 4y + z + 2t 3
6x + 5y + 3z + 5t 6
12x + 8y + z + 5t 8
6x + 5y + 3z + 7t 8
4.
_

_
x + 2y + 3z + 4t 4
x + y + 2z + 3t 2
x + 3y + z + 2t 3
x + 3y + 3z + 2t 5
5.
_

_
2x + y + z + t 1
3x 2y 5z + 4t 30
x + 3y + 2z 3t 17
x y + z t 2
111
6.
_

_
x + y + z + t 4
2x + 2z + t 4
2x + 2y t 4
3x + y z 0
7.
_

_
2x
1
+ 3x
2
+ 2x
3
+ x
4
2
x
1
+ x
2
+ 3x
3
+ 2x
4
6
3x
1
+ 2x
2
x
3
x
4
0
x
1
x
2
+ x
3
+ 3x
4
6
8.
_

_
x + y + z + t 2
2y + 2z + t 2
2x + 2y t 2
3x + y z 2
9.
_

_
x + y + 2z + 3t 2
3x y 4z 6t 0
2x + 3y 6z 9t 7
x 2y + 8z 12t 3
10.
_

_
x + y + z 2t + 7u 10
2x + 5z 2u 32
3x + y t 1
2y 5z + u 39
x y + 3t 7
11.
_

_
2x + 3y z + t 5
x y + 2z 2t 5
3x + y + 2z 2t 3
3x y 2z + 2t 3
12.
_

_
x + 2y + 3z + 4t 30
2x 3y + 5z 2t 3
3x + 4y 2z t 1
4x y + 6z 3t 8
13.
_

_
x + 2y + 3z 2t 6
2x y 2z 3t 8
3x + 2y z + 2t 4
2x 3y + 2z + t 8
14.
_

_
2x y + z t 1
2x y 3t 2
3x y + t 3
2x + 2y 2z + 5t 6
112 CAPITOLUL 15. METODE NUMERICE N ALGEBRA LINIAR

A
15.
_

_
x + 2y + 3z + 4t + 5u 13
2x + y + 2z + 3t + 4u 10
2x + 2y + z + 2t + 3u 11
2x + 2y + 2z + t + 2u 6
2x + 2y + 2z + 2t + u 3
16.
_

_
x + 2y 3z + 4t u 1
2x y + 3z 4t + 2u 8
3x + y z + 2t u 3
4x + 3y + 4z + 2t + 2u 2
x y z + 2t 3u 3
17.
_

_
x + y + z + t 10
x + y z + 2t 8
5x + 5y z 4t 4
x + y + 3z + 4t 28
IV. S a se rezolve sistemele algebrice de ecuatii liniare incompatibile n sensul
celor mai mici p atrate:
1.
_
_
_
3x
1
x
2
+ x
3
3
x
1
+ 2x
2
x
3
4
2x
1
3x
2
+ 2x
3
3
2.
_
_
_
x
1
3x
2
+ x
3
+ x
4
1
x
1
3x
2
+ x
3
2x
4
1
x
1
3x
2
+ x
3
+ 5x
4
6
3.
_

_
2x 3y + z 1
x + 2y 3z 0
x 12y + 11z 1
4x 15y + 9z 0
4.
_
_
_
5x + 3y 11z 13
4x 5y + 4z 18
3x 13y + 19z 22
Capitolul 16
Sisteme si ecuatii algebrice
I. S a se rezolve ecuatiile polinomiale:
1. x
6
2x
5
+x
3
6x +6 0
2. 2x
6
x
5
5x
4
+2x
3
+20x
2
9x 9 0
3. x
5
56x
4
10x
3
+560x
2
+x 56 0
4. x
5
x
4
2x
3
+4x
2
4 0
5. x
5
4x
4
9x
3
+18x
2
+14x 20 0
6. x
6
5x
5
+5x
4
2x
3
+13x
2
+3x +9 0
7. x
5
12x
4
+50x
3
88x
2
+96x 128 0
8. x
6
6x
5
+8x
4
+3x
3
16x
2
+18x 8 0
9. x
5
3x
4
+2x
3
x
2
+5x 2 0
10. x
5
4x
3
8x
2
+32 0
11. x
n
nx +1 0, n 3, 4, 5
12. x
n
(1+x +. . . +x
n1
) 0, n 3, 4, 5
13. x
n+1
(1+x +. . . +x
n1
) 0, n 2, 3, 4
14. x
n+1
x
n
1 0, n 2, 3, 4
Observatie. Justicati armatiile:
113
114 CAPITOLUL 16. SISTEME SI ECUA TII ALGEBRICE
1. Pentru orice n N, n >2 ecuatia x
n
nx +1 0 are dou a r ad acini pozitive,
a
n
(0, 1), b
n
(1, 2).
2. Pentru orice p N, ecuatia x
p+1
x
p
1 0 are o singur a r ad acin a x
p
> 1
si lim
p
x
p
1.
3. Pentru orice n N

, p N, ecuatia x
n+p
(1+x+. . .+x
n1
) 0 are o singur a
r ad acin a x
n,p
>1 si lim
n
x
n,p
x
p
.
II. S a se rezolve ecuatiile algebrice:
1. 2x lnx 4 0
2. ln8x 9x +3 0
3. x 2cosx 0
4. e
0.5x
x 0
5. lnx
1
x
6. lnx x
2
1
7. x
2
2cosx 0
8. x lnx 14 0
9. x
x
+2x 6 0
10. e
x
+e
3x
4 0
11. ln7x 8x +1 0
12. x +e
x
e
III. S a se rezolve sistemele algebrice de ecuatii neliniare
1.
_
2x
3
y
2
1 0
xy
3
y 4 0
115
2.
_
e
x
y 0
x e
y
0
3.
_
e
x
y
x
2
y +1
(x +0.5)
2
+y
2
0.6
4.
_
_
_
x
2
+y
2
+z
2
3
xy +xz 3yz 1
x
2
+y
2
z
2
1
5.
_
x
2
+y
2
1 0
x
3
y 0
6.
_
2x
2
xy 5x +1 0
x +3lnx y
2
0
7.
_
2x
2
xy y
2
+2x 2y +6 0
y x 1 0
8.
_
x
3
y
2
1 0
xy
3
y 4 0
9.
_
_
_
x
2
x y
2
y +z
2
0
y e
x
0
z ln(y) 0
10.
_
x
2
x y
2
1
y e
x
0
11.
_
x +3lnx y
2
0
2x
2
xy 5x +1 0
12.
_
_
_
x +x
2
2yz 0.1 0
y y
2
+3xz +0.2 0
z z
2
+2xy 0.3 0
13.
_
x
3
y +1 0
0.25x
2
+y
2
1 0
14.
_
_
_
x cos(x y z) 0
y cos(y x z) 0
z cos(z x y) 0
15.
_
tan(x) cos(1.5y) 0
2y
3
x
2
4x 3 0
116 CAPITOLUL 16. SISTEME SI ECUA TII ALGEBRICE
16.
_
3x
2
+14y
2
1 0
sin(3x +0.1y) +x 0
17.
_
1+x
2
y
2
+e
x
cos y 0 x
0
1
2xy +e
x
siny 0 y
0
4
18.
_
sinx +cos y +e
xy
0
arctan(x +y) xy 0
117
118 CAPITOLUL 17. PROBLEME DE INTERPOLARE
Capitolul 17
Probleme de interpolare
I. S a se calculeze L(P
n
, x
0
, x
1
, ..., x
n
; f )(z) pentru
1.
f (x) x
3
5x
2
+x 1
x
i
2i +1, i {0, 1, 2, 3, 4, 5}
z 4
2.
f (x) x
4
10x
3
+2x
2
+3x +1
x
i
1+i , i {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
z 4.5
3.
f (x) lg(x)
x
i
e
i
, i {0, 1, 2, 3, 4, 5}
z 1.7
4.
f (x) e
x
x
i
3+i , i {0, 1, 2, 3, 4, 5, 6}
z 1.5
5.
f (x) sin(x)
x
i

2
+i

10
, i {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
z

13
6.
f (x) cos(x)
x
i
i

10
, i {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
z

7
7.
f (x)
_
x
x
i
i
2
, i {0, 1, 2, 3, 4, 5}
z 5
119
8
f (x)
x
2
+1
x
x
i
1+
i
5
, i {0, 1, 2, 3, 4, 5}
z 1.3, z 1.5, z 1.7
II. S a se calculeze valoarea functiei spline cubice de interpolare pentru datele
problemei 1.
Capitolul 18
Derivare numeric a
I. S a se calculeze derivate functiilor n punctul indicat:
1. f (x) 2x lnx 4 x
0
1
2. f (x) ln8x 9x +3 x
0
1
3. f (x) x 2cosx x
0
1
4. f (x) e
0.5x
x x
0
1
5. f (x) lnx
1
x
x
0
1
6. f (x) lnx x
2
+1 x
0
1
7. f (x) x
2
2cosx x
0
1
8. f (x) x
x
+2x 6 x
0
2
9. f (x) e
x
+e
3x
4 x
0
1
II. S a se calculeze jacobianul si hessianul functiilor n punctul indicat:
120
121
1. f (x, y)
_
2x
3
y
2
1
xy
3
y 4
_
(x, y) (1, 2)
2. f (x, y)
_
x
2
y
x(y +1)
_
(x, y) (1, 2)
3. f (x, y)
_
tan(xy) x
2
0.5x
2
+2y
2
1
_
(x, y) (1, 2)
4. f (x, y)
_
e
x
y
x
2
y 1
(x +0.5)
2
+y
2
0.6
_
(x, y) (2, 2)
5. f (x, y)
_
x
3
+y
3
6x +3
x
3
y
3
6y +2
_
(x, y) (1, 2)
6. f (x, y)
_
x
2
+y
2
1
x
3
y
_
(x, y) (1, 2)
7. f (x, y)
_
2x
2
xy 5x +1
x +3lnx y
2
_
(x, y) (1, 2)
8. f (x, y)
_
2x
2
xy y
2
+2x 2y +6
y x 1
_
(x, y) (1, 2)
Capitolul 19
Calculul unui element de aproximare
prin metoda celor mai mici p atrate
I. S a se calculeze polinoamele de aproximare de grad unu, doi si trei constru-
ite prin metoda celor mai mici p atrate pentru datele Problemei 1 din capitolul
Interpolare.
II. S a se calculeze functiile de aproximare construite prin metoda celor mai
mici p atrate pentru metoda Gauss-Newton de forma si datele indicate (t 0 : 9):
1. (t ) aln(bt +c) y 2ln(3t +1)
2. (t ) aexp(bt
2
+c) y 2exp(t
2
)
3. (t ) asin(bt ) exp(ct ) y 2sin(t ) exp(2t )
4. (t ) a +bt +c exp(dt ) y 12t +2exp(t )
III. S a se calculeze functiile de aproximare construite prin metoda celor mai
mici p atrate pentru metoda Levenberg-Marquardt pentru cazurile exercitiului II.
122
Capitolul 20
Integrare numeric a
I. S a se calculeze integralele:
1.
1
_
0
x
2
e
x
dx 2.

_
0
x
2
cosxdx
3.
5
_
4
_
x
2
9dx 4.
2
_
1
x
2
lnxdx
5.

4
_
0
x tan
2
xdx 6.

2
_
0
sin2x
1+sin
2
x
dx
7.
2
_
0
_
4x x
2
dx 8
1
_
0
arcsin
x
2
1
x
2
+1
dx
9.

_
0
cos
2
x cos4xdx 10.

2
_

6
1+sin2x+cos2x
sinx+cosx
dx
11.
1
_
1
x
3
_
1+e
x
2
dx 12.
1
_
0
2x
_
3+4x
2
dx
13.
_
3
_
_
3
3
arctan
1
x
dx 14.

4
_
0
tanx
1+
_
2cosx
dx
II. S a se calculeze integralele duble:
123
124 CAPITOLUL 20. INTEGRARE NUMERIC

A
1.
_
D
_
(x
2
+y)dxdy D : (delimitat de) y x
2
; y
2
x.
2.
_
D
_
x
2
y
2
dxdy D : y
1
x
; y x; x 1; x 2.
3.
_
D
_
x
x
2
+y
2
dxdy D : y x; y (x 1)
2
.
4.
_
D
__
4x
2
y
2
dxdy D : y x; y 0; x 1.
5.
_
D
_
1
_
x+
_
y
dxdy D : x 1, y 0, x y
1
2
.
6.
_
D
_
2x
_
1+y
4
x
4
dxdy D : y x, x 0, y 1.
7.
_
D
_
(x
2
y
_
1x
2
y
2
dxdy D : x 0, y 0, x
2
+y
2
1.
8.
_
D
__
xy y
2
dxdy D este triunghiul cu vrfurile
O(0, 0), A(10, 1), B(1, 1).
Bibliograe
[1] BLAGA P., COMAN GH., POP S., TRMBI TA S R., VASARU D., 1994, Anal-
iz a numeric a. ndrumar de laborator. Univ. "Babe sBolyai" Cluj-Napoca
(litograat).
[2] CIRA O., M

ARU STER S., 2008, Metode numerice pentru ecuatii neliniare.


Ed. Matrix-Rom, Bucure sti.
[3] CURTEANU S., 2001, Calculul numeric si simbolic n Mathcad. Ed. Matrix-
Rom, Bucure sti.
[4] DINUM., LINC

A Gh., 1999, Algoritmi si teme speciale de analiz a numeric a.


Ed. Matrix rom, Bucure sti.
[5] GAVRIL

A C., 2007, SCILAB Aplicatii, Modele si simulare Scicos Ed. Matrix-


Rom, Bucure sti.
[6] KINCAID D., CHENEY W., 1991, Numerical Analysis. Brooks / Cole, Pacic
Grove, Ca.
[7] MARINESCU GH., BADEA L., GRIGORE G., JAMBOR C., MAZILU P., RIZ-
ZOLI I., STEFANC., 1978, Probleme de analiz a numeric a. E.D.P., Bucure sti.
[8] MARINESCU GH., RIZZOLI I., POPESCU I., STEFAN C., 1987, Probleme de
analiz a numeric a rezolvate cu calculatorul. Ed. Acad. R.S.R., Bucure sti.
[9] MARTIN O., 1998, Probleme de analiz a numeric a. Ed. Matrix rom, Bu-
cure sti.
[10] PLIS A. I., SLIVINA N.A., 1983, Laboratornyi praktikum po bysxei
matematike. Vysxa Xkola, Moskva.
[11] SCHEIBER E., LIX

ANDROIU D., CISMA SIU C., 1982, Analiz a numeric a. n-


drumar de laborator. Univ. Bra sov (litograat).
125
126 BIBLIOGRAFIE
[12] SCHEIBER E., SNGEORZAN L., GROVU M., 1993, Analiz a numeric a. n-
drumar de laborator. Univ. "Transilvania" Bra sov (litograat).
[13] SCHEIBER E., 2010, Java n calculul stiintic. Ed. Univ. Transilvania
Bra sov.

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