Sunteți pe pagina 1din 26

Laborator 3.

Analiza sistemelor
descrise de realiz
ari pe spatiul
st
arilor
Introducere
Scopul acestui laborator este elaborarea, implementarea si testarea procedurilor de analiza numerica a proprietatilor sistemice fundamentale. Laboratorul este structurat n cinci sectiuni.
Prima sectiune este dedicata testarii stabilitatii sistemelor. A doua sectiune prezinta modalitati
de obtinere a realizarilor de stare pornind de la matricea de transfer si reciproc. Sectiunea 3
este dedicata testarii proprietatilor de controlabilitate si observabilitate. Ultimele doua sectiuni
prezinta modalitati de obtinere a realizarilor de ordin minim (minimale) si a realizarilor balansate. Laboratorul este dedicat exclusiv analizei sistemelor cu timp continuu.

3.1

Teste numerice de stabilitate a sistemelor liniare

A) Descriere teoretic
a
Stabilitatea unui sistem liniar S = (A, B, C, D) este o proprietate ce depinde numai de matricea
de stare A. Mai precis, sistemul S este stabil daca matricea de tranzitie (t) asociata lui A
satisface conditia (t) 0 cand t . In cazul continuu matricea de tranzitie are expresia
(t) = eAt , t R. Avem urmatoarea caracterizare.
Teorema 3.1 Sistemul cu timp continuu S = (A, B, C, D) (sau matricea de stare A) este
stabil(a) dac
a si numai dac
a toate valorile proprii ale lui A au partea real
a strict negativ
a, i.e.,
spectrul lui A este continut n semiplanul st
ang deschis
(A) C .

(3.1)

B) Testare numeric
a
In aceasta subsectiune prezentam doua teste numerice de stabilitate a unei matrice: algoritmul
QR si o varianta modificata a testului Hurwitz, numita schema Routh.
Algoritmul QR f
ar
a acumularea transform
arilor
Deoarece proprietatea de stabilitate vizeaza o anumita plasare a valorilor proprii, iar acestea
se calculeaza eficient utilizand algoritmul QR, obtinem urmatorul test de stabilitate pentru

2
sisteme liniare continue.
Algoritmul 3.1 (Data o matrice patrata A, algoritmul testeaza stabilitatea
acesteia).
1. = eig(A) % Se calculeaza valorile proprii utilizand algoritmul QR
2. Se determina = max Re(i).
3. Dac
a < 0 atunci
1. Tip
are
ste Sistemul continuu este stabil
altfel
2. Tip
are
ste Sistemul continuu este instabil
Observatie. Proprietatea de stabilitate este o proprietate binara (adevarata sau falsa). In
aplicatii intereseaza deseori evaluari cantitative ale unor margini sau rezerve de stabilitate.
Asemenea evaluari sunt furnizate de parametrul calculat mai sus. De exemplu, daca un sistem
continuu este stabil, adica < 0, atunci || reprezinta inversul constantei de timp dominante.
Relatia tr 45
a o evaluare orientativa a timpului de raspuns (definit pentru banda de
|| ofer
5% din jurul regimului permanent constant) al sistemului considerat.
Criteriul de stabilitate Routh-Hurwitz
Criteriul Routh-Hurwitz este o metoda de a determina stabilitatea unui sistem analizand locatia
radacinilor ecuatiei caracteristice a sistemului. Metoda determina daca exista radacini n semiplanul drept si nu calculeaza efectiv radacinile. Se considera ecuatia caracteristica
D (s) = an sn + an1 sn1 + . . . + a1 s + a0 = 0.

(3.2)

Pe baza coeficientilor polinomului caracteristic se construieste tabelul Routh:


sn
n1

s
sn2
sn3
sn4
..
.

an
an1
b1
c1

an2
an3
b2
c2

an4
an5
b3
c3
..
.

an6
an7

...
...
...
...

(3.3)

s1
s0
unde ai sunt coeficientii polinomiali, iar ceilalti coeficienti sunt calculati dupa

an2
1 an
1 an
1
b1 = an1
=
(a a
an2 an1 ), b2 = an1
an1 an3 an1 n n3
an1

an
an6

b3 = a1
, . . .
n1 a
a
n1
n7

an5
1 an1 an3
1 an1
c1 = b1
, c = b1
, ...
b1
b2 2
b1
b3
Tabelul se continua pe orizontala si pe verticala pana cand se obtin numai

formulele

an4
,
an5

zerouri.

Teorema 3.2 (Criteriul lui Routh) Toate r


ad
acinile polinomului caracteristic au partea real
a
strict negativ
a dac
a si numai dac
a toate elementele din prima coloan
a a tabelului Routh au
acelasi semn.
In caz contrar, num
arul de r
ad
acini cu partea reala pozitiv
a este egal cu num
arul
de schimb
ari de semn.

3.2. REALIZABILITATE

Pentru testarea stabilitatii se poate utiliza algoritmul de eliminare gaussiana fara pivotare
relativ la matricea Hurwitz asociata polinomului caracteristic, ceea ce corespunde exact formularii propuse de Routh pentru criteriul n discutie. Intrucat n absenta unei strategii de
pivotare adecvate, algoritmul de eliminare gaussiana este numeric instabil (aparitia pivotilor
nuli corespunde asa-numitelor cazuri critice ale algoritmului Routh), n practica testarea stabilitatii polinomului caracteristic se face construind matricea companion si aplicand algoritmul
3.1. Importanta criteriului Routh apare mai ales n metodele analitice ca de exemplu atunci
cand trebuie gasiti anumiti parametri ai unui sistem sau ai unui regulator astfel ncat sistemul
n bucla nchisa sa fie stabil.
Caz particular 1 : Daca primul element al unei linii este zero, dar alte elemente din acea
linie sunt nenule se nlocuieste zeroul cu , se continua rationamentul si apoi se interpreteaza
rezultatul presupunand ca este un numar mic de acelasi semn cu cel de deasupra.
Caz particular 2 : Daca toate elementele unei linii sunt zero, atunci polinomul caracteristic
are radacini simetrice fata de originea planului complex (de exemplu doua radacini pur imaginare). Linia de zerouri va fi ntotdeauna asociata puterilor impare ale lui s. Linia de deasupra
liniei nule contine coeficientii polinomului auxiliar. Daca notam acest polinom cu P (s), pentru
a continua algoritmul se va nlocui linia de zerouri cu dP
ds .

C) Sarcini de lucru
1. Sa se scrie programul MATLAB pentru implementarea algoritmului de testare numerica
a stabilitatii unui sistem liniar (i.e. a matricei de stare A a acesteia) si sa se testeze pe
exemple numerice semnificative (n > 5).
2. Conform teoremei lui Liapunov, matricea A a unui sistem continuu este stabila daca si
numai daca oricare ar fi matricea Q = QT > 0 ecuatia matriceala algebrica Liapunov
AT X + XA = Q
are o solutie X = X T > 0. Explicati de ce enuntul de mai sus (de mare valoare teoretica)
nu conduce la un test de stabilitate numeric eficient n raport cu algoritmul 3.1.
3. Un polinom p(s) = a0 sn + a1 sn1 + . . . + an este stabil (sau hurwitzian) daca toate
radacinile sale au partea reala strict negativa. Scrieti algoritmul de testare a stabilitatii
polinomului p(s) utilizand criteriul Routh-Hurwitz (Vezi ANEXA). Implementati varianta
bazata pe algoritmul de eliminare gaussiana pentru matricea Hurwitz asociata polinomului prin comparatie cu testarea stabilitatii matricei companion si testati pe urmatorul
exemplu numeric
s5 + 2s4 + 4s3 + 8s2 + 5s + 10.
4. Aratati ca doua conditii necesare (dar nu suficiente) de stabilitate sunt:
a) toti coeficientii polinomului caracteristic au acelasi semn;
b) toti coeficientii polinomului caracteristic sunt nenuli.

3.2

Realiz
ari

A) Descriere teoretic
a
Aceasta sectiune este dedicata conversiei ntre cele mai importante doua tipuri de modele:
matrice de transfer si realizare pe spatiul starilor.

4
Conversia matrice de transfer - model de stare
Fie T (s) o p m matrice rationala proprie data de
h
T (s) =

rij (s)
pij (s)

i
1ip ,
1jm

grad(pij ) grad(rij ),

i, j,

n care rapoartele se considera ireductibile. Deoarece rationala este proprie avem ca D :=


T () Rpm (finit). Problema realizabilitatii rationalei proprii T (s) se reduce atunci la
problema realizabilitatii rationalei strict proprii Te(s) = T (s) D, i.e., trebuie sa gasim trei
matrice (A, B, C) astfel ncat Te(s) = C(sI A)1 B. Deoarece Te(s) este strict proprie avem
K0 + K1 s + . . . + Kk1 sk1
Te(s) =
0 + 1 s + . . . + k1 sk1 + sk

(3.4)

unde (s) := 0 +1 +. . .+k1 sk1 +sk este cel mai mic multiplu comun (monic) al numitorilor
tuturor elementelor rationalei Te(s), iar Ki , i = 0, . . . , k 1, sunt p m matrice constante. O
realizare a lui Te(s) este data de

A=

Om

Im
..

.
Im

0 Im

1 Im

...

k1 Im

Om

..

, B = . , C = K0

Om
Im

K1

. . . Kk1

(3.5)
Definitia 3.1 Realizarea 3.5 este controlabil
a fiind numit
a realizarea standard controlabil
a a
lui T (s).

In general, realizarea obtinuta nu este ns


a observabil
a.
Definitia 3.2 O realizare observabil
a (realizarea standard observabil
a) este

Op
Ip

A=

..

0 Ip
1 Ip
..
.

.
Ip

k1 Ip

, B =

K0
K1
..
.

, C = Op

. . . Op

Ip

(3.6)

Kk1

Aceasta realizare nu este n general controlabil


a.
Observatie: Pentru o matrice de transfer rationala de dimensiuni arbitrare nu se poate
scrie direct o realizare simultan controlabila si observabila bazata pe coeficientii din (3.4).
Conversia model de stare - matrice de transfer
Conversia inversa, respectiv calculul matricei de transfer asociate unui model de stare dat, se
face separat pentru fiecare pereche (uj , yi ) de intrari si iesiri reducandu-se natural la problema
similara pentru un sistem SISO.
Fie sistemul SISO S = (A, B, C, D). Pentru a calcula functia de transfer, adica doua
polinoame p(s), N (s) astfel ncat

3.2. REALIZABILITATE

5
def

T (s) = C (sI A)

B=

N (s)
p (s)

(3.7)

constatam ca functia de transfer a unui sistem cu reactie unitara este


T0 (s) =

T (s)
N (s)
N (s)
=
=
1 + T (s)
p (s) + N (s)
p0 (s)

(3.8)

unde p0 (s) = p (s) + N (s). Deci


N (s) = p0 (s) p (s) .

(3.9)

Problema s-a redus la a calcula p (s) si p0 (s).


Dar p (s) este polinomul caracteristic al lui A adica
p (s) =

n
Y

(s i ) ,

(3.10)

i=1

unde i sunt polii lui T (s), adica valorile proprii ale matricei A. Analog, p0 (s) este polinomul
caracteristic al matricei A0 a sistemului n circuit nchis, deci A0 = A BC.

B) Testare numeric
a
Algoritmul 3.2 (Un algoritm de calcul al functiei de transfer T (s) este urmatorul:)
1. Se calculeaza valorile proprii i ale matricei A utilizand algoritmul QR
2. Se formeaza A0 = A BC
3. Se calculeaza valorile proprii 0i ale matricei A0 utilizand algoritmul QR
n
Q
4. Se calculeaza p (s) =
(s i )
i=1
n
Q

5. Se calculeaza p0 (s) =

i=1

(s 0i )

6. Se calculeaza N (s) = p0 (s) p (s)

C) Sarcini de lucru
1. Fie un sistem liniar cu 2 intrari si doua iesiri dat de urmatoarea matrice de transfer
"
H(s) =

1
(s1)2
6
(s1)(s+3)2

1
(s1)(s+3)
s2
(s+3)2

Gasiti o realizare pe stare a sistemului.


2. Fie un sistem liniar cu 2 intrari si o iesire dat prin reprezentarea pe stare (A, B, C, D).
Sa se gaseasca matricea de transfer asociata.
3. Scrieti o realizare de stare S = (A, b, cT , 0) a functiei de transfer T (s) = N (s)/p(s) astfel
ncat R(A, b) = I. Idem, astfel ncat Q(cT , A) = I. In ce conditii putem avea simultan
R(A, b) = Q(cT , A) = I ?
4. Scrieti un algoritm care calculeaza o realizare standard observabila pentru un sistem SISO,
respectiv MIMO.

3.3

Teste numerice de controlabilitate si observabilitate a


sistemelor liniare

A) Descriere teoretic
a
Un sistem liniar S = (A, B, C, D) este controlabil daca orice tranzitie de stare dorita poate
fi realizata prin alegerea adecvata a functiei de intrare. Controlabilitatea sistemului liniar S
este o proprietate ce depinde numai de perechea (A, B). Avem urmatoarea caracterizare a
controlabilitatii unui sistem.
Teorema 3.3 Sistemul S = (A, B, C, D) (sau perechea (A, B)) este controlabil(a) dac
a si numai dac
a
rangR = n,
(3.11)

n1
B este matricea de controlabilitate.
unde R = B AB . . . A
Un sistem liniar S = (A, B, C, D) este observabil daca starea initiala este unic determinata
cunoscand functiile de intrare si iesire, obtinute e.g. prin masuratori efectuate la intrarile si
iesirile lui S. Observabilitatea sistemului liniar S depinde numai de perechea (C, A).
Teorema 3.4 Sistemul S = (A, B, C, D) (sau perechea (C, A)) este observabil(a) dac
a si numai
dac
a
rang Q = n,
(3.12)

C
CA

unde Q =
este matricea de observabilitate.
..

.
CAn1
Examinand n paralel relatiile de mai sus, concludem ca notiunile de controlabilitate si
observabilitate sunt duale, n sensul ca ele corespund prin relatiile
A AT ,

C BT .

In particular avem
Q(C, A) = RT (AT , C T ).
In consecinta, vom prezenta procedurile de calcul asociate controlabilitatii, ramanand ca cele
asociate observabilitatii sa rezulte prin dualitate.
Procedurile de testare a controlabilitatii unei perechi date (A, B) sunt de doua tipuri:
a) Proceduri, numite ad-hoc elementare, care testeaza controlabilitatea perechii (A, B) utilizand direct definitia 3.3. Aceste proceduri sunt, n general, neeficiente si pot fi aplicate cu
succes numai pentru perechi de dimensiuni mici.
b) Proceduri care utilizeaza transformari de asemanare pentru a aduce perechea initiala
(A, B) la o forma simpla, pe care proprietatea de controlabilitate sa poata fi testata direct
prin inspectie. Aceste proceduri, numite n continuare de transformare, sunt cele mai utilizate n
aplicatii, n particular si pentru ca faciliteaza rezolvarea unor probleme de calcul conexe vizand,
de exemplu, descompunerea controlabila, testarea stabilizabilitatii, alocarea polilor etc. Cea
mai eficienta procedura de transformare consta n aducerea perechii (A, B) la forma (superior)
Hessenberg prin transformari de asemanare ortogonale.

3.3. CONTROLABILITATEA SI OBSERVABILITATEA

B) Testare numeric
a
In aceasta sectiune prezentam doua clase de teste a proprietatii de controlabilitate (si de observabilitate prin dualizare): teste elementare de controlabilitate si metode avansate de testare
a controlabilit
atii bazate pe forma Hessenberg.
Teste elementare de controlabilitate
Din clasa procedurilor elementare face parte n primul rand procedura directa, bazata pe
constructia matricei de controlabilitate R si testarea conditiei de rang (3.11). Constructia
matricei R se face recurent. Pentru a obtine relatia de recurenta fie
Rk = [B AB Ak1 B].
Relatiile care leaga doi termeni succesivi Rk si Rk+1 rezulta din partitiile
h
i h
i
def
Rk+1 = B ... AB A2 B Ak B = B ... ARk ,

(3.13)

respectiv
def

Rk+1 =

h
B

AB

k1

..
.

i
k

A B

h
=

Rk

..
.

i
Bk+1

(3.14)

unde submatricea Bk+1 = Ak B formata din ultimele m coloane ale lui Rk+1 rezulta n functie
de submatricea corespunzatoare Bk a lui Rk prin
Bk+1 = ABk ,

k 1,

(3.15)

iar B1 = B.
Se constata imediat ca procedura de constructie a matricei R bazata pe relatia (3.13) este
relativ neeconomica n raport cu cea bazata pe relatia (3.14). Prima procedura necesita efectuarea produselor ARk cu Rk avand mk coloane (k 1) n timp ce a doua implica efectuarea
produselor ABk cu Bk avand numai m coloane. Mai mult, este clar ca la fiecare pas k matricea
Bk este disponibila n Rk , mai precis
Bk = Rk ( : , (k 1)m + 1 : km).

(3.16)

Din (3.16) rezulta ca nu este necesara nici alocarea unui tablou suplimentar de lucru pentru
memorarea matricei curente Bk , nici calculul pe loc n B, conform schemei B AB, al
termenilor sirului Bk , ceea ce ar implica distrugerea matricei initiale B. In final obtinem
urmatoarea procedura de testare a controlabilitatii perechii (A, B).
Algoritmul 3.3 (Se testeaza controlabilitatea perechii (A, B) construind matricea de controlabilitate R).
1. R( : , 1 : m) B1 = B
2. Pentru k = 2 : n
1. R( : , (k 1)m + 1 : km) Bk = ABk1
3. Se calculeaza r = rangR utilizand algoritmul DVS.
4. Dac
a r = n atunci
1. Tip
are
ste Perechea (A, B) este controlabila.
altfel
Tip
are
ste Perechea (A, B) nu este controlabila.

8
In ciuda simplitatii sale, algoritmul 3.3 nu este n general recomandabil ntrucat matricea
R poate avea un numar ridicat de coloane rezultand la pasul 3 un rang numeric eronat. De
exemplu, daca m = 1 si matricea B = b se reduce la o singura coloana atunci, conform relatiei
(3.13), coloanele b, Ab, . . . , Ak b, . . . ale matricei (patrate) R coincid cu vectorii obtinuti aplicand
metoda puterii vectorului initial b1 = b. Prin urmare, daca n 1, iar matricea A are o valoare
proprie dominanta
|1 | > |2 | . . . |n |,
atunci ultimele coloane ale lui R sunt practic aliniate cu vectorul propriu x1 al lui A asociat cu
1 . Chiar daca perechea (A, b) este controlabila, matricea de controlabilitate R este numeric
aproape singulara, adica
cond(R) =

1
n

1,

unde cond(R) este numarul de conditionare la inversare al matricei R (n raport cu norma


spectrala) iar i , i = 1 : n, sunt valorile singulare ale lui R ordonate astfel ncat 1 2
. . . n . Fenomenul poarta numele de necontrolabilitate numeric
a a perechii (A, b) si n general
nu poate fi evitat, indiferent de testul de rang utilizat la pasul 3 al algoritmului.
In afara de procedura directa, bazata pe testarea conditiei de rang, din grupul metodelor
elementare fac parte o serie de proceduri derivate rezumate mai jos.
Propozitia 3.1 Controlabilitatea perechii (A, B) este echivalent
a cu oricare dintre conditiile
1. Nu exist
a nici un vector h 6= 0 astfel nc
at AT h = h, C si B T h = 0.

2. rang A I B = n, (A).
3. Oricare ar fi vectorul g Rm cu proprietatea Bg 6= 0, exist
a o matrice F Rmn astfel
nc
at perechea cu o singur
a intrare (A BF, Bg) este controlabil
a.
In subsectiunea C) Sarcini de lucru vom vedea ca fiecare dintre aceste criterii are anumite
probleme din punct de vedere numeric.
Teste elementare de observabilitate
In general, daca o procedura proc calculeaza un rezultat R = proc(A, B) privind controlabilitatea perechii (A, B) atunci rezultatul dual Q, privind observabilitatea perechii (C, A), se
obtine cu secventa
1. Rd = proc(AT , C T )
2. Q = RdT
De exemplu, daca proc(A, B) este algoritmul 3.3, care produce matricea de controlabilitate R
a perechii (A, B), atunci secventa de mai sus produce matricea de observabilitate Q a perechii
(C, A).
Forma Hessenberg controlabil
a
B,
C,
D) un sistem asemenea cu S,
Consideram sistemul liniar S = (A, B, C, D) si fie S = (A,
avand matricele
= T B, C = CT 1 ,
A = T AT 1 , B
(3.17)

3.3. CONTROLABILITATEA SI OBSERVABILITATEA

unde T Rnn este o matrice nesingulara arbitrara. Intre matricele de controlabilitate si


observabilitate asociate sistemelor S si S exista urmatoarele relatii
= T R,
R

= QT 1 .
Q

(3.18)

au acelasi rang, deci perechile (A, B) si (A,


B)
sunt simultan conRezulta ca matricele R si R

trolabile sau necontrolabile. In mod similar, perechile (C, A) si (C, A) sunt simultan observabile
sau neobservabile. Pe scurt, proprietatile de controlabilitate si observabilitate sunt invariante
n raport cu transformarile de asemanare.
Daca n (3.17) presupunem ca matricea T = U este ortogonala, deci sistemele S si S sunt
ortogonal asemenea, i.e.,
A = U AU T ,

= U B,
B

C = CU T ,

(3.19)

cu U ortogonala, atunci relatiile (3.18) devin


= U R,
R

= QU T .
Q

(3.20)

In cele ce urmeaza vom descrie procedurile de aducere a perechii (A, B) la o forma simpla
utilizand transformarile de asemanare ortogonala, cu scopul identificarii invariantilor (ortogonali
ai) acestei perechi si, n particular, al testarii controlabilitatii acesteia. In consecinta, vom
considera o pereche (A, B) cu m intrari, nu neaparat controlabila. Peste tot vom presupune
B 6= 0 si vom nota
def
def
r = rangR, r = n r,
(3.21)
unde evident r satisface inegalitatea 1 r n. Procedura de transformare are la baza urmatorul
rezultat general.
Propozitia 3.2 (Lema de deflatie controlabila). Oricare ar fi perechea (A, B) cu rangB =
r1 > 0, exist
a o matrice ortogonal
a U1 Rnn astfel nc
at

A1 X
H1
T

, B B = U1 B =
(3.22)
A A = U1 AU1 =
G F
0
unde matricea H1 Rr1 m este epic
a, i.e. rangH1 = r1 . Mai mult, perechea (A, B) este
controlabil
a dac
a si numai dac
a perechea redus
a (F, G), de ordin n r1 < n, este controlabil
a.
Matricea U1 se determina e.g. aplicand lui B procedura de descompunere a valorilor singulare
(DVS). Avem

1 0
U1 BV =
,
(3.23)
0 0
unde U1 si V Rmm sunt ortogonale iar 1 este diagonala de ordin r1 > 0 cu elementele
diagonale pozitive. Partitionand V = [V1 V2 ], unde V1 are r1 coloane, obtinem

1 0
V1
1 V1T

B = U1 B =
=
,
0 0
V2T
0
unde H1 = 1 V1T este evident epica de rang r1 . Dupa determinarea lui U1 se aplica U1 lui A,
i.e. se calculeaza A = U1 AU1T , si n acord cu (3.22) se evidentiaza perechea redusa (F, G) de
ordin n r1 cu r1 intrari. In ipoteza G 6= 0, perechii (F, G) cu rang G = r2 > 0 i se poate
aplica din nou o transformare de tip (3.22). Se obtine

A2
X
2 F U
T =
=U
2 G = H2
F F = U
,
G

G
2
Gnou Fnou
0

10
sau echivalent

A A = U2 AU2T =

X
A2
Gnou

A1
H2
0

X
X
Fnou

H1
= U2 B = 0 ,
BB
0
2 precum si
unde matricele U

U2 =

Ir 1
0

0
2
U

,
(3.24)

(3.25)

sunt ortogonale iar matricea H2 este epica de rang r2 . Forma finala a perechii (A, B), obtinuta
prin aplicarea repetata a procedurii de deflatie descrisa n propozitia 3.2, se numeste forma
bloc-superior Hessenberg si este definita prin

AR ARR
BR
T

A A = U AU =
, B B = UB =
,
(3.26)
0
AR
0
n care perechea (AR , BR ), de ordin r,

A1 X
H2 A2

..
.
AR =

se gaseste n forma bloc-superior Hessenberg controlabil


a

X X
H1
0
X X

..
..
..
..

,
.
.
.
.
,
B
=
(3.27)
R

.
..
..
..
..
.
.
.
Hk Ak
0

unde toate blocurile Hi Rri ri1 sunt epice, i.e.


rangHi = ri > 0,
Evident avem
r=

i = 1 : k,
k
X

def

r0 = m.

ri n

(3.28)

(3.29)

i=1

si n virtutea conditiilor (3.28) perechea (AR , BR ) din (3.26) este controlabila. Mai mult,
B)
= (AR , BR ),
perechea initiala (A, B) este controlabil
a daca si numai daca r = n, i.e. (A,
si n acest caz numarul k de blocuri din (3.27) coincide cu indicele de controlabilitate al lui
(A, B).
Matricea ortogonala U Rnn din (3.26) rezulta prin acumularea transformarilor partiale,
i.e.
U = Uk U2 U1 ,
(3.30)
n care U1 se determina ca n demonstratia lemei 3.2, U2 are forma (3.25) etc. Subliniem ca n
virtutea structurii lui U2 , premultiplicarea cu U2 nu modifica primele r1 linii, iar postmultiplicarea cu U2T nu modifica primele r1 coloane ale matricei asupra careia actioneaza transformarea
corespunzatoare. De asemenea, proprietati asemanatoare au toate matricele Ui , i = 2 : k din
(3.30).
In concluzie, aducerea pe loc a perechii initiale (A, B) la forma bloc-superior Hessenberg
(3.26), (3.27) se face printr-o succesiune de transformari ortogonale de asemanare
A Ui AUiT ,

B Ui B,

i = 1 : k.

(3.31)

3.3. CONTROLABILITATEA SI OBSERVABILITATEA

11

La etapa i = 1 se opereaza asupra perechii initiale (A, B) ca n propozitia 3.2, iar la etapele
i 2 se opereaza analog asupra perechii reduse corespunzatoare (F, G), continute n tabloul
A. In particular, transformarile Ui , i 2 nu modifica forma lui B obtinuta dupa prima etapa,
deci pentru i 2 relatiile (3.36) se reduc la
A Ui A,

A AUiT .

(3.32)

Pentru a descrie precis algoritmul astfel obtinut, introducem, urmatoarele proceduri, a caror
scriere explicita revine studentilor (utilizand, la nevoie, functii MATLAB adecvate).
1. Procedura de reducere a lui B decrisa mai sus relativ la Propozitia 3.2, vezi relatiile
(3.22) si (3.23), avand sintaxa
[ r1 , U1 , H1 ] = red(B).
(Amintim ca la etapele i 2 procedura red se aplica unui bloc G, localizat n tabloul A).
2. Procedura de premultiplicare a unei matrice cu matricea de transformare curenta
A = mul1(Ui , A).
3. Procedura de postmultiplicare a unei matrice cu matricea de transformare curenta
A = mul2(A, Ui ).
Acumularea transformarilor din 3.30 se face conform schemei
U Ui U,

i=2:k

(3.33)

cu initializarea U = U1 .
Avem urmatorul algoritm
Algoritmul 3.4 (Data perechea (A, B) de ordin n cu m intrari si B 6= 0 algoritmul construieste forma bloc-superior Hessenberg (3.26), (3.27), (3.28) si acumuleaza
transformarile. Perechea rezultata suprascrie pe cea initiala).
1. k = 1
2. [r1 , U1 , H1 ] = red(B)
3. A = mul1(U1 , A),

A = mul2(A, U1 )

4. U = U1
5. rv = 0,

r = r1
= da
6. CONTINUA
= da
7. C^
at timp CONTINUA
1. = k
2. Dac
ar=n
atunci
= nu
1. CONTINUA
2. Tip
are
ste Perechea (A, B) este controlabila
altfel
1. G = A(r + 1 : n, rv + 1 : r)
2. Dac
a kGk = 0
atunci
= nu
1. CONTINUA

12
altfel
1. k k + 1 % (etapa k, k 2)
2. [rk , Uk , Hk ] = red(G)
3. A(r + 1 : n, r + 1 : n) =
mul1(Uk , A(r + 1 : n, r + 1 : n),
A(1 : n, r + 1 : n) = mul2(A(1 : n, r + 1 : n), Uk )
4. U (r + 1 : n, 1 : n) = mul1(Uk , U (r + 1 : n, 1 : n))
5. rv = r, r r + rk
Avand n vedere ca numarul k al etapelor de reducere nu este apriori cunoscut, utilizam
cu semnificatia cunoscuta. In final, variabila r furnizeaza
si aici variabila binara CONTINUA
rangul matricei de controlabilitate R a perechii date (A, B). In cazul r = n, i.e., daca perechea
(A, B) este controlabila, algoritmul se opreste la instructiunea 7.2. iar este indicele de controlabilitate. Din contra, daca algoritmul se opreste datorita faptului ca blocul curent G este
B),
furnizata de
nul, atunci perechea (A, B) nu este controlabila, iar perechea transformata (A,
algoritmul 3.4, are forma (3.26), n care r < n.
Forma Hessenberg observabil
a
Pentru analiza proprietatilor de observabilitate a unei perechi (C, A) de ordin n cu l iesiri, l 1,
se procedeaza prin dualitate. Prin aplicarea schemei de dualizare relativ la algoritmul 3.4, se
obtine forma bloc-inferior Hessenberg a perechii (C, A), definita prin

AQ
0
T

A A = U AU =
,
AQQ
AQ

(3.34)

CQ 0 ,
C C = CU T =
n care perechea (CQ , AQ ) de ordin q se afla n forma bloc-inferior Hessenberg observabil
a

AQ =

A1

G2

X
..
.

A2
..
.

..

..

X
X

X
X

..

..

Gk
Ak

CQ =

G1

(3.35)

unde toate blocurile Gi Rqi1 qi sunt monice, i.e.


rangGi = qi > 0,
Evident avem
q=

i = 1 : k,

k
X

qi n

def

q0 = l.

(3.36)

(3.37)

i=1

si n virtutea conditiilor (3.36) perechea (CQ , AQ ) din (3.34) este observabila. In plus, perechea
A)
= (CQ , AQ ), si n acest
initial
a (C, A) este observabil
a daca si numai daca q = n, i.e. (C,
caz numarul k de blocuri din (3.35) coincide cu indicele de observabilitate al lui (C, A).
In sfarsit, la fel ca n cazul controlabilitatii, matricea ortogonala U Rnn din (3.34) rezulta
din acumularea transformarilor partiale, i.e. U = Uk U2 U1 .


3.4. REALIZARI
MINIMALE

13

C) Sarcini de lucru
1. Se considera urmatoarea pereche de matrice

1
20

A=

2
..
.

..

.
20

19
20 20

b=

20
0
..
.
..
.
0

(3.38)

a) testati controlabilitatea folosind criteriul C1 (rangul matricei de controlabilitate).


Testati buna conditionare a matricei de controlabilitate pe baza valorile singulare. Ce
se constata?
b) testati controlabilitatea folosind testul C2 pentru valoarea proprie 20 (cel mai rau caz).
Obtineti un rezultat corect? Ce puteti spune despre acest test n comparatie cu primul?
c) testati controlabilitatea folosind testul C2 n felul urmator: perturbati matricea A n

pozitia (1,20) cu o valoare mica = 1012 ; alegeti un vector


b astfel ncat o valoare
proprie, de exemplu = 1 sa nu fie controlabila, i.e. rank A I | b < 20. Ce
rezultate da testul C2 aplicat valorilor proprii calculate ale matricei A ?
T
d) faceti o comparatie ntre testele C2 si C3 folosind b = [0, 1, 1, . . . , 1] si A matricea
initiala; aplicati o transformare ortogonala pe spatiul starilor perechii (A,b). Studiati

valorile
proprii rezultate
pentru A + bf pentru un f oarecare si numerele de conditionare

ale b | A i I n valorile proprii calculate i ale matricei A.

2. Se vor scrie programele MATLAB pentru implementarea algoritmului de constructie a


matricei de controlabilitate si de testare elementara a controlabilitatii unei perechi (A, B).
Se vor compara solutia calculata cu programul propriu cu cel oferit de functia MATLAB
disponibila.
3. Se va scrie programul MATLAB pentru implementarea algoritmului de calcul al formei
Hessenberg complete a unei perechi (A, B) a unui sistem cu mai multe intrari si se va
completa cu testarea controlabilitatii acestei perechi.

3.4

Calculul realiz
arilor minimale

A) Descriere teoretica
Principalul rezultat al teoriei realizarii sistemelor liniare afirma ca orice sistem S = (A, B, C, D)
este echivalent intrare-iesire, i.e. are aceeasi matrice de transfer, cu un sistem de ordin minim
Sm = (Am , Bm , Cm ) care este simultan controlabil si observabil. Mai mult, sistemul Sm este
determinat pana la o transformare de asemanare si, n esenta, coincide cu partea simultan
controlabila si observabila a sistemului dat S.
Definitia 3.3 Un sistem Sm = (Am , Bm , Cm ) controlabil si observabil, echivalent intrare-iesire
cu S se numeste realizare minimala a lui S.
Mai general, orice sistem Sm = (Am , Bm , Cm ) controlabil si observabil se numeste minimal.

14

B) Testare numeric
a
In consecinta, o realizare minimala (i.e. de ordin minim) a unei matrice de transfer date T (s)
poate fi construita aplicand urmatoarea procedura.
Algoritmul 3.5 ( Construieste o realizare minimala a matricei de transfer T (s)).
1. Se construieste o realizare observabila S = (A, B, C, D) a lui T (s), utilizand
formele standard observabile, expuse n sectiunea 3.2.
2. Se construieste descompunerea controlabila

A = U AU T =

AR
0

ARR
AR

= UB =
B

BR
0

utilizand algoritmul 3.4 si se aplica transformarea U matricei C, i.e.


C = CU T = [ CR CR ] .
3. Se retine partea controlabila Sm = (AR , BR , CR ) a tripletului transformat,
unde
: r, 1 : r), BR = B(1
: r, :)
AR = A(1
este partea controlabil
a a perechii (A, B) iar
: , 1 : r).
CR = C(

C) Sarcini de lucru
1. Se va scrie programul MATLAB pentru implementarea algoritmului de calcul al unei
realizari minimale a unei perechi (A, b) a unui sistem cu o singura intrare si o singura
iesire. Se va compara solutia calculata cu programul propriu cu cea oferita de functia
MATLAB disponibila. Se vor aborda cazurile n care transformarea de asemanare pe
stare este: a) inversabila; b) ortogonala.
2. Se va scrie programul MATLAB pentru implementarea algoritmului de calcul al unei
realizari minimale a unui sistem (A, B, C, D) cu mai multe intrari si mai multe iesiri. Se
vor aborda cazurile n care transformarea de asemanare pe stare este: a) inversabila; b)
ortogonala. Se va compara solutia calculata cu programul propriu cu cea oferita de functia
MATLAB disponibila.
3. Se vor analiza sursele functiilor MATLAB ctrb si ctrbf si minreal si se vor identifica
metodele folosite.

3.5

Calculul realiz
arilor balansate

Principala proprietate a realizarilor balansate este ca transformarea de asemanare se alege astfel


ncat gramienii de controlabilitate si de observabilitate sunt egali cu o matrice diagonala cu
elementele diagonale n ordine descrescatoare. Marimile elementelor diagonale ale gramienilor
reflecta contributia intrarilor vectorului de stare la iesirea sistemului.


3.5. REALIZARI
BALANSATE

15

A) Descriere teoretic
a
Consideram sistemul liniar S = (A, B, C, D). Vom presupune ca sistemul S este stabil.
Definitia 3.4 Se numeste gramian de controlabilitate al sistemului S matricea simetric
a
Zt
eA(t ) BB T eA

Lc (t) :=

(t )

d.

(3.39)

Daca matricea A este asimptotic stabila, atunci limita lim Lc (t) este finita, se noteaza cu
t
Lc si este numita gramian de controlabilitate asimptotic.
Analog se defineste si gramianul de observabilitate.
Gramianul de controlabilitate Lc , respectiv gramianul de observabilitate Lo satisfac ecuatiile
Lyapunov
ALc + Lc AT + BB T = 0
.
AT Lo + Lo A + C T C = 0

(3.40)

Valorile singulare Hankel, hi , ale sistemului S sunt radacinile patrate pozitive ale valorilor
proprii i ale produsului Lc Lo , deci
def

1/2

hi = [i (Lc Lo )]

(3.41)

Vom presupune ca ca hi sunt ordonati descrescator.


Definitia 3.5 Sistemul S se numeste balansat dac
a ambii gramieni sunt egali cu matricea
diagonal
a a valorilor singulare Hankel.
Vom presupune n continuare ca sistemul S este controlabil si observabil. Rezulta ca putem
scrie descompunerile Cholesky ale matricelor Lc si Lo

si

Lc = S T S,

Lc > 0

(3.42)

Lo = RT R,

Lo > 0.

(3.43)

Valorile singulare Hankel se pot exprima n termenii matricelor S si R. Astfel, daca substituim n (3.41) Lc si Lo date de (3.42) si (3.43), atunci multimea valorilor singulare Hankel este
data de
n
1/2 o n T
1/2 o T
{hi } = i S T SRT R
= i RS SRT
= i SR

unde i SRT
este prin definitie multimea valorilor singulare ale produsului SRT .
Consideram descompunerea valorilor singulare (DVS) a matricei SRT
SRT = U V T ,

(3.44)

(3.45)

unde este matricea diagonala a valorilor singulare Hankel. Fie T matricea definita de
T = S T U 1/2 .

(3.46)

16
Se poate verifica imediat ca inversa ei se poate exprima ca
T 1 = 1/2 V T R.

(3.47)

e B,
e C,
e D)
e dat de
Sistemul (A,
e = T 1 AT,
A

e = T 1 B,
B

e = CT,
C

e =D
D

(3.48)

este o realizare balansata a sistemului (A, B, C, D).


fc si L
fo sunt matricele gramian corespunzatoare sistemului (A,
e B,
e C,
e D),
e ele se pot
Daca L
exprima n functie de Lc si Lo n forma
fc = T 1 Lc T T
L

(3.49)

fo = T T Lo T
L

(3.50)

dupa cum se poate verifica imediat prin nlocuire directa n (3.40). Folosind (3.47) si (3.42)
obtinem din (3.49)

fc = 1/2 V T R S T S RT V 1/2 =
L
iar din (3.50) folosind (3.46) si (3.43)

fo = 1/2 U T S RT R S T U 1/2 = .
L

B) Testare numeric
a
In consecinta, o realizare balansata (i.e. cu gramienii de controlabilitate si observabilitate
egali si diagonali) a unei matrice de transfer date T (s) poate fi construita aplicand urmatoarea
procedura.
Algoritmul 3.6 ( Construieste o realizare balansata a sistemului minimal stabil
(A, B, C, D)).
1. Se calculeaza factorii Cholesky S si R astfel ncat Lc = S T S, Lo = RT R
2. Se calculeaza DVS astfel ncat SRT = U V T
3. Se calculeaza T = S T U 1/2 , T 1 = 1/2 V T R.

C) Sarcini de lucru
1. Care credeti ca ar putea fi o posibila utilizare a realizarilor balansate? (ganditi-va la o
posibilitate de a scrie realizari minimale)

Programe MATLAB disponibile


Constructia matricei de controlabilitate R a perechii (A, B) se face cu functia ctrb, care implementeaza algoritmul 3.3, mai precis versiunea acestuia bazata pe formula (3.13). Pentru
constructia formei bloc-superior Hessenberg a unei perechi (A, B) este disponibila functia ctrbf.
Constructia unei realizari minimale se poate face utilizand functia minreal.


3.5. REALIZARI
BALANSATE

17

Bibliografie
[1] Ionescu V., Varga A. Teoria sistemelor - Sinteza robust
a, metode numerice de calcul,
Ed. All, Bucuresti 1994.
[2] Jora B., Popeea C., Barbulea S. Metode de Calcul Numeric n Automatic
a, Ed.
Enciclopedica, Bucuresti 1996.
[3] Van Dooren P. Numerical Linear Algebra for Signals Systems and Control

18

ANEXA
Sectiunea 3.1 Problema 1.
function stabilitate(A)
lambda = eig(A);
alpha = max(lambda);
if (alpha < 0)
disp Sistemul este stabil;
else
disp Sistemul este instabil;
end

Sectiunea 3.1 Problema 3.


% Eliminare gaussiana pentru matricea A
function [A,rez] = gauss(A);
[n,n] = size(A);
rez = 0; %variabila care va indica prezenta unui pivot nul
for k = 1 :

n-1,

if (A(k,k) == 0)
rez = k;
break; %daca am intalnit un pivot nul ies
end
for i = k+1 :

n,

A(i,k) = A(i,k) / A(k,k);


end
for j = k+1 :

n,

for i = k+1 : n,
A(i,j) = A(i,j) - A(i,k)*A(k,j);
end
end
end
% Aplicarea eliminarii gaussiene pentru matricea Hurwitz H
function [H,rez] = gauss Hurwitz(poli)
dim=size(poli);


3.5. REALIZARI
BALANSATE
coeff=dim(2);
% constructia matricei Hurwitz
H=zeros(coeff-1);
for i=1:coeff,
H(1+rem(i,2),ceil(i/2))=poli(i);
end
if (rem(coeff,2) =0)
H(1,ceil(coeff/2)) = 0;
end
for i = 3 :
H(i,:)

coeff-1
= [0 H(i-2,1:coeff-2)];

end
% eliminare gaussiana
[H,rez] = gauss(H);
if (rez > 0)
disp(Am gasit un pivot nul);
end
% Testarea valorilor proprii ale matricei companion
function [r,H,lambda]=companion(poli)
dim=size(poli);
coeff=dim(2);
for i = 2 :

coeff

poli(i) = poli(i)/poli(1);
end
for i = 1 :

coeff-1

r(i) = poli(coeff-i+1);
end
% matricea companion
H = [zeros(coeff-2,1) eye(coeff-2);-r];
lambda = eig(H);

19

20

Sectiunea 3.1 Problema 3.(varianta)


function RA=routh(poli,epsilon);
if (nargin<2),
fprintf(Eroare:

lipsesc paramatri de intrare.);

return
end
%dimensiunea polinomului
dim=size(poli);
%numarul de coeficienti
coeff=dim(2);
%initializarea vectorului Routh
RA=sym(zeros(coeff,ceil(coeff/2)));
%primele doua linii
for i=1:coeff,
RA(2-rem(i,2),ceil(i/2))=poli(i); %liniile 1 si 2
end
%numarul de linii pentru care se calculeaza determinanti
rows=coeff-2;
index=zeros(rows,1);
%vector index de jos in sus
for i=1:rows,
index(rows-i+1)=ceil(i/2);
end
%se parcurg liniile de la a-3a
for i=3:coeff,
if (all(RA(i-1,:)==0)), %linie de zerouri
fprintf(Caz special: Linie de zerouri detectata.);
a=coeff-i+2; %ordinul ecuatiei auxiliare
b=ceil(a/2)-rem(a,2)+1; %numarul coeficientilor auxiliari
temp1=RA(i-2,1:b); %polinomul auxiliar
temp2=a:-2:0; %puterile polinomului auxiliar
RA(i-1,1:b)=temp1.*temp2; %derivata
elseif (RA(i-1,1)==0), %primul element din linie este zero


3.5. REALIZARI
BALANSATE

21

fprintf(Caz special: Primul element este zero.);


RA(i-1,1)=epsilon; %inlocuieste cu epsilon
end
%calculeaza elementele vectorului Routh
for j=1:index(i-2),
RA(i,j)=-det([RA(i-2,1) RA(i-2,j+1);
RA(i-1,1) RA(i-1,j+1)])/RA(i-1,1);
end
end

Sectiunea 3.2 Problema 1


H=tf([0 1],[0 1];[0 -6],[1 -2],[0 1 -2 1],[0 1 2 -3];[1 5 3 -9],[0 1 6 9]);
sys = ss(H);
A = sys.a
B = sys.b
C = sys.c
D = sys.d

Sectiunea 3.2 Problema 2


A=[0 0 1 0;1 0 2 0;0 1 3 1;0 0 -21 5];
B=[1 0;0 0;0 0;0 1];
C=[1 5 4 1];
D=[0 0];
[num1,den1] = ss2tf(A,B,C,D,1)
[num2,den2] = ss2tf(A,B,C,D,2)

Sectiunea 3.2 Problema 4


% Constructia realizarii standard observabile in cazul SISO
function [A o,B o,C o,D o] = obsv siso(num,den)
[n] = length(den);
[m] = length(num);
if (m > n)
disp (functie improprie);
else

22
if (m == n)
[q,r] = deconv(num,den);
D o = q;
num = r(2:length(r));
else
D o = 0;
end
A o(:,1) = -den(2:length(den))
A o(1:n-2,2:n-1) = eye(n-2);
A o(n-1,2:n-1) = zeros(1,n-2);
B o = num;
C o(1,1) = 1;
C o(1,2:n-1) = zeros(1,n-2);
end
% Constructia realizarii standard observabile in cazul MIMO
function [A,B,C,D] = obsv MIMO(T)
[p,m] = size(T)
[num,den] = tfdata(T(1,1),v);
% initializare cmmmc
f = den;
for i = 1 :

p,

for j = 1 :m,
[num,den] = tfdata(T(i,j),v);
f = deconv(conv(f,den),PolyGcd(f,den));
end
end
for i = 1 :

p,

for j = 1 :m,
[num,den] = tfdata(T(i,j),v);
tmp = deconv(num,den);
D(i,j) = tmp(1);
[num1,den1] = tfdata(T(i,j)-D(i,j),v);
N(i,j) = tf(conv(deconv(f,den1),num1),1);
end
end
dim=size(f);


3.5. REALIZARI
BALANSATE
n=dim(2);
% constructia lui B
l=1;
while (l<n)
for i = 1 :

p,

for j = 1 :m,
[num,den] = tfdata(N(i,j),v);
var=zeros(1,1);var(1)=1;
tmp = deconv(num,var);
B((l-1)*p+i,j) = tmp(length(tmp));
end
end
l = l+1;
end
% constructia lui A
A = zeros(p*(n-1),p*(n-1));
for i = 2 :

n-1

A(p*(i-1)+1:p*i,(i-2)*p+1:(i-1)*p)=eye(p);
end
for i = 1 :

n-1

A(p*(i-1)+1:p*i,p*(n-2)+1:p*(n-1))=-f(n-i+1)*eye(p);
end
% constructia lui C
C = zeros(p,p*(n-1));
C(:,p*(n-2)+1:p*(n-1))=eye(p);
function g = PolyGcd(b,a)
% cmmdc(a,b)
p2 = b; p3 = a;
while(1);
p1 = recast(p2);
p2 = recast(p3);
[qc,rc] = deconv(p1,p2);
p3 = recast(rc);
if norm(p3,inf) < 1.e-6; break; end

23

24
end
g = p2;
function [q,v] = recast(p)
% impartirea elementelor unui vector prin cmmdc
v = norm(p,inf);
if abs(p) == 0; q = abs(p); v = 1; return; end;
if length(p) > 1;
for j = 1:length(p), v = gcd(v,p(j)); end;
end;
q = p/v;
if p(1)

= 0; q=q*sign(p(1)); end;

Sectiunea 3.3 Problema 1


a)
A = diag([1:20]) + diag(ones(1,19),-1)*20;
b = [20;zeros(19,1)];
R = ctrb(A,b);
svd(R)
Obtinem urmatorul rezultat
ans =
2.6110e+28
2.1677e+28
.
.
.

4.0545e+04
7.8271e+01
2.0000e+01
care indica o matrice singulara.
b) Folosind C2 obtinem ca rang pentru valoarea proprie 20 (cel mai rau caz):
svd([A-20*eye(size(A)),b])
ans =


3.5. REALIZARI
BALANSATE

25

3.6313e+01
.
.
.

5.9214e+00
solutie care este departe de a fi singulara.
Aceasta arata ca testul bazat pe calculul rangului matricei de controlabilitate nu este de
ncredere.
c) Si testul C2 sufera de dificultati n cazul matricei date A. Daca perturbam A n pozitia
(1, 20) cu o valoare = 1012 atunci valorile proprii si vor schimba prima si/sau a doua cifra
seminificativa. Ca o consecinta, testul C2 nu se va efectua folosind valorile proprii reale ale
ci unele puternic perturbate. Acest calcul este independent de vectorul b. Daca
matricei A,
luam un vector b astfel
a, i.e.,
ncat o anume valoare proprie, de exmplu 1, nu este controlabil
0
rank A I | b < 20, ca de exemplu b = [1e401e401e401e40zeros(1, 16)] atunci testul
C2 aplicat valorii proprii calculate a lui A va da rezultate complet eronate.
A = diag([1:20]) + diag(ones(1,19),-1)*20;
A(1,20) = 1e-12;
b=[1e40 1e40 1e40 1e40 zeros(1,16)];
rank([A-eye(20) b])
vp = eig(A)
for i = 1 :

length(vp),

rank([A-vp(i)*eye(20) b])
end
rank(ctrb(A,b))
b) este necontrolabila pentru
d) Acelasi lucru poate fi spus si despre testul C3. Daca (A,
valoarea proprie = 1, atunci o reactie f nu va putea muta valoarea proprie = 1 n A + bf .
sunt atat de sensibile este foarte putin posibil
Totusi pentru ca valorile proprii ale lui A (si A)
ca A si A + bf sa aiba o valoare proprie foarte apropiata de = 1.
Eigenvalues i (A)
.32985 j1.06242
.92191 j3.13716
3.00339 j4.80414
5.40114 j6.17864
8.43769 j7.24713
11.82747 j7.47463
15.10917 j6.90721
18.06886 j5.66313
20.49720 j3.81950
22.06287 j1.38948

Eigenvalues i (A + bf )
.99999
8.95872 j3.73260
5.11682 j9.54329
.75203 j14.148167
5.77659 j15.58436
11.42828 j14.28694
13.03227 j12.90197
18.59961 j14.34739
23.94877 j11.80677
28.45618 j8.45907
32.68478

K(bb; A i I)
.002
.004
.007
.012
.018
.026
.032
.040
.052
.064

26
Tabelul a fost obtinut pentru testele C2 si C3 folosind b si A ca n enunt. In loc de a
perturba un element al matricei A folosim o transformare ortogonala oarecare Q pe spatiul
b). Valorile proprii rezultate pentru A + bf pentru un f oarecare
starilor asupra sistemului (A,

si numerele de conditionare ale b | A i I n valorile proprii calculate i ale matricei A


sunt date n Tabelul 3.1. Precizia masina folosita pentru test a fost 108 .
A = diag([1:20]) + diag(ones(1,19),-1)*20;
b = [0 ones(1,19)];
T = orth(rand(20));
A = T*A*T;
b = T*b;
eigs = eig(A+b*rand(1,20))
for i = 1:length(eigs)
rank([A-eigs(i)*eye(20) b])
svds = svd([b A-eigs(i)]);
k = svds(1)/svds(length(svds))
end

Cand se folosesc n loc de i A , valorile corecte i (A), testul C2 da ca rezultat b |


10

18

, care indica faptul ca problema o constituie sensibilitatea valorilor proprii.

A 1 I

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