Îndrumar de Laborator Teoria Probabilităţilor şi Statistică Matematică prin Matlab Daniel N.Pop 1

Documente similare
Laborator 2-Reprezentari grafice in Matlab Daniel N.Pop Universitatea Lucian Blaga Sibiu Facultatea de Inginerie-Departament Calculatoare si inginerie

Laborator 1-Teoria probabilitatilor si statistica matematica Sef lucrari dr.mat. Daniel N.Pop Departamentul de calculatoare si inginerie electrica 1 P

Laborator 7- Distributii de probabilitate clasice Sef lucrari dr.mat. Daniel N.Pop Departamentul de calculatoare si inginerie electrica 15.nov

Laborator 3-Teoria probabilitatilor si statistica matematica Sef lucrari dr.mat. Daniel N.Pop Departamentul de calculatoare si inginerie electrica (24

EXCEL FĂRĂ SECRETE Grafice şi diagrame

Microsoft Word - lab1_2007.doc

Laborator 8- Statistica Descriptiva Sef lucrari dr.mat. Daniel N.Pop Departamentul de calculatoare si inginerie electrica 22.nov

Laborator 9- Estimarea parametrilor Sef lucrari dr.mat. Daniel N.Pop Departamentul de calculatoare si inginerie electrica 29.nov

Universitatea Lucian Blaga Sibiu Facultatea de inginerie-Departamentul de calculatoare şi Inginerie Electrică Titular curs: Şef lucrări dr.mat. Po

Gheorghe IUREA Adrian ZANOSCHI algebră geometrie clasa a VII-a ediţia a V-a, revizuită mate 2000 standard EDITURA PARALELA 45 Matematică. Clasa a VII-

PROGRAMA CONCURSULUI NAŢIONAL

Microsoft Word - TIC5

Modelarea si Simularea Sistemelor de Calcul

Calcul Numeric

E_d_Informatica_sp_SN_2014_bar_10_LRO

Microsoft Word - D_ MT1_II_001.doc

Microsoft Word - Matematika_kozep_irasbeli_javitasi_0911_roman.doc

1 2 1

Matematici aplicate științelor biologie Lab06 MV

ALGORITMICĂ. Seminar 3: Analiza eficienţei algoritmilor - estimarea timpului de execuţie şi notaţii asimptotice. Problema 1 (L) Să se determine număru

Slide 1

DAN LASCU ADRIANA-LIGIA SPORIŞ ANDA OLTEANU PAUL VASILIU MATEMATICĂ. CULEGERE DE PROBLEME TIP GRILĂ PENTRU ADMITEREA ÎN ACADEMIA NAVALĂ MIRCEA CEL BĂT

OPERATII DE PRELUCRAREA IMAGINILOR 1

Dorel LUCHIAN Gabriel POPA Adrian ZANOSCHI Gheorghe IUREA algebră geometrie clasa a VIII-a ediţia a V-a, revizuită mate 2000 standard EDITURA PARALELA

E_d_Informatica_sp_MI_2015_bar_02_LRO

Subiectul 1

Noțiuni matematice de bază

Cursul 12 (plan de curs) Integrale prime 1 Sisteme diferenţiale autonome. Spaţiul fazelor. Fie Ω R n o mulţime deschisă şi f : Ω R n R n o funcţie de

Microsoft Word - cap1p4.doc

Matematici aplicate științelor biologie Lab05 MV

I

Clasa IX 1. O lăcustă face salturi, fiecare salt în linie dreaptă şi de două ori mai lung ca precedentul. Poate vreodată lăcusta să revină în punctul

Spatii vectoriale

Guns N' Roses Video Slots Regulile jocului Guns N' Roses Video Slots este un slot video cu 5 role, 3 rânduri și 20 de linii care conține substituții W

INDICATORI AI REPARTIŢIEI DE FRECVENŢĂ

UNIVERSITATEA BABEŞ-BOLYAI CLUJ-NAPOCA FACULTATEA DE MATEMATICĂ ŞI INFORMATICĂ Concurs MATE-INFO UBB 6 aprilie 2019 Proba scrisă la MATEMATICĂ NOTĂ IM

1. Operatii cu matrici 1 Cerinte: Sa se realizeze functii pentru operatii cu matrici patratice (de dimensiune maxima 10x10). Operatiile cerute sunt: A

gaussx.dvi

Operatorii in C Expresii Operatori aritmetici Operatori de asignare Operatori de incrementare si decrementare Operatori relationali Operatori logici O

1. Găsiți k numerele cele mai apropiate într-un şir nesortat Dându-se un şir nesortat și două numere x și k, găsiți k cele mai apropiate valori de x.

Logică și structuri discrete Limbaje regulate și automate Marius Minea marius/curs/lsd/ 24 noiembrie 2014

Utilizarea Internetului in Afaceri FSEGA, UBB Lect.univ.dr. Daniel Mican LABORATOR 1. Google Drive, Google Calendar, WeTr

Paradigme de programare

Ecuatii si sisteme de ecuatii neliniare 1 Metoda lui Newton Algorithm 1 Metoda lui Newton pentru ecuaţia f(x) = 0. Date de intrare: - Funcţia f - Apro

CLP_UTCN-grila-2012.dvi

Microsoft Word - 2 Filtre neliniare.doc

carteInvataturaEd_2.0_lectia5.pdf

SUBPROGRAME

Teoreme cu nume 1. Problema (Năstăsescu IX, p 147, propoziţia 5) Formula lui Chasles Pentru orice puncte M, N şi P avem MN + NP = MP.

Examenul de bacalaureat 2012

Addendum Syllabus 6 Microsoft Access 2016 REF Syllabus 6.0 Cunoașterea domeniilor în care se utilizează bazele de date Datorită potenţialului ma

PowerPoint Presentation

COMENTARII FAZA JUDEŢEANĂ, 9 MARTIE 2013 Abstract. Personal comments on some of the problems presented at the District Round of the National Mathemati

GHERCĂ MAGDA CASA CORPULUI DIDACTIC BRĂILA PORTOFOLIU EVALUARE INFORMATICĂ ȘI TIC PENTRU GIMNAZIU CLASA A V-A Neamț SERIA 1 GRUPA 1 CURSANT: GHERCĂ G

Fâciu N. Maria-Ema CASA CORPULUI DIDACTIC BRĂILA PROGRAM DE FORMARE INFORMATICĂ ȘI TIC PENTRU GIMNAZIU CLASA A V-A SERIA 1 GRUPA 2 CURSANT: Fâciu N. M

Limbaje de Programare Curs 6 – Functii de intrare-iesire

Logică și structuri discrete Relații. Funcții parțiale Marius Minea marius/curs/lsd/ 20 octombrie 2014

Algebra si Geometri pentru Computer Science

Addendum Syllabus 6 Microsoft Excel 2010 REF Syllabus 6.0 Crearea unui nou registru de calcul pe baza unor șabloane disponibile local sau online

Diapositive 1

CASA CORPULUI DIDACTIC BRAILA PROGRAM DE FORMARE INFORMATICA SI TIC PENTRU GIMNAZIU CLASA A V-A SERIA 1 GRUPA 2 CURSANT: TIMOFTI V. AFRODITA COLEGIUL

Şiruri de numere reale Facultatea de Hidrotehnică Universitatea Tehnică Gheorghe Asachi Iaşi, 2015 Analiză Matematică Lucian Maticiuc 1 / 29

Generarea semnalelor standard 1 Scopul lucrării Familiarizarea cu modul de generare şi reprezentare în mediul Matlab a semnalelor de test, considerate

CABINET MINISTRU

tehnologii web

INDICATORI AI REPARTIŢIEI DE FRECVENŢĂ

D.Rusu, Teoria măsurii şi integrala Lebesgue 6 MĂSURA LEBESGUE Cursul 5 Teorema 6.26 Există submulţimi ale lui R care nu sunt măsurabile Lebesgue. Dem

Microsoft Word - Excel_3.DOC

CONCURSUL NAŢIONAL DE MATEMATICA PANAITOPOL EDIŢIA a X-a, TULCEA, 21 aprilie 2018 Clasa a VII - a 1. Se consideră numerele reale x, y şi z, cel puţin

Microsoft Word - Software pentru ordonarea multirang a componentelor unei colectivitati.doc

Microsoft Word - probleme_analiza_numerica_ses_ian09.rtf

Manual de utilizare a Sistemului Informațional al Institutului Național al Justiției (SI INJ) intranet.inj.md Ver.2 Manual de utilizare a Sistemului I

Probleme proiect TP BITPERM Implementați un algoritm care citește de la intrarea standard două numere naturale și scrie la ieșirea standard da

20 SUBIECTE DE EXAMEN - De fapt, în pofida acestor probleme, până la urmă tot vom logaritma, căci aceasta este tehnica naturală în context. Trebuie do

Laborator 10 Lect. dr. Daniel N.Pop Departamentul de Calculatoare-Inginerie electrică 17.dec

REDRESOARE – simulare PSPICE

Pachete de lecţii disponibile pentru platforma AeL

Информационная система персонализации, печати и учета документов об образовании

C10: Teoria clasică a împrăștierii Considerăm un potențial infinit în interiorul unui domeniu sferic de rază a și o particulă incidentă (Figura 1) la

Subiecte_funar_2006.doc

A.E.F. - suport laborator nr.8 sem.ii Analiza structurală la flambaj În acest laborator sunt atinse următoarele aspecte: modalitatea de analiză la fla

Distanţa euclidiană (indusă de norma euclidiană) (în R k ). Introducem în continuare o altă aplicaţie, de această dată pe produsul cartezian R k XR k,

Laborator 3 - Simulare. Metode de tip Monte Carlo. I. Estimarea ariilor şi a volumelor RStudio. Nu uitaţi să va setaţi directorul de lucru: Session Se

Înregistrator de temperatură şi umiditate AX-DT100 Instrucţiuni de utilizare

Unelte ce se regasesc in Viewer (CD, Stick) Uneltele de baza Uneltele de baza includ cele mai comune unelte folosite in modulele OnDemand 3D App. Unel

Analiz¼a Matematic¼a - Curs 6 M¼ad¼alina Roxana Buneci

Manual de utilizare Room Booking System

Copyright c 2001 ONG TCV Scoala Virtuala a Tanarului Matematician 1 Ministerul Educatiei si Stiintei Examenul de bacalaureat la

CERCURI REMARCABILE ASOCIATE UNUI TRIUNGHI CERCURI EXÎNSCRISE Natura vorbeşte în limbajul matematicii: literele acestei limbi sunt cercuri, tri

OLM_2009_barem.pdf

Regulile jocului Hotline Hotline este un slot video cu 5 role, 3 rânduri și 30 de linii (fixe) care conține simboluri Wild și Expanding Wild, Re-Spins

Logică și structuri discrete Logică propozițională Marius Minea marius/curs/lsd/ 3 noiembrie 2014

Laborator 3

MergedFile

CURBE BÉZIER În CAGD se utilizează adesea curbele polinomiale, adică acele curbe definite de o parametrizare polinomială: C : [a, b] R 3 C(t) = (x(t),

ALGORITMII ŞI REPREZENTAREA LOR Noţiunea de algoritm Noţiunea de algoritm este foarte veche. Ea a fost introdusă în secolele VIII-IX de către Abu Ja f

rrs_12_2012.indd

Microsoft PowerPoint - Curs_SDA_9_RO_2019_v2.pptx

Transcriere:

Îndrumar de Laborator Teoria Probabilităţilor şi Statistică Matematică prin Matlab Daniel N.Pop 1

Cuprins 1 Prefaţă 4 2 Prezentare generală Matlab 6 2.1 Noţiuni introductive.............................. 6 2.1.1 Help on-line............................... 6 2.1.2 Opţiuni de salvare........................... 6 2.1.3 Crearea fişierelor MATLAB (.m files)................. 6 2.1.4 Matrici şi Polinoame.......................... 7 2.1.5 Interpolarea............................... 9 2.1.6 Importuri de date din foi Excel.................... 10 2.2 Reprezentări grafice............................... 11 2.2.1 Instrucţiunea plot........................... 11 2.2.2 Instructiunile polar şi ezpolar..................... 12 2.2.3 Instructiunile bar, barh, subplot................... 13 2.2.4 Instructiunea fill............................ 14 2.2.5 Reprezentarea prin pie......................... 14 2.2.6 Reprezentarea curbelor de nivel.................... 15 2.2.7 Reprezentarea 3d prin mesh şi surf.................. 16 2.2.8 Instrucţiunile ezmesch,ezsurf,ezmeshc, ezsurfc............ 17 2.2.9 Problema triunghiului......................... 18 3 Teoria Probabilităţilor 20 3.1 Probleme.................................... 20 3.1.1 Problema lui de Méré.......................... 20 3.1.2 Joc de pariuri.............................. 21 3.1.3 Generare numere aleatoare....................... 23 3.1.4 Reţea de Calculatoare......................... 24 3.1.5 Partiţionarea unei mulţimi date în două submulţimi......... 25 3.1.6 Permutarea aleatoare a unui sir.................... 27 3.1.7 Schema lui Poisson........................... 28 3.2 Distribuţii de probabilitate........................... 28 3.2.1 Distribuţii discrete........................... 28 3.2.2 Legi de distribuţie continue clasice.................. 35 3.2.3 Functiile Matlab pdf,cdf........................ 36 3.2.4 Funcţia randtool............................ 38 3.2.5 Legea normală bidimensională..................... 38 3.2.6 Legi de probabilitate continue statistice................ 39 3.2.7 Funcţia plotmatrix........................... 40 3.2.8 Teorema Moivre-Laplace....................... 41 2

4 Statistică matematică 43 4.1 Parametrii distribuţiilor statistice....................... 43 4.1.1 Parametrii statistici care măsoară tinţa.............. 43 4.1.2 Parametrii statistici ce măsoară dispersia............... 44 4.1.3 Corelaţie şi Regresie.......................... 48 4.1.4 Funcţia Matlab icdf........................... 49 4.1.5 Grafice statistice............................ 51 4.1.6 Grafice de tip caseta.......................... 51 4.1.7 Diagrame de verificare a normalităţii................. 52 4.1.8 Grafice cuantilă-cuantilă........................ 53 4.1.9 Diagrame de verificare a distribuţiei Weibull............. 53 4.2 Verificarea ipotezelor statistice......................... 54 4.2.1 Testul Z................................. 54 4.2.2 Intervale de încredere.......................... 55 4.2.3 Funcţia ztest.............................. 58 4.2.4 Funcţia ttest.............................. 59 4.2.5 Funcţia ztest2.............................. 60 4.2.6 Funcţia ttest2.............................. 61 4.2.7 Testul κ 2 asupra dispersiei...................... 62 4.2.8 Testul χ 2 asupra proportiilor...................... 64 4.2.9 Testul χ 2 pentru indepenţă şi omogenitate............ 66 4.2.10 Testul Kolmogorov........................... 68 4.2.11 Testul Kolmogorov-Smirnov pentru două populaţii......... 71 5 Probleme Propuse 74 6 Bibliografie 77 3

1 Prefaţă Problemele teoretice relative la jocurile de noroc, în special privind şansele partenerilor, au atras atenţia savanţilor timpului. Astfel fundamentarea teoretică a calculului probabilităţilor poate fi atribuită francezilor P. de Fermat(1601-1665) şi B.P Pascal (1623-1662). Corespondenţa dintre cei doi din anul 1654 conţine primele aspecte privind şansele în jocurile de noroc. O parte din problemele considerate au fost formulate şi prezentate lui Pascal de către Cavalerul de Mere un împătimit al jocurilor de noroc din acea vreme. Prima carte de introducere în calculul probabilităţilor este De Ratiocinnis in Alea Ludo (Cum se raţionează în jocurile cu zarul) apărută în 1657 şi are ca autor pe olandezul Ch.Huygens(1629-1695). Amintim lucrarea lui James Bernoulli (1654-1705) Ars Conjectandi (Arta de a face presupuneri) care a fost publicată de fratele său John Bernoulli în anul 1713. Se remarcă în conţinutul cărţii legea numerelor mari, rezultat fundamental în teoria probabilităţilor. Un alt rezultat fundamental este teorema limită centrală care se găseşte în lucrarea Doctrine of Chances apărută în anul 1718 şi care este opera lui A.de Moivre (1667-1754) care este strâns legată de legea normală de probabilitate. Descoperirea legii normale este atribuită lui K.F. Gauss (1775-1843) şi care este considerată ca fiind specifică erorilor de măsurare. Rezultatele lui Moivre privind teorema limită centrală sunt extinse de către P.S. de Laplace (1770-1843) stabilind de asemenea legătura cu legea normală de probabilitate, în cartea Theorie Analitique des Probabilites (Teoria analitică a probabilităţilor), apărută în anul 1812. Un salt remarcabil în dezvoltarea teoriei probabilităţilor a fost făcut prin contribuţia remarcabilă a matematicienilor ruşi L.P.Cebîşev (1821-1884), A.A.Markov(1856-1922), A.M.Leapunv (1857-1918),primul a introdus noţiunea de variabilă aleatoare, reformulând şi generalizând legea numerelor mari în limbajul variabilelor aleatoare. Pasul decisiv privind fundamentarea modernă a teoriei probabilităţilor este făcut prin lucrarea matematicianului rus A.N. Kolmogorov (1903-1989) apărută în anul 1933. A.N. Kolmogorov folosind teoria măsurării reuşeşte să construiască modelul axiomatic al teoriei probabilităţilor. Statisticieni de renume care au pus bazele statisticii matematice sunt consideraţi a fi englezii F.Galton (1822-1911) şi K.Pearson(1857-1936), opera acestora fiind continuată de celebrul statistician R.A.Fisher (1890-1962). Pentru detalii privind istoricul statisticii recomand lucrarea [2]. Dintre matematicienii români care au avut o contribuţe remarcabilă în acest domeniu amintim: acad. Gheorghe Mihoc, profesorii : G.Ciucu, O.Onicesu, V.Craiu, M. Maliţa, P.Blaga, A.I.Lupaş. Au fost elaborate o serie de produse soft care prezintă într-o concepţie unitară reprezentarea, prelucrarea şi studiul datelor statistice : Statgraphics, Statistica, S-Plus, SAS, SPSS, ViSta, etc. Unele produse soft elaborate în alte scopuri decât cel al prelucrării datelor statistice, conţin proceduri privind prelucrarea mai elementară sau mai complexă a datelor statistice: Matlab, Wolfram-Mathematica, Maple. Am ales în această lucrare mediul de programare Matlab [3]. Indrumarul este structurat în cinci capitole: Capitolul I conţine noţiuni introductive 4

în MATLAB, Capitolul II probleme din Teoria Probabilităţilor, Capitolul III probleme din Statistica Matematică, Capitolul IV Verficarea ipotezelor statistice, iar ultimul capitol este dedicat unor probleme propuse spre rezolvare. Doresc să mulţumesc pe această cale domnilor prof. univ dr. Petru Blaga şi conf.univ.dr. Radu T. Trâmbiţaş de la Universitatea Babeş- Bolyai Cluj-Napoca, Facultatea de Matematică şi Informatică care m-au ajutat foarte mult la elaborarea acestui îndrumar. Orice observaţii privind aceast îndrumar sunt binevenite pe adresa de e-mail: nicolae.pop@ulbsibiu.ro. 5

2 Prezentare generală Matlab 2.1 Noţiuni introductive 2.1.1 Help on-line Limbajul MATLAB este mult mai simplu de învăţat, dacă se renunţă la inspectarea aridă a listelor cu variabile, funcţii şi operatori şi se utilizează în schimb comenzile help, helpdesk, demo, tastate direct de la prompterul MATLAB. Pentru aflarea tuturor informaţiilor utile despre o comandă sau o funcţie se tastează help urmat de numele comenzii sau funcţiei respective. Pachetul MATLAB dispune de asemenea de informaţii complete despre utilizare sub forma unei documentaţii tip.pdf. În cazuri particulare se poate apela la INTERNET, existând o legătură la pagina Web a firmei producătoare. Alte comenzi utile pentru aflarea de informaţii sunt: helpwin, lookfor, help help. 2.1.2 Opţiuni de salvare Pentru salvarea variabilelor curente cu care se lucrează în MATLAB la încheierea unei sesiuni de lucru se poate utiliza comanda save. Această comandă va salva toate variabilele curente generate de către utilizator într-un fişier numit matlab.mat. Dacă se doreşte se poate da un nume fişierului de date în care se salvează variabilele. Spaţiul de lucru conţine un set de variabie (numite tablouri sau matrice) care pot fi manevrate din linia de comandă. Se pot folosi comenzile who şi whos pentru a vedea care sunt variabilele curente din workspace. Pentru ştergerea variabilelor din workspace se utilizează comanda clear all. Lansarea in executie: dublu click pe iconul MATLAB. Parasirea mediului de programare se face cu comanda >> quit 2.1.3 Crearea fişierelor MATLAB (.m files) Deoarece este mult mai comod şi util decât introducerea comenzilor linie după linie la prompterul MATLAB, se lucrează cu fişiere text care conţin aceste linii program cu comenzile necesare. Aceste fişiere conţin cod în limbajul MATLAB şi sunt denumite.m files (sau M-files). Fişierele se creează utilizând un editor de text şi apoi se utilizează ca o comandă MATLAB obişnuită. Sunt două tipuri de fişiere.m: Fişiere Script, care nu acceptă argumente de intrare şi nu returnează argumente de ieşire. Aceste fişiere operează cu datele din spaţiul de lucru. Rutine (funcţii), care acceptă argumente de intrare şi returnează argumente de ieşire. Variabilele utilizate sunt variabile locale (interne) ale funcţiei. Pentru a vedea conţinutul unui fişier MATLAB, de exemplu nume.m, se foloseşte comanda: 6

>>type nume.m >>clc% sterge ecranul Exemplul 1 : Următorul fişier creează o funcţie neliniară: Se alege din meniul New optiunea function si se salveaza cu numele nelin. function y = nelin(x) y = 1./((x-.3).^2 +.01) + 1./((x-.9).^2 +.04) - 6; Această funcţie poate fi evaluată pentru un set de puncte în intervalul 0 x 1 cu comanda: >>x = 0:.002:1; >>y = nelin(x); şi apoi se poate reprezenta grafic funcţia cu comanda: >>plot(x,y) Graficul arată că funcţia are un minim local la aproximativ x = 0.6. Dacă de exemplu utilizăm funcţia fminsearch putem găsi imediat valoarea exactă a lui x. Primul argument al funcţiei este chiar numele funcţiei pentru care calculăm minimul (al doilea parametru este o aproximare grosieră a localizării minimului). >> x = fminsearch( nelin,.5); > x x = 0.6370 O altă posibilitate este crearea la nivelul liniei de comandă a unui obiect inline prin folosirea unei expresii tip şir de caractere: >> f=inline( 1./((x-.3).^2+.01)+1./((x-.9).^2+.04)-6 ); 2.1.4 Matrici şi Polinoame Polinoamele sunt descrise în MATLAB prin vectori linie ale căror elemente sunt de fapt coeficienţii polinoamelor în ordinea descrescătoare a puterilor. >>p = [1 0 5 6] p(x) = x 3 + 5 x + 6 Un polinom poate fi evaluat pentru o valoare a lui x de exemplu x=1 cu ajutorul funcţiei polyval: 7

>>polyval(p,1) ans= 12 Se pot afla cu uşurinţă rădăcinile polinomului folosind funcţia roots astfel: >>r=roots(p); >> r r = 0.5000 + 2.3979i 0.5000-2.3979i -1.0000 Comanda care permite înmulţirea a două polinoame este conv: >> p1=[1 3 5] p1 = 1 3 5 >> p2=[2 0 1 0 5] p2 = 2 0 1 0 5 >> p3=conv(p1,p2) p3 = 2 6 11 3 10 15 25 Funcţia polyfit găseşte coeficienţii unui polinom (o curbă) care aproximează un set de date în sensul algoritmului celor mai mici pătrate: >>p = polyfit(x,y,n); Exemplu: >> x = [1 2 3 4 5]; y = [5.5 43.1 128 290.7 498.4]; >> p = polyfit(x,y,3) Pentru plotarea rezultatului se utilizează mai întâi funcţia polyval pentru o trasare cât mai exactă a graficului polinomului şi apoi se plotează estimarea versus datele reale pentru comparaţii. >> x2 = 1:.1:5; >> y2 = polyval(p,x2); >> plot(x,y, o,x2,y2) MATLAB-ul operează cu matricile cu aceeaşi uşurinţă cu care lucrează cu scalarii. Pentru adunarea a două matrici de exemplu se foloseşte pur şi simplu semnul + ca la o adunare obişnuită. Bineînţeles că matricile trebuie să aibă aceleaşi dimensiuni pentru a putea fi adunate iar pentru înmulţire operatorul *. Menţionăm că pentru înmulţirea 8

matricilor trebuie să respectăm regula: numărul colanelor primei matrici este egal cu numărul liniilor celei de a doua. Pentru calculul determinatului unei matrici se foloseste det(a), iar pentru calculul inversei inv(a). >> A=[2 3;15-3]} A = 2 3 15-3 >> B=[11-21; 12 4] B = 11-21 12 4 >> C=A+B C = 13-18 27 1 >> D=A*B D = 58-30 129-327 >> det(a) ans = -51 >>inv(a); ans = 0.0588 0.0588 0.2941-0.0392 2.1.5 Interpolarea Interpolarea este un proces de estimare a valorilor dintre date (puncte) cunoscute. MATLAB-ul dispune de mai multe tehnici de interpolare, alegerea unei metode sau alteia făcându-se în funcţie de acurateţea necesară, de viteza de execuţie şi de gradul de utilizare a memoriei. Funcţiile de interpolare se află în directorul polyfun. Exemplu >[x,y] = meshgrid(-3:1:3); >z = peaks(x,y); > surf(x,y,z); Generarea unei suprafeţe mesh fine pentru interpolare: [xi,yi] = meshgrid(-3:0.25:3); 9

Interpolarea cu metoda celei mai apropiate vecinătăţi: zi1 = interp2(x,y,z,xi,yi, nearest ); Interpolarea cu metoda biliniară: zi2 = interp2(x,y,z,xi,yi, bilinear ); Interpolarea cu metoda bicubică: zi3 = interp2(x,y,z,xi,yi, bicubic ); 2.1.6 Importuri de date din foi Excel Pasul 1 În Excel dăm click dreapta pe bara de meniuri alegem opţiunea Customize Quick Access Toolbar şi adăugăm în Toolbar: Calculate Sheet Bar, DataSheetFormating şi Table. Creem in Excel o foaie de calcul Nupţialitate şi o salvăm cu extensia nupt xlsx,(excel WorkBook) complectând în prealabil coloana 2014 astfel: An Numar Casatorii prime Casatorii V Rata V arsta Masculin F e min in nuptialitatii medie arsta medie prima casatorie 2011 105, 6 83, 3 4, 9 59, 4 31, 4 28 55, 5 2012 107, 8 84, 7 5, 1 59, 9 31, 6 28, 2 56 2013 106, 7 85, 4 4, 8 60, 8 32, 1 26, 7 46, 1 2014 108, 8 +1, 5% +1, 2% +2, 3% +1, 8% = V.medie masculin +1, 4% Înaintea salvării alegem opţiunea: Data SheetFormating +Aligneament+ Wrap Text pe care-l bifăm, apoi Table. Pasul 2 Copiem foaia de calcul în directorul curent al Matlab-ului fişierul cu extensia xlsx în directorul: C:\Users\Daniel\Documents\MATLAB\Prog Matlab\ Tastăm în linia de comandă : >> clear all%stergem toate variabilele de lucru din workspace >> filename = nupt.xlsx ;% Incarcam fisierul cu numele nupt.xlsx >> uiimport(filename)%si alegem in fereastra de lucru %import as Cell Array, Range:domeniul dorit (exemplul nostru A1:F10) %daca dorim un alt sheet decat 1 implicit dam comanda Matlab >>sheet 2;//importa sheet 2 10

Altă metodă: 1)Dăm dublu click pe fisierul nupt.xlsx din directorul curent al Matlabului. 2)Se deschide o fereastră IMPORT 3)alegem optiunea cell array şi apoi columns vector selectăm coloana pe care dorim să o importăm 4)import+data 5)save workspace dăm un nume fisierului obligatoriu cu extensia mat. In workspace va apărea numefisier.mat. 6)lansăm in execuţie scriptul care foloseste ca date de intrare: numefisie.mat. Apoi din meniul File alegem opţiunea save workspace as ex: Nupt.mat. In directorul curent va aparea Nupt.mat Selectăm de exemplu Numar casatorii (numai datele numerice), alegem de exmplu o reprezentare de tip PIE. Observatie 1 Dacă alegem opţiunea column vectors va aparea in workspace coloanele A,B,C,... Alegem din worksheet coloana C de exemplu şi plotăm sub diferite forme de diagrame. Salvăm de exemplu coloanab(număr casatorii) 2.2 Reprezentări grafice Sistemul Matlab dispune de o largă gamă de instrucţiuni sau proceduri (funcţii) pentru reprezentarea grafică în plan. 2.2.1 Instrucţiunea plot Formele acceptate: plot(y) plot(x1,y1,...,xn,yn) plot(x1,y1,linespec,...,xn,yn,linespec) plot(..., PropertyName,PropertyValue,...) plot(axes_handle,...) h = plot(...) În cazul primei forme dacă Y este un vector de lungime m se reprezintă grafic linia poligonală ce trece prin punctele de coordonate (x i, y i ), i = 1, m Examplul 2 Să se scrie un program *.m care reprezintă grafic linia poligonală ce uneşte punctele de coordonate (x i, y i ), i = 1,...m, unde y reprezintă elementele diagonalei unei matrici magice de ordin m Din meniul File->New->Script Introducem codul: 11

m=input( m= ); y=diag(magic(m)); plot(y) >>m=5 Apoi salvăm şi selectăm Run iar in linia de comandă dăm MATLAB-ul permite reprezentarea pe acelaşi grafic a două funcţii. Examplul 3 Să se reprezinte pe acelasi grafic funcţiile sin(2πx) si cos(2πx) pe intervalul [0,1] prima funcţie prin linie dreaptă, iar a doua linie întreruptă, iar punctele de pe cele două curbe care au abscisele multiplii de 1/6 să fie marcate prin cerculeţe, respectiv steluţe. Din meniul File->New->Script Introducem codul: m=input( m= ); h=1/m; x=0:h:1; y=2*pi*x; y=[sin(y) cos(y) ]; p=0:1/6:1; pp=2*pi*p; plot(x,y,p,sin(pp), o,p,cos(pp), * ) grid on Apoi salvăm si selectăm Run, iar in linia de comanada tastăm: >>m=200 2.2.2 Instructiunile polar şi ezpolar Instrucţiunea polar este similară cu plot, dar reprezentarea curbei se face în coordonate polare, iar instrucţiunea ezpolar are sintaxa ezpolar( f,[a,b]) Al doilea argument este opţional valoarea implicita este [0,2π] Tastăm in linia de comanda: >>t=0:0.1:pi; >> r=sin(3*t).*exp(-0.3*t); >> polar(t,r, k- ) Un simplu exemplu de utilizare a instrutiunii ezpolar este: >>ezpolar( 1+cos(theta) ) 12

2.2.3 Instructiunile bar, barh, subplot Forme utilizate: bar(y) bar(x,y) bar(...,width) bar(..., style ) bar(..., bar_color ) bar(..., PropertyName,PropertyValue,...) bar(axes_handle,...) h = bar(...) Diferenţa dintre bar şi barh este că reprezentarea grafică se face cu bare orizontale Forme utilizate : barh(y) barh(x,y) barh(...,width) barh(..., style ) barh(..., bar_color ) barh(..., PropertyName,PropertyValue,...) barh(axes_handle,...) h = barh(...) Sistemul Matlab are posibilitatea de a împarţii o fereastră pentru reprezentarea grafică în m n ferestre cu ajutorul instrucţiunii: subplot(m,n,p) Examplul 4 Fiind dată o matrice magică de ordin m să se reprezinte în patru ferestre de tipul 2 2 prin bare verticale grupate şi prin bare verticale stivuite, valorile primelor două coloane ale matricei, respectiv prin bare orizontale grupate şi prin bare orizontale stivuite valorile ultimelor doua coloane. Reprezentarea grafică se face in 3D. Din meniul File->New->Script Introducem codul: m=input( m= ); A=magic(m); subplot (221),bar3(A(:,[1 2]), detached ) title ( Primele doua coloane grupate ) subplot (222),bar3(A(:,[1 2]), stacked ) title ( Primele doua coloane stivuite ) subplot(223),bar3h(a(:,[m-2 m]), stacked ) title( Ultimele doua coloane grupate ) subplot(224),bar3h(a(:,[m-2 m]), detached ) title( Ultimele doua coloane stivuite ) colormap summer 13

>>m=4 Apoi salvăm si selectăm Run, iar în linia de comanadă tastăm: 2.2.4 Instructiunea fill Este folosită pentru umbrirea interiorului unui poligon specificat prin vârfurile sale: fill (x,y,c) Examplul 5 Să se scrie un program care să umbrească aria cuprinsă între axa absciselor, curba lui Gauss şi dreptele perpiculare pe axa absciselor în punctele a şi b (-3<a<b<3). Curba lui Gauss este dată de: f(x) = 1 2π exp( x2 2 ), x R Din meniul File->New->Script Introducem codul: a=input( a= ); b=input( b= ); xmin=-3;xmax=3; fplot( 1/sqrt(2*pi)*exp(-x^2/2),[xmin,xmax]) x=a; y=0; t=a:0.01:b; x=[x,t];y=[y,1/sqrt(2*pi)*exp(-t.^2/2)]; x=[x,b];y=[y,0]; fill(x,y, c ) >>a=-2 >>b=2 Apoi salvăm şi selectăm Run, iar in linia de comanadă tastăm: 2.2.5 Reprezentarea prin pie Reprezentări ale datelor prin sectoare ciculare în plan, respectiv în spaţiu se obţin prin funcţiile pie şi pie3 care se apelează prin formele: pie(x,ex,label) pie3(x,ex,label) unde x este un vector aleator având componentele pozitive şi normalizate adică suma lor să fie 1. Parametrul ex este opţional şi specifică sectoarele de cerc ce urmează a fi detaşate pe figură, acesta dacă e prezent trebuie să fie un vector de aceaşi lungime cu vectorul x. Parametrul opţional label specifică etichetele sectoarelor de cerc, acesta dacă este prezent trebuie să fie un vector de aceaşi lungime cu vectorul x, dar care conţin numai şiruri de caractere. Deschidem un fisier pie3.m Introducem codul 14

%Programul care urmeaza genereaza n numere aleatoare ce urmeaza %legea uniform discreta construieste tabelul sistematizat %dupa care reprezintadatele sistematizate folosind functiile pie si pie3 n=input( n= );N=input( N= ); x=unidrnd(n,1,n); t=tabulate(x); d=length(t(:,3)); ex=zeros(1,d); ex(1)=1; subplot(2,1,1) pie(t(:,3) /100,ex) subplot(2,1,2) pie3(t(:,3) /100,ex) colormap summer Salvăm şi-l lansăm în execuţie pentru n=50, N=4 obţinem : n=50 N=4 Value Count Percent 1 13 26.00% 2 15 30.00% 3 10 20.00% 4 12 24.00% 2.2.6 Reprezentarea curbelor de nivel Se face prin contour si contourf.diferenţa dintre ele doar prin faptul că ariile delimitate de curbele de nivel sunt umbrite. Aceste funcţii permit reprezentarea grafică a funcţiilor implicite. Examplul 6 Să reprezentăm n curbe de nivel pentru funcţia definită anterior. Reprezentările acestor curbe de nivel vor fi făcute atât cu contour cât şi contourf. Deschidem un fisier *.m si introducem codul clear,clf m=input( m= );n=input( n= ); h=1/m;x=-1:h:1; [X,Y]=meshgrid(x); Z=1/(2*pi)*exp(-0.5*(X.^2+Y.^2)); subplot(1,2,1),contour(z,n), title([ n=,num2str(n), curbe de nivel ]) subplot(1,2,2),contourf(z,n), title([ n=,num2str(n), curbe de nivel umbrite ]) xlabel( x ),ylabel( y ),zlabel( z ) 15

Iar in linia de comandă tastăm pentru stabilirea pasului. >>m=20 >>n=5% numarul liniilor 2.2.7 Reprezentarea 3d prin mesh şi surf Examplul 7 Să se reprezinte grafic funcţia: pe domeniul z = f(x, y) = 1 2π exp( 1 2 (x2 + y 2 )) D = [ 1, 1] [ 1, 1] odată cu instrucţiunea mesh şi apoi cu instrucţiunea surf Deschidem un fisier *.m Introducem codul clear,clf m=input( m= ); h=1/m;x=-1:h:1; [X,Y]=meshgrid(x); Z=1/(2*pi)*exp(-0.5*(X.^2+Y.^2)); subplot(1,2,1),mesh(x,y,z) title ( Grafica prin mesh ) xlabel( x ),ylabel( y ),zlabel( z ) subplot(1,2,2),surf(x,y,z) title( Grafica prin surf ) xlabel( x ),ylabel( y ),zlabel( z ) Iar in linia de comanda tastam: >>m=20 Examplul 8 Să se scrie un program care efectuează umbrirea suprafeţei date de funcţia de mai sus. Există posibilitatea de umbrire cu shading ( tip): tip =faceted (implicit),umbreşte fiecare patrulater de pe suprafaţa trasată. tip =flat (fără trasarea laturilor patrulaterelor). tip =interp, umbrirea fiecărui patrulater de pe suprafaţa trasată se face în mod gradat printr-un procedeu de interpolare, fară trasarea liniilor patrulaterului. Deschidem un fisier *.m şi introducem codul: clear,clf m=input( m= ); h=1/m;x=-1:h:1; [X,Y]=meshgrid(x); 16

Z=1/(2*pi)*exp(-0.5*(X.^2+Y.^2)); subplot(1,3,1),surf(x,y,z), shading faceted title( Umbrire faceted ) subplot(1,3,2),surf(x,y,z), shading flat title( Umbrire flat ) xlabel( x ),ylabel( y ),zlabel( z ) subplot(1,3,3),surf(x,y,z) title( Umbrire interp ) shading interp Iar în linia de comandă tastăm: >>m=20 2.2.8 Instrucţiunile ezmesch,ezsurf,ezmeshc, ezsurfc Tastăm în linia de comandă: >>subplot(1,2,1); >> ezmesh( sin(x)*sin(y),[-pi,pi], circ ); >> subplot(1,2,2) >>ezmeshc( sin(x)*sin(y),[-pi,pi], circ ); >>colormap spring Diferenţa dintre cele două grafice este că primul nu face curbele de nivel, iar cel de-al doilea da. Dăm următorul exemplu. Deschidem un fisier *.m şi introducem codul clear,clf subplot(1,2,1) ezsurf( x*exp(-x^2-y^2),[-2,2],20) title( Reprezentarea cu ezsurf ) subplot(1,2,2) ezmesh( x*exp(-x^2-y^2),[-2,2],20) colormap autumn title( Reprezentare cu ezmesh ) Salvăm cu numele...apoi Run (butonul verde) 17

2.2.9 Problema triunghiului Examplul 9 Să se scrie un program Matlab care generează la fiecare apasare a unei taste sau click o alegere a 2 puncte in intervalul [0,1], afisează dacă segmentele pot forma un triunghi, dacă da, atunci precizeaza tipul triunghiului şi desenează triunghiul, obţinut prin intersectia a doua semicercuri. Soluţie: Codul Matlab este: function triangle fig = figure; while ishghandle(fig) %executia are loc cat timp nu este inchisa fereastra grafica X=sort(unifrnd(0,1,1,2)); a=x(1);b=x(2)-x(1);c=1-x(2); clf; hold on; axis equal; axis([0 1 0 0.61]); plot([0 1],[0 0], k, linewidth,1.5); plot(x,[0 0], or, markersize,12,... markerfacecolor, r ); if (a<b+c)&&(b<a+c)&&(c<a+b) x=((a^2-c^2)/b+x(1)+x(2))/2; y=sqrt(a^2-(x-x(1))^2); %(x,y)=coordonatele punctului de intersectie a semicercurilor superioare % centrate in X(1) si X(2) cu razele a, respectiv c plot([x(1) X(2) x X(1)], [0 0 y 0], k, linewidth,3); plot([x(1) X(2) x X(1)], [0 0 y 0], or,... markersize,12, markerfacecolor, r ); u=0:0.1:pi; plot(x(1)+a*cos(u),a*sin(u), --k ); plot(x(2)+c*cos(u),c*sin(u), --k ); if (a^2<b^2+c^2)&&(b^2<a^2+c^2)&&(c^2<a^2+b^2) text(0.05,0.6, Segmentele formeaza un triunghi ascutitunghic.,... fontsize,17); elseif (a^2==b^2+c^2) (b^2==a^2+c^2) (c^2==a^2+b^2) text(0.05,0.6, Segmentele formeaza un triunghi dreptunghic.,... fontsize,17); else text(0.05,0.6, Segmentele formeaza un triunghi obtuzunghic.,... fontsize,17); else text(0.1,0.6, Segmentele nu pot forma un triunghi., fontsize,17); 18

waitforbuttonpress; 19

3 Teoria Probabilităţilor 3.1 Probleme 3.1.1 Problema lui de Méré Un pasionat jucator de zaruri, cavalerul de Méré, susţinea în discuţiile sale cu Pascal că jocurile de noroc uneori conduc la rezultate care contrazic matematica. Astfel, afirma el, a arunca un zar de 4 ori pentru a obţine o data faţa şase, este acelaşi lucru cu a arunca de 24 ori câte două zaruri pentru a obţine o dublă de şase. Cu toate acestea, cavalerul de Méré a observat ca jucând în modul al doilea (cu două zaruri aruncate de 24 ori), pierdea faţă de adversarul său, dacă acesta alegea primul mod (aruncarea unui singur zar de 6 ori), ceea ce credea el, contrazicea regulilor matematice. Pascal şi Fermat au arătat însă că probabilitatea p 1 de câştig la jocul cu un singur zar aruncat de 4 ori este mai mare decât probabilitatea p 2 de la jocul cu două zaruri aruncate de 24 de ori. Deşi diferenţa dintre cele două probabilitaţi este mică, totuşi, la un număr mare de partide, jucătorul cu probabilitatea de câstig p 1 câstigă în faţa jucătorului cu probabilitatea de câstig p 2. Practica jocului confirma astfel justetea rationamentului matematic, contrar credinţei lui de Méré. Examplul 10 [6] Simulaţi cu ajutorul unui program MATLAB aceste jocuri: 1)aruncarea de patru ori a unui zar, respectiv aruncarea unui zar de 24 de ori, apoi estimaţi pe baza simulărilor cele două probabilităţi p 1 şi p 2.Are loc p 1 > p 2? 2) Dacă în loc de 24 de aruncări se fac 25 de aruncari, ramâne valabil ca p 1 > p 2? Soluţie. Codul Matlab este: N=100; %% Simulare primul joc % Se simuleaza N jocuri, pentru fiecare generandu-se %un vector coloana % de 4 numere aleatoare uniforme discrete in {1,2,3,4,5,6} % In total o matrice de $4 \times N$. %Se numara coloanele in care apare 6 si se % imparte la N J1=unidrnd(6,4,N); p1=sum(max(j1)==6)/n %% Simulare jocul 2 % Se simuleaza N jocuri, pentru fiecare generindu-se o matrice de % $2 \times 24$ numere aleatoare uniforme discrete in {1,2,3,4,5,6} % In total o matrice tridimensionala de $2 \times 24 \times N$. %Se numara coloanele in care apare % dubla de 6 si se imparte la N J2=unidrnd(6,[2,24,N]); p2=sum(max(sum(j2))==12)/n %% Jocul 3 20

% Analog pentru jocul 3 J3=unidrnd(6,[2,25,N]); p3=sum(max(sum(j3))==12)/n Se obtin rezultatele p1 = 0.4700 p2 = 0.4600 p3 = 0.4100 3.1.2 Joc de pariuri Examplul 11 Se aruncă simultan trei zaruri. Câstigă jocul acea persoană, care prevede suma celor trei numere, care au apărut. (1) Cu ce număr ar trebui pariat pentru a avea şanse cât mai mari de câştig? (2) Care număr (sau numere) au probabilitatea cea mai mică de a apărea? (3) Care sunt aceste probabilităţi? Să se simuleze acest joc de m (100, 1000...) ori, să se realizeze un tabel cu suma numerelor care au apărut. Să se compare rezultatele obţinute din simulări cu răspunsurile teoretice de la (3). Soluţie Codul Matlab este: m=input( numarul de jocuri: ) JM = unidrnd(6,3,m); sume=sum(jm); T=tabulate(sume); fprintf( Valoare Frecventa p\n ); fprintf( %7d %8d %f\n,... [T(3:,1),T(3:,2), T(3:,2)/m] ); %% Teoretic % Pentru verificare teoretica verificam cu meshgrid % si tabulate [I,J,K]=meshgrid(1:6); S=I+J+K; Tt=tabulate(S(:)); fprintf( Valoare Frecventa p\n ); fprintf( %7d %8d %f\n,... [Tt(3:,1),Tt(3:,2), Tt(3:,2)/m] ); format rat [Tt(3:,1),Tt(3:,2)/6^3] %% Reprezentare grafica % Grafice sub forma de bare 21

subplot(1,2,1) bar(t(3:,1),t(3:,2)) title( Simulare ) subplot(1,2,2) bar(tt(3:,1),tt(3:,2)) title( Teoretic ) format short Se obţin rezultatele: numarul de jocuri:1000 m = 1000 Valoare Frecventa p 3 4 0.004000 4 13 0.013000 5 48 0.048000 6 39 0.039000 7 77 0.077000 8 93 0.093000 9 110 0.110000 10 131 0.131000 11 128 0.128000 12 114 0.114000 13 87 0.087000 14 61 0.061000 15 46 0.046000 16 34 0.034000 17 14 0.014000 18 1 0.001000 Valoare Frecventa p 3 1 0.001000 4 3 0.003000 5 6 0.006000 6 10 0.010000 7 15 0.015000 8 21 0.021000 9 25 0.025000 10 27 0.027000 11 27 0.027000 12 25 0.025000 13 21 0.021000 14 15 0.015000 15 10 0.010000 16 6 0.006000 22

17 3 0.003000 18 1 0.001000 ans = 3 1/216 4 1/72 5 1/36 6 5/108 7 5/72 8 7/72 9 25/216 10 1/8 11 1/8 12 25/216 13 7/72 14 5/72 15 5/108 16 1/36 17 1/72 18 1/216 3.1.3 Generare numere aleatoare Examplul 12 Se dau: n si N numere naturale (nenule) şi p (0; 1). Fără a folosi comanda randsample sau binornd, să se scrie o funcţie [6] : (1) care generează n numere 0 si 1, astfel încât probabilitatea de apariţie a lui 1 să fie egală cu p, iar probabilitatea de apariţie a lui 0 să fie 1 - p (de fapt, se generează n valori pentru o variabilă aleatoare ( de tip ) Bernoulli); 0 1 X Bernoulli(p) X 1 p p (2) care generează N numere care reprezintă valorile unei variabile aleatoare binomial distribuite X ( Binomial(n; p) ) 0 1... k... n X (1 p) n np(1 p) n 1... Cnp k k (1 p) n k... p n Soluţie: Codul Matalab este: function nr=bernoulli(p,n) x=rand(1,n); nr=(x<p); >> clear all >> b= bernoulli(0.5,100); >> tabulate(b) % daca este in Statistics Toolbox 23

>> binornd(1,0.5,1,100); % daca este Statistics Toolbox function nr=binom(p,n,n) for i=1:n nr(i)=sum(bernoulli(p,n)); >> clear all >> bi=binom(0.5,10,1000); >> tabulate(bi) % daca este Statistics Toolbox >> binornd(10,0.5,1,1000); % daca este Statistics Toolbox Se obtin rezultatele: Value Count Percent 1 0 0.00% 2 0 0.00% 3 2 20.00% 4 3 30.00% 5 4 40.00% 6 1 10.00% 3.1.4 Reţea de Calculatoare Examplul 13 O reţea de laborator este compusă din 15 calculatoare. Reţeaua a fost atacată de un virus nou, care atacă un calculator cu o probabilitatea 0.4, indepent de alte calculatoare. Care este probabilitatea că virusul a atacat: a) cel mult 10 computere; b) cel puţin 10 calculatoare; c) exact 10 calculatoare. Soluţie Codul Matlab este: >> N=10000; >> c=binom(0.4,15,n); >> prob_a=sum(c<=10)/n % binocdf(10,15,0.4) = P(X<=10) >> prob_b=sum(c>=10)/n % 1-binocdf(9,15,0.4) = 1- P(X<= 9)= P(X>=10) >> prob_c=sum(c==10)/n % binopdf(10,15,0.4) = P(X=10) %bincodf, binopdf fac parte din Statistics Toolbox Se obtin rezultatele prob_a = 0.1500 prob_b = 0 prob_c = 0 24

3.1.5 Partiţionarea unei mulţimi date în două submulţimi Examplul 14 [6] Să se realizeze un program care afişează toate partiţionările unei mulţimi date de n elemente în două submulţimi a câte k, respectiv n-k, elemente, pentru n; k numere naturale ce satisfac n k (a se vedea funcţiile din Octave/Matlab nchoosek, ismember). Soluţie: Codul Matlab este: function P=partition2(v,k) %returneaza toate partitiile vectorului v in 2 submultimi, % cu k elemente, respectiv cu n-k elemente %exemplu apel:>> partition2( abcdef,3) n=length(v); P=[ ]; if k==0 P=[ {} { v } ]; elseif k==n-k p1=v(nchoosek(1:n-1,k)); if k==1 p1=p1 ; %p1=are pe fiecare linie k elemente, % corespunzatoare primei submultimi din partitie for i=1:nchoosek(n-1,k) p2=v(ismember(v,p1(i,:))!=1); %p1=are n-k elemente, corespunzatoare submultimii % complementare p1(i,:) P=[P; { p1(i,:) } { p2 } ]; else p1=v(nchoosek(1:n,k)); if k==1 p1=p1 ; for i=1:nchoosek(n,k) p2=v(ismember(v,p1(i,:))!=1); P=[P; { p1(i,:) } { p2 } ]; Examplul 15 10 baschetbalişti vor să formeze 2 echipe, a câte 5 jucători fiecare, pentru a juca una împotriva celeilalte. Fiecare jucător are inscripţionat pe tricou câte unul dintre caracterele următoare: a, b, c, d, 0, 1, 2, 3, 4, 5. a)afişaţi toate perechile de echipe care se pot forma. Câte astfel de perechi sunt posibile? b) Dintre toate perechile de echipe, să se afişeze doar cele în care o echipă are cel puţin 4 jucători cu cifre pe tricouri. Câte astfel de perechi sunt posibile? 25

c) Dintre toate perechile de echipe, să se afişeze doar cele în care jucătorii care au tricourile cu a si 0 sunt coechipieri. Câte astfel de perechi sunt posibile? d) Simulaţi de N (=100, 1000) ori alegerea aleatoare a unei echipe în care trei jucători au litere şi doi jucători au cifre. De câte ori jucătorii cu tricourile cu a si 0 au fost coechipieri? Pentru alegerea aleatoare descrisă mai sus, estimaţi probabilitatea ca jucătorii cu tricourile cu a şi 0 să fie coechipieri. Soluţie: a) Folosim funcţia partition2 >>P=partition2( abcd012345,5) Numărul de perechi este: >>size(p,1)= 126 b) count=0; fprintf( Perechile de echipe in care o... echipa are cel putin 4 jucatori cu cifre:\n ); for i=1:126 if sum(ismember(p(i,1:7), 012345 ))>=4... sum(ismember(p(i,8:14), 012345 ))>=4... fprintf( %s\n,p(i,:)); count=count+1; fprintf( %d de perechi de echipe in care o echipa... are cel putin 4 jucatori cu cifre.\n,count); Numărul de echipe este: c) C 4 6C 1 4 + C 5 6 count=0; fprintf( Perechile de echipe in care jucatorii cu... a si 0 sunt coechipieri:\n ); for i=1:126 if sum(ismember(p(i,1:7), a0 ))==2... sum(ismember(p(i,8:14), a0 ))==2 fprintf( %s\n,p(i,:)); count=count+1; fprintf( %d de perechi de echipe in care jucatorii... cu a si 0 sunt coechipieri.\n,count); 26

Numărul de echipe este: C 3 7 d) N=1000; count=0; for i=1:n l= abcd ; c= 012345 ; e=[randsample(l,3) randsample(c,2)]; if sum(ismember(e, a0 ))==2 count=count+1; fprintf( In %d de simulari, din totalul de %d, a si 0... au fost coechipieri.\n, count, N); fprintf( Probabilitatea ca a si 0 sa fie coechipieri... este aproximativ %3.2f\n, count/n); Probabilitatea evenimentului este: 0.25 3.1.6 Permutarea aleatoare a unui sir Examplul 16 Fără a folosi randperm sau randsample, să se realizeze o permutare aleatoare a elementelor unui şir. Codul Matlab este: X=[ a, b, c, d, e, f, g ] ; n = length(x); for i = 2:n % shuffle in forward direction: w = ceil(rand * i); % 1 <= w <= i t = X(w); X(w) = X(i); X(i) = t; X %%%%%%%%%%%%%%%%%%%% X=[ a, b, c, d, e, f, g, h ] ; n = length(x); for i = n:-1:2 % shuffle in backward direction: w = ceil(rand * i); % 1 <= w <= i t = X(w); X(w) = X(i); X(i) = t; Dam in linia de comanda: >>X 27

3.1.7 Schema lui Poisson Examplul 17 Se dau 3 urne: prima conţine 2 bile albe şi 3 bile negre, a doua 4 bile albe şi o bilă neagră, iar a treia 3 bile albe şi două bile negre. Din fiecare urnă se extrage câte o bilă. Care este probabilitatea ca două bile să fie albe şi una neagră? Soluţie Considerăm evenimentele indepente: A i bila extrasă din urna i este albă, i = 1,2, 3. Se cere probabilitatea realizării a două evenimente din cele trei. Suntem în cazul schemei lui Poisson cu n = 3, k = 2, p 1 = P(A 1 ) = 2 5, p 2= 4 5, p 3= 3 5 Folosind funcţia Matlab conv care calculează produsul a două polinoame, tastăm în linia de comandă: >> p1=[2/5 3/5] >> p2=[4/5 1/5] >> p3=[3/5 2/5] >> p=conv(p1,p2) >> pf=conv(p,p3) Se obtin rezultatele: pf = 0.1920 0.4640 0.2960 0.0480 Deoarece se cere probabilitatea ca doua bile sa fie albe si una neagra, alegem coeficientul lui x^2. Deci p=0.4640 3.2 Distribuţii de probabilitate 3.2.1 Distribuţii discrete Generarea de numere pseudo-aleatoare ce urmează o distribuţie discretă dată (metoda inversei) Se dau (x 1,..., x n ) (valorile) şi (p 1,..., p n ) (probabilităţile lor). Realizaţi un program MATLAB care generează N numere pseudo-aleatoare, care urmează distribuţia discretă: ( ) x1 x X 2... x n, p 1 p 2... p n folosind numere aleatoare uniform distribuite pe [0,1]. Procedeul de generare al numerelor aleatoare Y (i), i = 1, N, este: Se citesc valorile x 1, x 2,..., x n şi probabilităţile corespunzătoare p 1, p 2,..., p n, precum şi numărul N. Fie p 0 = 0. Se generează N numere aleatoare uniform distribuite pe [0,1]: U(i), i = 1, N. Pentru fiecare i = 1, N : Y (i) = x k dacă şi numai dacă p 0 + p 1 + + p k 1 < U(i) p 0 + p 1 + + p k, k {1,..., n}. Se returnează: Y (i), i = 1, N. 28

Verificarea procedeului: deoarece U urmează legea uniformă, avem pe baza procedeului de mai sus: P ( se genereaza x k ) = P (p 0 + p 1 + + p k 1 < U p 0 + p 1 + + p k ) = p k, k = 1,..., n deci numerele generate urmează legea de distribuţie discretă dată. Examplul 18 Conform statisticilor medicale 46% din oameni au grupa sanguină 0, 40% au grupa sanguină A, 10% au grupa sanguină B şi 4% au grupa sanguină AB. Simulaţi de N(= 100, 1000) ori stabilirea grupei sanguine a unei persoane alese aleator şi afişaţi frecvenţa de apariţie a fiecărei grupe sanguine. Comparaţi rezultatele obţinute cu cele teoretice. function Y=ivtdiscret(x,p,N) %inverse transform method Y=zeros(1,N); q=cumsum(p); for i=1:n U=unifrnd(0,1); Y(i)=x(find(U<=q,1)); function sanguina(n) y=ivtdiscret(0:3,[0.46 0.4 0.1 0.04],N); % 0 -> grupa 0, 1 -> grupa A, 2 -> grupa B, 3 -> grupa AB frecvente=zeros(1,4); for i=1:4 frecvente(i)=sum(ismember(y,i-1))/n; probabilitati=[0.46 0.4 0.1 0.04] frecvente Se ob\u{163}in rezultatele >>sanguina(100) probabilitati = 0.4600 0.4000 0.1000 0.0400 frecvente = 0.5200 0.3400 0.1000 0.0400 Examplul 19 Un pachet de cărţi de joc conţine 4 aşi. Se extrag fără returnare 4 cărţi de joc. Fie X variabila aleatoare, care indică câţi aşi au fost extraşi. Folosind a) randsample b) hygernd c) metoda prezentată mai sus Să se simuleze valori aleatoare ale lui X. Comparaţi rezultatele obţinute cu cele teoretice. 29

Soluţie: Scriem codul Matlab: N=input( numar de simulari: ); M=hygernd(52,4,4,1,N); tabulate(m) count=zeros(1,n); for i=1:n s=randsample(52,4,true); count(i)=sum(mod(s,14)==0); tabulate(count) Daca dam in linia de comanda: >>numar de simulari=100 ob\u{163}inem: Value Count Percent 0 73 73.00% 1 26 26.00% 2 1 1.00% Value Count Percent 0 72 72.00% 1 23 23.00% 2 5 5.00% Examplul 20 [5] Se ştie că 5% din produsele unei anumite companii sunt defecte. Produsele sunt testate pe rând până la detectarea primului produs defect. Fie X variabila aleatoare, care indică numărul de produse testate până la detectarea primului produs defect. Folosind metoda prezentată mai sus, să se simuleze valori aleatoare pentru X. Care este probabilitatea de a se verifica mai mult de 5 produse, până la detectarea primului produs defect? (P (X > 5)) Comparaţi rezultatele obţinute prin simulare cu cele teoretice. Soluţie: Scriem codul Matlab: N=input( numar de simulari: ); p=0.05; pr=sum(geornd(p,1,n)>=5)/n prt=1-geocdf(4,0.05) Pentru N=100 obtinem: numar de simulari: 100 pr = 0.7400 prt = 0.7738 30

Examplul 21 Numărul de clienţi care sună la o centrală telefonică în decurs de o oră urmează distribuţia Poisson cu media de 20 clienţi pe oră ( λ = 20). Simulaţi numărul de apeluri în centrală şi afişaţi frecvenţa de apariţie a exact k clienţi, unde k {5, 10, 15}. Comparaţi rezultatele obţinute prin simulare cu cele teoretice. Soluţie Scriem codul Matalab: N=input( numar de simulari: ); lambda=20; M=poissrnd(lambda,1,N); p5=sum(m==5)/n; p10=sum(m==10)/n; p15=sum(m==15)/n; disp( Simulare ) disp([p5,p10,p15]) disp( teoretic ) disp(poisspdf([5,10,15],lambda)) Pentru n=100 se obtin rezultatel: numar de simulari: 100 Simulare 0 0 0.0600 teoretic 0.0001 0.0058 0.0516 Examplul 22 Realizaţi un program care generează N valori aleatoare care urmează legea uniformă discretă Unif(n) (n N parametru dat), folosind metoda inversei. ( ) 1 2... n X Unif(n) X 1 1... 1 n n n Fie U U[0, 1] X = k (k = 1, 2..., n) k U k j=0 1 n = k n X = k (k = 1, 2..., n) k 1 < nu k Simularea de la metoda inversei revine la calculul valorilor X = nu, adică U U[0, 1] X = ceil(nu) Unif(n). Se ia o variabilă aleatoare Y U[0, 1]. Ce distribuţie are variabila aleatoare 10 Y? ( x = f loor(x) partea întreagă a numărului pozitiv x) Indicaţie: 10 Y + 1 Unif(10), adică ( ) 0 1... 9 10 Y 1 10 31 1... 1 10 10

Soluţie: Scriem codul Matlab: N=input( numar de simulari: ); X=floor(10*rand(1,N)); tabulate(x) >>numar de simulari: 1000 Value Count Percent 0 101 10.10% 1 83 8.30% 2 103 10.30% 3 86 8.60% 4 104 10.40% 5 111 11.10% 6 99 9.90% 7 92 9.20% 8 125 12.50% 9 96 9.60% Examplul 23 Fie variabila aleatoare X care se referă la aruncarea unui zar, anume dacă în urma aruncării zarului se obţine 4 sau 6 se pierde o miză (X=-1),iar dacă se obţine un număr prim 2,3,5 se câştigă o miză (X=1), altfel nu se câştigă şi nu se pierde nimic (X=0). Să se reprezinte prin puncte şi bare funcţia de probabilitate şi funcţia de repartiţie pe aceaşi figură. Soluţie: Variabila aleatoare X are distribuţia: Scriem următorul program Matlab ( ) 1 0 1 X = 1 3 1 1 6 2 x=[-1:1]; p=[1/3,1/6,1/2]; pc=[1/3,1/2,1]; subplot(1,3,1),plot(x,p, o ) axis([-1.5 1.5 0 1]) title( Functia de probabilitate ) subplot(1,3,2),bar(x,p) axis([-1.5 1.5 0 1]) title( Functia de probabilitate prin bare ) subplot(1,3,3),stairs(x,pc) title( Functia de repartitie ) 32

Legea binomială Examplul 24 Să se scrie un program Matlab care să reprezinte grafic funcţia de probabilitate (prin puncte şi bare) şi funcţia de repartiţie ale legii binomiale. Soluţie: Scriem următorul cod Matlab: x=0:10; p=0.2; n=10; y1=binopdf(x,n,p) y2=binocdf(x,n,p) subplot(1,2,1) stem(x,y1) title( b(10,0.2) - pdf, Fontsize,14) subplot(1,2,2) stairs(x,y2) title( b(10,0.2) - cdf, Fontsize,14) Legea hipergeometrică Spunem că variabila aleatoare X urmează legea hipergeometrică H (n,m,k), dacă are distribuţia ( ) k X :, unde P (n, k = k=0,n ( ) ( ) K M K P (n, k) = k n k ( ) M, n K M n Variabila aleatoare X reprezintă numărul de succese obţinute în n extrageri dintr-o populaţie de volum M, fără întoarcere, dacă numărul indivizilor cu proprietatea cercetată este K. Funcţia densitate de peobabilitate este: ( ) ( ) K M K x n x f(x, n, M, K) = ( ) M n Dacă se notează p= K M K şi q= adică probabilităţile ca la prima extragere să se M M obţină succes sau insucces,iar M, se obţine distribuţia binomială. Ilustrăm acest lucru prin următorul program Matlab: %legea hipergeometrica+legea binomiala M=25,k=11,n=40 clf; 33

M=input( M: ); K=input( K(K<=M: ); n=input( n(n<=k:) ); x=0:n; p=k/m; fg=hygepdf(x,m,k,n); fb=binopdf(x,n,p); bar(x,[fg,fb ]) title( Legea hipergeometrica+legea binomiala ) colormap winter Legea lui Poisson distribuţia Variabila aleatoare X urmează legea lui Poisson P 0 (λ) dacă are X : ( ) k unde p k (λ) k 0,1,2,... p k (λ) = λk k! e λ, λ > 0 Funcţia densitate de probabilitate corespunzătoare este: f(x, λ) = λx x! e λ, x = 0, 1,... Variabila aleatoare numără de câte ori apare un anumit eveniment într-un interval de timp,pe o distanţă, pe o suprafaţă,etc. Poisson a arătat că această lege este un caz limită a legii binomiale dacă np λ,pentru n. Vom scrie un program Matlab care să reprezinte grafic prin bare funcţiile densitate de probabilitate pentru B(n,p) şi P o (λ) cu λ = np. %legea hipergeometrica, legea binomiala, clf; n=input( n= ); p=input( p= ); lambda=n*p; %%%%%%%%%% vi=fix(lambda-3*sqrt(lambda)); vf=fix(lambda+3*sqrt(lambda)); x=vi:vf; fb=binopdf(x,n,p); fh=poisspdf(x,lambda); colormap spring subplot(1,2,1); Dam in linia de comanda: n=100 p=0.05 34

3.2.2 Legi de distribuţie continue clasice Definitie 25 Fie (Ω, K, P ) un câmp de probabilitate borelian, se numeşte variabilă aleatoare discretă o funcţie X=x(ω) definită pe mulţimea evenimentelor elementare ω = Ω cu valori reale a.î. A i = {ω/ x(ω) = x i } K, x i R, i N Definitie 26 Se numeşte variabila aleatoare continuă funcţie reală X=x(ω), definită pentru ω Ω a.î A i = {ω/ x(ω) < x} K, x R, i N Definitie 27 Dacă X este variabila aleatoare funcţia F (x) = P (A X ) = P (X < x) se numeşte functia de repartiţie a variabilei X. Lema 28 Fie F (x) funcţia de repartitie a v.a. X atunci: 1. 0 F (x) 1, x R 2. P( a X < b) = F (b) F (a) 3. P( a<x<b )=F(b)-F(a)-P(x=a) 4. P( a<x b) = F (b) F (a) P(x=a)+P(x=b) Teorema 29 Funcţia de repartiţie a oricarei v.a X este o funcţie nedescrescătoare, continuă la stânga şi lim F (x) = 0; lim F (x) = 1 x x Definitie 30 Fie F(x) funcţia de repartiţie a unei variabilei X, dacă o funcţie integrabilă f(x) a.î. F (x) = x f(u)du (1) atunci X se numeşte v.a. continuă, iar f(x) se numeşte densitate de probabilitate sau densitate de repartiţie a lui X. Observatie 31 Relaţia (1) se mai poate scrie f(x) = F (x) 35

3.2.3 Functiile Matlab pdf,cdf Concluzionăm că distribuţia variabilei aleatoare X poate fi precizată prin ceea ce numim funcţie de probabilitate (pdf=probability distribution function)definită prin f (x i ) = p i, i I sau prin funcţia de repartiţie (cdf=cumulative distribution function). Dacă valorile p i, i I sunt calculate atunci folosind instrucţiunile plot,bar, stairs se pot reprezenta grafic funcţia de probabilitate (pdf)si funcţia de repartiţie (cdf).anume dacă vectorul x conţine valorile variabilei aleatoare X,iar p probabiltăţile corespunzătoare, atunci instrucţiunile: plot(x,p, s ) bar(x,p) stairs(x,p) vor reprezenta grafic respectiv funcţia de probabilitate prin simbolul s funcţia de probabilitate prin bare şi funcţia de repartiţie (funcţia în scară). Remarcăm faptul că dacă X ia o infinitate numărabilă de valori, atunci trebuie să ne limităm la un număr finit de valori ale variabilei aleatoare, iar reprezentările grafice se vor face pe domeniul cuprins între valorile minimă şi maximă.ale acestora. Examplul 32 Să se scrie cod Matlab care să reprezinte legea normală. Soluţie: Scriem un script Legea Normală.m cu următorul conţinut: m=input( mu= ); s=input( sigma= ); x=m-3*s:0.01:m+3*s; f=normpdf(x,m,s); F=normcdf(x,m,s); subplot(1,2,1), %grid on plot(x,f, k- ) grid on title( Densitatea de probabilitate ) subplot(1,2,2), %grid on plot(x,f, k- ) grid on title( Functia de repartitie ) Îl salvăm, apoi îl lansăm în execuţie (butonul verde al editorului), iar în linia de comandă dăm: 36

mu=2 sigma=3 Examplul 33 Să se reprezinte grafic funcţia densitate de probabilitate f şi funcţia de repartiţie pentru legea uniformă U(a,b) Soluţie: Codul Matlab este: clf; a=input( a= ); b=input( b= ); x=a-1:0.01:b+1; f=unifpdf(x,a,b); F=unifcdf(x,a,b); subplot(1,2,1),plot(x,f, k- ) axis([a-1 b+1-0.01 1/(b-a)+0.1]) title( Densitate de probabilitate ) subplot(1,2,2),plot(x,f, k- ) axis([a-1 b+1-0.01 1.1]) title( Functia de repartitie ) %In linia de comanda dam a=1, b=4 Examplul 34 Să se reprezinte pe acelaşi grafic densităţile de probabilitate pentru legea normală şi legea gamma pentru a=100, b=10. Soluţie: Ştim că dacă X urmează legea gamma G a (a, b), atunci pentru a, variabila aleatoare poate fi considerată ca urmând legea N(µ, σ) cu µ = ab, σ = b a Exemplificăm acest lucru prin următorul cod Matlab. a=input( a= ); b=input( b= ); m=a*b; s=b*sqrt(a); x=m-3*s:0.01:m+3*s; f=normpdf(x,m,s); F=gampdf(x,a,b); plot(x,f, k-.,x,f, k- ) grid on leg ( Legea normala, Legea gamma ) %in linia de comanda a=100,b=10 37

3.2.4 Funcţia randtool Lansarea în execuţie a acestei funcţii se face prin [4, pag 134]: >>randtool În urma căreia se produce o fereastră grafică interactivă privind generarea numerelor aleatoare şi ilustrarea acestora cu ajutorul histogramelor. Fixarea (stabilirea) legii de probabilitate în scop demonstrativ se face prin alegerea din meniul legilor de probabilitate situat în partea stângă sus a ferestrei. Volumul numerelor aleatoare, ce urmează a fi generate, se precizează prin introducerea acestuia în fereastra din partea dreaptă sus. Pentru stabilirea valorilor parametrilor legii de probabilitate cnsiderate se poate prceda în două moduri. 1. Fie prin introducerea în ferestrele corespunzătoare ale valorilor dorite, 2. fie prin deplasarea barelor ataşate acestora.în plus, limitele pentru parametrii legii de probabilitate considerate pot fi precizate prin introducerea acestora în ferestrele considerate. Activarea butonului output are ca efect salvarea numerelor aleatoare curente în variabila ans sau în variabila precizată de utilizator, iar butonul resample permite repetarea generării de numere aleatoare cu acelaşi volum şi aceaşi parametrii. 3.2.5 Legea normală bidimensională Vectorul aleator (X,Y) bidimensional urmează legea normală bidimensională, dacă are densitatea de probabilitate: 1 f(x, y) = 2πσ 1 σ 2 [ 1 (x µ1 ) 2 exp{ 2(1 r 2 ) σ 2 1 2r (x µ 1)(y µ 2 ) + (y µ ] 2) 2 } σ 1 σ 2 σ 2 2 unde σ 1, σ 2 > 0 şi r <1. Se cunoaşte că fiecare din componentele X şi Y ale vectorului aleator urmează legea normală repectiv N(µ 1, σ 1 ) şi N(µ 2, σ 2 ). Examplul 35 Să se scrie un program Matlab care reprezintă grafic densitatea de probabilitate a legii normale bidimensinale. Soluţie: clf,clear all m1=input( mu1= ); m2=input( mu2= ); s1=input( s1= ); s2=input( s2= ); r=input( r(-1<r<1): ); 38

x=m1-3*s1:.2:m1+3*s1; y=m2-3*s2:.2:m2+3*s2; %reprez grafica [X,Y]=meshgrid(x,y); Z=1/(2*pi*s1*s2*sqrt(1-r^2))*exp(-1/(2*(1-r^2))... *((X-m1).^2/s1^2-2*r*(X-m1).*(Y-m2)/(s1*s2)... +(Y-m1).^2/s2^2)); mesh(x,y,z) grid on title( Legea normala bidimensionala ) %In linia de comanda dam m1=m2=0,s1=1,s2=2, r=-0.5 3.2.6 Legi de probabilitate continue statistice Legea t(student) Variabila aleatoare X urmează legea t (Student) de probabilitate notată T (n) dacă are densitatea de probabilitate f(x, n) = Γ( n+1 2 ) Γ( n 2 ) 2 n π ) n+1 (1 + x2 2, x R n n N numărul gradelor de libertate, iar Γ(.) este funcţia gamma alui Euler. Când n se ajunge la legea normală standard N(0,1) Vom exemplifia acest fapt prin următorul cod Matlab: clf; n=input( n= ); d=input( delta= ); x=-5:0.01:5; fc=tcdf(x,n); Fnc=nctcdf(x,n,d); plot(x,fc, k-.,x,fnc, k- ) grid on leg( Legea student,... Legea student necentrata,2) %se dau in linia de comanda n=10,d=1 Legea χ 2 Variabila aleatoare urmează legea χ 2 sau legea Helmet-Pearson notată χ 2 (n), dacă are densitatea de probabilitate f(x, n) = 1 2 n 2 Γ( n 2 1 e x 2, x > 0, n = nr. grad e de libertate 2 )xn Dacă variabila aleatoare X urmează legea χ 2 (n), atunci pentru n variabila aleatoare urmează legea normală N(n, 2 n). Vom exemplifica acest lucru prin următorul cod Matlab: 39