Documente Academic
Documente Profesional
Documente Cultură
DATE
Cabinet: 431
Email: cristian.bologa@econ.ubbcluj.ro
c_bologa@yahoo.com
TEMATICA:
Rezolvarea numerica a ecuatiilor algebrice si transcendente; Calcul matricial
Rezolvarea sistemelor de ecuatii algebrice liniare
Complexitatea algoritmilor
Algoritmi de sortare
Recursivitate
Backtracking
Divide et Impera
Greedy
Metode euristice
Structuri de date -aspecte generale; Fisierul, Tabloul, Tabela de dispersie,
Lista liniara simplu inlantuita
Lista liniara dublu inlantuita
Structura de tip stiva
Structura de tip coada
Grafuri neorientate si orientate
Arbori
?
Bibliografie:
x+sin(x) = 0
ex 1 = 0 ->ec transcendente
Daca o functie continua f(x) admite valori de semn contrar la capetele unui
interval [a,b], adica f(a)f(b)<0 atunci n intervalul [a,b] se gaseste cel putin o
radacina a ecuatiei f(x)=0 (mai precis un numar impar de radacini).
Metode de rezolvare:
o metode de partiionare se pornete de la un interval n care se gete
soluia, iar acest interval se ngusteaz treptat, pn la atingerea unei precizii
date.
o metode de aproximare succesiva se porneste de la o aproximare initiala,
care se mbunatateste n pasi succesivi. Daca procesul este convergent, vom
putea obtine o solutie aproximativa ce sa atinga o precizie data.
Cap.4 Rezolvarea numerica a ecuatiilor
algebrice si transcendente
START
CITESTE
a,b
DA a=0 NU
DA b=0 NU x= -b / a
ecuatie ecuatie
nedeterm impos ec gr 1 cu
sol, x
STOP
Cap.4 Rezolvarea numerica a ecuatiilor
algebrice si transcendente
CITESTE
a,b,c
DA a=0 NU
D=b*b-4*a*c
DA b=0 NU
X = -c / b DA D>0 NU
DA c=0 NU
b d
x 1,2 = DA D=0 NU
Scrie Scrie 2a
Scrieec gr
ecuatie ecuatie
1 cu sol, x b
nedeterm impos b
Scrie ec gr x1, 2 = re =
2a 2a
2 cu sol,
x1 , x2
d
Scrie ec gr 2 im =
2a
cu sol egale,
x1 , x2
Scrie ec gr 2 cu
sol imaginare
x1, 2 = re i * im
STOP
Cap.4 Rezolvarea numerica a ecuatiilor
algebrice si transcendente
#include<stdio.h>
#include<math.h> //pentru funcia sqrt()
#include<conio.h>
void main(void)
{ float a,b,c,x,re,im,d;
scanf("%f %f %f",&a,&b,&c);
if(!a)
if(!b)
if(!c) printf("Ecuatie nedeterminata!\n");
else printf("Ecuatie imposibila!\n");
else printf("Ecuatie gradul 1 cu solutia x=%f\n",-c/b);
else
{ d=b*b-4*a*c;
if(d>0) printf("Ecuatie cu solutii distincte x1=%f, x2=%f\n",(-b-sqrt(d))/(2*a), (-
b+sqrt(d))/(2*a));
else if(!d) printf("Ecuatie cu solutie dubla x1=x2=%f\n",-b/(2*a));
else
{ re=-b/(2*a);im=sqrt(-d)/(2*a);
printf("Ecuatie cu solutii imaginare x1=%f+i*%f, x2=%f-i*%f\n",re,im,re,im);
}
}
getch();
}
Cap.4 Rezolvarea numerica a ecuatiilor
algebrice si transcendente
f(b)
Y-Axis
f(c)
a
c=(a+b)/2
X-Axis b
f(a)
noul
c
Cap.4 Rezolvarea numerica a ecuatiilor
algebrice si transcendente
START
CITESTE
a,b,f,e
Nu f(a)*f(b)<0 Da
c=(a+b)/2
Nu f(a)=0
Da
f(a)*f(c)<0 Da
Nu
Nu f(b)=0 Da
Nu
f(c)=0
Scrie Nu Da
Scrie Scrie
cerinte b=c
Solutie,b Solutie, a
nesatisf a=c a=b
|a-b|<e
Da
Scrie
Solutie,c
STOP
Cap.4 Rezolvarea numerica a ecuatiilor
algebrice si transcendente
f(b)
Y-Axis
f(xi)
xi
X-Axis b
f(a)
Cap.4 Rezolvarea numerica a ecuatiilor
algebrice si transcendente
Metoda aproximatiilor succesive (metoda contractiei)
f(x) + x x = 0 -> x = f(x) + x ->x = F(x).
x1=F(x0), x2=F(x1), xi+1=F(xi)
Y-Axis
f(x1)
X-Axis x0
x1
Cap.5 Calcul matricial
Matrice A(m,n)
Transpusa unei matrici AT
Matrice patratica A(n,n)
Matrice linie A(1,n)
Matrice coloana A(n,1)
Matrice nula; diagonala principala; diagonala secundara
Matrice simetrica A= AT
Matrice antisimetrica A=-AT
Matrice patratica superior triunghiulara a(i,j)=0, V i>=j
Matrice patratica inferior triunghiulara a(i,j)=0, V i<=j
Matrice patratica superior trapezoidala a(i,j)=0, V i>j
Matrice patratica inferior trapezoidala a(i,j)=0, V i<j
Matrice patratica diagonala a(i,j)=0, V i<>j
Matrice unitate diagonala + a(i,j)=1, V i=j
Matrice patratica ortogonala A-1= AT adica A AT=I (matricea unitate)
Cap.5 Calcul matricial
Matrice A(m,n)
Transpusa unei matrici AT
Matrice patratica A(n,n)
Matrice linie A(1,n)
Matrice coloana A(n,1)
Matrice nula; diagonala principala; diagonala secundara
Matrice simetrica A= AT
Matrice antisimetrica A=-AT
Matrice patratica superior triunghiulara a(i,j)=0, V i>=j
Matrice patratica inferior triunghiulara a(i,j)=0, V i<=j
Matrice patratica superior trapezoidala a(i,j)=0, V i>j
Matrice patratica inferior trapezoidala a(i,j)=0, V i<j
Matrice patratica diagonala a(i,j)=0, V i<>j
Matrice unitate diagonala + a(i,j)=1, V i=j
Matrice patratica ortogonala A-1= AT adica A AT=I (matricea unitate)
Cap.5 Calcul matricial
Produsul a 2 matrici:
Citete m,n,p,A(m,n),B(n,p)
Pentru i=1 la m execut
Pentru j=1 la p execut
c(i,j)=0;
Pentru k=1 la n execut
c(i,j)=c(i,j)+a(i,k)*b(k,j)
Sf-pentru
Sf-pentru
Sf-pentru
Afieaz C(m,p)
Cap.5 Calcul matricial
Inversa unei matrici:
O matrice este inversabil dac i numai dac determinantul asociat ei este nenul. O astfel de matrice
se numete nesingular.
1
A-1 A*
det A
unde det A este determinantul matricei A iar A* este matricea adjunct a matricei A. Pentru a obine
matricea adjunct se fac urmtoarele operaii:
Dac printr-un ir finit de operaii elementare o matrice se aduce la matricea unitate, atunci aplicnd
aceleai operaii asupra unei matrici unitate, se va obine matricea invers.
Pasul 1:
Pasul i:
Se nmulete linia k cu aki i se scade din linia k. Deci akj=akj-akiaij pentru j=i,2n i k=1,n-{i}.
Dup pasul n, partea stng (matricea de inversat) a ajuns, n urma operaiilor elementare, la matricea
unitate, iar partea dreapt (care a pornit de la matricea unitate) constituie inversa matricei.
Cap.6 Rez sist de ec algebrice liniare
Metode de rezolvare:
o metode exacte (directe) algoritmi finiti pt calculul unor solutii asa zis exacte
(metoda lui Gauss, metoda lui Gauss-Jordan).
o metode iterative solutia cu o anumita precizie se determina intr-un numar
finit de pasi, pe baza unui proces iterativ convergent infinit (metoda lui
Jacobi, metoda Gauss-Seidel)
Pasul 1:
anixi + +annxn=bn
aij a ki
Pentru k=i+1,n, calculm a kj a kj - , pentru j=i,n. (deoarece linia i este
aii
a ki a i +1i
nmulit cu - i adunat la linia k). Astfel, se nmulete linia i cu - i se
a ii a ii
a i + 2i
adun la linia i+1. Se nmulete linia i cu - i se adun la linia i+2 .a.m.d.
a ii
pn la ultima linie.
Avnd n vedere c operaiile fcute asupra matricei sistemului trebuie efectuate i asupra
bi a ki
b
vectorului termenilor liberi vom avea: k bk - , pentru k=i+1,n.
aii
Cap.6 Rez sist de ec algebrice liniare
Dupa pasul n:
an-1n-1xn-1+an-1nxn=bn-1
annxn=bn
bn
x n =
a nn
bn-1 - a n-1n x n
x n-1 =
a n-1n-1
n
bi - aij x j
ji 1
xi , pentru i=n-1,1
aii
START Cauta_pivot(i,k) Aplica_transf(i)
P=a(k,i)/a(i,i)
k=1 DA a(k,i)<>0
Return(k) j=i
i=1 NU NU
a(k,j)=a(k,j)-
DA a(i,j)*p
k=k+1
DA a(i,i)=0 DA j=j+1
Cauta_pivot(i,k) k<=n
j<=n
k<>0 Return(0)
DA NU b(k)=b(k)-b(i)*p
DA Schimba_linii(i,k) NU k=k+1
Schimba_linii(i,k)
j=i+1 k<=n
DA k<>0
i=i+1 s=0
j<=n
j=i+1
i<=n-1&&k
b(i)? b(k)
Nu DA s=s+a(i,j)*x(j)
DA
DA a(n,n)=0 Return j=j+1
k=0 j<=n
NU Determ_solutii()
x(i)=(b(i)-s)/a(i,i)
DA k=0 NU
X(n)=b(n)/a(n,n)
metoda lui i=i-1
Gauss nu se Determ_solutii()
poate folosi
i=n-1
i>=1
x(i),i=1,n
1
Return
STOP
Cap.6 Rez sist de ec algebrice liniare
Metoda Gauss-Jordan
Metode iterative:
Metoda Jacobi: se rezolv prima ecuaie a sistemului dup x1, a doua dup x2
etc
x1=t1+s12x2+ +s1nxn
xi=si1x1+si2x2 +.+ti++sinxn
xn=sn1+sn2x2++tn
X=T+SX
Cap.6 Rez sist de ec algebrice liniare
Metoda Jacobi:
Xk=T+SX(k-1), k=1,2,
xi(0)=ti
n
s
(k) ( k 1)
xi =ti+ ij xj k=1,2,
j1, j i
Metoda Jacobi:
n cazul n care numrul de iteraii depsete un anumit numr maxim de iteraii fixat,
ira condiia de oprire nu este satisfcut, atunci nu exist convergen i n consecin
metoda lui Jacobi nu se poate folosi.
4x1+x2+2x3=16
x1+2x2+5x3=12
x1+3x2+x3=10
-pentru prima linie 4>1+2 Adevrat
-pentru a doua linie 2>1+5 Fals se impune schimbarea liniei 2 cu linia 3. Dup
schimbare:
-pentru a doua linie 3>1+1 Adevrat
-pentru a treia linie 5>1+2 Adevrat
Cap.6 Rez sist de ec algebrice liniare
Metoda Gauss-Seidel: