+ All Categories
Home > Documents > 10 Matlab Trideni Dat

10 Matlab Trideni Dat

Date post: 10-Feb-2018
Category:
Upload: adrian-bardossy
View: 239 times
Download: 0 times
Share this document with a friend

of 16

Transcript
  • 7/22/2019 10 Matlab Trideni Dat

    1/16

    1

    voddo

    Matlabu VIMetodyazenprvk,aproximace,

    symbolickmatematika

    Pavel Karban: Vpoty a simulace v programech Matlab a Simulink, Computer Press, Brno, 2006

    2

    Algoritmyazen

    Pro vstupn posloupnost S plat:

    1. uspodnvzestupn:

    uspodnsestupn:

    2. posloupnostSjepermutacpvodnposloupnostiS(obsahujetedystejndata,jenv jinmpoad).

    algoritmus azen

    vstupn posloupnost vstupn posloupnost

  • 7/22/2019 10 Matlab Trideni Dat

    2/16

    2

    Metodyazenprvk

    kol:seaditprvkyvlinernmseznamupodledanpodmnky selnvelikost,

    poadvabeced znak,

    jinkl,...

    Metodyselisloitostalgoritmuaefektivitou rychlostdosaencle.

    Znmjsoumetody: SELECTION SORT (SELECTSORT)

    BUBBLESORT

    INSERTION SORT

    dal(quicksort,heapsort,mergesort).

    Dlenadicchalgoritm

    Podlezkladnmylenky azenvbremVsouborusevdynajdenejmenze

    zbvajcchpoloekaulona konecpostupnbudovanhoseazenhosouboru.

    azenvkldnmZesouboruneseazenchdatsepostupn berepolokapo poloceavkldsena sprvnmstov seazenmsouboru(zpotku

    przdnm). azenzmnouVsouborusevdynalezne(njakou

    metodouzvislouna konkrtnmalgoritmu)njakdvojiceprvk,kterjevepatnmpoad,atytoprvkysenavzjemzamn.

    azensluovnmVstupnsouborserozdlnasti,kterse(typickyrekurzivn)sead;vslednseazenstisepotsloutakovmzpsobem,abyivsledekbylseazen.

  • 7/22/2019 10 Matlab Trideni Dat

    3/16

    3

    MetodaSELECTIONSORT

    Intuitivnzpsobeen.

    Vyhledvmnoin prvk minimum nebomaximum

    podletoho,jestlichcemetditvzestupn nebo

    sestupn

    Umstnalezenprveknaprvnmstovmnoin (za

    poslednseazenprvek)

    Processeopakuje,piemvelikosttdnhoseku

    sezvtuje.

    SELECTIONSORT

    Seatesestupn vektora:

    a = [7 2 3 9 5 6 4]

    a = [max ... min]

    a = [ 7 2 3 9 5 6 4 ]

    a = [ 9 2 3 7 5 6 4],1zmna

    a = [ 9 2 3 7 5 6 4]

    a = [ 9 7 2 3 5 6 4],2 zmny

  • 7/22/2019 10 Matlab Trideni Dat

    4/16

    4

    SELECTIONSORT

    function [b]=sel_sort(a);

    delka=length(a);

    for i=1 : delka-1for j=i+1 : delka

    if a(i)

  • 7/22/2019 10 Matlab Trideni Dat

    5/16

    5

    MetodaBUBBLESORT

    Metodaprobublvn

    Principemjeporovnvnsousednchprvkajejich

    ppadnprohozenpodletoho,jakchcemedatatdit

    (vzestupn/sestupn).

    Probublvnseopakuje.

    Proceslzepedasn ukonittehdy,kdypiprchodu

    celoumnoinounedolokvmn.

    BUBBLE SORT

    Seatesestupn vektora,vsledekvlotedob:

    a = [7 2 3 9 5 6 4]

    a = [max ... min]

    a = [ 7 2 3 9 5 6 4 ]

    a = [ 7 2 3 9 5 6 4 ] provedenazmna

    a = [ 7 3 2 9 5 6 4 ] provedenazmna

    a = [ 7 3 9 2 5 6 4 ] opakujdokoncevektoru

    Bylaprovedenanjakzmna?

    ANO: probublejznovu stylem

    NE: seazenposloupnostvsledek

  • 7/22/2019 10 Matlab Trideni Dat

    6/16

    6

    BUBBLESORT

    function [b]=bub_sort(a)

    delka=length(a);zamena=1; %(probhnut cyklu alespojednou !)

    while zamena ~= 0zamena=0;

    for i = 1 : delka-1if a(i)

  • 7/22/2019 10 Matlab Trideni Dat

    7/16

    7

    MetodaINSERTIONSORT

    Beremevvahu

    kad

    prvek

    po

    naje

    prvnm

    zleva

    vp

    pad

    dkovhovektoru.

    sten seazenvektorjevektorobsahujcprvnprvek.

    Prokaddalprvek(oddruhhopoposledn):Otzka:Jepedprvkem,kterzaazujeme,prvek,jehohodnotajevt?

    Ano:Provedemezmnuprvk apokraujemebodem2.

    Ne:Prvekzstvnanynjpozici prvekjezaazen.

    Seazenvektorvypi.

    http://www.cs.oswego.edu/~mohammad/classes/csc241/samples/sort/Sort2-E.html

  • 7/22/2019 10 Matlab Trideni Dat

    8/16

    8

    INSERTIONSORT

    function y = insert_sort(x);n=length(x);

    for i = 2:n

    c = x(i);

    for j = i-1:-1:1

    if x(j) > x(j+1);

    x(j+1)=x(j);

    x(j)=c;

    end

    endend

    y=x;

    Potae a programovn 1 15

    VhodyINSERTIONSORT

    Tnazvnametodapmhozakldn.

    Jednoduchnaimplementaci.

    Efektivninamalmobjemudat.

    Efektivnnapedtdnch datech.

    Efektivnjneselectionsortnebo bubblesort.

    asovnronostrostelinern spotemtdnchprvk.

    Jestabiln(nemnpoadprvk sestejnmklem).

    Vyadujeminimumpamti(pouzekonstatn pamvelikostiN).

    Jeonline(tdkadnov pchozprvek).

  • 7/22/2019 10 Matlab Trideni Dat

    9/16

    9

    PokroilejalgoritmyQuicksort

    Quicksort nejrychlejalgoritmuszaloennaporovnvnprvk (rekurzivnazen)function y = quicksort(x)

    n = length(x);

    if(nx(2))

    x=[x(2);x(1)];

    end

    y=x;

    return;

    end

    m=fix(n/2);

    pivot=x(m);

    Mensi=find(xpivot);if(isempty(ind));y=x;return;end;

    pivot=x(ind(1));

    Mensi=find(x=pivot);

    y=[quicksort(x(Mensi));quicksort(x(Vetsi))];

    Pozn.:Uvedenalgoritmuspedpokld,eazenvektorjevesloupcovmtvaruPotae a programovn 1 17

    PokroilejalgoritmyShellsort

    function y = shellsort(x)

    n = length(x);

    mezera = floor(n/2);

    while mezera > 0

    for j = mezera:n

    for i = j-mezera:-mezera:1

    if x(i+mezera)>=x(i)

    break;

    elsec = x(i);

    x(i) = x(i+mezera);

    x(i+mezera) = c;

    end

    end

    end

    mezera = floor(mezera/2);

    end

    y=x; ZdrojMartinKrejsa:Algoritmizaceinenrskchvpot

    Potae a programovn 1 18

  • 7/22/2019 10 Matlab Trideni Dat

    10/16

    10

    Srovnnadicchalgoritm

    http://www.sorting-algorithms.com/

    http://www.cs.hope.edu/~dershem/ccaa/animator/Animator.html

    Aproximace(prokldn)menchdatkivkou

    Potae a programovn 1 20

  • 7/22/2019 10 Matlab Trideni Dat

    11/16

    11

    Aproximace,interpolace,extrapolace

    V

    ad

    aplikac(typicky

    laboratorn

    m

    en)zskvme

    diskrtn

    data

    ve

    tvaru(x,y)

    Pklad:

    Menteplotyvhodinovchintervalech:

    >> x = 10:1:15;

    >> y = [25 27 28 29 27 23];

    Interpolace

    Stanovenhodnotymezimenmi

    body

    Extrapolace

    Stanovenhodnotymimorozsah

    menchbod

    Aproximacekivky "proloen"mezibody

    Potae a programovn 1 21

    Aproximacepolynomem

    Funkcepolyfit

    nalezenkoeficient polynomupoadovanhostupn,kternejlpeproklddata

    (metodanejmenchtverc).

    Pklad:

    Proloenpmkou:

    >> polyfit(x,y,1)

    ans = -0.2571 29.7143

    y=0,26x+29,7

    Proloenparabolou:

    >> polyfit(x,y,2)

    ans =

    -0.7500 18.4929 -85.2857

    y=0,75x2 +18,5x 85,3

    Potae a programovn 1 22

  • 7/22/2019 10 Matlab Trideni Dat

    12/16

    12

    Aproximacepolynomem

    x = 10:1:15;y = [25 27 28 29 27 23];

    koef = polyfit(x,y,2);

    krivka = polyval(koef,x);

    plot(x,y,'ro',x,krivka)

    xlabel('Cas (hod)')

    ylabel('Teplota (C)')

    title('Prubeh teploty')

    axis([9 16 20 30])

    Vpoetteplotyvlibovolnmbod (interpolace):

    >> polyval(koef,11.5) ans = 28.1946

    Vpoetteplotyvlibovolnmbod (extrapolace):

    >> polyval(koef,17) ans = 12.3429

    Potae a programovn 1 23

    BasicFitting

    Potae a programovn 1 24

  • 7/22/2019 10 Matlab Trideni Dat

    13/16

    13

    Symbolickmatematika

    Potae a programovn 1 25

    Symbolickmatematika

    Operacesesymboly,nessly.

    Nap.a + aje2a

    help toolbox/symbolic

    Typsym prosymbolickpromnnavrazy

    >> a = sym('a');

    >> a+a

    ans = 2*a

    >> b = sym('x^2');

    >> c = sym('x^4');

    >> c/b

    ans = x^2

    >> b^3

    ans = x^6

    >> c*b

    ans = x^6

    >> b + sym('4*x^2')

    ans = 5*x^2

    Potae a programovn 1 26

  • 7/22/2019 10 Matlab Trideni Dat

    14/16

    14

    Symbolickmatematika

    >> sym('z^3 + 2*z^3')ans = z^3 + 2*z^3

    >> z = sym('z');

    >> sym(z^3 + 2*z^3)

    ans = 3*z^3

    Vrazvprvnmppad senevyhodnot(z nensymbolickpromnn).

    >> syms x y z

    jetotjako

    >> x = sym('x');

    >> y = sym('y');

    >> z = sym('z');

    Potae a programovn 1 27

    pravafunkc

    Funkce simplify

    >> x = sym('x');

    >> muj_vyraz = cos(x)^2 + sin(x)^2

    muj_vyraz = cos(x)^2 sin(x)^2

    >> simplify(muj_vyraz)

    ans = 1

    Funkcecollect, expand, factor

    propravupolynom

    >> x = sym('x');

    >> collect(x^2 + 4*x^3 + 3*x^2)

    ans = 4*x^2 + 4*x^3

    >> expand((x+2)*(x1))

    ans = x^2 + x2

    >> factor(ans)

    ans =(x+2)*(x1)

    Potae a programovn 1 28

  • 7/22/2019 10 Matlab Trideni Dat

    15/16

    15

    pravafunkc

    Funkcesubs

    >> muj_vyraz = x^3 + 3*x^2 - 2

    muj_vyraz = x^3+3*x^2-2

    >> x=3;

    >> subs(muj_vyraz,x)

    ans = 52

    Prcesezlomky:

    >> 1/3 + 1/2

    ans = 0.8333

    >> sym(1/3 + 1/2)

    ans = 5/6

    >> double(ans)

    ans = 0.8333

    Potae a programovn 1 29

    Funkceezplot

    ezplotvykreslprbhfunkcevrozmez

    >> ezplot('x^3 + 3*x^2 - 2')

    >> ezplot('cos(x)',[0 pi])

    Potae a programovn 1 30

  • 7/22/2019 10 Matlab Trideni Dat

    16/16

    eenrovnic

    Funkcesolve

    >> x = sym('x');

    >> solve('2*x^2 + x = 6')

    ans =

    3/2

    -2

    >> solve('3*x^2 + x')

    ans =

    0

    -1/3

    >> double(ans)

    ans =

    0

    -0.3333

    Potae a programovn 1 31

    DkujizapozornostPednkadne27.11.senekon

    Potae a programovn 1 32


Recommended