Documente Academic
Documente Profesional
Documente Cultură
Metode Numerice
-Referat de laborator-
Matrici:
11 2 7
A= 4 7 1
5 3 8
3 5 2
B= 8 1 4
10 7 3
14 7 9
A+B= 12 8 5
15 10 11
8 3 5
A-B= 4 6 3
5 4 5
11 4 5
A= 2 7 3
7 1 8
Functii elementare
radical(sqrt),exp,log,sin(x),cos(x),tan(x)
Valoarea maxima a unui curent este de 20 de amperi. Sa se
gaseasca valoarea lui efectiva:
I=14,1421
Imax=i* 2 =19,79
I=Imax/ 2
Scopul lucrarii:
*Calitatea unui algoritm se poate aprecia prin
eficienta lui temporala, adica timpul necesar
obtinerii solutiei si eficienta spatiala, adica
memoria necesara stocarii programului si a datelor
Aplicatie 1.
Determinarea eficientei temporale a algoritmului de obtinere a
produsului scalar pentru doi vectori cun n componente
n=1000
Timpul de executie in functie de numarul de componente
alevectorului:
t0=clock
i=1
for(n)=1000:2000:11000
x=rand(1,n)
y=rand(1,n)
p=sum(x.*y)
tf(i)=etime(clock,t0)
i=i+1
end
n=1000:2000:11000
plot(n,tf)
Consideram doua situatii:
-cand inhibam afisarea rezultatului
-in functie de dimensiunea matricei
tf=0,0160 cu n=1000;3000;5000
Se observa o dependenta a timpului fata de n datorita prezentei
lui rand, aproximam dependenta lui tf printr-un polinom de gradul
unu, pe care il reprezentam grafic in functie de n.
Aplicatie 2.
Sa se determine eficienta temporara a algoritmului de obtinere a
produsului a 2 matrici patratice aleatoare de dimensiuni n.
La matrice se scrie:
p=(x*y)
- ft fara=1,1710;11,1710;38,9060;89,00
I=7
n=100 300 500 700 900 1100
tf cu 0,0470;0,240;0,6410;1,5630;3,2040
Raport=99,6164
Aplicatia 3.
Determinarea erori relative de rotunjire. Algoritmul de calcul in
pseudocod
err=1
repeta
err=errr/2
Pana cand 1+err=1
Scriem err
Secventa reprezinta descrierea, in pseudocod a algoritmului de
determinare a acestei erori.
Secventa in Matlab este urmatoarea:
% calculeaza eroarea relativa de rotunjire
err=1
while(1+err)N=1
err=err/2
end
O alta secventa in care este reprezentat timpul este
urmatoarea:
t0=clock
t0 = 1.0e+03 * 2.0150 0.0060 0.0020 0.0080 0.0050
0.0149
>> i=1
i=1
>> for n=100:200:1200
x=rand(1,n)
y=rand(1,n)
VS=sum(x.*y)
trez(i)=etime(clock,t0)
i=i+1
end
VS = 267.0682
trez = 294.6390 298.8890 298.9510 298.9550 298.9590
299.2760
i=7
>> n=100:200:1200
n = 100 300 500 700 900 1100
>> plot(n,trez)
Laborator.3
{Ux=Lyy =b y=L/b
x=U / y =U / L/b
1 1 5 x1 7
A*x= 2 1 1 * x2 = 2
1 3 1 x3 5
2.Factorizarea Choleski
Pentru a implementa aceasta factorizare folosim:
[Rp]=chol(A)
Parametrul p este un scalar care indica, daca A este o matrice
pozitiv definita.
p= 0 A pozitiv definita
p>0 A nu este pozitiv definita si ea nu pote fi factorizata Choleski
Aplicatia1.
8x1+2x2-2x3=1
2x1+8x2-2x4=2
-2x1+9x3+2x4=3
-2x2+2x3+9x4=4
* Sa se verifice daca sistemul este rezolvabil prinn Choleski in caz
afirmativ sa se rezolve. Verificarea sa se faca in doua moduri:
- folosind punctele 2 si 3 de la echivalenta data la curs
A=A*
t
A= A , det ( A) >0
A*x=B=4028
Aplicatia2.
A=[8 2 -2 0;2 8 0 -2;-2 0 9 2;0 -2 9 2]
B=[1;2;3;4]
[r,p]=chol(A)
A=A
Det (A)
Y=R/B
x=R/y A*x
Laborator.4
Factorizarea Choleski
(continare)
Laborator.5
Stabilitatea numerica a
S.E.A.L
Scopul lucrarii:
*Sa se studiese stabilitatea urmatorului S.E.A.L, care este
perturbat la termenul liber b
{6 xx1+6.917 ; 1.152=6,543
1+1,152 x 2=1,095 Sistem initial
{6xx1+1,152
1+6,912 x 2=6,543
x 2=1,095 Sistem perturbat
t0=clock
A=[6 6.917;1.152]
b=[6.543;1.095] => x=6.5430
1.0950
x=A\b
Se observa ca perturbatia la zecimala a 3- a a unui coeficient al
matricei sistemului a condus la o variatie foarte mare a solutiei
sistemului.
Cazul 1- o solutie finita mica
Cazul 2- o solutie foarte mare
t0=clock
A=[6.6.912;1.152]
b=[6.543;1.095]
x=A\b
cond(A) => 1.7234 e+004
Secventa matlab pentru obtinerea solutiei sistemului
A= [4 0.24 -0.08;0.09 3 -0.15;0.004 -0.008 4]
B=[8 9 20]
If(abs(a(1,1))>abs(a(1,2))+abs(a(1,3)))
disp(a diagonal dominator)
else
disp(a nu este diagonal dominata)
end
for i=1:3
beta(i)=b(i)/a(i1,i)
else
alfa(i,j)=0
end
end
end
x0=[1 1,25 0,6]
x=beta+alfa*x0
k=1
x0=x
x=beta+alfa*x0
k=k+1
end
3 5
Daca = 10 sunt 3 solutii calculate Daca = 10 sunt 5
solutii calculate
Laborator.6
Siruri de iteratii
=[100;200;200;200;100]
X1=*x0+
{ }
4 >1+ 0+0
4>1+1+0+ 0
4>0+ 1+ 1+ 0 matricea este diagonal dominant
4>0+ 0+1+1
4 >0+0+ 01
x 11=100+ ( 4100200 )=300
1
x 2 =200+ (1100+4200+1200 )=1100
[]
1
0 000
4
1
[]
0000 25
4
50
1
0 000 50
= 4 =
50
1
00 00 25
4
1
0 00 0
4
Laborator.7
Regresia polinomiala
Scopul lucrarii:
Sa se determine analitic si in matlab ecuatia dreptei de regresie
care aproximeaza conform metodei celui mai mic patrate:
Fie valorile experimentale date prin vectorii x,y:
x=[-1 0 1 2]
y=[1 0 1 4]
xi
2
b= nxi
2
xi yixiyi
n=4
xiyi=11+00+ 11+24=8
yi=6
a=1
b=1
y=x+1
Se observa ca punctele nu sunt pe dreapta asa cum se
intampla la dreapta de interpolare
-secventa matlab:
coef=polyfit(x,y,l)
a=coef(1)
b=coef(2)
y1=(a*x)+b
plot(x,y,o,x,y1)
Laborator.8
Derivarea numerica
Scopul lucrarii:
Se utileaza functia diff pentru vectori si matrici. Aplicad diff la un
vector obtinem un vector cu un nr de component<ca 1
Aplicatia 1:
a) x=[2 5 7 -9]
dx=[3 2 -1 6]
d2x=diff(x,2)
dx=diff(x)
b) A=[2 3 6;-3 0 2;1 7 5]
dx=diff(A)
d2x=diff(A,2)
c) x=[0 1 2 3 4 5 6]
f=[2 5 0 -1 2 7]
dx=diff(x)
df=diff(f)
f_der_m=df/dx
Rezolvare :
a) diffx=5-2=3
7-5=2
-9+7=-16
dx=[3 2 -16]
d2x=[6 4 -32]
In punctul c) este prezentat calculul derivatei unei functii date
tabular
2 3 6
b) A= 3 0 2
1 7 5
5 3 4
dx= 4 7 3
d2x= 9 10 7
Aplicatia 2
Relatiile de calcul:
1 D2 yi D3 yi D 4 yi
f(xi)= h ( Dyi + )
2 3 4
1 11
D2 yiD3 yi+ D4 yi
f(xi)= h (
2
12
1
log(x)= x
1 1 1
'= 2
(log(x))=( x x = 50
1 1
- x 2 =- 2500 =0,004
Laborator.9
Laborator.10
Scopul lucrarii:
Metoda diferentelor finite este o metoda folosita la
aproximarea ecuatiilor derivatei partialei prin ecuatiile diferentei
finite(algoritmice). Rezolvarea prin diferente finite cu relatia
patratului unui camp electrostatic laplacean intr.un domeniu de
camp de forma patrata.
V 1 ; V 6 =0v
; V 12
V 11 =0v
V 2+V 3+ V 2+V 12
V1= 4
V 1+V 4 + V 3+ V 5
V2= 4
11
V 1+V 4 + V 9+V
V3= 4
9
V 2+V 3+ V 6+V
V4= 4
4V1-V2-V3= V 2+V 3
4V2-V1-V4= V 3+ V 5
4V3-V1-V4= V 9+V 11
4V4-V2-V3= V 3+ V 9
q=
4 -1 0
-1 4 -2
0 -1 4
I=
1 0 0
0 1 0
0 0 1
>> z=zeros(3)
z=
0 0 0
0 0 0
0 0 0
A=
4 -1 0 -1 0 0 0 0 0
-1 4 -2 0 -1 0 0 0 0
0 -1 4 0 0 -1 0 0 0
-1 0 0 4 -1 0 -1 0 0
0 -1 0 -1 4 -2 0 -1 0
0 0 -1 0 -1 4 0 0 -1
0 0 0 -1 0 0 4 -1 0
0 0 0 0 -1 0 -1 4 -2
0 0 0 0 0 -1 0 -1 4
>> min(1:8,1)=0
min =
0
0
0
0
0
0
0
0
>> min(14:16,1)=0
min =
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
>> min(9:13,1)=1
min =
0
0
0
0
0
0
0
0
1
1
1
1
1
0
0
0