LABORATOR_METODE_NUMERICE_-_COLOCVIU_LABORATOR_–_CUNOSTI NTE_NECESARE_MINIME.pdf

15
 LABORATOR METODE NUMERICE COLOCVIU LABORATOR – CUNOSTINTE NECESARE MINIME 1 ora / Saptama na (1 Lab. / 2 Saptamani) 1. Introducere in MATLAB (Lucrarea de laborator nr. 1 in indrumar) Cunostinte despre ferestrele de lucru MATLAB: - Fereasta comanda – locul unde se dau comenzi si MATLAB afiseaza rezultatul - Fereastra de editare – locul unde se creaza, editeaza scripturi sau functii - Fereastra grafica – locul unde se afiseaza graficele si unde se pot edita interactiv - Workspace, History, Current folder Definirea matricelor: >> a=[1 3 4 5;2 3 4 5;5 4 3 2;7 6 5 4] a = 1 3 4 5 2 3 4 5 5 4 3 2 7 6 5 4 Definirea unei matrice linie (vector linie): >> b=[2 4 5 3 6 7] b = 2 4 5 3 6 7 Definirea unei matrice coloana (vecto r coloana): >> c=[4;5;3;7;6] c = 4 5 3 7 6 Definirea unui sir (vector) liniar cu pas constant: >> x=2:1:7 x = 2 3 4 5 6 7 Definirea unui sir (vector) cu numar cunoscut de elemente: >> y=linspace(1,10,7) y = 1.0000 2.5000 4.0000 5.5000 7.0000 8.5000 10.0000 Generarea unor matrice speciale: >> a=zeros(3,4) a = 0 0 0 0 0 0 0 0

Transcript of LABORATOR_METODE_NUMERICE_-_COLOCVIU_LABORATOR_–_CUNOSTI NTE_NECESARE_MINIME.pdf

  • LABORATOR METODE NUMERICE COLOCVIU LABORATOR CUNOSTINTE NECESARE MINIME 1 ora / Saptamana (1 Lab. / 2 Saptamani) 1. Introducere in MATLAB (Lucrarea de laborator nr. 1 in indrumar) Cunostinte despre ferestrele de lucru MATLAB:

    - Fereasta comanda locul unde se dau comenzi si MATLAB afiseaza rezultatul - Fereastra de editare locul unde se creaza, editeaza scripturi sau functii - Fereastra grafica locul unde se afiseaza graficele si unde se pot edita interactiv - Workspace, History, Current folder

    Definirea matricelor: >> a=[1 3 4 5;2 3 4 5;5 4 3 2;7 6 5 4] a = 1 3 4 5 2 3 4 5 5 4 3 2 7 6 5 4 Definirea unei matrice linie (vector linie): >> b=[2 4 5 3 6 7] b = 2 4 5 3 6 7 Definirea unei matrice coloana (vector coloana): >> c=[4;5;3;7;6] c = 4 5 3 7 6 Definirea unui sir (vector) liniar cu pas constant: >> x=2:1:7 x = 2 3 4 5 6 7 Definirea unui sir (vector) cu numar cunoscut de elemente: >> y=linspace(1,10,7) y = 1.0000 2.5000 4.0000 5.5000 7.0000 8.5000 10.0000 Generarea unor matrice speciale: >> a=zeros(3,4) a = 0 0 0 0 0 0 0 0

  • 0 0 0 0 >> b=ones(2,5) b = 1 1 1 1 1 1 1 1 1 1 >> I=eye(4) I = 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 Manipularea matricelor: Accesarea elementelor unei matrice: >> I(2,3) ans = 0 Lucrul cu diagonalele unei matrice: >> a=[3 5 4 3 ;5 4 3 5;6 5 3 4;6 5 2 7] a = 3 5 4 3 5 4 3 5 6 5 3 4 6 5 2 7 >> d=diag(a) d = 3 4 3 7 >> d=diag(a,2) d 1= 4 5 >> d=diag(a,-2) 22 = 6 5 Crearea unei matrice cu diagonala cunoscuta: >> D=diag([3 5 3 2 5]) D = 3 0 0 0 0 0 5 0 0 0 0 0 3 0 0

  • 0 0 0 2 0 0 0 0 0 5 Operatii cu matrice: >> a=[4 3 5;6 5 3;7 5 2] a = 4 3 5 6 5 3 7 5 2 >> b=[5 1 5;7 4 2;7 3 9] b = 5 1 5 7 4 2 7 3 9 >> a+b ans = 9 4 10 13 9 5 14 8 11 >> a-b ans = -1 2 0 -1 1 1 0 2 -7 >> a*b ans = 76 31 71 86 35 67 84 33 63 >> 3*a ans = 12 9 15 18 15 9 21 15 6 >> a/b ans = -0.9394 0.2121 1.0303 -1.3030 0.9394 0.8485 -0.7424 1.1515 0.3788 >> a\b ans = 0.2222 -1.2778 7.2778 1.0000 2.5000 -8.5000 0.2222 -0.2778 0.2778 Analiza matriceala:

  • >> a=[4 3 5;6 5 3;7 5 2] a = 4 3 5 6 5 3 7 5 2 >> det(a) ans = -18 >> rank(a) ans = 3 >> inv(a) ans = 0.2778 -1.0556 0.8889 -0.5000 1.5000 -1.0000 0.2778 -0.0556 -0.1111 Diferite functii ajutatoare: >> a=5 a = 5 >> log(5) ans = 1.6094 >> log2(5) ans = 2.3219 >> a^2 ans = 25 >> sqrt(a) ans = 2.2361 >> a^(3/2) ans = 11.1803 >> exp(a) ans = 148.4132 >> pow2(a) ans = 32 >> log10(a) ans = 0.6990 Functii trigonometrice: >> x=2*pi x =

  • 6.2832 >> sin(x) ans = -2.4493e-016 >> cos(x) ans = 1 >> tan(x) ans = -2.4493e-016 >> cot(x) ans = -4.0828e+015 >> asin(0.5) ans = 0.5236 >> acos(0.7) ans = 0.7954 2. Grafica cu MATLAB (Lucrarea de laborator nr. 3 in indrumar) Cunostinte despre Fereastra grafica afisare grafice de functii si editarea lor interactiva Grafice de functii tabelate: >> x=[1 2 3 4 5 6 7 8] x = 1 2 3 4 5 6 7 8 >> y=[-10 -4 5 -3 2 5 8 12] y = -10 -4 5 -3 2 5 8 12 >> plot(x,y)

    >> plot(x,y,x,y,'o')

  • Grafice de functii analitice: >> f=inline('x.^3-3*x+1') f = Inline function: f(x) = x.^3-3*x+1 >> fplot(f,[-2 3])

    Definirea unor functii in fisiere: File -> New-> M-files (in Matlab 2007) Functions (in Matlab 2011)

  • Setarea cailor de lucru: File -> Set Path Editarea graficelor: Din linia de comanda: subplot, labelx, label y, legend, title, etc. Din fereastra grafica: in mod interactiv lucrand cu meniurile ferestrei: inserarea unui titlu, inserarea etichetelor pe axe (label), inserarea uni text pe grafic, etc. (meniurile Edit, Insert si Tools). 3. Rezolvarea ecuatiilor, Sisteme de ecuatii (Lucrarile de laborator nr. 4, 8 din indrumar)

    - fzero ecuatii transcendente Definirea functiei ce caracterizeaza ecuatia: >> f=inline('x.^3-3*x+1') f = Inline function: f(x) = x.^3-3*x+1 Reprezentarea grafica pentru a identifica intervalele unde se gasesc solutiile: >> fplot(f,[-2,2]) >> grid

    Gasirea solutiilor cu functia fzero: >> fzero(f,-2) ans = -1.8794 >> fzero(f,0) ans = 0.3473 >> fzero(f,1.5) ans = 1.5321

  • - roots ecuatii polinomiale Definirea sirului de coeficienti ai ecuatiei: Ex. >> c=[1 0 0 1 3 0 -10 0 -3] c = 1 0 0 1 3 0 -10 0 -3 Gasirea solutiilor cu funtia roots >> roots(c) ans = -1.4226 -0.8786 + 1.1968i -0.8786 - 1.1968i 0.9409 + 1.3396i 0.9409 - 1.3396i 1.2915 0.0033 + 0.5257i 0.0033 - 0.5257i - rezolvarea sistemelor prin impartire Definirea matricei coeficientilor si a vectorilor termenilor liberi:

    >> A=[1 2 3;2 2 2;10 5 1] A = 1 2 3 2 2 2 10 5 1 >> b=[1; 2; 5] b = 1 2 5 Testare solutie sistem: >> det(A) ans = -2.0000 Rezolvare prin impartire la stanga: >> x=A\b x = -4.0000 10.0000 -5.0000

  • Rezolvare folosind inversa: >> x=inv(A)*b x = -4.0000 10.0000 -5.0000 - factorizare LU, QR, Cholesky Factorizare LU Definirea matricei coeficientilor si a vectorilor termenilor liberi:

    >> A=[3 0 1;1 2 1;1 1 2] A = 3 0 1 1 2 1 1 1 2 >> b=[10; 12; -3] b = 10 12 -3 Testare solutie sistem: >> det(A) ans = 8 Test determinanti de colt: (de ordinul 1, 2, 3 ... n) Toti determinantii trebuie sa fie nenuli >> det(A(1,1)) ans = 3 >> det(A(1:2,1:2)) ans = 6 >> det(A(1:3,1:3)) ans = 8 Factorizare LU: >> [L,U,P]=lu(A) L = 1.0000 0 0 0.3333 1.0000 0

  • 0.3333 0.5000 1.0000 U = 3.0000 0 1.0000 0 2.0000 0.6667 0 0 1.3333 P = 1 0 0 0 1 0 0 0 1 Rezolvare sisteme: L*y=P*b si U*x=y >> y=L\P*b y = 10.0000 8.6667 -10.6667 >> x=U\y x = 6.0000 7.0000 -8.0000 Factorizare Choleski:

    >> A=[1 2 1;2 5 2;1 2 3] A = 1 2 1 2 5 2 1 2 3 >> b=[5;11;7] b = 5 11 7 Testare solutie sistem: >> det(A) ans = 2 Test determinanti de colt: (de ordinul 1, 2, 3 ... n) Toti determinantii trebuie sa fie pozitivi >> det(A(1,1)) ans = 1 >> det(A(1:2,1:2)) ans =

  • 1 >> det(A(1:3,1:3)) ans = 2 Factorizare Choleski: >> [R,p]=chol(A) R = 1.0000 2.0000 1.0000 0 1.0000 0 0 0 1.4142 p = 0 Rezolvare sisteme: R*y=b si RU*x=y >> y=R'\b y = 5.0000 1.0000 1.4142 >> x=R\y x = 2.0000 1.0000 1.0000

    4. Aproximarea functiilor (Lucrarile de laborator nr. 9, 10 din indrumar) - interpolare liniara: calculare valori ale functiilor in anumite punte in intervalul specificat >> x=[1 2 3 4 5 6 7] x = 1 2 3 4 5 6 7 >> y=[-10 -6 -3 -2 4 9 21] y = -10 -6 -3 -2 4 9 21 >> interp1(x,y,[1.5 2.6 4.2 6.8]) ans = -8.0000 -4.2000 -0.8000 18.6000 Reprezentarea grafica a interpolarii liniare

  • - interpolare spline: calculare valori ale functiilor in anumite punte in intervalul specificat >> x=[1 2 3 4 5 6 7] x = 1 2 3 4 5 6 7 >> y=[-10 -6 -3 -2 4 9 21] y = -10 -6 -3 -2 4 9 21 >> spline(x,y,[1.5 2.6 4.2 6.8]) ans = -8.1451 -3.8034 -1.1074 17.4246 Reprezentare grafica:

    - regresia polinomiala polyfit: Calcularea regresiilor polinomiale de grade diferite >> x=[1 2 3 4 5 6 7] x = 1 2 3 4 5 6 7 >> y=[-10 -6 -3 -2 4 9 21] y = -10 -6 -3 -2 4 9 21 >> r2=polyfit(x,y,2)

  • r2 = 0.7143 -1.0714 -8.1429 >> r3=polyfit(x,y,3) r3 = 0.2500 -2.2857 9.1786 -17.1429 Reprezentare grafica: >> xi=1:0.01:7; >> y2=polyval(r2,xi); >> y3=polyval(r3,xi); >> plot(x,y,'o',xi,y2,xi,y3)

    - regresia liniara, corrcoef: Determinarea coeficientului de corelatie si interpretarea acestuia >> x=[1 2 3 4 5 6 7] x = 1 2 3 4 5 6 7 >> y=[-10 -6 -3 -2 4 9 21] y = -10 -6 -3 -2 4 9 21 >> corrcoef(x,y) ans = 1.0000 0.9542 0.9542 1.0000 Calcularea regresiei de gradul 1 >> r1=polyfit(x,y,1) r1 = 4.6429 -16.7143 Reprezentarea grafica: >> xi=1:0.01:7; >> y1=polyval(r1,xi); >> plot(x,y,'o',xi,y1)

  • 5. Integrare, Derivare - metoda trapezelor Pentru functii direct tabelate >> x=[1 2 3 4 5 6 7] x = 1 2 3 4 5 6 7 >> y=[-10 -6 -3 -2 4 9 21] y = -10 -6 -3 -2 4 9 21 >> I=trapz(x,y) I = 7.5000 Pentru functii analitice: >> f=inline('x.^3-3*x+1') f = Inline function: f(x) = x.^3-3*x+1 >> x=1:0.01:4; >> y=f(x); >> I=trapz(x,y) I = 44.2504 - metoda Simpson >> f=inline('x.^3-3*x+1') f = Inline function: f(x) = x.^3-3*x+1 >> I=quad(f,1,4) I = 44.2500 - derivata unei functii

  • Functie tabelata: >> x=[1 2 3 4 5 6 7] x = 1 2 3 4 5 6 7 >> y=[-10 -6 -3 -2 4 9 21] y = -10 -6 -3 -2 4 9 21 >> dx=diff(x) dx = 1 1 1 1 1 1 >> dy=diff(y) dy = 4 3 1 6 5 12 Diferente finite la stanga / dreapta >> df=dy./dx df = 4 3 1 6 5 12 Diferente centrate: >> k=length(dx) k = 6 >> dfc=(dy(1:k-1)+dy(2:k))./(dx(1:k-1)+dx(2:k)) dfc = 3.5000 2.0000 3.5000 5.5000 8.5000 - derivata unui polinom polyder Definirea sirului de coeficienti ai ecuatiei: Ex. >> c=[1 0 0 1 3 0 -10 0 -3] c = 1 0 0 1 3 0 -10 0 -3 Calculul derivatei cu functia polyder: >> d=polyder(c) d = 8 0 0 5 12 0 -20 0