Sunteți pe pagina 1din 39

1

Capitolul 1
I NTRODUCERE N CALCULUL APROXI MATI V
Algoritmii prezentai n aceast lucrare sunt destinai implementrii pe calculatoare
numerice cu precizie finit i domeniu de reprezentare finit. De aici rezult c numerele reale,
avnd n cazul general o infinitate de zecimale, trebuie reprezentate n interiorul unui
calculator prin aproximri raionale ale lor, cu un numr finit de zecimale; formatul larg
rspndit de reprezentare a numerelor reale este formatul n virgul mobil. Acest capitol
este dedicat prezentrii noiunilor i problematicii de baz ale calculului cu numere n virgul
mobil.
1.1 Reprezentarea i aritmetica numere!r "n #ir$u% m!&i%
1.1.1 Formatul n virgul mobil. Erori de reprezentare
Def i ni i a 1. 1: ie x i
$
x
o apro!imare "raional# a acestuia. $rimile%
"1.1#
$
a
x x
,
$
r
x x
x


se numesc eroarea absolut, respectiv eroarea relativ de reprezentare ale lui x.
&otnd cu a"'# baza de reprezentare a numrului x i cu t
zec
numrul de zecimale e!acte
"reinute n apro!imarea
$
x
alui x#, eroarea absolut de reprezentare verific relaia%
"1.'#
$
zec
t
a
x x a


,
ceea ce nseamn c numerele x i
$
x
nu mai sunt distinctibile nuntrul preciziei zec
t
a

.
Exempl ul 1. 2: (entru numrul x)1*.1'*+... n baza a)1, apro!imarea cu t
zec
)' zecimale
e!acte este
$
1*.1' x
. -ezult, deci, c
$
'
,.,,*+ ,.,1 1,
a
x x


.
-eprezentarea numerelor reale pe calculatoare numerice implic, deci, o operaie de
apro!imare care are loc astfel%
$
$
$
$
, dac. / 1 ' "apro!imare prin lips.#
, dac. / 1 ' "apro!imare prin adaos#
sau , dac. / 1 '
zec
zec zec
zec zec
t
t t
t t
x x x a
x x a x x a
x x a x x a

<

+
'

(roprietile unei apro!imri 0bune1 a numerelor reale prin numere zecimale cu un


numr fi!at de zecimale sunt%
un domeniu de reprezentare suficient de mare;
$etode numerice utilizate n analiza sistemelor 2 aplicaii
eroare relativ suficient de mic;
distribuie uniform a erorii relative de/a lungul domeniului de reprezentare.
Aceste proprieti sunt asigurate de formatul n virgul mobil "referit mai 3os ca 4$#,
cunoscut i sub numele de formatul cu mantis i exponent, pentru motive ce sunt detaliate
mai 3os. 5u notaiile de mai sus, 4$ se poate defini ca un triplet%
"'.1# 4$ ) "a, t, p#,
unde t este numrul de cifre ale mantisei i p este numrul de cifre ale e!ponentului.
Def i ni i a 1. 2: 6n numr n 4$ dat de "1.7# este o perec8e "m, e# a crei valoare este
e
m a
, unde m se numete mantis i e se numete exponent.
De e!emplu, scrierea ,.19'7:/,' desemneaz numrul ,.19'71,
/'
, adic ,.,,19'7. De
obicei mantisa este normalizat, ndeplinind condiia
1; 1 a m <
. De aici rezult c numrul
, nu poate fi reprezentat e!act, deoarece nu poate avea o mantis normalizat. $antisa i
e!ponentul admit respectiv urmtoarele scrieri generale%
"1.1#
1 '
,. ...
t
m m m m t
, 1 '
...
p
e e e e t
,
unde
1
, m
, { } ,,1,... 1 , ', 7,...
i
m a i t
, { } ,,1,... 1 , 1, ',...
j
e a j p
.
Dac notm cu M cel mai mare numr reprezentabil ntr/un 4$ dat, atunci domeniul
de reprezentare este [ ]
; M M
. Att M, ct i cel mai mic numr pozitiv reprezentabil, m, sunt
parametri dependeni de maina de calcul i se pot e!prima n funcie de parametrii 4$
dup cum urmeaz.
<e noteaz cu L i U valorile minim, respectiv ma!im, ale e!ponentului. &otnd cu
1 b a i folosind notaia "1.7#, se scrie%
{
ori
...
p
U bb b
,
{
ori
...
p
L U bb b
i n continuare%
"1.'#
( )
1
U t
M a a
,
L
m a
=n concluzie, pentru orice numr x are loc relaia%
( )
1
L U t
m a x a a M
Exempl ul 2. 2: 4$ ) "','*,># este sugestiv reprezentat n figura 1.1.
'
e!ponent
e!ponent cu semn
"> bii#
,;1 bit de semn
mantis "'7 de bii#
,;1 bit de semn
mantis cu semn "'* de bii#
1. ?ntroducere n calculul apro!imativ
Fig. 1.2 :!emplu de format binar n virgul mobil
<e observ c, pentru reprezentarea numerelor negative, att la mantis, ct i la
e!ponent, primii bii se rezerv pentru a codifica semnul. Astfel nct, de fapt, t)'7 i p)+, de
unde rezult
+
' 1 1'+ U
i
+
1 ' 1'+ L U
. 5onform relaiei "1.9# rezult n
continuare cel mai mic numr pozitiv reprezentabil
1'+
' m

i cel mai mare numr


reprezentabil
( )
1'+ '7
' ' 1 M
.
&umrul de cifre al unui 4$, t, este precizia respectivei reprezentri n virgul mobil.
Def i ni i a 1. 1: <e numete precizie relativ "sau epsilon main# a unui 4$ i se noteaz
cu
M

distana dintre numrul 1 i urmtorul numr reprezentabil e!act n


acel 4$.
-ezult c are loc relaia%
"1.1#
1 t
M
a
+

(recizia relativ este i ea un parametru dependent de main. @ implementare robust
trebuie s permit lucrul la precizia mainii de calcul, cu evitarea pe ct posibil a depirilor
aritmetice "n ambele sensuri# cauzate de obinerea unor rezultate intermediare aflate nafara
domeniului de reprezentare a numerelor. (entru realizarea compromisului ntre eficien i
portabilitate "posibilitatea de a transporta programul surs, cu modificri minime, de pe
maina pentru care a fost scris pe o alt main#, o soluie des utilizat este de a obine aceti
parametri prin intermediul unor rutine speciale "ca, de pild, n A4A-B C+D#.
:roarea relativ de reprezentare "definit n "1.1## se refer simplu ca eroare de
reprezentare i verific relaia%
"1.'#
t
r
a

,
unde

este un parametru de ordinul unitii. :roarea maxim de reprezentare este


t
max
a

i servete pentru calcularea numrului de zecimale semnificative exacte!, t


zec
,
ale unui numr n baza 1, reprezentat n respectivul 4$, conform cu urmtoarea relaie%
"1.7#
1, 1,
log " # log " #
zec max
t t a 1 1
] ]
,
unde [ ]

semnific partea ntreag.


"ublarea preciziei semnific generic creterea "n particular dublarea# numrului de cifre
ale mantisei "'t n loc de t#. De e!emplu, n standardul ?::: de reprezentare binar "a)'#
cele dou forme sunt caracterizate de%
simpla precizie% t)'* de cifre, ceea ce nseamn
'*
'
max

, adic o reprezentare cu
( )
'*
1, 1,
log ' '* log "'# +.''... +
zec
t
1
1 1
] ]
1
]
zecimale e!acte;
dubla precizie% t)97 de cifre, ceea ce nseamn
97
'
max

, adic o reprezentare cu
( )
97
1,
log ' 19.C9... 19
zec
t
1
1
]
1
]
zecimale e!acte.
7
$etode numerice utilizate n analiza sistemelor 2 aplicaii
1.1.2 Operaii cu numere n virgul mobil. Propagarea erorilor
@peraiile aritmetice de baz 2 adunarea, scderea, nmulirea i mprirea 2 sunt
influenate n mod diferit de apro!imarea introdus prin reprezentarea n 4$.
Ea o operaie de adunare sau de scdere n virgul mobil se obine un numr de
zecimale nenule dup virgul dependent de mrimea operanzilor, i anume de mrimea
exponenilor; aceasta nseamn c eroarea de reprezentare a rezultatului depinde de mrimea
e!ponenilor. Ea operaiile de #nmulire i de #mprire eroarea de reprezentare este dat de
mrimea mantisei, respectiv de parametrul t al 4$.
=ntr/o aritmetic cu t cifre n virgul mobil operaiile aritmetice de baz i pierd
proprietile obinuite de asociativitate, comutativitate i distributivitate. -ezolvarea unei
probleme ntr/o astfel de aritmetic determin, n principiu, un ansamblu de algoritmi
neec8ivaleni "care nu furnizeaz acelai rezultat#.
1.1.3 Calculul aproximativ (cu toleran)
<e pune problema care este limita ma!im de ncredere pentru rezultatele obinute n
cazul propagrii erorilor. </a artat c aritmetica cu t cifre introduce o eroare relativ de
reprezentare de forma "1.+#; n general, pentru orice nivel de eroare impus ca ma!im se poate
defini o aritmetic apro!imativ.
Def i ni i a 1. 1: <e numete aritmetic aproximativ "cu tolerana

# acea aritmetic n care


eroarea relativ de reprezentare este cel mult

.
=ntr/o aritmetic apro!imativ numrul de operaii al unei metode numerice de rezolvare
nu poate constitui un indicator adecvat n a estima eroarea general; acest lucru este ilustrat
de e!emplul urmtor.
Exempl ul 1. 1: ie funcia
' '
% ; , " # f a f x a x a x
1
+ +
]
.
=n vederea reprezentrii ei grafice, se calculeaz n trei moduri diferite valorile acestei
funcii n puncte ec8idistanate cu pasul
+
1,

din intervalul
1* 9
' 1, ; + 1,

1

]
"rezult astfel
+,, de puncte#. 5elor trei iruri de rezultate, fiecare de cte +,, de valori, li se calculeaz
dispersia cu relaia%.
( )
'
1
" #
, 1, ', 7
1
n
$ i $
i
$
f x m
d $
n

,
unde n)+,, i
$
m
sunt mediile aritmetice ale respectivelor iruri. <e compar apoi cele trei
dispersii. Astfel, ntr/o aritmetic cu 19 zecimale e!acte "deci de tip dubl precizie#%
pentru
'
1
" # f x a x a x
_
+

,
se obine dispersia
/1,
1.>19F**,>,C7'+,* 1,
;
pentru
'
'
" # f x a x x a
_
+

,
dispersia este
/1,
1.>19F**,>,C7'+97 1,
;
*
1. ?ntroducere n calculul apro!imativ
pentru
( ) ( )
'
'
'
7
' ' '
1 '
'
" #
a x a x x a x
x x ax
f x
a x a x a x a x a x a x
+ +


+ + + + + + + + +
rezult dispersia
/1,
1.>19F**,>,C7'F9, 1,
.
Diferenele n valoare absolut ntre oricare dou dintre dispersiile de mai sus sunt de
ordinul
'*
1,

, ceea ce se poate considera suficient pentru marea ma3oritate a aplicaiilor.


Gotui, e!emplul de mai sus arat c simplitatea metodei de calcul "numrul mic de operaii#
nu este o garanie a unui rezultat bun n sensul acurateii "n cazul de fa, dispersia minim se
obine prin metoda de calcul cea mai complicat#.
Def i ni i a 1. 2: AD:$? >CD <e spune c o apro!imaie pozitiv a unui numr x are p
zecimale exacte%
n sens restrns, dac eroarea sa relativ este mai mic dect 3umtate din unitatea
aferent ultimei zecimale%
"1.1#
1
1,
'
x
p
r

;
n sens larg, dac eroarea sa absolut este mai mic dect unitatea aferent ultimei
zecimale%
"1.'# 1,
x
p
a


=n mod obinuit, cnd se evalueaz o e!presie cu numere apro!imative "de e!emplu,
rezultate n urma unor msurri afectate de o eroare ma!im dat# se consider implicit c
toate zecimalele acestora sunt corecte #n sens restr%ns "dac nu se precizeaz altfel#.
Gabelul de mai 3os rezum relaiile respectate de erorile rezultatelor la principalele
operaii aritmetice cu numere apro!imative.
@peraii cu numere apro!imative :roarea
sumarea algebric
"
1
n
i
i
x

#
adunarea
absolut%
1
x
i
n
a a
i

relativ% { } { }
1, 1,
min ma!
x x
i i
r r r
i n i n

scderea relativ% nu respect o regul
nmulirea "
1
n
i
i
x

# relativ%
1
x
i
n
r r
i

mprirea "x;&# relativ%
x &
r r r
+
ridicarea la putere "x
m
# relativ%
x
r r
m
e!tragerea rdcinilor "
m
x
# relativ%
1
x
r r
m

Tabel 1.2 :rorile principalelor operaii aritmetice cu numere apro!imative
=ntr/o operaie de adunare cu numere rotun3ite "astfel nct toate zecimalele lor sunt
e!acte#, pentru a obine n rezultat numai zecimale corecte, este necesar ca toi termenii s fie
scrii cu attea zecimale cte are termenul cu cele mai puine zecimale. Apoi calculul se face
reinnd pentru fiecare termen cte o zecimal de rezerv. -ezultatul se rotun3ete cu o
zecimal.
9
$etode numerice utilizate n analiza sistemelor 2 aplicaii
Exempl ul 1. 1: 1'.71H*,1.'7H9.*)1'.7"1#H*,1.'"7#H9.*)*1>.C.
:roarea relativ la scdere nu se ncadreaz n anumite limite dependente de erorile
termenilor; acest lucru este n mod special defavorabil cnd se scad numere apro!imative
apropiate "eroarea relativ a rezultatului poate deveni important#. <e recomand n acest caz
transformarea e!presiei respective pentru a evita scderea lor direct.
Exempl ul 1. 2: @peraia '.1'+/'.1'' d rezultatul ,.,,9; eroarea absolut a termenilor este
,.,,1, deci eroarea relativ a rezultatului se poate calcula ca%
,.,,1 ,.,,1
,.*
,.,,9
r
+
,
ceea ce arat c nici mcar prima zecimal nu este corect n sens restrns "definiia 1.9#.
=n cazul nmulirii, n rezultat se reine acel numr de zecimale corecte indicat de calculul
erorii relative.
Exempl ul 1. ': 7.*9'1.7)+7.*>9
(resupunnd c toate zecimalele termenilor sunt e!acte, atunci eroarea relativ a
produsului lor este%
1 ' ,.,,1 1 ' ,.,1 ,.,,9
r
+
,
ceea ce arat c rezultatul va avea dou zecimale e!acte% +7.*>.
Ca cu u er!ri !r e'pre(i i !r )e numere apr!'i mat i #e
Dac
x
i
a

sunt respectiv erorile absolute ale numerelor apro!imative


i
x
, i)1,',...n,
atunci eroarea absolut a e!presiei
1 '
" , ,... #
n
( f x x x
poate fi evaluat conform e!presiei%
"7.1#
1
( x
i
n
a a
i i
f
x

(entru eroarea relativ rezult succesiv


1
x
( i
(
n
a
a
r
i i
f
( x f

, ceea ce se rescrie ca%


"7.'#
1
ln" #
( x
i
n
r a
i i
f
x

Exempl ul 1. ): < se evalueze e!presia


ln"sin",.*# 1,.9# ( +
, tiind c numerele
apro!imative ,.* i 1,.9 au prima zecimal corect.
<e calculeaz nti eroarea absolut a e!presiei n forma general
ln"sin" # # ( x & +
,
folosind formula "1.11#. -ezult%
( )
1
cos" #
sin" #
( x &
a a a
x
x &
+
+
=n e!presia de mai sus x),.*, &)1,.9,
,.,1
x &
a a

, sin"x#),.7>CI se poate lua ,.*,
iar cos"x#),.C'I se poate lua ,.C "deoarece erorile absolute la aplicarea funciilor sinus i
cosinus sunt mai mici dect cele ale argumentului lor, n virtutea relaiei "1.11# i a faptului c
iau valori de modul subunitar#. Deci%
F
1. ?ntroducere n calculul apro!imativ
( )
1 ,.,1C 1C
,.,1 ,.C ,.,1 ,.,,'
,.* 1,.9 1,.C 1,C,,
(
a
+
+
5a atare, n calculul lui ( se poate conta pe dou zecimale e!acte. 5alculul cu o zecimal
de rezerv conduce, deci, la%
ln",.* 1,.9# '.7>>... '.7C ( +
Ca cu u er!ri !r a)mi (i &i e a e numere !r apr!'i mat i #e c*n) (e
)!ret e ! anume er!are ma'i m% a unei e'pre(i i a !r
ormulele "1.11# i "1.1'# pot servi la demersul invers, i anume% dndu/se c eroarea
absolut sau cea relativ a unei e!presii de numere apro!imative trebuie s fie sub un anumit
nivel i considerndu/se cantitile
x
i
a
i
f
x

sau, respectiv,
x
i
a
i
f
x f

ca fiind egale
"principiul efectelor e*ale#, atunci se pot calcula erorile absolute admisibile,
x
i
a

, ale
numerelor apro!imative
i
x
, i)1,',...n. 6neori, aplicarea acestui principiu poate conduce la
cerine care nu pot fi practic ndeplinite; de aceea se recomand o redistribuire rezonabil a
erorilor "dac este posibil#, pstrnd eroarea total sub limita impus.
=n cele ce urmeaz, termenul de 0acuratee1 va fi utilizat pentru a desemna eroarea
absolut sau pe cea relativ, n funcie de conte!t "n alte conte!te se utilizeaz, oarecum
abuziv, i termenul de 0precizie1 cu acelai neles#.
Exempl ul 1. +: AD:$? >CD ie un cilindru circular drept de raz ,.
4olumul unui segment cilindric 2 obinut prin secionarea cilindrului cu un plan care
trece prin diametrul bazei i este nclinat la ung8iul fa de planul bazei 2 se calculeaz cu
formula
7
'
tg" #
7
- , . 5u ce acuratee trebuie msurat raza , F, cm i ung8iul
astfel nct volumul segmentului cilindric s rezulte cu o eroare relativ de ma!im 1JK
<e noteaz cu -, , i erorile absolute ale cantitilor -, , i . (entru eroarea
relativ de calcul al volumului - se folosete relaia "1.1'# care, dup calculul derivatelor
pariale
-
,

i
-

, conduce succesiv la%


' 7
'
' tg" # ' 7 '
sin"' #
7 cos " #
-
r
- , , , ,
- - ,
-

+ +

<e dorete ca
,.,1
-
r

. Aplicnd principiul efectelor egale, rezult c se dorete ca
7
,.,,9
,
,

i ca
'
,.,,9
sin"' #

. De unde rezult respectiv c


F, cm
1 mm
F,, F,,
,
,
i c
sin"' # 1
radiani CL
*,, *,,

.
Deci, pentru a obine o eroare relativ n calculul volumului segmentului cilindric de
ma!im 1J este suficient s se msoare raza acestuia cu o acuratee de 1 mm i ung8iul de
nclinare cu o acuratee de CM.
1.1.4 Exerciii propuse
+
$etode numerice utilizate n analiza sistemelor 2 aplicaii
1. < se calculeze erorile absolute i relative ale urmtoarelor numere apro!imative, ale
cror zecimale sunt e!acte n sens restrns% a# 7.*9; b# 1'.F; c# 7.1*.
'. < se determine numrul de zecimale corecte "n sens restrns# i s se scrie numerele
apro!imative% a# 19*.'7 pentru o acuratee de 1J; b# '.9F1> pentru o acuratee de 1J; c#
19.+ pentru o acuratee de 7J.
7. 5atetele unui triung8i dreptung8ic sunt 9.1, cm i 1F.'> cm "msurate cu o acuratee
de ,.1 mm#. < se calculeze tangenta ung8iului opus primei catete.
*. ?potenuza unui triung8i dreptung8ic este 1'.7 cm t 1 mm, iar una dintre catete este
9.+ cm t 1 mm. 5u ce acuratee se pot determina cea de a doua catet i ung8iul alturat eiK
< se calculeze aceste valori.
9. < se calculeze densitatea aluminiului dac un cilindru de aluminiu de diametru 7 cm
i nlime + cm cntrete 177.+ g. :roarea relativ de msurare a lungimilor este ,.,1, iar
cea de cntrire este ,.,,1.
F. (erioada de oscilaie a unui pendul de lungime l este '
l
.
*
, unde * este
acceleraia gravitaional. 5u ce acuratee trebuie msurat lungimea pendulului, a crui
perioad este apropiat de ' secunde, pentru a obine o eroare relativ de ,.9J n msurarea
perioadeiK 5t de e!act trebuie luate numerele i *K
1.+ C!n)i,i!nare i (ta&iitate numeric%
1.2.1 usti!icare
-spunsul la ntrebarea c%t #ncredere trebuie acordat rezultatului unei metode
numerice presupune definirea a dou noiuni fundamentale ale calculului apro!imativ, i
anume condiionarea 2 care se refer la problema de rezolvat 2 i stabilitatea numeric,
referitoare la al*oritmul elaborat s o rezolve. 6rmtorul e!emplu sugereaz necesitatea
introducerii acestor dou noiuni.
Exempl ul 1. 1: ie matricea
*C '*
F* 71
/
1

]
.
<e efectueaz calculul e!ponenialei matriciale,
/
e
, ntr/o aritmetic cu 19 zecimale
e!acte prin dou metode% una bazat pe apro!imarea e!ponenialei prin dezvoltare n serie
GaNlor cu 7, de termeni,
7,
,
O
$
/
$
/
e
$

, cealalt bazat pe un rezultat fundamental al


calculului matricial, i anume descompunerea n valori singulare "pentru o tratare pe larg a
acestei probleme se poate consulta AP@-A CFD#. 5ele dou rezultate difer catastrofal de mult;
ele sunt respectiv%
* *
* *
7.7,F191'9FC99+7 1, /1.F97,9+'7*9,9+C 1,
*.*,>19'F'97*>77 1, /'.',*,7C9'*+7,11 1,
/
e
1

1
1

]
>
1. ?ntroducere n calculul apro!imativ
/,.+79+9>+9>1**F+ ,.991>1C,CCF9>,7
/1.*+191+9CC,>>,C 1.1,7F7>'*,+19**
/
e
1

1
]
<e observ c termenii
$
/
devin foarte mari nainte ca factorialul s devin dominant,
iar acest fenomen nu poate fi corect tratat ntr/o aritmetic apro!imativ, deoarece se pot
depi limitele domeniului de reprezentare. -ezultatul corect este cel de/al doilea.
1.2.2 Condiionarea problemelor de calcul
Analiza condiionrii unei probleme este un proces matematic comple!, legat de teoria
perturbaiilor. =n mod informal, se spune c o problem este bine condiionat bine
formulat! dac, oricare ar fi datele problemei, mici variaii ale acestora induc doar mici
variaii n soluie. =n caz contrar, se spune c problema este ru prost! condiionat.
ie
n
0
i
m
1
dou spaii vectoriale,
% f 0 1
o problem, x 0 i
$
x 0
o apro!imaie a lui x. (roblema este bine condiionat n x dac
$
" # f x este 0aproape1 de
" # f x
; o reprezentare sugestiv este dat n figura 1.'.
@ e!primare mai formal a noiunii de 0aproape1 necesit folosirea notaiei
0

pentru
norma euclidian n spaiul vectorial 0. <e poate astfel introduce noiunea de 0numr de
condiionare1.
Fig. 1.1 ?maginea unui numr i a unei apro!imaii a lui prin problema f
Def i ni i a 1. 1: <e numete numr de condiionare al unei probleme f%
"1.1#
$
$
" # " #
cond" # sup
1
0
f x f x
f
x x
_




,
@
Def i ni i a 1. 2: <e spune c problema f este bine condiionat dac numrul ei de
condiionare este mic "comparabil cu cel mai mic numr reprezentabil pe t
cifre semnificative# i prost condiionat n caz contrar "mult mai mare
dect cel mai mic numr reprezentabil cu t cifre semnificative#.
5ondiionarea unei probleme caracterizeaz sensibilitatea soluiei n raport cu
perturbaiile datelor de intrare; definiia condiionrii se poate da i n raport cu noiunea de
0amplificare a erorii relative1, prin care se e!prim sensibilitatea local a problemei ntr/un
punct fi!at al domeniului de definiie.
Def i ni i a 1. 3: <e numete amplificare a erorii relative introduse de soluia unei probleme
f n punctul x%
C
x
$
x
" # f x
$
f"x#
0 1
f
f
$etode numerice utilizate n analiza sistemelor 2 aplicaii
"1.1#
$
$
" # " #
" #
" #
1 0
1
0
f x f x
x
2 x
f x
x x

@
Def i ni i a 1. 4: <e spune c problema f este bine condiionat dac, pentru orice x 0 ,
amplificarea erorii relative n punctul x, 2"x#, este un numr mic "de ordinul
unitii# i prost condiionat n caz contrar.
@ larg varietate de probleme numerice a fost studiat sub aspectul condiionrii,
obinndu/se numere de condiionare calculabile sau estimabile. 5a e!emple din algebra
liniar, problema determinrii rangului unei matrice este prost condiionat, n timp ce
problema rezolvrii unui sistem liniar este bine condiionat. Din pcate, nu este cazul i
pentru ma3oritatea problemelor de baz ale teoriei sistemelor, astfel nct, c8iar dac e!ist
algoritmi eficieni de rezolvare, acurateea soluiilor calculate nu se poate evalua.
Exempl ul ). 1: ie o matrice cu elemente reale,
m n
/

.
&umrul ei de condiionare se definete cu referire la descompunerea dup valorile
singulare, conform creia e!ist i sunt unice matricele ortogonale
m m
U

i
n n
-

astfel nct%
1
'
...
,
...
,
,
,
.
r
m n
/ U -

1
1

1
1
1

1
1
1
1
1
]

1 4 4 4 442 4 4 4 4 43

,
unde
,, 1, ',... rang" # min" , #
i
i r / m n >
se numesc valorile sin*ulare ale matricei /. <e
noteaz
min

i
max

cea mai mic, respectiv cea mai mare dintre acestea. -aportul%
"1.1#
cond" #
max
min
/

@
se numete numrul de condiionare al matricei / i reprezint un 0indicator de performan1
pentru operaiile cu matrice "de e!emplu, cu ct numerele de condiionare a dou matrice sunt
mai mari, cu att rezultatul nmulirii lor va fi mai afectat de erori#.
-evenind la matricea considerat n e!emplul 1.C, aceasta are setul de valori singulare
Q>C.F7'7>'FC9+F+,', ,.1>CFF79C9++9*9R, deci numrul ei de condiionare este
'
*.+'9>F11C'++FF>* 1,
, ceea ce arat c matricea este prost condiionat i e!plic
rezultatul obinut la calculul e!ponenialei ei.
1.2.3 "tabilitatea numeric a algoritmilor
=n mod informal se consider c un algoritm este numeric stabil dac el nu mrete
sensibilitatea inerent a problemei n raport cu datele, adic nu nrutete condiionarea
1,
1. ?ntroducere n calculul apro!imativ
problemei; n caz contrar, algoritmul este numeric instabil. Aceasta nseamn c un algoritm
numeric stabil ofer un rezultat care este "apropiat de# soluia e!act a unei mici perturbaii a
problemei iniiale. <oluia unei probleme bine condiionate printr/un algoritm numeric stabil
este apropiat de soluia e!act. (entru muli algoritmi de interes, stabilitatea numeric poate
fi demonstrat matematic, dar acest demers este, n general, destul de dificil.
ie
% f 0 1
o problem,

% f 0 1 un algoritm de rezolvare a ei ntr/o aritmetic


apro!imativ i x 0 . Algoritmul

f este numeric stabil dac e!ist o apro!imaie a lui x,


$
x 0
, aa nct

" # f x s fie 0aproape1 de


$
" # f x ; o reprezentare intutiv se afl n figura 1.7.
Fig. 1.1 ?maginea unui numr prin problema f i a unei apro!imaii a lui prin algoritmul de
rezolvare,

f
Def i ni i a 1. 1:

f este un algoritm numeric stabil de rezolvare a problemei f dac pentru
orice x 0 i orice , > "orict de mic#, cu
" # , x >
mic, e!ist
$
x 0
o apro!imaie a lui x, astfel nct dac
$
" #
0
x x x
s rezulte
$
" # " #
1
f x f x
.
De remarcat este deosebirea dintre noiunile de 0precizie1 2 proprietate intrinsec a 4$
utilizat 2 i de 0acuratee1, care msoar eroarea dintre rezultatul numeric i cel e!act.
<unt utile cteva observaii asupra diferitelor cupla3e dintre probleme bine;prost
condiionate i algoritmi numeric stabili;instabili. :vident, situaia de dorit este ca un
algoritm numeric stabil s rezolve o problem bine condiionat. :rorile de reprezentare pot
face ca un algoritm numeric instabil s furnizeze rezultate dezastruoase, c8iar pentru
probleme bine condiionate. De asemeni, dac problema este prost condiionat, c8iar cu un
algoritm numeric stabil rezultatele pot fi foarte diferite de cele e!acte.
(e lng stabilitatea numeric, alte criterii prin care se apreciaz calitatea algoritmilor
numerici sunt% numrul de operaii, memoria ocupat i si*urana #n funcionare.
<e numete flop "engl. floatin* point operation# o operaie aritmetic elementar
"adunare;scdere;nmulire;mprire#. :ste de dorit ca numrul de astfel de operaii cerut de
e!ecuia unui algoritm n cel mai nefavorabil caz s fie ct mai mic. Acest numr se poate de
regul ma3ora cu o funcie de dimensiunea problemei "a datelor de intrare#. 6n algoritm este
acceptabil numai dac se gsete o funcie polinomial n dimensiunea problemei drept
ma3orant al numrului de operaii, ceea ce se scrie " #
$
op
nr 3 n .
De asemeni, se dorete ca algoritmii s fie economici i din punctul de vedere al
memoriei ocupate. De aceea, o tendin este de a dezvolta algoritmi in situ "pe loc#, care s
furnizeze rezultatele pe ct posibil n aceleai locaii de memorie ca i datele de intrare.
5alculul matricial abund n e!emple n acest sens% triangularizri matriciale, calculul de
11
x
$
x
" # f x
$
" # f x
$
0 1
f
f
$
$etode numerice utilizate n analiza sistemelor 2 aplicaii
inverse matriciale, etc.
Sigurana n funcionare a unui algoritm este capacitatea acestuia de a semnala situaiile
n care rezultatul poate fi afectat de erori importante datorit relei condiionri a problemei.
1.- Me)iu inte$rat Mata& . /imuin0 ca in(trument )e pr!$ramare a
met!)e!r numerice
5a mediu de implementare a aplicaiilor prezentate n aceast. lucrare s/a ales mediul
integrat $atlab S <imulinT, care permite rularea de programe scrise de utilizator. Acesta
ofer. i posibilitatea compar.rii rezultatelor implement.rii de c.tre utilizator a diferitelor
metode numerice cu cele ale algoritmilor performani implementai n biblioteca mediului.
1.3.1 #escriere general
Diferitele versiuni de medii integrate de tip $atlab S <imulinT furnizeaz. facilit.i de
utilizare a unei biblioteci de programe (funcii) prin intermediul unui interpretor de
instruciuni comenzi!. Uiblioteca de programe este destinat. rezolv.rii problemelor din teoria
sistemelor cu aplicabilitate n tiinele inginereti, n special n cele din ingineria electric.
"automatic., electronic., electrote8nic., maini i acion.ri electrice, etc.# Aceast. bibliotec.
include i o parte destinat. aplicaiilor *rafice.
5odul surs. al programelor $atlab 2 secvene de instruciuni 2 este interpretat i
transformat n cod e!ecutabil. =n versiunile recente, mediul dispune de un editor care permite
modificarea programelor de3a e!istente i scrierea de programe noi. Acestea trebuie salvate
sub form. de fi4iere cu extensia *.m "Vm/file1#, putnd fi editate cu a3utorul oric.rui editor.
(rogramele $atlab sunt de dou. categorii% funcii 2 care primesc un set de 0argumente1 de
intrare i returneaz. un set de argumente de ieire 2 i aa numitele programe script.
Eansarea mediului integrat $atlab are ca efect intrarea n mod comand5 "desc8iderea
unei ferestre grafice de comand. la versiunile sub WindoXs#, semnalat. prin afiarea
prompterului 0>>1, care permite e!ecutarea unei comenzi $atlab sau a unui bloc de comenzi
"terminate cu 0:nter1#. 6n program $atlab 2 coninut ntr/un m/file 2 se pune n e!ecuie
prin tastarea numelui lui n fereastra de comand..
$ediul dispune de un limbaj de pro*ramare structurat5, foarte asem.n.tor cu limba3ele
larg utilizate de acest fel, ce implementeaz. structurile de comand. cunoscute "structura de
decizie, structurile de ciclare, etc.#. Acest limba3 este orientat cu predilecie spre manipularea
masivelor de date 2 vectori 4i matrice 2 fiind astfel foarte bine adaptat aplicaiilor de calcul
matricial.
1.3.2 "tructura bibliotecii de programe
?nstalarea versiunilor $AGEAU sub WindoXs are ca efect crearea structurii de directoare
din figura 1.*.
Dintre aceste directoare s/a detaliat structura celui numit 0matlab1, care conine funcii
cu destinaie general., i anume%
color 2 funcii de control al culorilor;
datafun 2 funcii de analiz. a datelor i de transformat. ourier;
1'
1. ?ntroducere n calculul apro!imativ
demos 2 programe demonstrative i e!emple;
elfun 2 funcii matematice elementare;
elmat 2 funcii de manipulare a matricilor i de generare a matricilor elementare;
funfun 2 funcii cu referire la programe $AGEAU de tip funcie ce
implementeaz. metode numerice neliniare;
general 2 comenzi de ordin general;
grap8ics 2 funcii grafice de ordin general;
iofun 2 funcii de accesare a fiierelor la nivelul de baz.;
lang 2 funcii de implementare i de depanare a structurilor de control ale
limba3ului $AGEAU;
matfun 2 funcii cu argument matrice din algebra liniar.;
ops 2 operatori i caractere speciale;
plot!N 2 funcii pentru trasarea de grafice bidimensionale;
plot!Nz 2 funcii pentru trasarea de grafice tridimensionale;
polNfun 2 funcii polinomiale i de interpolare;
sounds 2 funcii de procesare a sunetului;
sparfun 2 funcii dedicate matricilor rare;
specfun 2 funcii matematice specializate;
specmat 2 matrice specializate;
strfun 2 funcii de manipulare a irurilor de caractere.
c%Ymatlab
bin
e!tern
include
lib
src
g8ostscr
bin
fonts
psZfiles
toolbo!
control
fuzzN
ident
matlab
ncd
neural
robust
sefuzzN
signal
simulinT
blocTs
simdemos
simulinT
17
/ color
/ datafun
/ demos
/ elfun
/ elmat
/ funfun
/ general
/ grap8ics
/ iofun
/ lang
/ matfun
/ ops
/ plot!N
/ plot!Nz
/ polNfun
/ sounds
/ sparfun
/ specfun
/ specmat
/ strfun
$etode numerice utilizate n analiza sistemelor 2 aplicaii
Fig. 1.1 <tructura de directoare $atlab "n versiunile *.!#
iecare din subdirectoarele de sub directorul 0toolbo!1 grupeaz. funcii dedicate unui
anume tip de aplicaii "de e!emplu, 0control1 conine funcii uzuale n teoria controlului
automat, 0ident1 este compus din implement.ri ale celor mai uzuale metode folosite n
identificarea sistemelor dinamice, 0signal1 grupeaz. funcii folosite n analiza i prelucrarea
semnalelor etc.#.
@ atenie aparte o merit. directorul 0simulinT1. <imulinT este o parte a mediului $atlab,
ce ofer. posibilitatea construirii n mod vizual de dia*rame sc6eme bloc! funcionale, prin
interconectarea de blocuri funcionale coninute n biblioteca aferent.. Aceste blocuri
reprezint. modele de sisteme dinamice simple, iar sc8emele funcionale obinute prin
conectarea lor servesc la studii de simulare, efectiv realizate prin apeluri de funcii $atlab,
transparente pentru utilizator.
1.3.3 Operarea n mediul integrat $atlab. %imba&ul de programare $atlab
Acest paragraf este dedicat detalierii specificit.ii lucrului sub mediul $atlab S
<imulinT, n particular scrierii de programe i de funcii utilizator. @ observaie general. este
c. n $atlab identificatorii sunt sensibili la capitalizarea literelor "engl. case sensitive#.
1.3.3.1 Variabile Matlab. Spaiul de lucru (workspace. !i"iere de date Matlab
(#$at%files
=n $atlab nu este nevoie de seciuni declarative de variabile sau de tipuri; de aceea
pentru o variabil. spaiul necesar se aloc. n momentul iniializ.rii ei, iar aceasta se poate
face oriunde ntr/un program $atlab, nainte ca variabila s. fie folosit. pentru prima oar..
<unt suportate urm.toarele tipuri de date simple% #ntre*, real i caracter, iar dintre tipurile de
date structurate, cele indexate "masivele#% vectori "tablouri cu o singur. dimensiune#,
matrice "tablouri cu dou. dimensiuni#, tablouri multidimensionale "de la versiunile 9.!
inclusiv n sus# i 4iruri de caractere. De fapt, orice variabil. $atlab este tratat. ca fiind de
tip inde!at "scalarii sunt considerai ca fiind vectori de un element#.
6n tip aparte l constituie tipul complex, care e!ist. ca predefinit n $atlab, urmare a
predefinirii unit.ii imaginare i ca fiind radicalul lui /1. Acest tip poate fi considerat ca fiind
structurat "i anume avnd dou. cmpuri de tip real% partea real. i partea imaginar.#, n
acelai timp poate fi tip de baz. al unui tip inde!at.
$ai 3os sunt comentate cteva e!emple de comenzi de iniializare a variabilelor $atlab
"comentariile se anun. prin scrierea caracterului 0J1 la fiecare nceput de rnd#. @peraiile
aritmetice de baz. sunt simbolizate n modul cunoscut "H, /, [, ;#.
x=1;Jvariabilei x i este dat. valoarea ntreag. 1
y=2.34;Jvariabilei y i este dat. valoarea real. 2.34
z1=[-3.45 8 1.3892];Jvariabila z1 este un vector linie de 3 elemente reale
z2=[-45; 0.4; 1; -1];Jvariabila z2 este un vector coloan. de 4 elemente reale
t=o;Jvariabila t conine caracterul o
u=afj;Jvariabila u conine irul de caractere afj
c=2.5!3*i;Jvariabila c este num.rul comple! cu partea real. 2.5 i partea imaginar. 3
matc=[c 2-9.23"#8*i; 13 9*i];Jmatc este o matrice cu ' linii i ' coloane
Jcu elemente comple!e
1*
1. ?ntroducere n calculul apro!imativ
<e observ. uurina cu care se iniializeaz. variabilele de tip vector i matrice% irul de
valori se scrie ntre paranteze p.trate, folosind spaiul "sau virgula# ca separatori n interiorul
unei linii i 0;1 ntre linii. ?nterpretarea unei comenzi de iniializare a unei matrice implic. i
deducerea dimensiunii matricei.
6n scurt comentariu privete utilizarea opional. a caracterului 0;1 dup. o comand..
@miterea lui are un efect vizibil doar n cazul aa/ziselor comenzi 0cu ecou la ecran1, cnd n
acest fel se autorizeaz. apariia acestuia. =n cazul comenzilor de atribuire de valori
variabilelor, ecoul l constituie afiarea identificatorului "numelui# variabilei i a valorii ei, ca
n e!emplul de mai 3os. 5omanda%
$=10."#
are drept ecou la ecran "forma acestuia depinde de formatul de afi4are, detaliat mai trziu#%
$ =
10."#00
n timp ce aceleiai comenzi, urmate de 0;1, i se suprim. ecoul. Acest mecanism era util n
versiunile mai vec8i, care nu dispuneau de debugger, pentru depanarea programelor% urmat de
comanda au%& "de suspendare a e!ecuiei unui program pn. la ap.sarea unei taste#,
permitea vizualizarea coninutului variabilelor de interes n fereastra de comand. n timpul
rul.rii programului.
=n $atlab e!ist. posibilitatea de a e!ecuta comenzi de evaluare a unor e!presii
aritmetico/logice f5r5 a atribui n mod e!plicit rezultatul unei variabile. Aceste comenzi sunt
interpretate, totui, drept comenzi de atribuire, iar rezultatul evalu.rii se stoc8eaz. ntr/o
variabil. predefinit. "permanent.#, numit. a'% "de la engl. ans7er, r.spuns#, care se
suprascrie ori de cte ori se e!ecut. comenzi de genul de mai sus. De e!emplu, comanda%
"*(-5.89!2*45.15"3-#*i)*(5*i-3.8)
"de observat c. are ecou la ecran# va produce r5spunsul%
a'% =
-54.128#-"0.1"93i
4ariabilele iniializate n mod comand. sau ntr/un program de tip script se stoc8eaz. n
spaiul de lucru "engl. 7or$space#, de unde pot fi accesate ulterior att de sub fereastra de
comand., ct i de orice alt program script pus n e!ecuie. 4ariabilele de acest fel au, deci, n
mod implicit, statutul de variabile globale. Acest lucru nu este, ns., valabil pentru variabilele
iniializate n interiorul unei funcii; acestea sunt variabile locale ale funciei i nu pot fi
accesate din e!teriorul ei. =n mod simetric, variabilele din spaiul de lucru sau din orice script
sunt n mod implicit inaccesibile n interiorul funciei. @ modalitate de a face ca un script
"sau spaiul de lucru# i o funcie s. aib. acces la o aceeai variabil. este folosirea comenzii
+,o-a,, n ambele locuri. De e!emplu, comanda%
+,o-a, .a/1 .a/2 .a/3;
dat. n mod comand. "sau scris. ntr/un script# i scris. i ntr/o funcie anun. c. variabilele
.a/1, .a/2 i .a/3 se 0v.d1 din ambele locuri. <e observ. c. variabilele din list. trebuie
separate prin spaiu "i nu prin virgul., care este separatorul uzual la enumer.ri n $atlab#.
5omanda +,o-a, asupra unei variabile nc. neiniializate are ca efect secundar iniializarea
variabilei la matricea vid. "engl. empt& matrix#, simbolizat. prin [].
Goate calculele n $atlab se fac n dubl. precizie, inclusiv cele privind numerele ntregi
"standardul folosit este cel ?:::, cu mantisa reprezentat. pe 97 de bii, descris n \1.1.1#. Dar
afiarea rezultatelor sau, n general, vizualizarea coninutului unei variabile numerice, se
19
$etode numerice utilizate n analiza sistemelor 2 aplicaii
poate face sub mai multe formate. 5el mai simplu mod de a vizualiza valoarea unei variabile
este tastarea numelui ei n fereastra de comand., urmat. de 0:nter1. uncia fo/mat permite
setarea formatului de afiare; forma ei de apel este%
fo/mat fff
unde fff este un ir de caractere "dat f.r. apostrofuri# prin care se descrie formatul dorit%
%0o/t "formatul implicit#, ,o'+, %0o/t &, ,o'+ &, 0&x, !, -a'1, comact, ,oo%&, /at.
6rm.toarele e!emple a3ut. la detalierea primelor patru astfel de formate.
<ecvena de comenzi%
f=35"825.3##88;
fo/mat %0o/t;
f
are drept rezultat%
f =
3.5"83&!005
iar secvena%
fo/mat ,o'+;
f
produce%
f =
3.5"8253##8800000&!005
ormatul %0o/t afieaz. numerele n formatul normalizat n virgul. fi!. cu mantisa cu *
zecimale, dup. cum se observ., iar cel ,o'+ n acelai tip de format, dar cu 19 zecimale.
&um.rul afiat nainte de caracterul 0e1 reprezint. mantisa, cel de dup. 0e1 este e!ponentul.
<e observ. c. afiarea cu mai puine zecimale dect are num.rul implic. o rotun3ire la afiare
"dar care nu e!ist., de fapt, n memorie, dac. reprezentarea tuturor zecimalelor nu implic.
dep.irea domeniului de reprezentare#.
<ecvena de comenzi%
+=8#324434"#8#3"8#"38#"8#3"83#"#23"8.#"48#"438#"384#"842#843"#;
fo/mat %0o/t &
+
produce%
+ =
8.#324&!042
iar comenzile%
fo/mat ,o'+ &
+
au ca rezultat%
+ =
8.#324434"#8#3"82&!042
ormatul %0o/t & afieaz. numerele n 4$ cu * zecimale, iar cel ,o'+ & n acelai
tip de format, dar cu 19 zecimale. -otun3irea la afiare are loc i n acest caz, pentru ambele
formate, dar de data aceasta rotun3irea are loc i n memorie, pentru c. num.rul de zecimale
ale num.rului este mai mare dect 19, cel al 4$ n dubl. precizie.
=n $atlab, valoarea lui epsilon main "eroarea relativ. la calculele n virgul. mobil.#
este stocat. n variabila predefinit. "permanent.# &%%
/1F
'.'',**F,*C'9,717 1,
. @ alt.
1F
1. ?ntroducere n calculul apro!imativ
variabil. permanent., i'f, desemneaz. noiunea de 0plus infinit1 n standardul ?::: folosit
n $atlab; i'f poate fi rezultatul unei mp.riri la , sau al unei dep.iri de capacitate de
reprezentare "engl. overflo7#.
$ediul integrat $atlab ofer. posibilitatea salv.rii variabilelor e!istente n spaiul de
lucru pe suport e!tern, sub form. de fiiere de date $atlab, care au e!tensia .mat. (entru
aceasta se folosete comanda %a.&, cu mai multe forme de apel. (rin comanda simetric.,
,oa2, avnd, de asemeni, mai multe forme de apel, datele pot fi renc.rcate n spaiul de
lucru ntr/o sesiune de lucru ulterioar.. 5ele dou. comenzi sunt detaliate n paragraful
urm.tor. ormatul fiierelor .mat este disponibil, astfel nct variabilele iniializate sub
$atlab pot fi e!portate c.tre alte aplicaii.
1.3.3.2 &'te(a co$en)i u)uale
Eansarea mediului $atlab seteaz. directorul curent la 0cYmatlabYbin1. 5omenzile de
listare a coninutului directorului curent, 2i/, i de sc8imbare a directorului curent, c2, au
semntici identice acelora din $</D@<. Ea fel pentru comanda ty& fi%, de listare a
coninutului fiierului cu numele fi%.
(rin comanda 0&, se obin informaii a3ut.toare asupra organiz.rii i destinaiei
generale a directoarelor, asupra comenzilor $atlab i asupra programelor i funciilor din
bibliotec.. Aceast. comand. are forma general. 0&, cu.3/&z, unde cu.3/&z este un
cuvnt rezervat n $atlab "numele unei comenzi, a unei funcii, a unei structuri de control
etc.# 5omanda se utilizeaz., deci, sub formele%
0&, 2 afieaz. informaii despre fiecare subdirector din structura listat. n \1.7.';
0&, cm2 2 descrie formele i efectul e!ecuiei comenzii $atlab cm2;
0&, fct 2 descrie formele de apel ale funciei $atlab fct, semnificaia
argumentelor de intrare i de ieire.
ormele principale de utilizare a comenzilor %a.& i ,oa2 sunt "a se vedea te!tul afiat
de comenzile 0&, %a.& i 0&, ,oa2#%
%a.& 2 are ca efect salvarea tuturor variabilelor din spaiul de lucru n fiierul
denumit implicit mat,a-.mat, creat sub directorul curent;
,oa2 2 e!ecut. nc.rcarea datelor din fiierul mat,a-.mat "presupunnd c. acesta se
afl. n directorul curent# n spaiul de lucru;
%a.& fi% 2 produce salvarea #ntre*ului spaiu de lucru n fiierul fi%.mat, creat
sub directorul curent "dac. acesta e!ista de3a, atunci coninutul lui se suprascrie#;
,oa2 fi% 2 are ca efect nc.rcarea fiierului fi%.mat "presupunnd c. acesta se
afl. n directorul curent# n spaiul de lucru;
%a.& fi% .a/1 .a/2 2 genereaz. o salvare selectiv., anume salvarea numai a
variabilelor .a/1 i .a/2 "presupunnd c. acestea e!istau anterior n spaiul de lucru# n
fiierul cu numele fi%.mat, creat sub directorul curent "dac. acesta e!ista de3a, atunci
coninutul lui se suprascrie#.
Alte comenzi care privesc variabilele din spaiul de lucru sunt $0o i c,&a/. 5omanda
$0o 0interog8eaz.1 spaiul de lucru, furniznd drept 0r.spuns1 lista variabilelor e!istente n
acesta "f.r. valorile aferente#. 5omanda c,&a/ are dou. forme%
c,&a/ "sau c,&a/ a,,# 2 terge toate variabilele din spaiul de lucru "lista generat.
ulterior de comanda $0o va fi vid.#;
1+
$etode numerice utilizate n analiza sistemelor 2 aplicaii
c,&a/ a - c 2 produce o tergere selectiv., anume tegerea numai a variabilelor a,
- i c din spaiul de lucru "presupunnd c. acestea e!istau anterior n spaiul de lucru#.
5omanda c,c are ca efect 0cur.area1 ferestrei de comand. "avansarea prompterului
0>>1 n capul paginii#. (.r.sirea mediului $atlab se poate face cu comenzile 4uit sau &xit.
1.3.3.3 *peratori lo+ici "i relaionali
=n $atlab, valorile de 1 i , pot fi interpretate diferit n funcie de conte!t. Astfel, ele
sunt v.zute ca variabile binare "cu valorile adev5rat, respectiv fals# n e!presiile logice "care
conin operatori sau;i funcii logice# i ca numere reale n e!presiile aritmetice. :!ist. trei
operatori logici, respectnd regulile de prioritate cunoscute%
operatorul unar de ne*are "&@G#% ];
operatorul binar de conjuncie lo*ic5 "A&D#% S;
operatorul binar de disjuncie lo*ic5 "@-#% ^.
De e!emplu, cu iniializ.rile%
=0;4=1;/=0;
comanda%
5 6 (4 7 /)
va avea urm.torul ecou la ecran%
a'% =
1
@ observaie foarte important. este c. valoarea , a unui operand este interpretat. ca ,
lo*ic, de unde rezult. prin negare c. valoarea de 1 lo*ic este atribuit. oric5rei valori "reale
sau comple!e# al c.rei modul este diferit de ,.
Dac. operanzii sunt masive "vectori sau matrici#, atunci trebuie s. aib. aceleai
dimensiuni pentru a putea fi legai prin operatori logici. =n cazul acesta, operatorii se aplic.
ntre elementele de pe aceeai poziie, rezultnd un masiv cu aceleai dimensiuni. De
e!emplu, pentru%
.&ct1=[1 0 0.#];
.&ct2=[0 1.4 0.4];
.&ct1 6 .&ct2
rezult.%
a'% =
0 0 1
@peraia logic. de disjuncie exclusiv5 "diferen. simetric.# "_@-# se poate realiza cu
funcia $atlab xo/ de dou. argumente.
5t privete operatorii relaionali, ma3oritatea acestora sunt aceiai ca n limba3ele de
programare structurat. "mai precis, ca n limba3ul 5, e!cepie f.cnd operatorul de
necoinciden., care este n $atlab 0])1#. @peratorii relaionali se comport. la fel ca i cei
logici dac. sunt aplicai variabilelor inde!ate. $ai 3os se e!emplific. folosirea acestor
operatori.
ca/1=a;ca/2=+;%i/=123;
1=( ( (ca/1==c) 6 (ca/28=z) ) 7 (%t/2'um(%i/)5=100) );
=n secvena de mai sus variabilei 1 i se atribuie rezultatul evalu.rii unei e!presii logice
coninnd operatori relaionali "funcia $atlab %t/2'um realizeaz. conversia unui ir de
1>
1. ?ntroducere n calculul apro!imativ
caractere ntr/un num.r, genernd eroare dac. aceasta nu este posibil.#. :!presia respectiv.
semnific. testarea unei condiii; rezultatul, 1 sau ,, e!prim. ndeplinirea sau nendeplinirea
respectivei condiii. =n cazul nostru, 1 este 1.
@peratorii relaionali suport. i operanzi de tip comple!, caz n care se pun n relaie
p.rile lor reale.
1.3.3.4 !uncii $ate$atice ele$entare
Aproape toate funciile matematice elementare implementate n $atlab suport. ca
argumente variabile de tip complex "e!cepie fac funciile de tip 0parte ntreag.1, de
conversie a numerelor reale n numere ntregi#. $ai 3os sunt listate aceste funcii i cteva
e!emple%
valoarea absolut. "modulul#% a-% "cu semnificaia cunoscut. pentru numere
comple!e#;
radicalul% %4/t;
funciile exponenial5 i lo*aritmice% &x, ,o+ "logaritmul natural#, ,o+10
"logaritmul zecimal#;
funciile tri*onometrice directe "argumentul se evalueaz. n radiani#% %i', co%, ta';
funciile tri*onometrice inverse% a%i', aco%, ata';
funcia semn% %i+'; pentru numere comple!e, aceast. funcie returneaz. rezultatul
mp.ririi num.rului comple! la modulul lui;
funciile 6iperbolice% %i'0, co%0, ta'0;
funciile de conversie a numerelor reale n numere ntregi; pentru e!emplificarea
comparativ. a acestor funcii se consider. o secven. de iniializ.ri%
a=2.45;-=-3.8;c=1.5;2=-5.5;
iar rezultatele aplic.rii celor patru funcii de conversie asupra fiec.reia dintre cele patru
variabile de mai sus sunt date n tabelul 1.'.
funcii dedicate numerelor comple!e "cu rezultate de tip real#% /&a,, ima+, co'j.
-idicarea la putere este implementat. n $atlab prin operatorul binar 0`1; de e!emplu,
prin comanda%
%=2.49i
se atribuie variabilei % valoarea
'.*

, unde num.rul

este predefinit n $atlab ca i.


uncia Descriere a=2.45 -=-3.8 c=1.5 2=-5.5
fix rotun3irea c5tre , 2 -3 1 -5
/ou'2 rotun3irea la cel mai apropiat #ntre* 2 -4 2 -"
c&i, rotun3irea c.tre + 3 -3 2 -5
f,oo/ rotun3irea c.tre
2 -4 1 -"
Tabel 1.1 :!emplificarea comparativ. a funciilor $atlab de tip 0parte ntreag.1
Goate funciile elementare pot primi argument de intrare de tip vector sau matrice, iar
rezultatul returnat este o matrice de aceeai dimensiune, coninnd rezultatele aplic.rii
respectivei funcii elementelor matricei iniiale. De e!emplu, comanda%
mat/=%i'([i i*"; 0 3*i*4])
are drept rezultat%
1C
$etode numerice utilizate n analiza sistemelor 2 aplicaii
mat/ =
0.0000 0.5000
0 0.#0#1
1.3.3., *peraii cu $asi(e de date
Germenul de 0masive1 "sinonim n acest conte!t cu acela de 0tablouri1# denot.
variabilele de tip vector "cu o singur. dimensiune# i pe cele de tip matrice "cu dou.
dimensiuni#. =n continuare, masivele vor fi referite ca matrice, ntruct vectorii sunt matrice
particulare, avnd fie num.rul de linii, fie num.rul de coloane egal cu 1.
$ediul integrat $atlab ofer. mult mai mult. fle!ibilitate n calculul matricial dect
ma3oritatea mediilor de programare bazate pe limba3e de nivel nalt. Astfel, sinta!a
operatorilor aritmetici H, / i [ a fost e!tins. pentru a suporta operanzi de tip masiv
"efectuarea operaiei de nmulire furnizeaz. un mesa3 de eroare dac. dimensiunile nu se
potrivesc#; pe lng. operaiile definite n matematic., au fost introdui operatori pentru
#nmulirea, #mp5rirea i ridicarea la putere element cu element "engl. element87ise#. De
asemeni, au fost concepute funcii de *enerare a matricilor particulare "de e!emplu, matricea
unitate de o anume dimensiune# i au fost definite mecanisme de lucru cu blocuri matriciale
"e!trageri, aglutin.ri etc.# care sunt utile n aplicaii din teoria sistemelor.
=n continuare se e!emplific. cteva din operaiile cu matrice. ie iniializ.rile%
m1=[2 4 5; -1 -0.5" 0.#];m2=[" #.8; 0.4 -2.4; 1.# 10];
prin care se dispune n spaiul de lucru de dou. matrice% m1 avnd ' linii i 7 coloane i m2
avnd 7 linii i ' coloane. .ranspunerea unei matrice se realizeaz. cu operatorul unar
apostrof, 0M1, prioritar n faa oric.rui alt operator matricial; pentru matrice cu elemente
comple!e, acest operator semnific. transpunere i conju*are. 5omenzile%
m3=2*m1!m2;Jm1 are 2 linii i 3 coloane
m4=(m1*m2)94;Jm4 are 2 linii i 2 coloane
ilustreaz. nmulirea unei matrice cu un scalar i adunarea rezultatului cu transpusa unei alte
matrice, respectiv nmulirea a dou. matrice i ridicarea rezultatului la puterea a patra
"operaia de ridicare la putere matricial. furnizeaz. eroare dac. matricea nu este p.tratic.#.
6rm.toarele comenzi introduc%
nmulirea element cu element%
m5=m1.*m2;Jm5 are 2 linii i 3 coloane
mp.rirea element cu element%
m"=m2.*m1;Jm" are 3 linii i 2 coloane
ridicarea la putere element cu element%
m#=(m1-m2).93;Jm# are 2 linii i 3 coloane
6neori, este util s. se adreseze o anumit. zon. contigu. a unei matrice "n particular, un
element, o linie, o coloan. sau un bloc matricial#. (resupunnd e!istena n spaiul de lucru a
variabilelor anterior introduse i calculate, atunci e!ecuia comenzilor%
a=m5(1:3);-=m"(;:2);c=m"(1:;);2=m#(1;2:2;3);
are respectiv urm.toarele efecte "reprezentate n figura 1.9#%
',
1. ?ntroducere n calculul apro!imativ
Fig. 5.1 :!emplu de e!tragere de blocuri matriciale
iniializarea variabilei a cu elementul de pe linia 1 i coloana 7 al matricei m5;
variabila - este iniializat. cu coloana ' a matricei m" "deci - este un vector coloan.#;
variabilei c i se atribuie prima linie a matricei m" "deci c este un vector linie#;
iniializarea variabilei 2 cu blocul matricial cuprinznd elementele din liniile 1
i ' i coloanele ' i 7 ale matricei m# "deci 2 este o matrice cu ' linii i ' coloane#.
@ adresare de forma%
&=m#(;:;);
este ec8ivalent. cu adresarea ntregii matrice "adic. variabilele & i m# au aceleai valori#.
ie acum iniializ.rile a dou. matrice%
<1=[3 8 0 0."#; -2 -# 1 0; 1.23 4 " 11; -9 -2 -0.#8 3];
<2=[-1 5.5 " 8; 0.23 -5 -1 0];
(resupunnd c. se dorete realizarea construciei matriciale reprezentate n figura 1.F,
aceasta se face n $atlab prin%
<3=[<1(2;3:2;3) <2(;:4);<1(4:2;4);<2(1:1;3)];
=n cazul n care construcia matricial. dorit. este nefezabil. din cauza nepotrivirii
dimensiunilor matriciale, atunci se genereaz. un mesa3 de eroare "de e!emplu, dac. ultima
linie ad.ugat. ar fi avut * elemente#. <e observ. c. operaiile de aglutinare a blocurilor
matriciale respect. aceeai semnificaie a separatorilor% spaiul se folosete pentru aglutinarea
0n linie1 "unele lng. altele#, iar 0;1 pentru aglutinarea 0n coloan.1 "unele sub altele#.
1'.,,,, 1.F,,, >.9,,,
/+.>,,, 1.7**, +.,,,,
1

1
]
m5
a
7.,,,, /+.>,,,
,.1,,, *.'>9+
,.7*,, 1*.'>9+
1
1

1
1
]
m"
-
/F*.,,, *F.F9F, 79.C7+,
/F>1.*+', F.''C9 />,*.79+,
1

1
]
m#
2
7.,,,, /+.>,,,
,.1,,, *.'>9+
,.7*,, 1*.'>9+
1
1

1
1
]
m"
c
'1
$etode numerice utilizate n analiza sistemelor 2 aplicaii
Fig. 5.2 :!emplu de construire a unei noi matrice, folosind blocuri matriciale ale unor
matrice date
(entru tergerea unui bloc matricial dintr/o matrice, se selecteaz. acesta i i se atribuie
matricea vid.. aona tears. nu trebuie s. fie neap.rat contigu., dar operaia are succes numai
dac. dimensiunile concord. pentru obinerea unei noi matrice. De e!emplu%
<1(;:[2 4])=[];
conduce la dispariia coloanelor ' i * din matricea <1 "zona astfel definit. nu este contigu.#,
dar comanda%
<1(1:[2 4])=[];
nu se poate e!ecuta, deoarece ar nsemna tergerea a dou. elemente din prima linie a
matricei, iar rezultatul nu ar avea structura unei matrice.
=n continuare sunt prezentate cteva dintre funciile $atlab de argument vector sau
matrice sau care genereaz. masive cu forme particulare.
/flarea dimensiunii unui masiv se poate face n $atlab cu a3utorul a dou. funcii% %iz&
i ,&'+t0. uncia %iz& poate primi ca argument fie marice, fie vector, n timp ce funcia
,&'+t0 este dedicat. vectorilor; ele sunt ilustrate n e!emplele de mai 3os.
mat1=[2.3 1 8; -9 1.5 2];
[m ']=%iz&(a);
[ 4]=%iz&(a(1:;));
/=,&'+t0(a(1:;));
?ndiferent dac. este aplicat. unei matrice sau unui vector, funcia %iz& returneaz. un
vector linie de dou. elemente, i anume num.rul de linii, respectiv num.rul de coloane al
tabloului dat ca argument de intrare. -ezult. c. variabila m din e!emplul de mai sus are
valoarea ', ' are valoarea 7, este 1, iar 4 este 7. uncia ,&'+t0 returneaz. num.rul de
elemente al vectorului dat ca argument. =n e!emplul de mai sus, argumentul funciei este
prima linie a matricei a, deci variabila / conine valoarea 7.
=n $atlab sunt implementate funcii de e!tragere a elementului minim "mi'# i ma!im
"max# dintr/un ir, precum i de ordonare "%o/t#. De e!emplu, n urma e!ecut.rii
comenzilor%
m=mi'([2;3;-1."]);<=max([1 8 2 19]);
+.,,,, 1.,,,, ^ >.,,,,
*.,,,, F.,,,, ^ ,
b b b
/'.,,,, /,.+>,, 7.,,,,
b b b
/1.,,,, 9.9,,, F.,,,,

1
1
1
1

1
1
1
1
1
]
<3
7.,,,, >.,,,, , ,.F+,,
/'.,,,, /+.,,,, 1.,,,, ,
1.'7,, *.,,,, F.,,,, 11.,,,,
/C.,,,, /'.,,,, /,.+>,, 7.,,,,
1
1
1

1
1
]
<1
/1.,,,, 9.9,,, F.,,,, >.,,,,
,.'7,, 9.,,,, 1.,,,, ,
1

1

]
<2
''
1. ?ntroducere n calculul apro!imativ
variabila m va fi /1.F i < va fi 1C. Dac. intereseaz. i valoarea indicelui elementului e!trem
dintr/un ir, atunci se poate folosi urm.toarea form. de apel%
[m:i'2]=mi'([1 0 -8]);
n urma c.reia m va conine />, iar i'2 va fi 7. =n mod asem.n.tor, comanda%
[y:.i]=%o/t([2 -1 " 0.# 9])
va genera n variabila y vectorul ordonat cresc.tor, iar n .i indecii elementelor din vectorul
iniial%
y =
-1.0000 0.#000 2.0000 ".0000 9.0000
.i =
2 4 1 3 5
uncia %o/t acioneaz. i pe iruri de caractere, ordonarea avnd loc dup. codurile
A<5?? ale acestora. De e!emplu%
=%o/t(=$&/ty-+0j=)
va produce rezultatul%
=
-&+0j/t$y
unciile mi' i max acioneaz. i pe matrice, caz n care returneaz. cte un vector
coninnd elementele minime, respectiv ma!ime de pe coloanele matricei. Deci printr/o
comand. de forma%
<=max(max(a));
se poate afla elementul ma!im al matricei. Alte funcii din aceeai categorie sunt %um i
m&a', de calcul al sumei elementelor unui masiv, respectiv al valorii medii.
Benerarea unui ir de numere reale ec8idistanate cu un anume pas ntr/un interval dat,
fie acesta Aa; bD, se poate face astfel%
a=1;-=3;a%=0.5;
%i/=a;a%;-
ceea ce genereaz.%
%i/ =
1.0000 1.5000 2.0000 2.5000 3.0000
(asul poate fi i negativ, caz n care capetele intervalului trebuie inversate. Dac. pasul
este unitar, atunci prezena lui poate fi omis.. Astfel, comanda%
a,t3%i/=0;5
va avea ecoul%
a,t3%i/ =
0 1 2 3 4 5
Matricea unitate de o anumit. dimensiune se poate genera prin funcia &y&; comanda%
mat2=&y&(3)
produce urm.torul ecou la ecran%
mat2 =
1 0 0
0 1 0
0 0 1
unciile z&/o% i o'&% servesc la generarea masivelor de dimensiuni dorite, avnd
'7
$etode numerice utilizate n analiza sistemelor 2 aplicaii
toate elementele nule, respectiv egale cu 1. De e!emplu%
mat2=z&/o%(2:4)
produce r.spunsul%
mat2 =
0 0 0 0
0 0 0 0
iar comanda%
mat3=o'&%(3:2)
are ca rezultat%
mat3 =
1 1
1 1
1 1
uncia 2ia+ furnizeaz. ca rezultat un vector dac. are ca argument de intrare o matrice,
i invers. =n primul caz, rezultatul este un vector coloan. care conine elementele de pe
diagonala principal. a matricei "care nu trebuie s. fie neap.rat p.tratic.#. =n cel de/al doilea
caz, funcia genereaz. o matrice p.tratic. avnd pe diagonala principal. elementele
vectorului de intrare. Drept e!emplificare pentru primul caz, comenzile%
mat4=[3 2; -4.5 ".#; 0.11 -1];2ia+(mat4)
furnizeaz. rezultatul%
a'% =
3.0000
".#000
(entru cel de/al doilea caz, fie, de e!emplu%
.=[2 -".# 12 14.8];2ia+(.)
care produce r.spunsul%
a'% =
2.0000 0 0 0
0 -".#000 0 0
0 0 12.0000 0
0 0 0 14.8000
Benerarea unei matrice cu elemente aleatoare este posibil. cu a3utorul a dou. funcii ce
utilizeaz. generatoare de numere aleatoare% /a'2 i /a'2'. Dac. se dorete obinerea unei
matrice cu ' linii i 7 coloane, avnd elementele alese dintr/o distribuie uniform5 n
intervalul A,; 1D, se va e!ecuta comanda%
mat5=/a'2(2:3)
cu rezultatul%
mat5 =
0.2190 0."#89 0.934#
0.04#0 0."#93 0.3835
uncia /a'2' se folosete pentru generarea de numere normal distribuite cu media nul.
i abaterea medie standard egal. cu unitatea. ?at. ce se obine prin comanda%
mat"=/a'2'(4:3)
mat" =
1.1"50 -0."9"5 0.2"41
'*
1. ?ntroducere n calculul apro!imativ
0."2"8 1."9"1 0.8#1#
0.0#51 0.0591 -1.44"2
0.351" 1.#9#1 -0.#012
(entru generarea matricelor p.tratice, funciilor care returneaz. la cazul general matrice
dreptung8iulare 2 dintre care am listat mai sus z&/o%, o'&%, /a'2 i /a'2' 2 le este
suficient un singur argument, i anume dimensiunea matricei.
:!poneniala matricial. se poate calcula n $atlab cu funcia &xm "trebuie f.cut.
distincia ntre rezultatul acestei funcii i cel al funciei &x, care, n cazul unui argument de
tip matrice sau vector, semnific. aplicarea e!ponenialei element cu element#. 5u a3utorul
funciei 2&t se efectueaz. calculul determinantului unei matrice p.tratice. uncia t/ac&
returneaz. urma unei matrice "suma elementelor de pe diagonala principal.#. unciile i'. i
/a'1, de calcul al inversei matriciale i de calcul al rangului, implementeaz. metode
numerice mai complicate, care fac obiectul unei trat.ri am.nunite mai trziu n aceast.
lucrare.
1.3.3.- Structuri de control .n Matlab. !uncii utili)ator
=n $atlab se dispune de un limba3 de programare foarte asem.n.tor cu limba3ul 5.
<tructurile de control sunt%
structura de decizie "if#;
structurile de ciclare% cu contor "fo/# i cu test iniial "$0i,&#.
Ulocul de comenzi aferent unei structuri de control n $atlab se nc8eie cu &'2. Ea nivel
de sinta!. e!ist. mici deosebiri fa. de limba3ul 5 "a se vedea rezultatul comenzii 0&,#, care
se pot observa pe e!emplele de mai 3os.
(entru e!emplificarea utiliz.rii structurii de decizie, fie urm.toarea secven. n
metalimba3%
dac5 a c b atunci d b/a
altfel dac5 a ) b atunci d a
altfel d a/b
sf%r4it dac5
sf%r4it dac5
Aceast. secven. se poate implementa n $atlab n dou. moduri% fie folosind dou5
structuri de decizie "adic. traducnd e!act metalimba3ul#, fie folosind o sin*ur5 structur. de
decizie. (rima variant. este%
if a8- 2=--a;
&,%& if a==- 2=a;
&,%& 2=a--;
&'2;
&'2;
=n blocul de mai sus, pe ramura &,%& a primei structuri de decizie urmeaz. o a doua
structur. de decizie. =n a doua variant. implementarea este mai compact.%
if a8- 2=--a;
&,%&if a==- 2=a;
&,%& 2=a--;
&'2;
=n interiorul unei structuri precum cea de mai sus pot ap.rea orict de multe ramuri de tip
'9
$etode numerice utilizate n analiza sistemelor 2 aplicaii
&,%&if, semnificnd testarea de condiii suplimentare, dar ultima dintre ele trebuie s. fie de
tip &,%&.
(entru e!emplificarea utiliz.rii structurilor de ciclare, fie problema calculului valorilor
unei funcii scalare, f, ntr/un num.r dat de puncte ec8idistante ale unui interval Ax; &D. ie n
num.rul de puncte de calcul, inclusiv capetele intervalului. (resupunnd c. e!presia funciei
f este de3a implementat. n $atlab, o rezolvare posibil. face uz n mod e!plicit de structura
de ciclare cu contor%
0=(y-x)*('-1);Jpasul de calcul
xc=x;
fo/ i=1;':
/&z(i)=f(xc);
xc=xc!0;
&'2;
5alculul punctului de calcul i al valorii funciei n acest punct se efectueaz. n acelai
timp. 4alorile funciei sunt depuse n vectorul /&z, care are n elemente. acilit.ile oferite de
$atlab permit i o alt. rezolvare, mai elegant.. Aceasta const. n a genera mai nti variabila
inde!at. coninnd vectorul de puncte ec8idistante i n a calcula apoi valorile lui f n
elementele acestei variabile%
=x;(y-x)*('-1);y;Jvectorul de puncte ec8idistante
fo/ i=1;,&'+t0():
/&z(i)=f((i));
&'2;
(entru aceeai problem. se poate folosi ciclarea cu test iniial%
=x;(y-x)*('-1);y;
i)1;
$0i,& i8=,&'+t0():
/&z(i)=f((i));
&'2;
Deoarece structura de ciclare cu test final este reductibil. la cea cu test iniial, s/a
renunat la implementarea ei n $atlab.
=n continuare se prezint. aspectele de baz. ale scrierii de funcii utilizator n $atlab.
Dup. cum se preciza i mai devreme, funciile reprezint. subprograme $atlab; ele se pot
edita cu orice editor "de la versiunile 9.! inclusiv n sus mediul dispune de editor propriu,
precum i de un depanator 2 engl. debu**er# i trebuie salvate n fiiere cu e!tensia .m "ca i
programele script#. Dar n cazul funciilor este necesar ca numele fiierului s. coincid. cu
numele funciei, care trebuie s. apar. n prima linie a acesteia "6eader/ul funciei#. @rice
funcie $atlab ncepe cu cuvntul rezervat fu'ctio'. 6n 8eader de forma%
fu'ctio' [.a/3&1:.a/3&2:.a/3&3]=fu'ct(.a/3i1:.a/3i2)
aparine unei funcii $atlab cu numele fu'ct, care primete dou. argumente de intrare 2
.a/3i1, .a/3i2 2 i returneaz. rezultatele n trei variabile 2 .a/3&1, .a/3&2, .a/3&3.
Din 8eader nu rezult. tipul argumentelor; aceasta rezult. din implementarea efectiv. "corpul#
funciei. Dintre variabilele folosite de funcie, doar variabilele de ieire e!ist. n spaiul de
lucru dup. e!ecuia apelului acesteia "restul variabilelor sunt locale#. Eista argumentelor de
intrare se nc8ide ntre paranteze rotunde, cea a argumentelor de ieire ntre paranteze p.trate
"acestea sunt opionale dac. e!ist. un singur argument de ieire#; n.untrul ambelor liste se
'F
1. ?ntroducere n calculul apro!imativ
folosete ca separator virgula. Aceast. funcie trebuie salvat. n fiierul fu'ct.m.
Dup. 8eader urmeaz. corpul funciei, format din comenzi $atlab care trebuie s. respecte
regulile sintactice obinuite. =ntruct n $atlab nu se dispune de compilator, ci de interpretor,
erorile de sinta!. se pun n eviden. n momentul apelului funciei "valabil i pentru script/
uri#, cnd e!ecuia este oprit. i un mesa3 de eroare se afieaz. n fereastra de comand.. =n
versiunile mai recente de $atlab funcia de depanare inclus. n editor avertizeaz. prin
marcare cu rou prezena erorilor sintactice.
orma de apel a unei funcii $atlab este n principiu identic. 8eader/ului s.u f.r.
cuvntul fu'ctio'. (arametrii de intrare se pot transmite prin referin5 sau prin valoare. De
e!emplu, un apel de forma%
[x1:x2:x3]=fu'ct(.1:.2)
corespunde transmiterii prin referin5. =naintea unui astfel de apel trebuie ca fiierul
fu'ct.m s. se afle n directorul curent i variabilele .1 i .2 s. se afle n spaiul de lucru. =n
aceste condiii, dac. funcia este sintactic corect scris., atunci e!ecuia apelului de mai sus va
avea ca ecou la ecran "deoarece s/a omis 0;1# afiarea coninutului variabilelor x1, x2 i x3.
6n apel de forma%
fu'ct(2:4)
corespunde transmiterii prin valoare a parametrilor de intrare; ecoul de la ecran const. n
acest caz n afiarea numai a valorii primului argument de ieire, atribuite variabilei a'%.
1.3.3./ !acilit0i +rafice
=n $atlab se pot realiza grafice bi i tridimensionale. =n aceast. lucrare interesul se
rezum. la graficele bidimensionale, a c.ror realizare se bazeaz. pe funciile ,ot i o,a/
"grafica 7D se bazeaz. pe funciile m&%0 i %u/fac&#, dedicate reprezent.rii n plan a unei
mulimi de puncte n coordonate rectan*ulare carteziene!, respectiv polare. 5a ma3oritatea
funciilor $atlab, i aceste funcii suport. un num.r variabil de argumente de intrare "de unde
rezult. mai multe forme de apel#; n mod tipic, cte dou. argumente de intrare "doi vectori#
sunt necesare "n aceast. ordine#%
pentru ,ot vectorul absciselor i vectorul ordonatelor punctelor respective;
pentru o,a/ vectorul ung8iurilor i cel al razelor punctelor.
5nd ,ot sau o,a/ sunt apelate cu un singur vector de intrare, pe ordonat. sunt
trecute elementele vectorului i pe abscis. indecii acestora.
unciile ca/t2o, i o,2ca/t fac conversiile din coordonate carteziene n
coordonate polare i respectiv invers. 6n al treilea argument, de tip ir de caractere, este
necesar dac. se vrea impunerea unui anume tip de linie pentru grafic.
$ai 3os se e!emplific. trasarea graficului funciei sinus n intervalul [ ]
;
, n ambele
variante. <e genereaz. nti o diviziune a respectivului interval cu un pas ales arbitrar
"evident, acurateea graficului este cu att mai bun. cu ct pasul este mai mic#.
x=-i;i*50;i;Jvectorul de puncte de calcul n intervalul dat, distanate cu pasul i*50
y=%i'(x);Jvectorul de valori ale funciei
,ot(x:y:=---=);Jtrasarea graficului n coordonate carteziene,
Jcu impunerea tipului de linie
+/i2;Jsuprapunerea unei grile peste grafic
[xx:yy]=ca/t2o,(x:y);Jconversia din coordonate carteziene n coordonate polare
'+
$etode numerice utilizate n analiza sistemelor 2 aplicaii
o,a/(xx:yy:--);
Apelarea funciei ,ot va avea ca efect desc8iderea unei ferestre grafice care va g.zdui
graficul cerut "a!ele sunt scalate automat, figura 1.+#. ereastra grafic. este un obiect cu
anumite atribute. @rice nou apel al funciei ,ot sau o,a/ va suprascrie n mod implicit
cea mai recent. fereastr. de3a desc8is.. Deci funcia o,a/ va afia noul grafic n aceeai
fereastr., cu numele >i+u/& ?o. 1 "figura 1.>#.
Fig. 7.1 ereastr. grafic. desc8is. ca rezultat al unei comenzi ,ot
6neori se dorete sc8imbarea set.rilor implicite; astfel%
Dac. se dorete afiarea de grafice n ferestre separate, atunci nainte de
fiecare ,ot*o,a/ trebuie folosit. funcia fi+u/&, care primete ca argument de
intrare un num.r ntreg "acesta va determina numele ferestrei# i care creaz. un nou
obiect de tip fereastr. grafic. "iniial vid.#. De e!emplu, cele dou. grafice din
e!emplul de mai sus ar putea fi afiate n ferestre separate prin secvena%
fi+u/&(1);,ot(x:y:---=);+/i2;
fi+u/&(2);o,a/(xx:yy:1-=);+/i2;
'>
1. ?ntroducere n calculul apro!imativ
Fig. 7.2 ereastra grafic. din figura 1.+, actualizat. printr/o comand. o,a/
Dac., dimpotriv., se vrea afiarea de *rafice suprapuse, aceasta se poate face numai
pentru mai multe grafice de acelai tip% fie n coordonate rectangulare ",ot#, fie n
coordonate polare "o,a/#. =n acest caz, prin comanda 0o,2 o' se sc8imb. starea unei
variabile $atlab binare "setate implicit pe off# aferente celei mai recente ferestre grafice
desc8ise, efectul fiind p.strarea "i nu tergerea# celui mai recent grafic. =n figura 1.C s/a
reprezentat coninutul ferestrei grafice rezultat n urma e!ecuiei comenzilor%
z=co%(x);Jvalorile unei alte funcii, pentru un nou grafic
,ot(x:y);+/i2;
Jiniial variabila 0o,2 are valoarea off
0o,2 o';
,ot(x:z);
-4 -3 -2 -1 0 1 2 3 4
-1
-0.8
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
0.8
1
Fig. 7.3 Dou. grafice suprapuse n aceeai fereastr. prin comanda 0o,2 o'
=n versiunile pn. la *.! inclusiv, culoarea fundalului unei ferestre grafice se seteaz.
implicit la negru, iar n versiunile superioare la alb. Uascularea ntre cele dou. culori de
fundal se poate face prin comanda $0it&-+% pentru prima categorie de versiuni aceasta
'C
$etode numerice utilizate n analiza sistemelor 2 aplicaii
nseamn. setarea la alb, pentru a doua categorie nseamn. setarea la negru.
Al treilea argument al funciilor ,ot sau o,a/ este un ir de caractere prin care se
impun caracteristicile liniei cu care se va trasa graficul, i anume culoarea "prin primul
caracter# i tipul liniei "prin urm.torul sau urm.toarele dou. caractere#. uncia ,ot a fost
apelat. iniial ca avnd al treilea argument -@-=% -= stabilete culoarea "albastru,
engl. blue#, iar @-=, adic. irul format din dou. caractere -=, stabilete c. linia este
ntrerupt.. 5omanda 0&, ,ot ofer. detalii despre combinaiile corecte de caractere ce pot
ap.rea n al treilea argument al funciilor ,ot sau o,a/. 5nd acesta lipsete, culoarea
implicit. de trasare a graficului este rou "/=# pentru versiunile *.! i, respectiv, albastru
"-=# n versiunile 9.! i superioare, iar tipul de linie este implicit cel continuu "-=#.
=n fine, cea mai general. form. de apel a funciilor de grafic. bidimensional. este aceea
prin care se traseaz. mai multe grafice simultan n aceeai fereastr. grafic.. =n acest caz,
argumentele de intrare pot fi formate din oricte perec8i "vector, vector# i;sau triplete
"vector, vector, ir de caractere# necesare pentru trasarea unui singur grafic. &u este
obligatoriu ca domeniile de reprezentare pe a!a absciselor s. coincid.. -ezultatul obinut este
identic ca n cazul folosirii comenzii 0o,2 o'.
=n e!emplul de mai 3os sunt calculate valorile a dou. funcii n dou. seturi diferite de
puncte, primul din intervalul A/9; 9D i al doilea din intervalul A/7; 7D. 5ele dou. grafice sunt
reprezentate printr/un singur apel al funciei ,ot. <e observ. c. primul grafic este descris
printr/un dublet de argumente "este trasat cu valorile implicite ale caracteristicilor liniei% linie
continu. roie#, n timp ce cel de/al doilea grafic este descris printr/un triplet de argumente
"s/a impus culoarea albastr. 2 - 2 i tipul de linie 2 o, cercule; figura 1.1,#.
t1=-5;0.05;5;t2=-3;0.01;3;
f1=%i'(t1)!2*%i'(5*t1);
f2=%i'(5*t2).*%i'(t2);
,ot(t:f1:t:f2:-o);+/i2;
-5 -4 -3 -2 -1 0 1 2 3 4 5
-3
-2
-1
0
1
2
3
Fig. 7.4 Dou. grafice reprezentate printr/un singur apel al funciei ,ot
unciile tit,&, x,a-&, i y,a-&, se apeleaz. n asociere cu ,ot. :le primesc ca
argument un ir de caractere pe care l plaseaz. ca titlu, etic8et. a abscisei sau, respectiv,
etic8et. a ordonatei graficului "graficelor# desenat"e# de cel mai recent apel al lui ,ot.
uncia tit,& produce acelai efect i n asociere cu o,a/.
7,
1. ?ntroducere n calculul apro!imativ
=n $atlab e!ist. posibilitatea de a reprezenta mai multe sisteme de a!e "fie carteziene, fie
polare# n aceeai fereastr. grafic.. Aceasta se face cu funcia %u-,ot care trebuie s.
primeasc. trei argumente de intrare de tip num.r ntreg. De e!emplu, o comand. de forma%
%u-,ot(221);Jsau %u-,ot(2:2:1)
va determina apariia n cea mai recent. fereastr. grafic. desc8is. "sau desc8iderea unei
ferestre grafice dac. niciuna nu era desc8is.# a unei matrice de ' linii i ' coloane 2 aceasta
este semnificaia primelor dou. argumente 2 de sisteme de a!e "care implicit sunt
rectangulare#. Aceste sisteme de a!e sunt numerotate de la stnga la dreapta i de sus n 3os.
Al treilea argument anun. num.rul sistemului n care se va e!ecuta urm.torul apel de
,ot*o,a/ "n cazul de fa., este vorba de primul, adic. cel din stnga sus#. :vident, al
treilea argument trebuie s. se situeze ntre 1 i produsul celorlalte dou..
(resupunnd c. variabilele t1, t2, f1 i f2 au fost generate prin secvena de comenzi de
mai sus, atunci secvena de comenzi de mai 3os va produce rezultatul din figura 1.11.
[1:2]=ca/t2o,(t2:f2);
%u-,ot(211);
,ot(t1:f1:=+--=);+/i2;
tit,&(=A' +/afic i' coo/2o'at& ca/t&zi&'&=);
x,a-&,(=u'itati 2& ma%u/a & a-%ci%a=);
%u-,ot(212);
o,a/(1:2:=/-=);
tit,&(=A' +/afic i' coo/2o'at& o,a/&=);
-5 -4 -3 -2 -1 0 1 2 3 4 5
-4
-2
0
2
4
Un grafc in coordonate carteziene
unitati de masura pe abscisa
Un grafc in coordonate polare
1
2
3
4
30
210
60
240
90
270
120
300
150
330
180 0
Fig. 7.5 Dou. grafice n sisteme diferite de a!e, dar n aceeai fereastr. grafic. "%u-,ot#
1.3.3.1 23erciii re)ol(ate. 23erciii propuse
=n acest paragraf se e!emplific. rezolvarea unei probleme de calcul matricial prin
scrierea unui program script n $atlab, care, la rndul s.u, apeleaz. funcii utilizator. Apoi se
propun spre rezolvare cteva e!erciii care necesit. aplicarea noiunilor de baz. de lucru n
$atlab, anterior e!puse.
71
$etode numerice utilizate n analiza sistemelor 2 aplicaii
Exempl ul 1. 1:
ie x un num.r comple! situat n interiorul cercului unitate, e!clusiv centrul
acestuia "originea a!elor#%
, 1 x <
. <e cere s. se scrie un script $atlab care%
a# s. calculeze matricea cu elemente comple!e, de dimensiune n,
n n
/

, ale c.rei
elemente se obin conform cu%
cos
1
i j
ij
a x
i j
+
_


+ +
,
, i)1,',...n, j)1,',...n;
b# s. calculeze matricea
n n
9

, cu elementele calculate pe baza matricei / astfel%


( )
{ } { }
1, , 1, ,
ln deasupra diagonalei principale " #
pe diagonala principal. " #
ma! min
sub diagonala principal. " #
ij
ij ij
ij
ij
ij ij
j n j i i n i j
a
j
a a i j
i
a
b i j
a a
e i j

1
<

1
]


'
+

>

,
unde

reprezint. con3ugatul i
A D
semnific. partea ntreag.;
c# s. reprezinte grafic cum variaz. modulul i argumentul "ung8iul# sumei elementelor
de pe diagonala matricei 9 n funcie de argumentul lui x, cnd acesta se mic. pe cercul
unitate "
x
)1#;
d# s. construiasc. matricea%
' '
^
^
^ ,
.
n
n n
9
n
/ 9 :
;
e

1
1
1
1
]

,
unde
n
:
este matricea unitate de dimensiune n i
,
n
este matricea p.tratic. de dimensiune n
cu toate elementele nule.
(entru rezolvarea fiec.ruia dintre punctele problemei enunate se va scrie cte o funcie;
cele patru funcii vor fi apelate de c.tre un program script.
uncia care rezolv. punctul a# trebuie s. primeasc. dou. argumente de intrare, x i n,
unde x este variabila comple!. de modul subunitar i n este dimensiunea matricei /, care
trebuie furnizat. ca rezultat. Aceast. funcie va fi numit. ca,c3B.
fu'ctio' [B]=ca,c3B(x:')
fo/ i=1;':Jvirgula este opional.
fo/ j=1;':
B(i:j)=x9(i!j)*co%(i*(i!j!1));
&'2;
&'2;
<e observ. c.%
x este de modul nenul, deci orice putere a lui x este de modul nenul;

cos
1 i j
1
1
+ +
]
poate avea argumente n intervalulul ma!im
;
' 1 7 n

1
1
+
]
"ale
7'
1. ?ntroducere n calculul apro!imativ
c.rui capete se obin pentru i)j)n, respectiv pentru i)j)1#, deci este nenul oricare ar fi
dimensiunea matricei, nd,#.
-ezult., deci, c. matricea / va avea elemente de modul nenul. Eegat de aceasta, trebuie
reinut. necesitatea introducerii n programul script a unui test de ncadrare n domeniul de
definiie a variabilei x.
(entru punctul b#, funcia aferent. va avea ca argument de intrare pe /, cu semnificaia
de matrice pe baza c.reia se calculeaz. 9, matricea rezultat. 5ele dou. matrice sunt p.tratice
de aceeai dimensiune; nu este necesar ca dimensiunea s. apar. ca argument de intrare,
ntruct ea se poate afla n.untrul funciei, prin apelarea funciei %iz& cu argumentul /. <e
observ. c.%

{ }
1, ,
ma!
ij
i n i j
a

este ma!imul modulelor elementelor de pe coloana j a matricei /,
e!cluznd elementul de la intersecia cu diagonala principal., i

{ }
1, ,
min
ij
j n j i
a

este minimul modulelor elementelor de pe linia i a matricei /,
e!cluznd, de asemeni, elementul de la intersecia cu diagonala principal..
:lementele de pe diagonala principal. a matricei 9 sunt bine definite "numitorul
e!presiei este ntotdeauna nenul#, innd cont c. elementele matricei / sunt de modul nenul.
uncia corespunz.toare punctului b# va fi numit. ca,c3C.
fu'ctio' [C]=ca,c3C(B)
[m ']=%iz&(B);Jmatricea fiind p.tratic., m i ' au aceeai valoare
fo/ i=1;':
fo/ j=1;':
if i8j:
C(i:j)=co'j(B(i:j))*,o+(a-%(B(i:j)))*fix(j*i);
&,%&if i==j:
.1=B(i:;);Jn vectorul .1 se reine linia i din B
.1([i])=[];Jse terge elementul care era pe diagonala principal.
.2=B(;:j);Jn vectorul .2 se reine coloana j din B
.2([j])=[];Jse terge elementul care era pe diagonala principal.
C(i:j)=B(i:j)*(max(a-%(.2))!mi'(a-%(.1)));
&,%& C(i:j)=&x(B(i:j));
&'2;Jsfritul structurii de decizie
&'2;Jsfritul ciclului de contor j
&'2;Jsfritul ciclului de contor i
(entru punctul c# se va construi o funcie cu rol de procedur., ntruct scopul ei nu
este s. ntoarc. neap.rat un rezultat ntr/o variabil., ci s. efectueze o aciune, i anume s.
traseze dou. grafice. Gotui, pentru aceasta, indiferent de funcia folosit. ",ot sau o,a/#,
dup. cum s/a v.zut n paragraful anterior, este necesar. generarea cte unei perec8i de vectori
pentru fiecare grafic trasat; aceti vectori vor fi argumentele de ieire ale funciei. Drept
argument de intrare se va considera n, dimensiunea matricei 9.
=n cazul de fa., variabila independent. este argumentul "ung8iul# variabilei x, care ia
valori n intervalul [ ) ,; '
cnd x se mic. pe cercul unitate%
77
$etode numerice utilizate n analiza sistemelor 2 aplicaii
[ ) cos" # sin" #, ,;' x i +
(entru apro!imaia variaiei continue a ung8iului lui x se genereaz. o diviziune a
intervalului [ ) ,; '
cu un pas arbitrar de mic i se reine ntr/un vector a/+x. (entru fiecare
element al vectorului a/+x se apeleaz. funcia ca,c3B, pentru a se putea apela apoi funcia
ca,c3C: care va genera cte o matrice 9. iec.rei astfel de matrice i se calculeaz. suma
elementelor de pe diagonala principal. "adic. urma#, rezultnd astfel un ir de numere
comple!e. <e calculeaz. modulele i argumentele "ung8iurile# acestor numere i se rein
respectiv n doi vectori% mo2u, i a/+um. Aceti doi vectori desemneaz. variabilele
dependente a c.ror variaie trebuie reprezentat. grafic.
=n acest moment se constat. c. scrierea funciei de la acest punct necesit. apelul nc. a
unei funcii, de calcul al ar*umentului unui num5r complex, n funcie de p.rile real. i
imaginar. ale acestuia, ceea ce nu este tocmai evident. Acest calcul se bazeaz. pe relaia%
?m" #
arg" # arctg
-e" #
z
z $
z
_
+

,
, z , $ ,
unde valorile lui $ sunt restrnse la 1 i ', deoarece arctangenta ia valori n intervalul
( ) '; '
, iar argumentul unui num.r comple! se situeaz. n [ ]
,; '
. =n figura 1.1' sunt
date relaiile de calcul ale argumentului unui num.r comple! n funcie de situarea acestuia n
cele patru cadrane ale planului comple!.
Fig. 8.2 5alculul argumentului unui num.r comple! n funcie de p.rile real. i imaginar.
(rivind figura 1.1', se observ. c. o atenie aparte trebuie dat. situaiilor cnd partea real.
este nul. "num.rul comple! se afl. pe a!a imaginar.#. =n acest caz, riguros vorbind,
arctangenta nu este definit., ns. se poate considera prin abuz c. returneaz. ca rezultat fie
' dac. este vorba de semia!a imaginar. pozitiv., fie ' dac. este vorba de cea
negativ.. ormulele de mai sus r.mn valabile la limit..
uncia care implementeaz. calculul argumentului unui num.r comple! folosind p.rile
real. i imaginar. va fi numit. ca,c3a/+; ea este listat. mai 3os.
fu'ctio' [t&ta]=ca,c3a/+(z)
if /&a,(z)==0:
if ima+(z)==0:
I% -e"z#d,, ?m"z#,
-e
?m
II% -e"z#c,, ?m"z#,
III% -e"z#c,, ?m"z#, IV% -e"z#d,, ?m"z#,
z
?

?
z
??

??
z
???

???
z
?4

?4
?m" #
Harctg
-e" #
z
z
_


,
?m" #
Harctg
-e" #
z
z
_


,
?m" #
arctg
-e" #
z
z
_


,
?m" #
' Harctg
-e" #
z
z
_


,
7*
1. ?ntroducere n calculul apro!imativ
t&ta=0;Jargumentul num.rului comple! , este ,
&,%&if ima+(z)>0:
t&ta=i*2;Jnum.rul este pe a!a imaginar. pozitiv.
&,%& t&ta=3*i*2;Jnum.rul este pe a!a imaginar. negativ.
&'2;
&,%&if /&a,(z)80:
t&ta=i!ata'(ima+(z)*/&a,(z));Jnum.rul este n cadranul ?? sau ???
&,%&if ima+(z)>=0:
t&ta=ata'(ima+(z)*/&a,(z));Jnum.rul este n cadranul ?
&,%& t&ta=2*i!ata'(ima+(z)*/&a,(z));Jnum.rul este n cadranul ?4
&'2;
uncia aferent. punctului c# va fi numit. +/afic.
fu'ctio' [a/+x:mo2u,:a/+um]=+/afic(')
a/+x=0;i*50;(2*i-&%);
Js/a folosit variabila permanent. &%, care l conine pe epsilon ma4in5
J"'.'',**F,*C'9,717e/,1F#, pentru a e!prima c. intervalul este desc8is spre '
J"valoarea ' nu este atins.#
mo2u,=[];a/+um=[];Jiniializarea vectorilor de module i ung8iuri la vectori vizi
fo/ j=1;,&'+t0(a/+x):
x=co%(a/+x(j))!i*%i'(a/+x(j));
[B]=ca,c3B(x:');
[C]=ca,c3C(B);
u=t/ac&(C);Jurma matricei C se calculeaz. cu funcia t/ac& din bilioteca $atlab
mo2u,=[mo2u, a-%(u)]; Jla fiecare pas se adaug. noi elemente
a/+um=[a/+um ca,c3a/+(u)];J n vectorii mo2u, i a/+um
&'2;
Jaezarea celor dou. grafice unele sub altele n aceeai fereastr. grafic.
%u-,ot(211);
,ot(a/+x:mo2u,:--);+/i2;
x,a-&,(/a2ia'i);
tit,&(<o2u,u, u/m&i ,ui C .%. a/+(x));
%u-,ot(212);
,ot(a/+x:a/+um:-;);+/i2;
x,a-&,(/a2ia'i);y,a-&,(/a2ia'i);
tit,&(B/+um&'tu, u/m&i ,ui C .%. a/+(x));
uncia de rezolvare a punctului d# 2 ce va fi numit. ca,c3D 2 este cel mai simplu de
implementat n $atlab, fiindc. face uz de facilit.ile de operare cu masive ale mediului.
fu'ctio' [D]=ca,c3D(B:C)
[m ']=%iz&(B);
D=[B*C &y&(');z&/o%(') &xm(C)];
:a necesit. ca argumente de intrare matricele / i 9, furniznd ca rezultat matricea ;
"funcia &xm, de calcul al e!ponenialei matriciale, e!ist. de3a n biblioteca $atlab#.
=n fine, programul script care apeleaz. funciile descrise mai sus va fi numit 1 i
79
$etode numerice utilizate n analiza sistemelor 2 aplicaii
este listat mai 3os. <e utilizeaz. o variabil. binar. %to care este setat. la 1 logic dac. nu
sunt ndeplinite restriciile asupra variabilelor x i n.
Jnum.rul comple! x i num.rul ntreg ' se consider. cunoscute
%to=0;
if (a-%(x)==0) 7 (a-%(x)>1):
2i%(Ea/ia-i,a x t/&-ui& %a ai-a mo2u, %u-u'ita/ %i '&'u,.);
%to=1;
&'2;
if ('81):
2i%(Fim&'%iu'&a mat/ic&,o/ t/&-ui& %a fi& oziti.a.);
%to=1;
&'2;
if (5%to):
[B]=ca,c3B(x:')
[C]=ca,c3C(B)
au%&;Jstoparea programului pn. la ap.sarea unei taste,
Jpentru a vizualiza ecourile apelurilor de funcii de mai sus
[t&ta3x:m2:a/+m't]=+/afic(');
au%&;Jse vizualizeaz. afi.rile grafice; aceast. comand. poate lipsi,
Jdeoarece urm.toarea afiare se face n fereastra de comand.
[D]=ca,c3D(B:C)
&'2;
De amintit c. toate cele ase fiiere listate mai sus trebuie s. aib. e!tensia .m i s. se afle
n acelai director.
0 1 2 3 4 5 6 7
0.2
0.4
0.6
0.8
1
radiani
Modulul urmei lui B vs. arg(x)
0 1 2 3 4 5 6 7
0
2
4
6
8
radiani
r
a
d
i
a
n
i
Argumentul urmei lui B vs. arg(x)
Fig. 8.3 Brafic produs de programul $atlab din e!emplul 1.11
$ai 3os este e!emplificat rezultatul rul.rii programului de mai sus pentru x),.7H,.+9i i
n)'. <ecvena de comenzi de iniializare i de punere n e!ecuie este%
x=0.3!0.#5*i;'=2;
1
7F
1. ?ntroducere n calculul apro!imativ
iar rezultatele sunt listate mai 3os.
B =
-0.23"2 ! 0.2250i -0.3389 - 0.1551i
-0.3389 - 0.1551i 0.01"8 - 0.3440i
C =
-0.31"9 ! 0.3019i 0.""89 - 0.30"2i
0.#040 - 0.1101i 0.0225 - 0.4"15i
D =
-0.0#8#!0.14"5i -0.1"30!0.081#i 1.0000 0
0.1103!0.0889i -0.0200!0.20#5i 0 1.0000
0 0 0.8#8"!0.09#2i 0.5"14-0.3"58i
0 0 0."194-0.1938i 1.0818-0."3"1i
@rdinea real. a apariiei lor este% matricile B i C n fereastra de comand., graficele n
fereastra grafic. redat. n figura 1.17 i, n fine, matricea D din nou n fereastra de comand..
23er ci i i pr opuse
=n cele ce urmeaz., prin termenul de 0program $atlab1 se poate nelege fie 0script
$atlab1, fie 0funcie $atlab1, la alegere.
1. <e efectueaz. de $ ori generarea a dou. matrice,
n n
/

i
n n
9

, cu elemente
aleatoare uniform distribuite n intervalul A,;1D.
a# <. se scrie o funcie $atlab care s. calculeze matricea%
( ) ( )
1
p
" / 9 + ,
unde , 1 i
[
p
.
b# <. se scrie un script care s. reprezinte grafic coordonatele "indicele de linie i indicele
de coloan.# elementelor ma!im i minim ale matricei " n funcie de $, num.rul de pai de
generare a matricelor / i 9 "se va considera un num.r relativ mare de pai, de ordinul
sutelor#.
c# Acelai lucru ca la punctul b# pentru raportul dintre num.rul de elemente mai mari
dect i cele strict mai mici dect ale matricei ".
'. a# <. se implementeze n $atlab funciile de argument real%
1
% f
,
1
sin" #
, dac. ,
" # sinc" #
1, dac. ,
x
x
f x x
x
x

'

@
"sinus cardinal#;
'
% f
,
[ )
( ) [ )
'
"' 1# ' , ' ; "' 1#
" #
cos "' 1# , "' 1# ; '" 1#
' '
b a
x $ a $b x $ $
f x
b a b a
x $ x $ $

+ + +

'
+

+ + + +

,
unde 1cacb, $ ;
7
% f
, ( ) ( ) ( )
7
sin 1, cos 1, f x x x +
7+
$etode numerice utilizate n analiza sistemelor 2 aplicaii
b# <. se scrie un program $atlab pentru trasarea graficelor urm.toarelor funcii%
1
% *
,
1 1 '
* f f o
;
'
% *
,
' ' 7
* f f o
;
7
% *
,
7 7 ' 1
* f f f o o
, atunci
cnd argumentul lor variaz. n intervalul A/1,;1,D.
7. <e presupune c. funciile f
1
, f
'
i f
7
din e!erciiul ' sunt de3a implementate. ie o
matrice
m n
/

. <e cere s. se scrie un program $atlab care%


a# s. calculeze matricea
m n
9

, ale c.rei elemente depind de cele ale matricei /


astfel%
1
'
7
" #, dac. " # mod * 1
" #, dac. " # mod * '
" #, dac. " # mod * 7
, n rest
ij
ij
ij
ij
ij
f a i j
f a i j
b
f a i j
a
+

'
+

,
unde 0x mod &1, cu x i & numere ntregi, semnific. restul mp.ririi lui x la & "mp.rirea
modulo#;
b# presupunnd c. elementele matricei / sunt de forma%
tg ,
*
,,
ij
i j
i j
a i j
i j
_ 1
+

1


'
] ,

,
s. reprezinte grafic variaia mediei elementelor matricei 9 n funcie de , cnd acesta variaz.
n intervalul A/9;9D.
*. ie
" #
" #
" #
< s
= s
> s

, unde < i > sunt polinoame n variabila comple!. s prime ntre ele
cu grad"<#grad"># "se spune c. funcia ="s# este o funcie raional5 n s#. <. se scrie o
funcie $atlab care s. primeasc. vectorii coeficienilor polinoamelor < i > i s. traseze n
coordonate polare locul geometric al punctului
" # = i
n planul comple! "i fiind unitatea
imaginar.#, cnd variabila real. variaz. ntr/un interval centrat n origine "de forma
[ ]
;
max max

, cu
,
max
>
#.
:ndicaie% (entru calculul valorii unui polinom ntr/o valoare dat. a variabilei
independente se poate folosi funcia o,y.a, din biblioteca $atlab. (entru calculul
argumentului num.rului comple!
" # = i
se poate apela funcia ca,c3a/+, scris. la
e!emplul 1.11 din acest paragraf.
7>
1. ?ntroducere n calculul apro!imativ 7C

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