Sunteți pe pagina 1din 15

Partea a I-a: METODE DE CALCUL NUMERIC

2











3
1 Metode directe pentru sisteme de ecuaiil liniare
n aceast seciune sunt descrise metode pentru rezolvarea unui sistem de ecuaii
liniare de forma b Ax = , unde ) (
ij n n
a A =

, ) (
1 j n
b b =

, cu R b a
j ij
, , n j i ,..., 1 , = ,
iar ) (
1 j n
x x =

este matricea coloan a necunoscutelor. Se va lucra n ipoteza c


determinantul lui A este nenul, adic sistemul are soluie unic.
O metod direct pentru rezolvarea unui sistem de ecuaii liniare este metoda care
dup un numr finit de pai d soluia exact (exceptnd erorile de rotunjire). Aceste
metode sunt eficiente cnd A este dens. Dac A este rar atunci adesea este
preferabil s se utilizeze metode iterative.
1.1 Sisteme triunghiulare
n situaia n care matricea sistemului este triunghiular, rezolvarea sistemului este
imediat. ntr-adevr, fie sistemul b Ux = , unde U este o matrice superior
triunghiular:

=
= +
= + +

n n n
n n n n n n n
n n
b x u
b x u x u
b x u x u


.. .......... .......... .......... ..........
...... .......... ..........
1 , 1 1 1 , 1
1 1 1 11

Dac 0
ii
x , n i ,..., 2 , 1 = atunci soluia sistemului se poate calcula cu recurenele
urmtoare:
n n
n
n
u
b
x
,
=
1 ,..., 2 , 1 ,
,
1
=

=

+ =
n n i
u
x u b
x
i i
n
i k
k ik i
i
.
Soluia sistemului se calculeaz prin substituie napoi.
Dac b Lx = i Leste inferior triunghiular i 0
ii
l , n i ,..., 2 , 1 = atunci se aplic
urmtoarele relaii de recuren
11
1
1
l
b
x =
i i
i
k
k ik i
i
l
x b b
x
,
1
1

= , n i ,..., 2 =
realizndu-se cu substituie nainte.
Algoritmii prezentai n continuare vizeaz aducerea matricii A a sistemului la una
din formele triunghiulare anterioare.
4
1.2 Algoritmul lui Gauss
Ideea de lucru a algoritmului lui Gauss este de a face transformri sistematice care
aduc sistemul la forma triunghiular.
1.2.1 Aducerea la forma triunghiular
Fie sistemul b Ax = ,
n n ij
a A

= ) ( ,
1
) (

=
n i
b b , R b a
i ij
, , n j i ,..., 1 , = , cu
0 det A . Forma explicit a sistemului este

= + +
= + +
+
+
1 , 1 1
1 , 1 1 1 11
...
...
n n n nn n
n n n
a x a x a
a x a x a
M
unde
i n i
b a =
+1 ,
, n i ,..., 1 = .
Fie ] : [ b A A = matricea extins a sistemului obinut prin adugarea lui b dup
ultim coloan a lui A . Asupra lui A se execut transformri elementare constnd n
nmulirea unei linii cu un scalar i adunarea acesteia la alt linie cu scopul de a anula
elementele aflate sub diagonala principal.
S presupunem c sub primele 1 k elemente de pe diagonala principal s-au realizat
zerouri i acionm n continuare cu linia k asupra unei linii i ( n k i ,..., 1 + = ) pentru
a anula toate elementele de pe coloana k aflate sub
kk
a . Matricea A naintea aciunii
liniei k este prezentat n fig. 1.

A=
-

+
+
+
+
+
+
1 , , , ,
1 , ,
1 , ,
1 , 3 , 3 3 3 33
1 , 2 , 2 2 2 23 22
1 , 1 , 1 1 1 13 12 11
. . . . . . 0 . . 0 0 0
. . . . . . . . . . . . . . . .
. . . . . . 0 . . 0 0 0
. . . . . . . . . . . . . . . .
. . . . . . 0 . . 0 0 0
. . . . . . . . . . . . . . . .
. . . . . . . . . 0 0
. . . . . . . . . 0
. . . . . . . . .
n n n n j n k n
n i n i ij ik
n k n k kj kk
n n j k
n n j k
n n j k
a a a a
a a a a
a a a a
a a a a a
a a a a a a
a a a a a a a
0

Fig. 1.

Pentru a anula elementul din poziia ) , ( k i se nmulete linia k cu , se adun la
linia i , fiind ales astfel nct 0 = +
ik kk
a a , adic
kk
ik
a
a
= , unde s-a presupus
c 0
kk
a . Aadar dup aceast transformare
ik
a se anuleaz iar celelalte elemente
de pe linia i se schimb conform relaiei:
5

kj ij ij
a a a + = , 1 ,..., 1 + + = n k j .
Prin urmare algoritmul lui Gauss este:
pentru fiecare 1 ,..., 2 , 1 = n k se execut:
pentru fiecare n k i ,..., 1 + = se execut:

kk
ik
a
a
= ;
0 =
ik
a ;
pentru fiecare 1 ,..., 1 + + = n k j se execut:

kj ij ij
a a a + =
n final rezult un sistem echivalent cu cel iniial i care este superior triunghiular:

=
= + +
= + +
+
+
+
1 ,
1 ,
1 , 1 1 1 11
.
......
... .......... ..........
n n n nn
n i n in i ii
n n n
a x a
a x a x a
a x a x a
,
1.2.2 Strategii de pivotare
Pentru calculul valorii
kk
ik
a
a
= , s-a presupus c 0
kk
a .
S studiem cazul n care 0 =
kk
a sau, mai general cnd <
kk
a , unde este un
numr pozitiv foarte mic. Situaiile n care <
kk
a vor fi asimilate din punct de
vedere practic cu o valoare nul a lui
kk
a , conducnd la valori foarte mari ale lui
care sunt imposibil de reprezentat n memoria calculatorului. n acest caz se determin
acel indice de linie
max
i pentru care
{ } n k i a a
k i k i
,..., / max
, ,
max
= = .
Dac
h i
a
,
max
atunci schimbm linia k i
max
i ntre ele, apoi calculm i
continum algoritmul. n acest fel este asigurat faptul c pivotul are valoare
absolut maxim ceea ce mbuntete precizia cci mprirea se va face printr-un
numr cu modul maxim ntre cele disponibile.
Dac <
h i
a
max,
atunci <
ik
a , 1 ,..., = n k i i putem considera c de fapt
matricea A are n acest stadiu forma artat n fig. 2:

6

+
+
+
+
+
+
1 , , , ,
1 , ,
1 , ,
1 , 3 , 3 3 3 33
1 , 2 , 2 2 2 23 22
1 , 1 , 1 1 1 13 12 11
. . . . . . 0 . . 0 0 0
. . . . . . . . . . . . . . . .
. . . . . . 0 . . 0 0 0
. . . . . . . . . . . . . . . .
. . . . . . 0 . . 0 0 0
. . . . . . . . . . . . . . . .
. . . . . . . . . 0 0
. . . . . . . . . 0
. . . . . . . . .
n n n n j n k n
n i n i ij ik
n k n k kj kk
n n j k
n n j k
n n j k
a a a a
a a a a
a a a a
a a a a a
a a a a a a
a a a a a a a
0
0
0
0
A=
-
B
k

Fig.2

Deoarece 0 det ... ) det(
1 , 1 11
= =
k k k
B a a A , putem decide c practic A este singular
i algoritmul se ntrerupe. Strategia prezentat se numete pivotare parial.
Este de remarcat faptul c precizia rezultatelor este cu att mai bun cu ct
kk
a are o
valoare absolut mai mare. n acest scop, se poate lrgi domeniul din care se caut
candidaii n tot blocul format din elementele submatricei
k
B din fig. 2.
Extinderea pivotrii i la coloanele n k ,..., 1 + se numete pivotare total. n cadrul
acesteia se aleg
max
i i
max
j astfel nct
{ } n k j i a a
ij j i
,..., , max
max max
= =
i se schimb ntre ele liniile k i
max
i i respectiv coloanele k i
max
j .
n practic, pivotarea parial este satisfctoare n timp ce pivotarea total este
folosit mai rar pentru c reclam resurse de timp mai mari.
Pivotarea mrete acurateea datorit faptului c evit mpririle prin numere de
modul mic care reduc precizia calculelor. O alt tehnic de a mri acurateea este
normalizarea potrivit creia fiecare ecuaie se mparte la cel mai mare coeficient n
valoare absolut din acea ecuaie.
Combinaia dintre pivotarea parial i normalizare are anse mari s dea rezultate
bune.
Dou cazuri importante cnd nu este necesar pivotarea sunt:
dominana diagonal exprimat prin condiiile

n
i j
j
ij ii
a a
1
, n i ,..., 1 =
i simetria i pozitiva definire a lui A , adic
A A
T
=
0 > Ax X
T
0 X .
Criteriul lui Sylvester. caracterizeaz pozitiv definirea unei matrice. Anume, o
matrice simetric
n n
A

este pozitiv definit dac i numai dac
7
0 ) det( >
k
A , n k ,..., 1 =
unde
kk k
k
k
a a
a a
A
...... ..........
..... .......... ..........
...... ..........
1
1 11
= .
Remarc. Pozitiva definire va fi folosit tiind c este satisfcut apriori de o matrice,
prin caracterul problemei i nu prin verificare numeric.
1.2.3 Aplicaii ale metodei lui Gauss.
1.2.3 .1 Calculul determinantului unei matrice.
Pentru a calcula ) det( A se aduce matricea A la forma triunghiular. Dac forma
lui A dup aceasta este:
(
(
(
(
(

=
nn
n
n
a
a a
a a
A
0
:
.. ..........
.......... ..........
2 22
1 11

atunci
S
nn
a a A ) 1 ( .... det
11
= , unde S este numrul de schimbri de linii dac s-au
realizat pivotri pariale.
Desigur, dac n timpul aplicrii algoritmului lui Gauss, dup executarea pivotrii
textul <
kk
a (cu avnd o valoare prestabilit pozitiv i mic) atunci conchidem
c n limita acurateei indicate de , 0 det = A .
Observaie. p sisteme cu aceeai matrice A ,
p r
b Ax = , p r ,..., 1 = pot fi tratate
simultan.
1.2.3 .2 Rezolvarea unor sisteme cu aceeai matrice. Fie
) ( ) 2 ( ) 1 ( ) (
,...,
r i
b Ax b Ax = = ,
r sisteme de cte n ecuaii cu n necunoscute unde
h
x , r h , 1 = , este coloana
necunoscutelor sistemului h , r h ,..., 1 = . Toate sistemele au aceeai matrice A . Cu
matricea A i coloanele termenilor liberi din cele r sisteme se formeaz matricea
extins ' A asociat celor r sisteme
| |
r 2 1
b : .... : b : : A ' b A =
sau
|
|
|
.
|

\
|
=
rn 2n 1 1
r1 21 11 1 11
b b .........
: : :
b b .........
'
n nn n
n
b a a
b a a
A
r r
A

, ) (
ri r
b b =
Se aplic algoritmul lui Gauss asupra matricei ' A i apoi se rezolv cele r sisteme
triunghiular superioare cu aceeai matrice triunghiular iar ca termeni liberi coloana
corespunztoare din ' A rezultat n urma transformrilor aplicate de algoritmul lui
Gauss.
8
1.2.3 .3 Calculul inversei unei matrice.
Fie X coloana i din
1
A , adic
| |
n
X X X A ...
2 1
1
M =


i fie
i
e coloana i din matricea unitate de ordinul n , adic
| |
n n
e e e I ...
2 1
M =
Din relaia pe care o satisface
1
A , adic
n
I A A =
1
se obin n sisteme de ecuaii
liniare avnd aceeai matrice A ;
1 1
e AX =
n n
e AX = .
Aplicnd procedura anterioar putem determina soluiile celor n sisteme care sunt
tocmai coloanele matricei
1
A .
Reducerea complexitii pentru matrice simetrice
Numrul de operaii aritmetice se poate reduce pe baza urmtoarei propoziii.
Propoziie.Dac eliminarea Gauss se face fr interschimbri i A este simetric
atunci
) ( ) ( k
ji
k
ij
a a = , i k < , n j , unde
) (k
ij
a reprezint matricea obinut naintea
efecturii iteraiei k , (a acionrii cu linia k asupra liniilor de sub ea).
Demonstraie. Afirmaia adevrat pentru 1 = k , cci
ij ij
a a =
) 1 (
.
Presupunem c afirmaia este adevrat pentru k i o demonstrm pentru 1 + k :
= =
+ ) (
) (
) (
) ( ) 1 ( k
kj
k
kk
k
ik k
ij
k
ij
a
a
a
a a
= =
) (
) (
) (
) ( k
jk
k
kk
k
ki k
ji
a
a
a
a
) 1 ( ) (
) (
) (
) ( +
= =
k
ji
k
ki
k
kk
k
jk k
ji
a a
a
a
a
n consecin, numrul de operaii se reduce la jumtate.
1.3 Factorizarea LU
Fie b Ax = i se caut o descompunere a lui A n dou matrice L i U , unde L
este inferior triunghiular, iar U superior triunghiular astfel nct
LU A = , aadar sistemul b LUx = este echivalent cu

=
=
y Ux
b Ly
. Dac s-a rezolvat
descompunerea LU atunci rezolvarea sistemului b LUx = revine la rezolvarea
sistemului b Ly = cu vectorul necunoscut y urmat de rezolvarea sistemului
y Ux = .
9
Teorema LU. Fie
n n
A

o matrice dat i fie
k
A , matricea de tip k k format din
primele k linii i k coloane din A . Dac 0 ) det(
k
A , 1 ,..., 1 = n k atunci exist o
unic matrice L cu 1 =
ii
m , n i ,..., 2 , 1 = i o unic matrice U astfel nct A LU = .
Demonstraie. Demonstraia se faceprin inducie dup n . Pentru 1 = n
descompunerea
11 11
1 a a = este unic. Presupunem afirmaia adevrat pentru
1 = k n . Pentru k n = se partiioneaz
k
A ,
k
L i
k
U astfel:

|
|
.
|

\
|
=

kk
T
k
k
a c
A
A

d
1
,
|
|
.
|

\
|
=

1
0
1
T
k
k
m
L
L ,
|
|
.
|

\
|
=

kk
k
k
u
u U
U
0

1

unde U , c , m, u sunt vectori coloan cu 1 k componente. Efectund produsul
k k
U L i egalndu-l cu
k
A , se obine

= +
=
=
=


kk kk
T
T
k
T
k
k k k
a u u m
c U m
b u L
A U L
1
1
1 1 1
.
Din ipotez
k
L i
k
U sunt unice i din
1 1 1
=
k k k
U L A , obinem
0 det det det
1 1 1
=
k k k
U L A de unde rezult c u i m exist i sunt unice. De
aici rezult i c
kk
u i
k
L i k sunt unice.
Observaie. Dac 0 det =
k
A pentru un anumit k , descompunerea poate s nu existe.
1.3.1 Algoritmul de descompunere LU
Factorizarea lui LU a matricei A se poate realiza ca n continuare. Presupunem c
nu sunt necesare interschimbri i dac ) (
ij
l L = i ) (
ij
u U = atunci
(
(
(
(
(
(

=
(
(
(
(
(
(

(
(
(
(
(
(

nn n
n
n
nn
n
n
n n n
a a
a a
a a
a a
u
u u
u u u
u u u u
l l l
l l
l
...... ..........
...... .......... ..........
... .......... ...
...... ..........
....... ..........
......... 0 0 0
.......... .......... ..........
...... . 0 0
....... 0
........
1 .........
......... .......... ..........
0 .......... 1
0 .......... 0 1
0 .......... 0 0 1
1
3 31
2 21
n 1 11
3 33
2 23 22
n 1 13 12 11
3 2 1
31 31
21


Din condiia A LU = obinem un sistem de
2
n ecuaii cu necunoscutele
ij
l i
ij
u (n
numr de
2
n ). Determinarea necunoscutelor se face ca n continuare. n prima etap,
inmulind prima linie din L pe rnd cu coloanele lui U obinem:

j j
a u
1 1
= , n j ,..., 1 = .
Se nmulesc apoi liniile n ,..., 2 din L cu prima coloana din U i se obin relaiile

11
1
1
u
a
l
i
i
= , n i ,..., 2 = .
10
n etapa a doua, se nmulete a doua linie din L cu coloanele n ,..., 2 din U ,
obinndu-se:

j j j
a u u l
2 2 1 21
= +
de unde:

j j j
u l a u
1 21 2 2
= , n j ,..., 2 = .
Apoi se nmulesc liniile lui L cu excepia primelor dou cu a doua coloan din U
obinndu-se

2 22 2 12 1 i i i
a u l u l = +
de unde obinem
22
12 1 2
2
u
u l a
l
i i
i

= , n i ,..., 3 = .
n general, se determin alternativ linia r din U din relaia

=
=
1
1
r
k
kr rk rj rj
u l a u , n r j ,..., =
i coloana r din L cu relaia

=
=
1
1
r
k
kr ik ir ir
u l a l , n r i ,..., 1 + = .
Procedura de mai sus este cunoscut sub numele de algoritmul lui Doolitle.
1.3.2 Echivalena ntre descompunerea LU i eliminarea Gauss
Eliminarea Gauss se poate gndi ca determinarea unei secvene de matrice
) ( ) 2 ( ) 1 (
,..., ,
n
A A A A = , unde :

|
|
|
|
|
|
|
|
.
|

\
|
=
) ( ) (
) ( ) (
) 2 (
2
) 2 (
22
) 1 (
1
) 1 (
12
) 1 (
11
) (
........

........
...... ..........
..... ..........
k
nn
k
nk
k
kn
k
kk
n
n
k
a a
a a
a a
a a a
A
M
O
O
.
.
Fie un anumit
ij
a n timpul eliminrii:
dac
ij
a este pe sau deasupra diagonalei principale ( j i ) atunci
j i a a a
i
ij
i
ij
n
ij
= = =
+
, ... ..........
) ( ) 1 ( ) (

dac
ij
a este sub diagonala principal ( j i > ) atunci
0 ... ..........
) 1 ( ) (
= = =
+ j
ij
n
ij
a a .
0
11
Deci, elementele
ij
a sunt transformate pentru ) , 1 min( ,... 2 , 1 j i r k = = conform cu
urmtoarea ecuaie:

) ( ) ( ) 1 ( k
kj ik
k
ij
k
ij
a m a a =
+
.
Sumnd aceste relaii pentru r k ,..., 1 = , se obine:

=
+
= =
+
= =
r
k
k
kj ik ij
r
ij
r
k
k
ij
r
k
k
ij
a m a a a a
1
) ( ) 1 (
1
) (
1
) 1 (
.
Aceasta se poate scrie ca:

> +
+
=

=
r) (def. lui j i a m
j i a m a
a
j
k
k
kj ik
i
k
k
kj ik
i
ij
ij
, 0
,
1
) (
1
1
) ( ) (
.
Dac se ia 1 =
ii
m , n i ,..., 1 = rezult

=
=
p
k
k
kj ik ij
a m a
1
) (
, ) , min( j i p = .
Dar aceste ecuaii sunt echivalente cu U L A = unde elementele diferite de zero din
L i U sunt date respectiv de
( ) ( )
) (

k
kj kj ik ik
a U k i m L = = .
S observm c
ik
m pot fi puse n locul elementelor lui A care devin nule i astfel
rezult o metod pentru calculul descompunerii LU . n final se obine matricea

(
(
(
(
(

nn n n n
n
n
m m m
u u m
u u u
1 , 1
2 22 21
1 12 11
L
O O M
L
K
.

Observaie.
) ( ) 2 (
22
) (!
11
........ ) det(
k
nn k
a a a A = i deci este egal cu produsul primelor k
pivoi. Rezult c eliminarea Gauss se poate face fr schimbri de linii sau coloane
dac 0 ) det(
k
A , 1 ,..., 1 = n k care este condiia din teorema LU .
12
Exerciii
1. S se rezolve manual prin aducere la forma triunghiular superioar sistemul:

= +
= + +
= +
1 2 3
6
1 2
z y x
z y x
z y x


2. S se realizeze un program C care s implementeze metoda lui Gauss. Se dau: n ,
ij
a ,
i
b cu n j i ,..., 1 , = , tolerana eps i se cer valorile necunoscutelor
i
x , atunci
cnd A este considerat nesingular, sau un mesaj corespunztor n caz contrar.
Funciile utilizate de program au respectiv urmtoarele caracteristici:
funcia citdate citete datele de intrare i genereaz matricea extins A ;
valori returnate prin nume: nimic;
parametrii: pointer la ntreg pentru n;
pointer la real pentru transmiterea lui A ;
Funcia rezsist decide singularitatea i rezolv sistemul
valori returnate prin nume : nimic;
parametrii:
int pentru transmiterea lui n;
float [][] pentru A ;
pointer la char pentru transmiterea indicatorului de singularitate;
float [] pentru transmiterea soluiei;
Funcia afiare afieaz un mesaj de singularitate sau soluia sistemului (cnd
aceasta exist)
valori returnate : nimic;
parametrii:
char pentru indicatorul de singularitate;
int pentru n;
float [] pentru comunicarea lui x;
Testai programul pentru sistemul cu urmtoarea matrice extins:
(
(
(

=
16 : 5 0 2
21 : 7 3 5
17 : 3 1 2
A ,
pentru care sistemul corespunztor are soluia x
1
=2; x
2
=-1;x
3
=4.
Testai de asemenea programul pentru sistemul cu urmtoarea matrice extins:
(
(
(

=
4 : 4 2 7
21 : 7 3 5
17 : 3 1 2
A
i interpretai rezultatele.
Soluie.
#include<stdio.h>
#include <math.h>
void citdate(int *,float a[][]);
void rezsist(int,float a[][],char *,float x[]);
13
void afisare(char,int,float*);
main ()
{int n;
float a[10][11],x[10];
char is;
citdate(&n,a);
rezsist(n,a,&is,x);
afisare(is,n,x);
}
void citdate(int *m,float a[10][11])
{int i,j;
float z;

printf(" Dati valoarea lui n(2-10)");
scanf ("%d",m);
for(i=0;i<*m;i++)
{for(j=0;j<*m;j++)
{printf("\n Dati a(%d,%d):",i,j);
scanf("%f",&z);
a[i][j]=z;

}
}
for(i=0;i<*m;i++)
{printf("\n Dati b(%d):",i);
scanf("%f",&z);
a[i][*m]=z;
}
}
void afisare(char is,int n,float x[10])
{int i;
if(is==1)
printf("\n A este singulara");
else
{for(i=0;i<n;i++)

printf("\n x(%d)=%6.3f",i,x[i]);
}
return;
}
void rezsist(int n,float a[10][11],char *is,float x[11])
{
float el,lambda,max,eps=0.0001;
int i,k,j,imax;
for (k=0;k<=n-2;k++)
{

max=fabs(a[k][k]);
imax=k;
for(i=k+1;i<=n-1;i++)
{if(max<fabs(a[i][k]) )
{imax=i;
max=fabs(a[i][k]);
}
}
if(max<eps){*is=1;return;}
else *is=0;
if (imax!=k)
{for(j=k;j<=n;j++)
{el=a[k][j];
14
a[k][j]=a[imax][j];
a[imax][j]=el;
}
}

for(i=k+1;i<=n-1;i++)
{lambda=-a[i][k]/a[k][k];
a[i][k]=0;
for(j=k+1;j<=n;j++)
a[i][j]+=lambda*a[k][j];
}
};
if(fabs(a[n-1][n-1])<eps) {*is=1;return;}
x[n-1]=a[n-1][n]/a[n-1][n-1];
for(i=n-2;i>=0;i--)
{el=0;
for(j=i+1;j<=n-1;j++)
el+=a[i][j]*x[j];
x[i]=(a[i][n]-el)/a[i][i];
}
for(i=0;i<n;i++)
{printf("\n");
for(j=0;j<=n;j++)
printf("\t%6.3f",a[i][j]);

}
return;
}

3. S se rezolve prin aducere la forma triunghiular superioar sistemul a crui
matrice extins este:
(
(
(
(


4 5 1 3 2
2 3 1 2 1
1 0 2 1 1
3 2 1 1 1
.

4. Aflai valoarea funciei liniare z y x z y x f 4 3 2 ) , , ( + + = pentru soluia sistemului
de la ex. 1, fr a rezolva sistemul.

5. S se construiasc o funcie care s primeasc o matrice ptratic A de tip n n
( } 10 ,..., 2 { n ) de numere reale i s se returneze valoarea determinantului. Tolerana
eps va fi o constant nglobat n corpul funciei

6.S se realizeze o funcie n C care s rezolve r sisteme de ecuaii liniare cu aceeai
matrice A , folosind metoda bazat pe algoritmul lui Gauss. S se testeze programul
pentru cazul 2 = r i sistemul

=
=
) 2 ( ) 2 (
) 1 ( ) 1 (
b Ax
b Ax
,
unde
15
(
(
(

=
4 2 7
7 3 5
3 1 2
A ,
(
(
(

=
4
21
17
) 1 (
b i
(
(
(

=
8
42
34
) 2 (
b

7.S se realizeze un program C care s inverseze o matrice ptratic . programul va
conine o funcie care are ca parametru de intrare dimensiunea n a matricii A de
numere reale ce trebuie inversat, iar ca parametru de ieire un indicator de
singularitate, matricea invers
1
A , precum i
n
I AA
1
, unde
n
I este matricea
unitate de dimensiune n iar
2 / 1
1 ,
2
|
|
.
|

\
|
=

=
n
j i
ij
x X ,
n n ij
x X

= ) ( .

8. S se implementeze algoritmul Doolitle pentru factorizarea LU i s se testeze
programul pentru sistemul de la ex. 3.

9. Implementai pivotarea total n funcia rezsist;

10 Realizai o funcie care s calculeze b Ax unde x este soluia oferit de
programul anterior iar norma este definit astfel:

=
=
n
j i
ij
x X
1 ,
2
2
, ) (
ij nxn
x X = . Interpretai valoarea normei b Ax i rulai
programul completat cu aceast funcie pentru sistemul de la ex. 3 n urmtoarele
condiii: (1) fr pivotare; (2) cu pivotare parial; (3) cu pivotare total, (4) cu
pivotare total i normalizare. Cum explicai rezultatele ?

11. Evaluai numrul de operaii aritmetice (adunri, scderi, inmuliri, mpriri)
cerute de:
a. algoritmii de rezolvare a sistemelor triunghiulare;
b. algoritmul de eliminare al lui Gauss;
c. algoritmul lui Doolitle.

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