21
Exerci¸ tii orale Implementare Tema Referin¸ te utile Cât de familiar v˘ a este mediul de lucru MATLAB? Conf.dr.ing. Gabriela Ciuprina Universitatea "Politehnica" Bucure¸ sti, Facultatea de Inginerie Electric ˘ a, Departamentul de Electrotehnic ˘ a Suport didactic pentru disciplina Algoritmi Numerici, 2012 Gabriela Ciuprina Mediul de lucru MATLAB

Cât de familiar va este mediul de lucru MATLAB?an.lmn.pub.ro/slides/AN_s1.pdf · Exerci¸tii orale Implementare Tema Referin¸te utile Exerci¸tiul 1.1: Care este efectul comenzii:

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Cât de familiar va este mediul de lucru MATLAB?an.lmn.pub.ro/slides/AN_s1.pdf · Exerci¸tii orale Implementare Tema Referin¸te utile Exerci¸tiul 1.1: Care este efectul comenzii:

Exercitii oraleImplementare

TemaReferinte utile

Cât de familiar va este mediul de lucruMATLAB?

Conf.dr.ing. Gabriela Ciuprina

Universitatea "Politehnica" Bucuresti, Facultatea de Inginerie Electrica,Departamentul de Electrotehnica

Suport didactic pentru disciplina Algoritmi Numerici, 2012

Gabriela Ciuprina Mediul de lucru MATLAB

Page 2: Cât de familiar va este mediul de lucru MATLAB?an.lmn.pub.ro/slides/AN_s1.pdf · Exerci¸tii orale Implementare Tema Referin¸te utile Exerci¸tiul 1.1: Care este efectul comenzii:

Exercitii oraleImplementare

TemaReferinte utile

Outline

1 Exercitii orale

2 Implementare

3 Tema

4 Referinte utile

Gabriela Ciuprina Mediul de lucru MATLAB

Page 3: Cât de familiar va este mediul de lucru MATLAB?an.lmn.pub.ro/slides/AN_s1.pdf · Exerci¸tii orale Implementare Tema Referin¸te utile Exerci¸tiul 1.1: Care este efectul comenzii:

Exercitii oraleImplementare

TemaReferinte utile

Exercitiul 1.1:Care este efectul comenzii:

>> a(10,5) = 1

Exercitiul 1.2:Stiind ca vectorii sunt un caz particular de matrice, care suntcomenzile cu care se va introduce un vector linie, respectivcoloana cu elementele 1, 2, 3?Exercitiul 1.3:Ce reprezinta e în urmatoarea instructiune?

>> u = 12.4e-3

Gabriela Ciuprina Mediul de lucru MATLAB

Page 4: Cât de familiar va este mediul de lucru MATLAB?an.lmn.pub.ro/slides/AN_s1.pdf · Exerci¸tii orale Implementare Tema Referin¸te utile Exerci¸tiul 1.1: Care este efectul comenzii:

Exercitii oraleImplementare

TemaReferinte utile

Exercitiul 1.4:Executati instructiunea clear. Acum nu mai exista nici ovariabila în mediul de lucru (verificati cu who). Executati totusi,urmatoarele instructiuni. Comentati rezultatul lor.

>> i>> j>> pi>> eps

Exercitiul 1.5:

Fie A =

[

1 23 4

]

, b =

[

56

]

si v =[

4 3]

. Care sunt

comenzile Matlab pentru rezolvarea ecuatiei A(

vT + x)

= b.

Gabriela Ciuprina Mediul de lucru MATLAB

Page 5: Cât de familiar va este mediul de lucru MATLAB?an.lmn.pub.ro/slides/AN_s1.pdf · Exerci¸tii orale Implementare Tema Referin¸te utile Exerci¸tiul 1.1: Care este efectul comenzii:

Exercitii oraleImplementare

TemaReferinte utile

Exercitiul 1.6:Comentati rezultatele urmatoarelor instructiuni:>> x = 1:10>> y = 1:2:10>> z = 1:3:10>> t = 1:-3:10>> w = -1:-3:-10>> u = -1:-10>> v = -10:-1>> a = 10:-2:-3

Exercitiul 1.7:a) Care este semnificatia marimilor d1, d2, n din comandalogspace ?b) Ce genereaza comanda linspace ?

Gabriela Ciuprina Mediul de lucru MATLAB

Page 6: Cât de familiar va este mediul de lucru MATLAB?an.lmn.pub.ro/slides/AN_s1.pdf · Exerci¸tii orale Implementare Tema Referin¸te utile Exerci¸tiul 1.1: Care este efectul comenzii:

Exercitii oraleImplementare

TemaReferinte utile

Exercitiul 1.8:Care este rezultatul comenzii:

>> A = [1:3 ; 1:2:7]

Exercitiul 1.9:

Fie A =

1 10 100 10002 20 200 20003 30 300 3000

.

Notati rezultatele si comentati urmatoarele comenzi:

>> A(0,1)>> A(2,3)>> A(:,3)>> A(:,:)>> A(3,:)>> A(2,2:4)>> A(2:3,2:4)

Gabriela Ciuprina Mediul de lucru MATLAB

Page 7: Cât de familiar va este mediul de lucru MATLAB?an.lmn.pub.ro/slides/AN_s1.pdf · Exerci¸tii orale Implementare Tema Referin¸te utile Exerci¸tiul 1.1: Care este efectul comenzii:

Exercitii oraleImplementare

TemaReferinte utile

Exercitiul 1.10:Comentati urmatoarele comenzi (unde A este matricea de laexercitiul 9 iar v = [ 1 2 3 4 5 ]):>> eye(3)>> eye(3,3)>> eye(3,4)>> diag(A)>> diag(v)Exercitiul 1.11:Comentati urmatoarele comenzi:>> A = diag(1:3)>> B = [A, eye(size(A)); ones(size(A)) zeros(size(A))]>> C = diag(B)>> D = C’*C>> E = (D == 14)

Gabriela Ciuprina Mediul de lucru MATLAB

Page 8: Cât de familiar va este mediul de lucru MATLAB?an.lmn.pub.ro/slides/AN_s1.pdf · Exerci¸tii orale Implementare Tema Referin¸te utile Exerci¸tiul 1.1: Care este efectul comenzii:

Exercitii oraleImplementare

TemaReferinte utile

Exercitiul 1.12:Definiti o matrice oarecare B (de exemplu cu 3 linii si 4coloane). Executati si comentati urmatoarele instructiuni:>> [m,n] = size(B)>> B = [B; zeros(1, n)]>> B = [B zeros(m+1,1)]

Gabriela Ciuprina Mediul de lucru MATLAB

Page 9: Cât de familiar va este mediul de lucru MATLAB?an.lmn.pub.ro/slides/AN_s1.pdf · Exerci¸tii orale Implementare Tema Referin¸te utile Exerci¸tiul 1.1: Care este efectul comenzii:

Exercitii oraleImplementare

TemaReferinte utile

Exercitiul 1.13:Realizati graficul din figura 2. El reprezinta functiay(t) = 10 ∗ sin(t) pentru t ∈ [0, 4π]. Puneti etichete axelor,rastrul si legenda ca în figura.

0 2 4 6 8 10 12 14−1

−0.8

−0.6

−0.4

−0.2

0

0.2

0.4

0.6

0.8

1

t [s]

y [µ

m]

rezultate

Gabriela Ciuprina Mediul de lucru MATLAB

Page 10: Cât de familiar va este mediul de lucru MATLAB?an.lmn.pub.ro/slides/AN_s1.pdf · Exerci¸tii orale Implementare Tema Referin¸te utile Exerci¸tiul 1.1: Care este efectul comenzii:

Exercitii oraleImplementare

TemaReferinte utile

Exercitiul 1.14:Scrieti comenzile cu care ati rezolvat exercitiul 9, într-un fisiernumit mytest.m, din directorul /AlgoritmiNumerici/Tema1 siapoi executati-l fie cu comanda:

>> mytest

fie apasând butonul Run din editor. Observati ce se întâmpladaca la sfârsitul fiecarei instructiuni adaugati terminatorul “;".Exercitiul 1.15:Scrieti, într-un fisier, un program prietenos care va permiteintroducerea de la consola Matlab a doua numere reale, vacalcula suma lor, si va afisa rezultatul în formatul cu exponent.Exercitiul 1.16:Scrieti un program care sa determine cel mai mare numarîntreg n pentru care 10n poate fi reprezentat în Matlab .Indicatie: folositi un ciclu cu test, în care conditia de intrare în

Gabriela Ciuprina Mediul de lucru MATLAB

Page 11: Cât de familiar va este mediul de lucru MATLAB?an.lmn.pub.ro/slides/AN_s1.pdf · Exerci¸tii orale Implementare Tema Referin¸te utile Exerci¸tiul 1.1: Care este efectul comenzii:

Exercitii oraleImplementare

TemaReferinte utile

ciclu testeaza egalitatea dintre 10n si constanta Inf.Exercitiul 1.17:Editati un fisier numit “combin.m" cu urmatorul continut:

function [x,y] = combin(a,b)x = a + b;y = a - b;

si un fisier numit “main_combin.m" cu urmatorul continut:

clear all;a = input(’Introduceti a. a = ’);b = input(’Introduceti b. b = ’);[c,d] = combin(a,b);disp(sprintf(’ Suma numerelor a = %g si b = %g estedisp(sprintf(’ Diferenta numerelor a = %g si b = %g

Executati în Matlab comenzile din “main_combin.m":Gabriela Ciuprina Mediul de lucru MATLAB

Page 12: Cât de familiar va este mediul de lucru MATLAB?an.lmn.pub.ro/slides/AN_s1.pdf · Exerci¸tii orale Implementare Tema Referin¸te utile Exerci¸tiul 1.1: Care este efectul comenzii:

Exercitii oraleImplementare

TemaReferinte utile

>> main_combin;

a) Explicati comanda disp(sprintf(....));b) Comentati necesitatea instructiunii clear all.c) Rulati programul pas cu pas si urmariti fereastra Workspaced) Adaugati dupa citirea valorii b, instructiunea inutila z = 7.Rulati programul pas cu pas si urmariti fereastra Workspace.Comentati.e) Pe exemplul de la punctul c), dati în consola Matlab comanda

>> mlint main_combin

Comentati rezultatul ei, dupa ce va informati asupra comenziimlint.

Gabriela Ciuprina Mediul de lucru MATLAB

Page 13: Cât de familiar va este mediul de lucru MATLAB?an.lmn.pub.ro/slides/AN_s1.pdf · Exerci¸tii orale Implementare Tema Referin¸te utile Exerci¸tiul 1.1: Care este efectul comenzii:

Exercitii oraleImplementare

TemaReferinte utile

Exercitiul 1.18:Scrieti o functie ps_v1 care sa calculeze produsul scalar a doivectori a si b de dimensiune n × 1 prin implementarea formulei∑n

i=1 si o alta functie ps_v2 care sa implementeze calcululprodusului scalar folosind operatiile cu matrice a ∗ b′. Verificaticorectitudinea functiile scrise cu ajutorul unui script în care sacomparati rezultatele.Exercitiul 1.19:Comentati continutul scriptului de mai jos. Executati-l sicomparati rezultatul cu cel din figura 2.

clear all;nn = linspace(1e6,1e7,10);N = length(nn);t1 = zeros(1,N);t2 = zeros(1,N);

Gabriela Ciuprina Mediul de lucru MATLAB

Page 14: Cât de familiar va este mediul de lucru MATLAB?an.lmn.pub.ro/slides/AN_s1.pdf · Exerci¸tii orale Implementare Tema Referin¸te utile Exerci¸tiul 1.1: Care este efectul comenzii:

Exercitii oraleImplementare

TemaReferinte utile

for i = 1:length(nn);n = floor(nn(i));a = rand(1,n);b = rand(1,n);tic;rez1 = ps_v1(n,a,b);t1(i) = toc;tic;rez2 = ps_v2(a,b);t2(i) = toc;

end

plot(nn,t1,’bo-’);hold on;plot(nn,t2,’r*-’);leg{1} = ’implementare cu for’;

Gabriela Ciuprina Mediul de lucru MATLAB

Page 15: Cât de familiar va este mediul de lucru MATLAB?an.lmn.pub.ro/slides/AN_s1.pdf · Exerci¸tii orale Implementare Tema Referin¸te utile Exerci¸tiul 1.1: Care este efectul comenzii:

Exercitii oraleImplementare

TemaReferinte utile

leg{2} = ’implementare a*b^\prime’;legend(leg);xlabel(’n’);ylabel(’t [s]’);title(’Timp de calcul al produsului scalar’);

1 2 3 4 5 6 7 8 9 10

x 106

0

0.02

0.04

0.06

0.08

0.1

0.12

0.14

0.16

0.18

0.2

n

t [s]

Timp de calcul al produsului scalar

implementare cu for

implementare a*b′

Timpul de calcul al produsului vectorial în functie de dimensiunea vectorilor. Comparatie între cele doua

implementari propuse la exercitiul 19.

Gabriela Ciuprina Mediul de lucru MATLAB

Page 16: Cât de familiar va este mediul de lucru MATLAB?an.lmn.pub.ro/slides/AN_s1.pdf · Exerci¸tii orale Implementare Tema Referin¸te utile Exerci¸tiul 1.1: Care este efectul comenzii:

Exercitii oraleImplementare

TemaReferinte utile

Exercitiul 1.20:Scrieti o functie pmv_v1 care sa calculeze produsul dintre omatrice patrata a de dimensiune nsi un vector coloana b prinimplementarea formulei ci =

∑nj=1 aijbj si o alta functie pmv_v2

care sa implementeze calculul aceluiasi produs folosindoperatiile cu matrice c = a ∗ b. Comparati eficienta celor douaimplementari. Comparati rezultatele obtinute cu graficele dinfigura 3.Exercitiul 1.21:Scrieti o functie pmm_v1 care sa calculeze produsul dintre douamatrice patrate a si b de dimensiune nrin implementareaformulei ci,j =

∑nk=1 ai,kbk ,j si o alta functie pmm_v2 care sa

implementeze calculul aceluiasi produs folosind operatiile cumatrice c = a ∗ b. Comparati eficienta celor doua implementari.Comparati rezultatele obtinute cu graficele din figura 3.

Gabriela Ciuprina Mediul de lucru MATLAB

Page 17: Cât de familiar va este mediul de lucru MATLAB?an.lmn.pub.ro/slides/AN_s1.pdf · Exerci¸tii orale Implementare Tema Referin¸te utile Exerci¸tiul 1.1: Care este efectul comenzii:

Exercitii oraleImplementare

TemaReferinte utile

1000 1200 1400 1600 1800 20000

0.02

0.04

0.06

0.08

0.1

0.12

0.14

0.16

n

t [s]

Timp de calcul al produsului matrice − vector

implementare cu forimplementare a*b

Timpul de calcul al produsului dintre o matrice patrata si un vector în

functie de dimensiunea problemei. Comparatie între cele doua

implementari propuse la exercitiul 20.

Gabriela Ciuprina Mediul de lucru MATLAB

Page 18: Cât de familiar va este mediul de lucru MATLAB?an.lmn.pub.ro/slides/AN_s1.pdf · Exerci¸tii orale Implementare Tema Referin¸te utile Exerci¸tiul 1.1: Care este efectul comenzii:

Exercitii oraleImplementare

TemaReferinte utile

100 150 200 250 300 350 400 450 5000

0.5

1

1.5

2

2.5

3

3.5

4

4.5

5

n

t [s]

Timp de calcul al produsului a doua matrice

implementare cu forimplementare a*b

Timpul de calcul al produsului dintre doua matrice patrate în functie de

dimensiunea problemei. Comparatie între cele doua implementari propuse

la exercitiul 21.

Gabriela Ciuprina Mediul de lucru MATLAB

Page 19: Cât de familiar va este mediul de lucru MATLAB?an.lmn.pub.ro/slides/AN_s1.pdf · Exerci¸tii orale Implementare Tema Referin¸te utile Exerci¸tiul 1.1: Care este efectul comenzii:

Exercitii oraleImplementare

TemaReferinte utile

Exercitiul 1.22:Fie o sarcina punctiforma q = 10−10 C, situata în vid(ε0 = 8.8 · 10−12 F/m), în punctul de coordonate(x0, y0, z0) = (0, 0, 0).a) Sa se reprezinte grafic liniile echipotentiale în planul z = 0;b) Sa se reprezinte grafic potentialul V (x , y , 0);c) Sa se reprezinte grafic potentialul V (x , 0, 0);c) Sa se reprezinte grafic vectorul câmp electric în planul z = 0;d) Sa se reprezinte grafic componenta dupa x a câmpuluielectric Ex(x , 0, 0).

Gabriela Ciuprina Mediul de lucru MATLAB

Page 20: Cât de familiar va este mediul de lucru MATLAB?an.lmn.pub.ro/slides/AN_s1.pdf · Exerci¸tii orale Implementare Tema Referin¸te utile Exerci¸tiul 1.1: Care este efectul comenzii:

Exercitii oraleImplementare

TemaReferinte utile

−0.5 0 0.5−0.5

−0.4

−0.3

−0.2

−0.1

0

0.1

0.2

0.3

0.4

0.5

Efectul comenzilor contour si quiver. Curbele au aceasta forma datorita gridului extrem de rar folosit.

Gabriela Ciuprina Mediul de lucru MATLAB

Page 21: Cât de familiar va este mediul de lucru MATLAB?an.lmn.pub.ro/slides/AN_s1.pdf · Exerci¸tii orale Implementare Tema Referin¸te utile Exerci¸tiul 1.1: Care este efectul comenzii:

Exercitii oraleImplementare

TemaReferinte utile

Documentatia Matlab - disponibila online lahttp://www.mathworks.com/access/helpdesk/help/helpdesk.html

Clever Moler - Numerical Computing with Matlab, SIAM,2004, disponibila online lahttp://www.mathworks.com/moler/

Pascal Getreuer - Writing fast Matlab code, 2009http://www.math.ucla.edu/∼getreuer/matopt.pdf

Gabriela Ciuprina Mediul de lucru MATLAB