T Hahmontunnistuksen perusteet

Koko: px
Aloita esitys sivulta:

Download "T Hahmontunnistuksen perusteet"

Transkriptio

1 T Hahmontunnistuksen perusteet Harjoitustyö Käsin kirjoitettujen numeroiden tunnistus LVQ menetelmällä Heikki Hyyti 60451P

2 Yleistä Harjoitustyössä piti tehdä käsinkirjoitettujen numeroiden tunnistusjärjestelmä Learning Vector Quantization (LVQ) algoritmin avulla. LVQ algoritmissa valitaan halutun monta mallivektoria, joita harjoitetaan niin, että mallivektori muuttuu opetusdatassa vastaavia numeroita kohti ja poispäin eri numeroista. Tällöin esimerkiksi malli, joka on indeksoitu vastaamaan käsin kirjoitettua numeroa 1 alkaa muistuttaa eniten numeroa 1 ja mahdollisimman vähän muita numeroita. LVQ algoritmi toimii niin, että järjestänsä jokaista mittauspistettä kohden lasketaan lähin mallivektori. Jos mallivektori on samaa tyyppiä kuin opetusnäyte, niin mallia siirretään hieman opetusnäytteen suuntaan. Toisaalta, jos mallivektori ja opetusnäyte ovat eri numeroita, siirretään opetusvektoria hieman poispäin mallista. Mittausdata ja sen esikäsittely Esikäsittelijällä muokattiin alkuperäinen mittausdata siihen muotoon, että sitä voitiin käyttää tunnistusalgoritmissa. Mittausdatassa on neljän eri kirjoittajan käsin kirjoittamia numeroita. Numerot on piirretty yhdellä tai kahdella viivalla ja näytteet on lajiteltu viivan määrän mukaan. Viivan piirroista on otettu näytepisteitä vakioväliajoin. Ensin esikäsittelijä vähensi pisteitä niin, että yhden vedon numeroista jäi vain joka 3. piste ja kahden vedon numeroista vain joka 6. piste. Tämä tehtiin laskentanopeuden lisäämiseksi. Sitten esikäsittelijä normalisoi kaikki numerot niin, että jokaisen keskipisteeksi tuli origo ja niin, että jokaisen numeron koko tuli samaksi. Kuvassa 1 on nähtävillä esikäsiteltynä kansikuvan numero neljä. Vielä viimeiseksi esikäsittelijä jakoi datan satunnaisesti puoliksi kahteen osaan, opetus ja testausnäytteisiin. Esikäsittelyyn tarvittu Matlab koodi on liitteessä 1. Kuva 1. Kuvassa on esikäsiteltynä käsin piirretty numero neljä.

3 Algoritmi Toteutuksessa oletin, että yhden ja kahden viivan numeroiden tunnistus voidaan tehdä erillisesti, niin että ennalta tiedetään kuinka monella vedolla tunnistettava numero piirretään. Näin voidaan vähentää mahdollisten vaihtoehtojen määrää ja edelleen laskentamäärää. Lisäksi oikean tunnistuksen todennäköisyys kasvaa. Tunnistusalgoritmi siis käsittelee täysin erillisesti yhden vedon numerot ja kahden vedon numerot. Tässä onkin tehty kaksi erillistä tunnistusjärjestelmää täysin samoin periaattein. Yhden vedon numeroissa mahdollisia numeroiden vaihtoehtoja oli 8: 0,1,2,3,4,6,8 ja 9. Valittiin opetettavien mallivektorien määräksi 16 niin, että jokaiselle luokalle oli kaksi erilaista prototyyppiä. Prototyyppivektorien alkuarvoiksi valittiin satunnainen oikean luokan opetusmallinäyte. Tällä tavoin voitiin säästää todella paljon laskenta aikaa, kun ei tarvinnut aloittaa satunnaisesti jakautuneista pistejoukoista, joista algoritmi olisi hiljalleen hakeutunut kohti oikeita numeroita. Lisäksi näin päästiin paljon parempaan tunnistustodennäköisyyteen. Havaitsin tämän, kun kokeilin ensin laskea satunnaisista alkuarvoista. Yhden vedon opetetut mallivektorit ovat kuvassa 2, josta voidaankin havaita, että saman numeron kaksi eri vaihtoehtoa voivat olla hyvin erilaiset. Näin ollen olisi saatu huomattavasti epätarkempi tunnistustulos, jos mallivektoreita olisi ollut vain yksi jokaista luokkaa kohti. Kuva 2. Kuvassa on yhdellä vedolla piirrettyjen numeroiden 16 mallivektoria.

4 Kahdella vedolla piirrettyjen numeroiden tunnistus tehtiin täysin samalla tavalla kuin yhden viivan vedolla piirrettyjenkin numeroiden tunnistus. Tässä tapauksessa oikeita numeroarvoja oli vain 4: 1, 4, 5 ja 7. Taas valittiin kaksi mallivektoria jokaisesta luokasta, siis yhteensä 8 mallivektoria. Samalla tavalla kuin edellisessäkin kohdassa saatiin tulokseksi kuvassa 3 nähtävät mallivektorit. Kuva 3. Kuvassa on kahdella vedolla piirrettyjen numeroiden 8 mallivektoria. Laskennassa ja kuvien piirrossa tarvittiin monimutkaisia algoritmeja ja funktioita. Ne ovat liitteessä 2. Testaus ja johtopäätökset Toinen satunnaisesti jaettu puolikas piirrettyjen numeroiden joukosta tarvittiin järjestelmän testaamiseen. Järjestelmän tunnistusalgoritmi toteutettiin pitkälti samalla periaatteella kuin opetusalgoritmikin. Jokaiselle tunnistettavalle näytteelle haettiin lähin prototyyppi. Tunnistettu arvo oli prototyypille ennen opetusta annettu arvo. Testijärjestelmäni merkitsi ne numerot jotka tunnistuivat, ja ne jotka eivät tunnistuneet. Yhden vedon numeroista tunnistettiin 200 kpl 204 testinäytteestä. Saavutettiin siis % tunnistustodennäköisyys. Kahden vedon numerot tunnistettiin kaikki eli saavutettiin 100 % tunnistustodennäköisyys. Kahden vedon numeroita oli kuitenkin vähemmän ja testijoukkoon kuului vain 92 näytettä, joten tuloksen virhearvio on hieman epätarkempi kuin yhden vedon numeroiden tunnistuksessa, joita oli testijoukossa 204. Kuitenkin kahden vedon numeroiden tunnistuksessa mahdollisia luokkia oli vain neljä, joten tämä 100 % tunnistustodennäköisyys on mahdollinen. Todellisuudessa tässäkin tunnistuksessa tulisi virheitä, mutta testausdatan joukossa niitä ei tullut. Testauksen Matlab koodi on liitteessä 3. Lopuksi voi sanoa, että hyvin toimi ja numerot tunnistuivat hienosti. Jos tästä haluaisi tehdä jotenkin monimutkaisemman version, niin voisi jättää pois oletuksen, jossa yhden ja kahden vedon numeroiden välillä tiedettiin ero jo etukäteen. Tällöin järjestelmälle tulisi hieman enemmän haastetta.

5 Liitteet Liite 1: esikasittelija.m %% Harjoitustyön esikäsittelijä % Heikki Hyyti 60451P hhyyti@cc.hut.fi % Käytetään characters4.mat dataa, jossa on 4 ihmisen kirjoittamia % numeroita. Ladataan kuvat ja selvitetään datatiedostoston muuttujat load('/p/edu/tik /Data/characters4.mat'); whos file /p/edu/tik /Data/characters4.mat %% Plotataan yksi kuva malliksi: figure(1); plot(chars1stroke(1,1,1), Chars1Stroke(1,2,1), 'kd') hold on; for i = 2:50 x = Chars1Stroke(1,1,i); y = Chars1Stroke(1,2,i); plot(x, y, 'kd'); hold off; axis equal; title('ensimmäinen mittausdatan näyte'); xlabel('x = Chars1Stroke(1,1,i), i=1...50'); ylabel('y = Chars1Stroke(1,2,i), i=1...50'); %% kuvassa näyttäisi olevan niin paljon mittauspisteitä, että % tunnistustarkkuutta paljoa heikentämättä voidaan poistaa suurin osa % pisteistä. Seuraavaksi poistetaan 2/3 pisteistä ja näin jätetään vain % joka kolmas mittauspiste. Sen pitäisi riittää vielä sujuvaan % tunnistukseen. % [StrokeTable_new] = Decimate(StrokeTable,N,d) % N = vetojen lukumäärä, d = monesko jätetään [Chars1Stroke_new] = Decimate(Chars1Stroke,1,3); %% Piirretään uudelleen kuva, jotta tiedetään vähenikö mittauspisteiden % lukumäärä liikaa. figure(2); n = 1; plot(chars1stroke_new(n,1,1), Chars1Stroke_new(n,2,1), 'kd') hold on; koko = length(chars1stroke_new(n,1,:)); for i = 2:koko x = Chars1Stroke_new(n,1,i); y = Chars1Stroke_new(n,2,i); plot(x, y, 'kd'); hold off; axis equal;

6 title('ensimmäinen mittausdatan näyte datasta, josta on vähennetty mittauspisteitä'); xlabel(['x = Chars1Stroke new(1,1,i), i=1...' int2str(koko)]); ylabel(['y = Chars1Stroke new(1,2,i), i=1...' int2str(koko)]); % nähdään että numero on edelleen tunnistettavissa, joten mittausdataa ei % karsittu liikaa. %% seuraavaksi keskitetään mittauspisteet ja normalisoidaan koko koko = length(chars1stroke_new(:,1,1)); Chars1Stroke_new2 = zeros(size(chars1stroke_new)); for i = 1:koko clear X; X(:,1) = Chars1Stroke_new(i,1,:); X(:,2) = Chars1Stroke_new(i,2,:); % keskitetään X = Centralize(X); % normalisoidaan X = NormalizeSize(X); Chars1Stroke_new2(i,1,:) = X(:,1); Chars1Stroke_new2(i,2,:) = X(:,2); %% Piirretään taas jotta nähdään toimiko lopputulos figure(3); n = 1; plot(chars1stroke_new2(n,1,1), Chars1Stroke_new2(n,2,1), 'kd') hold on; koko = length(chars1stroke_new2(n,1,:)); for i = 2:koko x = Chars1Stroke_new2(n,1,i); y = Chars1Stroke_new2(n,2,i); plot(x, y, 'kd'); hold off; axis([ 1100,1100, 1100,1100]); title('ensimmäinen mittausdatan näyte datasta, josta on vähennetty mittauspisteitä'); xlabel(['x = Chars1Stroke new2(1,1,i), i=1...' int2str(koko)]); ylabel(['y = Chars1Stroke new2(1,2,i), i=1...' int2str(koko)]); % kuten kuvasta 3 nähdään, keskitys ja skaalaus toimivat oikein. %% tehdään samat operaatiot 2vedon numeroille % vähennetään kahden vedon numeroista tuplasti enemmän mitauspisteitä, niin % saadaan yhteensä kaikille numeroille yhtä monta mittauspistettä. Näin % numeroita on paljon helpompi verrata keskenään. % [StrokeTable_new] = Decimate(StrokeTable,N,d) % N = vetojen lukumäärä, d = monesko jätetään [Chars2Stroke_new] = Decimate(Chars2Stroke,1,6);

7 koko = length(chars2stroke_new(:,1,1)); Chars2Stroke_new2 = zeros(size(chars2stroke_new)); for i = 1:koko clear X; X(:,1) = Chars2Stroke_new(i,1,:); X(:,2) = Chars2Stroke_new(i,2,:); % keskitetään X = Centralize(X); % normalisoidaan X = NormalizeSize(X); Chars2Stroke_new2(i,1,:) = X(:,1); Chars2Stroke_new2(i,2,:) = X(:,2); %% Piirretään taas jotta nähdään toimiko lopputulos figure(4); n = 1; plot(chars2stroke_new2(n,1,1), Chars2Stroke_new2(n,2,1), 'kd') hold on; koko = length(chars2stroke_new2(n,1,:)); for i = 2:koko x = Chars2Stroke_new2(n,1,i); y = Chars2Stroke_new2(n,2,i); plot(x, y, 'kd'); hold off; axis([ 1100,1100, 1100,1100]); title('ensimmäinen mittausdatan näyte datasta, josta on vähennetty mittauspisteitä'); xlabel(['x = Chars2Stroke new2(1,1,i), i=1...' int2str(koko)]); ylabel(['y = Chars2Stroke new2(1,2,i), i=1...' int2str(koko)]); %% Erotetaan kaksi luokkaa, testaus ja opetus puoliksi [S1A,S1B,S2A,S2B,L1A,L1B,L2A,L2B] =... DivideSetsLottery(Chars1Stroke_new2,Chars2Stroke_new2,Labels1StrokeChars,... Labels2StrokeChars,30); % S1A sisältää nyt satunnaisesti arvotuista 1 vedon numeroista puolet ja % S1B loput. S2A ja B samoin 2 vedon numeroista. L1(A/B) ja L2(A/B) samoin % oikeat numeroarvot. Esikäsittelijä tiedoston lisäksi käytettiin kaikkia tarjottuja, valmiita Matlab tiedostoja, jotka olivat löydettävissä kurssin kotisivuilta. Näitä tiedostoja olivat: Decimate.m, Centralize.m, NormalizeSize.m, DivideSetsLottery.m, DtwDistance.m.

8 Liite 2: algoritmi.m: %% LVQ tunnistusalgoritmi. % Heikki Hyyti 60451P hhyyti@cc.hut.fi % opetukseen tarkoitetut tiedot: % 1 vedon numerot: S1A, oikea numero L1A % 2 vedon numerot: S2A, oikea numero L2A % tässä tapauksessa tiedetään, että 1 vedon numeroita voi olla vain: % 0, 1, 2, 3, 4, 6, 8, 9 % 8 eri vaihtoehtoa % samoin 2 vedon numeroita voi olla vain % 1, 4, 5, 7 % 4 eri vaihtoehtoa %otetaan huomioon eri luokkien erilainen määrä ja valitaan 1 vedon %numeroiden tunnistamiseen 2x8 mallivektoria ja 2 vedon numeroiden %tunnistukseen 2x4 mallivektoria. Näin jokaiselle halutulle luokalle jää 2 %mallivektoria. %% Data vektorin uudelleenmuodostus niin että sillä laskeminen on % tehokkaampaa clear X; X = zeros(length(s1a(1,1,:)),2,length(s1a(:,1,1))); for i = 1: length(s1a(:,1,1)) X(:,1,i) = S1A(i,1,:); X(:,2,i) = S1A(i,2,:); %% 1 vedon numeroiden opetus % määritetään mallivektorien oikeat arvot, kun mallivektori voi saada % arvoja: 0, 1, 2, 3, 4, 6, 8, 9. M_num = [0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 6, 6, 8, 8, 9, 9]; % M on 17,2,16 kokoinen vektori jossa on 16 eri m vektoria, jotka ovat 17,2 % kokoisia. Arvotaan mallivektorien matriisille M alkuarvot niin, että % jokainen M_i on jokin oikea näyte X_i, näin nopeutetaan laskentaa M = zeros(length(s1a(1,1,:)),2,16); for i = 1:length(M_num); loop = 0; while loop == 0 index = ceil(rand*length(x(1,1,:))); if L1A(index) == M_num(i) M(:,:,i) = X(:,:,index); loop = 1; % Satunnainen vaihtoehto, (hidas löytämään numeroita)

9 % M = rand(length(s1a(1,1,:)),2,16) * *ones(length(S1A(1,1,:)),2,16); %% varsinainen laskenta d_max = ; % alpha on opetuskerroin alpha = 0.05; for k = 1:20 for i = 1:length(X(1,1,:)); d = zeros(1,16); D = zeros(length(s1a(1,1,:)),2,16); for j = 1:length(M(1,1,:)) [d(j),d(:,:,j)] = DtwDistance(M(:,:,j),X(:,:,i),d_max); % haetaan pienin indeksi, I_min [C,I_min] = min(d); % Päivitetään I_min numeroista m vektoria matriisista M, koska % käsitelty X oli sitä lähimpänä if L1A(i) == M_num(I_min) kerroin = alpha; else kerroin = alpha; % päivityssääntö M(:,:,I_min) = M(:,:,I_min) + kerroin.*d(:,:,i_min); alpha = alpha 0.002; %% Plotataan mallivektorit m matriisista M, niin nähdään näyttävätkö ne % samalta kuin niitä vastaava numero. Jos näyttää, niin järjestelmä on % oppinut tunnistamaan numeron. figure(5); for j = 1:16; subplot(4,4,j); plot(m(1,1,j), M(1,2,j), 'kd') hold on; koko = length(m(:,1,j)); for i = 2:koko x = M(i,1,j); y = M(i,2,j); plot(x, y, 'kd'); hold off; axis([ 1100,1100, 1100,1100]);

10 set(gca,'xtick',[],'ytick', []) xlabel(int2str(m_num(j))); %% tallennetaan mallivektorien matriisi M save('s1a_m.mat', 'M'); %% 2 vedon numeroiden tunnistus %% Data vektorin uudelleenmuodostus niin että sillä laskeminen on % tehokkaampaa clear X; X = zeros(length(s2a(1,1,:)),2,length(s2a(:,1,1))); for i = 1: length(s2a(:,1,1)) X(:,1,i) = S2A(i,1,:); X(:,2,i) = S2A(i,2,:); %% 2 vedon numeroiden opetus % määritetään mallivektorien oikeat arvot, kun mallivektori voi saada % arvoja: 1, 4, 5, 7 % 4 eri vaihtoehtoa, otetaan taas kaksi mallivektoria jokaista numeroa % kohden M2_num = [1, 1, 4, 4, 5, 5, 7, 7]; % M2 on 17,2,8 kokoinen vektori jossa on 8 eri m vektoria, jotka ovat 17,2 % kokoisia. Arvotaan mallivektorien matriisille M2 alkuarvot niin, että % jokainen M2_i on jokin oikea näyte X_i, näin nopeutetaan laskentaa M2 = zeros(length(s2a(1,1,:)),2,8); for i = 1:length(M2_num); loop = 0; while loop == 0 index = ceil(rand*length(x(1,1,:))); if L2A(index) == M2_num(i) M2(:,:,i) = X(:,:,index); loop = 1; %% varsinainen laskenta d_max = ; % alpha on opetuskerroin alpha = 0.05; for k = 1:20 for i = 1:length(X(1,1,:)); d = zeros(1,8); D = zeros(length(s2a(1,1,:)),2,8); for j = 1:length(M2(1,1,:)) [d(j),d(:,:,j)] = DtwDistance(M2(:,:,j),X(:,:,i),d_max);

11 % haetaan pienin indeksi, I_min [C,I_min] = min(d); % Päivitetään I_min numeroista m vektoria matriisista M, koska % käsitelty X oli sitä lähimpänä if L2A(i) == M2_num(I_min) kerroin = alpha; else kerroin = alpha; % päivityssääntö M2(:,:,I_min) = M2(:,:,I_min) + kerroin.*d(:,:,i_min); alpha = alpha 0.002; %% Plotataan mallivektorit m matriisista M2, niin nähdään näyttävätkö ne % samalta kuin niitä vastaava numero. Jos näyttää, niin järjestelmä on % oppinut tunnistamaan numeron. figure(6); for j = 1:8; subplot(2,4,j); plot(m2(1,1,j), M2(1,2,j), 'kd') hold on; koko = length(m2(:,1,j)); for i = 2:koko x = M2(i,1,j); y = M2(i,2,j); plot(x, y, 'kd'); hold off; axis([ 1100,1100, 1100,1100]); set(gca,'xtick',[],'ytick', []) xlabel(int2str(m2_num(j))); %% tallennetaan mallivektorien matriisi M2 save('s1a_m2.mat', 'M2');

12 Liite 3: testaus.m: %% testaus % Heikki Hyyti 60451P hhyyti@cc.hut.fi % testaukseen tarkoitetut tiedot: % 1 vedon numerot: S1B, oikea numero L1B % 2 vedon numerot: S2B, oikea numero L2B %% 1 vedon numeroiden tunnistuksen testaus % määritetään mallivektorien oikeat arvot, kun mallivektori voi saada % arvoja: 0, 1, 2, 3, 4, 6, 8, 9. M_num = [0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 6, 6, 8, 8, 9, 9]; % Data vektorin uudelleenmuodostus niin, että sillä laskeminen on % tehokkaampaa ja helpompaa clear X; X = zeros(length(s1b(1,1,:)),2,length(s1b(:,1,1))); for i = 1: length(s1b(:,1,1)) X(:,1,i) = S1B(i,1,:); X(:,2,i) = S1B(i,2,:); % testausvektori, johon merkitään nollan tilalle 1 jos testaus onnistuu. tulos = zeros(1,length(x(1,1,:))); for i = 1:length(X(1,1,:)); d = zeros(1,16); D = zeros(length(s1b(1,1,:)),2,16); for j = 1:length(M(1,1,:)) [d(j),d] = DtwDistance(M(:,:,j),X(:,:,i),d_max); % haetaan pienimmän etäisyyden indeksi, I_min [C,I_min] = min(d); if L1B(i) == M_num(I_min) tulos(i) = 1; %% tuloksen ilmoitus tunnistui = sum(tulos); naytteita = length(tulos); ['1 vedon tulostus. '... 'Algoritmi tunnisti oikein ' int2str(tunnistui) ' näytettä ' int2str(naytteita)... ' näytteestä (' num2str(100.00*tunnistui/naytteita, '%.2f') '%)'] %% 2 vedon numeroiden tunnistuksen testaus

13 % määritetään mallivektorien oikeat arvot, kun mallivektori voi saada % arvoja: 1, 4, 5, 7 M2_num = [1, 1, 4, 4, 5, 5, 7, 7]; % Data vektorin uudelleenmuodostus niin, että sillä laskeminen on % tehokkaampaa ja helpompaa clear X; X = zeros(length(s2b(1,1,:)),2,length(s2b(:,1,1))); for i = 1: length(s2b(:,1,1)) X(:,1,i) = S2B(i,1,:); X(:,2,i) = S2B(i,2,:); % testausvektori, johon merkitään nollan tilalle 1 jos testaus onnistuu. tulos = zeros(1,length(x(1,1,:))); for i = 1:length(X(1,1,:)); d = zeros(1,8); D = zeros(length(s2b(1,1,:)),2,8); for j = 1:length(M2(1,1,:)) [d(j),d] = DtwDistance(M2(:,:,j),X(:,:,i),d_max); % haetaan pienimmän etäisyyden indeksi, I_min [C,I_min] = min(d); if L2B(i) == M2_num(I_min) tulos(i) = 1; %% tuloksen ilmoitus tunnistui = sum(tulos); naytteita = length(tulos); ['2 vedon tulostus. '... 'Algoritmi tunnisti oikein ' int2str(tunnistui) ' näytettä ' int2str(naytteita)... ' näytteestä (' num2str(100.00*tunnistui/naytteita, '%.2f') '%)']

1. OHJAAMATON OPPIMINEN JA KLUSTEROINTI

1. OHJAAMATON OPPIMINEN JA KLUSTEROINTI 1. OHJAAMATON OPPIMINEN JA KLUSTEROINTI 1 1.1 Funktion optimointiin perustuvat klusterointialgoritmit Klusteroinnin onnistumista mittaavan funktion J optimointiin perustuvissa klusterointialgoritmeissä

Lisätiedot

1. OHJAAMATON OPPIMINEN JA KLUSTEROINTI

1. OHJAAMATON OPPIMINEN JA KLUSTEROINTI 1. OHJAAMATON OPPIMINEN JA KLUSTEROINTI 1 1.1 Funktion optimointiin perustuvat klusterointialgoritmit Klusteroinnin onnistumista mittaavan funktion J optimointiin perustuvissa klusterointialgoritmeissä

Lisätiedot

S Laskennallinen Neurotiede

S Laskennallinen Neurotiede S-114.3812 Laskennallinen Neurotiede Laskuharjoitus 3 8.12.2006 Heikki Hyyti 60451P Tehtävä 2 Tehtävässä 2 piti tehdä 100 hermosolun assosiatiivinen Hopfield-muistiverkko. Verkko on rakennettu Matlab-ohjelmaan

Lisätiedot

A ja B pelaavat sarjan pelejä. Sarjan voittaja on se, joka ensin voittaa n peliä.

A ja B pelaavat sarjan pelejä. Sarjan voittaja on se, joka ensin voittaa n peliä. Esimerkki otteluvoiton todennäköisyys A ja B pelaavat sarjan pelejä. Sarjan voittaja on se, joka ensin voittaa n peliä. Yksittäisessä pelissä A voittaa todennäköisyydellä p ja B todennäköisyydellä q =

Lisätiedot

Numeerinen analyysi Harjoitus 3 / Kevät 2017

Numeerinen analyysi Harjoitus 3 / Kevät 2017 Numeerinen analyysi Harjoitus 3 / Kevät 2017 Palautus viimeistään perjantaina 17.3. Tehtävä 1: Tarkastellaan funktion f(x) = x evaluoimista välillä x [2.0, 2.3]. Muodosta interpoloiva polynomi p 3 (x),

Lisätiedot

Tieteellinen laskenta 2 Törmäykset

Tieteellinen laskenta 2 Törmäykset Tieteellinen laskenta 2 Törmäykset Aki Kutvonen Op.nmr 013185860 Sisällysluettelo Ohjelman tekninen dokumentti...3 Yleiskuvaus...3 Kääntöohje...3 Ohjelman yleinen rakenne...4 Esimerkkiajo ja käyttöohje...5

Lisätiedot

Tässä dokumentissa on ensimmäisten harjoitusten malliratkaisut MATLABskripteinä. Voit kokeilla itse niiden ajamista ja toimintaa MATLABissa.

Tässä dokumentissa on ensimmäisten harjoitusten malliratkaisut MATLABskripteinä. Voit kokeilla itse niiden ajamista ja toimintaa MATLABissa. Laskuharjoitus 1A Mallit Tässä dokumentissa on ensimmäisten harjoitusten malliratkaisut MATLABskripteinä. Voit kokeilla itse niiden ajamista ja toimintaa MATLABissa. 1. tehtävä %% 1. % (i) % Vektorit luodaan

Lisätiedot

Matriisit ovat matlabin perustietotyyppejä. Yksinkertaisimmillaan voimme esitellä ja tallentaa 1x1 vektorin seuraavasti: >> a = 9.81 a = 9.

Matriisit ovat matlabin perustietotyyppejä. Yksinkertaisimmillaan voimme esitellä ja tallentaa 1x1 vektorin seuraavasti: >> a = 9.81 a = 9. Python linkit: Python tutoriaali: http://docs.python.org/2/tutorial/ Numpy&Scipy ohjeet: http://docs.scipy.org/doc/ Matlabin alkeet (Pääasiassa Deni Seitzin tekstiä) Matriisit ovat matlabin perustietotyyppejä.

Lisätiedot

S-114.3812 Laskennallinen Neurotiede

S-114.3812 Laskennallinen Neurotiede S-114.3812 Laskennallinen Neurotiede Laskuharjoitus 2 4.12.2006 Heikki Hyyti 60451P Tehtävä 1 Tehtävässä 1 piti tehdä lineaarista suodatusta kuvalle. Lähtötietoina käytettiin kuvassa 1 näkyvää harmaasävyistä

Lisätiedot

811312A Tietorakenteet ja algoritmit , Harjoitus 2 ratkaisu

811312A Tietorakenteet ja algoritmit , Harjoitus 2 ratkaisu 811312A Tietorakenteet ja algoritmit 2017-2018, Harjoitus 2 ratkaisu Harjoituksen aiheena on algoritmien oikeellisuus. Tehtävä 2.1 Kahvipurkkiongelma. Kahvipurkissa P on valkoisia ja mustia kahvipapuja,

Lisätiedot

T 61.3030 Neuraalilaskennan perusteet

T 61.3030 Neuraalilaskennan perusteet T 61.3030 Neuraalilaskennan perusteet Harjoitustyö time series prediction 31.5.2007 Heikki Hyyti 60451P EST hhyyti@cc.hut.fi Yleistä Harjoitustehtävässä piti Matlabin Neural Network Toolbox:n avulla luoda

Lisätiedot

Zeon PDF Driver Trial

Zeon PDF Driver Trial Matlab-harjoitus 2: Kuvaajien piirto, skriptit ja funktiot. Matlabohjelmoinnin perusteita Numeerinen integrointi trapezoidaalimenetelmällä voidaan tehdä komennolla trapz. Esimerkki: Vaimenevan eksponentiaalin

Lisätiedot

ELEC-C5210 Satunnaisprosessit tietoliikenteessä Harjoitus M1,

ELEC-C5210 Satunnaisprosessit tietoliikenteessä Harjoitus M1, ELEC-C5210 Satunnaisprosessit tietoliikenteessä Harjoitus M1, 16.3.2017 1. Syntaksista, vektoreista ja matriiseista: Tehtävän eri kohdat on tehtävä järjestyksessä. Myöhemmissä kohdissa oletetaan, että

Lisätiedot

Lineaarialgebra ja matriisilaskenta I, HY Kurssikoe Ratkaisuehdotus. 1. (35 pistettä)

Lineaarialgebra ja matriisilaskenta I, HY Kurssikoe Ratkaisuehdotus. 1. (35 pistettä) Lineaarialgebra ja matriisilaskenta I, HY Kurssikoe 26.10.2017 Ratkaisuehdotus 1. (35 pistettä) (a) Seuraavat matriisit on saatu eräistä yhtälöryhmistä alkeisrivitoimituksilla. Kuinka monta ratkaisua yhtälöryhmällä

Lisätiedot

Valitse ruudun yläosassa oleva painike Download Scilab.

Valitse ruudun yläosassa oleva painike Download Scilab. Luku 1 Ohjeita ohjelmiston Scilab käyttöön 1.1 Ohjelmiston lataaminen Ohjeet ohjelmiston lataamiseen Windows-koneelle. Mene verkko-osoitteeseen www.scilab.org. Valitse ruudun yläosassa oleva painike Download

Lisätiedot

mlvektori 1. Muista, että Jacobin matriisi koostuu vektori- tai skalaariarvoisen funktion F ensimmäisistä

mlvektori 1. Muista, että Jacobin matriisi koostuu vektori- tai skalaariarvoisen funktion F ensimmäisistä Aalto-yliopisto, Matematiikan ja Systeemianalyysin laitos mlvektori 1. Muista, että Jacobin matriisi koostuu vektori- tai skalaariarvoisen funktion F ensimmäisistä osittaisderivaatoista: y 1... J F =.

Lisätiedot

TAITAJA 2007 ELEKTRONIIKKAFINAALI 31.01-02.02.07 KILPAILIJAN TEHTÄVÄT. Kilpailijan nimi / Nro:

TAITAJA 2007 ELEKTRONIIKKAFINAALI 31.01-02.02.07 KILPAILIJAN TEHTÄVÄT. Kilpailijan nimi / Nro: KILPAILIJAN TEHTÄVÄT Kilpailijan nimi / Nro: Tehtävän laatinut: Hannu Laurikainen, Deltabit Oy Kilpailutehtävä Kilpailijalle annetaan tehtävässä tarvittavat ohjelmakoodit. Tämä ohjelma on tehty laitteen

Lisätiedot

Algoritmit 1. Demot Timo Männikkö

Algoritmit 1. Demot Timo Männikkö Algoritmit 1 Demot 1 31.1.-1.2.2018 Timo Männikkö Tehtävä 1 (a) Algoritmi, joka tutkii onko kokonaisluku tasan jaollinen jollain toisella kokonaisluvulla siten, että ei käytetä lainkaan jakolaskuja Jaettava

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 15.3.2010 T-106.1208 Ohjelmoinnin perusteet Y 15.3.2010 1 / 56 Tiedostoista: tietojen tallentaminen ohjelman suorituskertojen välillä Monissa sovelluksissa ohjelman

Lisätiedot

TEEMU ROOS (KALVOT MUOKATTU PATRIK HOYERIN LUENTOMATERIAALISTA)

TEEMU ROOS (KALVOT MUOKATTU PATRIK HOYERIN LUENTOMATERIAALISTA) JOHDATUS TEKOÄLYYN TEEMU ROOS (KALVOT MUOKATTU PATRIK HOYERIN LUENTOMATERIAALISTA) KONEOPPIMISEN LAJIT OHJATTU OPPIMINEN: - ESIMERKIT OVAT PAREJA (X, Y), TAVOITTEENA ON OPPIA ENNUSTAMAAN Y ANNETTUNA X.

Lisätiedot

Harjoitustyö 1. Signaaliprosessorit Sivu 1 / 11 Vähämartti Pasi & Pihlainen Tommi. Kaistanestosuodin, estä 2 khz. Amplitudi. 2 khz.

Harjoitustyö 1. Signaaliprosessorit Sivu 1 / 11 Vähämartti Pasi & Pihlainen Tommi. Kaistanestosuodin, estä 2 khz. Amplitudi. 2 khz. Signaaliprosessorit Sivu 1 / 11 Harjoitustyö 1 Kaistanestosuodin, estä 2 khz Amplitudi f 2 khz MATLAB koodi: clear; close all; w=[0 1900 1950 2050 2100 4000]/4000; m=[1 1 0 0 1 1]; h=remez(800,w,m); [H,w]=freqz(h,1);

Lisätiedot

Etsintä verkosta (Searching from the Web) T Datasta tietoon Heikki Mannila, Jouni Seppänen

Etsintä verkosta (Searching from the Web) T Datasta tietoon Heikki Mannila, Jouni Seppänen Etsintä verkosta (Searching from the Web) T-61.2010 Datasta tietoon Heikki Mannila, Jouni Seppänen 12.12.2007 Webin lyhyt historia http://info.cern.ch/proposal.html http://browser.arachne.cz/screen/

Lisätiedot

Lausekielinen ohjelmointi II Ensimmäinen harjoitustyö

Lausekielinen ohjelmointi II Ensimmäinen harjoitustyö Lausekielinen ohjelmointi II Ensimmäinen harjoitustyö Yleistä Tehtävä: Tee Javalla StringStats-ohjelma, joka laskee esikäsittelemästään merkkijonosta joitakin tunnuslukuja. Lausekielinen ohjelmointi II

Lisätiedot

ImageRecognition toteutus

ImageRecognition toteutus ImageRecognition toteutus Simo Korkolainen 27 kesäkuuta 2016 Projektin tarkoituksena on tehdä ohjelma, joka opettaa neuroverkon tunnistamaan kuvia backpropagation-algoritmin avulla Neuroverkon opetuksessa

Lisätiedot

PERUSLASKUJA. Kirjoita muuten sama, mutta ota KAKSI välilyöntiä (SEURAA ALUEMERKINTÄÄ) 4:n jälkeen 3/4 +5^2

PERUSLASKUJA. Kirjoita muuten sama, mutta ota KAKSI välilyöntiä (SEURAA ALUEMERKINTÄÄ) 4:n jälkeen 3/4 +5^2 PERUSLASKUJA Matemaattisten lausekkeiden syöttäminen: Kirjoita ilman välilyöntejä 3/4+^2 3 4+ 2 Kirjoita muuten sama, mutta ota KAKSI välilyöntiä (SEURAA ALUEMERKINTÄÄ) 4:n jälkeen 3/4 +^2 3 + 4 2 Kopioi

Lisätiedot

3 Suorat ja tasot. 3.1 Suora. Tässä luvussa käsitellään avaruuksien R 2 ja R 3 suoria ja tasoja vektoreiden näkökulmasta.

3 Suorat ja tasot. 3.1 Suora. Tässä luvussa käsitellään avaruuksien R 2 ja R 3 suoria ja tasoja vektoreiden näkökulmasta. 3 Suorat ja tasot Tässä luvussa käsitellään avaruuksien R 2 ja R 3 suoria ja tasoja vektoreiden näkökulmasta. 3.1 Suora Havaitsimme skalaarikertolaskun tulkinnan yhteydessä, että jos on mikä tahansa nollasta

Lisätiedot

Algoritmit 2. Demot Timo Männikkö

Algoritmit 2. Demot Timo Männikkö Algoritmit 2 Demot 2 3.-4.4.2019 Timo Männikkö Tehtävä 1 Avoin osoitteenmuodostus: Hajautustaulukko t (koko m) Erikoisarvot VAPAA ja POISTETTU Hajautusfunktio h(k,i) Operaatiot: lisaa etsi poista Algoritmit

Lisätiedot

s = 11 7 t = = 2 7 Sijoittamalla keskimmäiseen yhtälöön saadaan: k ( 2) = 0 2k = 8 k = 4

s = 11 7 t = = 2 7 Sijoittamalla keskimmäiseen yhtälöön saadaan: k ( 2) = 0 2k = 8 k = 4 BM0A5800 Funktiot, lineaarialgebra ja vektorit Harjoitus 5, Syksy 05. (a) i. Jotta vektori c sijaitsisi a:n ja b:n virittämällä tasolla, c on voitava esittää a:n ja b:n lineaarikombinaationa. c ta + sb

Lisätiedot

S09 04 Kohteiden tunnistaminen 3D datasta

S09 04 Kohteiden tunnistaminen 3D datasta AS 0.3200 Automaatio ja systeemitekniikan projektityöt S09 04 Kohteiden tunnistaminen 3D datasta Loppuraportti 22.5.2009 Akseli Korhonen 1. Projektin esittely Projektin tavoitteena oli algoritmin kehittäminen

Lisätiedot

Pienimmän Neliösumman Sovitus (PNS)

Pienimmän Neliösumman Sovitus (PNS) Pienimmän Neliösumman Sovitus (PNS) n = Havaintojen määrä (Kuvan n = 4 punaista palloa) x i = Havaintojen ajat/paikat/... (i = 1,..., n) y i = y(x i) = Havaintojen arvot (i = 1,..., n) σ i = Havaintojen

Lisätiedot

MS-C1340 Lineaarialgebra ja

MS-C1340 Lineaarialgebra ja MS-C1340 Lineaarialgebra ja differentiaaliyhtälöt QR-hajotelma ja pienimmän neliösumman menetelmä Riikka Kangaslampi Kevät 2017 Matematiikan ja systeemianalyysin laitos Aalto-yliopisto PNS-ongelma PNS-ongelma

Lisätiedot

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin peruskurssi Y1 Ohjelmoinnin peruskurssi Y1 CSE-A1111 30.9.2015 CSE-A1111 Ohjelmoinnin peruskurssi Y1 30.9.2015 1 / 27 Mahdollisuus antaa luentopalautetta Goblinissa vasemmassa reunassa olevassa valikossa on valinta Luentopalaute.

Lisätiedot

MS-C1340 Lineaarialgebra ja differentiaaliyhtälöt

MS-C1340 Lineaarialgebra ja differentiaaliyhtälöt MS-C1340 Lineaarialgebra ja differentiaaliyhtälöt ja pienimmän neliösumman menetelmä Riikka Kangaslampi Matematiikan ja systeemianalyysin laitos Aalto-yliopisto 2015 1 / 18 R. Kangaslampi QR ja PNS PNS-ongelma

Lisätiedot

7.4 Sormenjälkitekniikka

7.4 Sormenjälkitekniikka 7.4 Sormenjälkitekniikka Tarkastellaan ensimmäisenä esimerkkinä pitkien merkkijonojen vertailua. Ongelma: Ajatellaan, että kaksi n-bittistä (n 1) tiedostoa x ja y sijaitsee eri tietokoneilla. Halutaan

Lisätiedot

Kohdeyleisö: toisen vuoden teekkari

Kohdeyleisö: toisen vuoden teekkari Julkinen opetusnäyte Yliopisto-opettajan tehtävä, matematiikka Klo 8:55-9:15 TkT Simo Ali-Löytty Aihe: Lineaarisen yhtälöryhmän pienimmän neliösumman ratkaisu Kohdeyleisö: toisen vuoden teekkari 1 y y

Lisätiedot

linux: Ympäristömuuttujat

linux: Ympäristömuuttujat L5: linux linux: Ympäristömuuttujat linux: Ympäristömuuttujat linux komentotulkkki toimii asetettujen ympäristömuuttujien mukaan env kertoo asetetut ympäristömuuttujat Yksi tulostuvista riveistä on tyypillisesti

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 16.2.2010 T-106.1208 Ohjelmoinnin perusteet Y 16.2.2010 1 / 41 Kännykkäpalautetteen antajia kaivataan edelleen! Ilmoittaudu mukaan lähettämällä ilmainen tekstiviesti

Lisätiedot

811312A Tietorakenteet ja algoritmit Kertausta kurssin alkuosasta

811312A Tietorakenteet ja algoritmit Kertausta kurssin alkuosasta 811312A Tietorakenteet ja algoritmit 2016-2017 Kertausta kurssin alkuosasta II Algoritmien analyysi: oikeellisuus Algoritmin täydellinen oikeellisuus = Algoritmi päättyy ja tuottaa määritellyn tuloksen

Lisätiedot

Matemaattiset ohjelmistot 1-2 ov, 2-3 op

Matemaattiset ohjelmistot 1-2 ov, 2-3 op Matemaattiset ohjelmistot 1-2 ov, 2-3 op Aloitustehtävät Perehdy netissä olevan oppaan http://mtl.uta.fi/opetus/matem_ohjelmistot/matlab lukuihin 0 Johdanto, 1 matriisit ja vektorit sekä 4 Ohjelmointi

Lisätiedot

Sovellusohjelmointi Matlab-ympäristössä: Vertaisverkon koneiden klusterointi

Sovellusohjelmointi Matlab-ympäristössä: Vertaisverkon koneiden klusterointi Sovellusohjelmointi Matlab-ympäristössä: Vertaisverkon koneiden klusterointi 28.4.2013 Annemari Auvinen (annauvi@st.jyu.fi) Anu Niemi (anniemi@st.jyu.fi) 1 Sisällysluettelo 1 JOHDANTO... 2 2 KÄYTETYT MENETELMÄT...

Lisätiedot

Ohjelmistoradio tehtävät 4. P1: Ekvalisointi ja demodulaatio. OFDM-symbolien generoiminen

Ohjelmistoradio tehtävät 4. P1: Ekvalisointi ja demodulaatio. OFDM-symbolien generoiminen Ohjelmistoradio tehtävät 4 P: Ekvalisointi ja demodulaatio Tässä tehtävässä dekoodata OFDM data joka on sijotetty synknonontisignaalin lälkeen. Synkronointisignaali on sama kuin edellisessä laskutehtävässä.

Lisätiedot

Matlabperusteita, osa 1. Heikki Apiola Matlab-perusteita, osa 1. Heikki Apiola. 12. maaliskuuta 2012

Matlabperusteita, osa 1. Heikki Apiola Matlab-perusteita, osa 1. Heikki Apiola. 12. maaliskuuta 2012 Matlab-perusteita, 12. maaliskuuta 2012 Matlab-perusteita, Ohjelmahahmotelma 1. viikko: Matlab 2. viikko: Maple (+ annettujen Matlab tehtävien ratkaisuja) 3. viikko: Maple ja Matlab (lopputyöt) Matlab-perusteita,

Lisätiedot

. Kun p = 1, jono suppenee raja-arvoon 1. Jos p = 2, jono hajaantuu. Jono suppenee siis lineaarisesti. Vastaavasti jonolle r k+1 = r k, suhde on r k+1

. Kun p = 1, jono suppenee raja-arvoon 1. Jos p = 2, jono hajaantuu. Jono suppenee siis lineaarisesti. Vastaavasti jonolle r k+1 = r k, suhde on r k+1 TEKNILLINEN KORKEAKOULU Systeemianalyysin laboratorio Mat-.39 Optimointioppi Kimmo Berg 8. harjoitus - ratkaisut. a)huomataan ensinnäkin että kummankin jonon raja-arvo r on nolla. Oletetaan lisäksi että

Lisätiedot

Metropolia ammattikorkeakoulu TI00AA : Ohjelmointi Kotitehtävät 3 opettaja: Pasi Ranne

Metropolia ammattikorkeakoulu TI00AA : Ohjelmointi Kotitehtävät 3 opettaja: Pasi Ranne Seuraavista tehtävistä saatu yhteispistemäärä (max 7 pistettä) jaetaan luvulla 3.5 ja näin saadaan varsinainen kurssipisteisiin laskettava pistemäärä. Bonustehtävien pisteet jaetaan luvulla 4 eli niistä

Lisätiedot

Ratkaisuehdotukset LH 8 / vko 47

Ratkaisuehdotukset LH 8 / vko 47 Ratkaisuehdotukset LH 8 / vko 47 Tehtävä 1: Olkoot A R n n matriisi, jonka singulaariarvohajotelma on A [ ] [ ] Σ U 1 U r 0 [V1 ] T 2 V 0 0 2 Jossa Σ r on kääntyvä matriisi, [ U 1 U 2 ] ja [ V1 V 2 ] ovat

Lisätiedot

Mitä on konvoluutio? Tutustu kuvankäsittelyyn

Mitä on konvoluutio? Tutustu kuvankäsittelyyn Mitä on konvoluutio? Tutustu kuvankäsittelyyn Tieteenpäivät 2015, Työohje Sami Varjo Johdanto Digitaalinen signaalienkäsittely on tullut osaksi arkipäiväämme niin, ettemme yleensä edes huomaa sen olemassa

Lisätiedot

Luku 8. Aluekyselyt. 8.1 Summataulukko

Luku 8. Aluekyselyt. 8.1 Summataulukko Luku 8 Aluekyselyt Aluekysely on tiettyä taulukon väliä koskeva kysely. Tyypillisiä aluekyselyitä ovat, mikä on taulukon välin lukujen summa tai pienin luku välillä. Esimerkiksi seuraavassa taulukossa

Lisätiedot

MATLABin alkeita J.Merikoski JYFL 2009 fysp120

MATLABin alkeita J.Merikoski JYFL 2009 fysp120 MATLABin alkeita J.Merikoski JYFL 2009 fysp120 Tämän pikaoppaan tarkoitus on auttaa nopeaan alkuun matlab-ohjelmiston käytössä. Keskitymme fyysikolle (välittömästi) hyödyllisimpiin komentoihin ja rakenteisiin.

Lisätiedot

SGN Signaalinkäsittelyn perusteet Välikoe Heikki Huttunen

SGN Signaalinkäsittelyn perusteet Välikoe Heikki Huttunen SGN- Signaalinkäsittelyn perusteet Välikoe.5.4 Heikki Huttunen Tentissä ja välikokeessa saa käyttää vain tiedekunnan laskinta. Tenttikysymyksiä ei tarvitse palauttaa. Sivuilla -3 on. Sivuilla 4-5 on. Sivulla

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 25.2.2009 T-106.1208 Ohjelmoinnin perusteet Y 25.2.2009 1 / 34 Syötteessä useita lukuja samalla rivillä Seuraavassa esimerkissä käyttäjä antaa useita lukuja samalla

Lisätiedot

811312A Tietorakenteet ja algoritmit Kertausta kurssin alkuosasta

811312A Tietorakenteet ja algoritmit Kertausta kurssin alkuosasta 811312A Tietorakenteet ja algoritmit 2017-2018 Kertausta kurssin alkuosasta II Perustietorakenteet Pino, jono ja listat tunnettava Osattava soveltaa rakenteita algoritmeissa Osattava päätellä operaatioiden

Lisätiedot

Matriisilaskenta (TFM) MS-A0001 Hakula/Vuojamo Ratkaisut, Viikko 47, 2017

Matriisilaskenta (TFM) MS-A0001 Hakula/Vuojamo Ratkaisut, Viikko 47, 2017 Matriisilaskenta (TFM) MS-A1 Hakula/Vuojamo Ratkaisut, Viikko 47, 17 R Alkuviikko TEHTÄVÄ J1 Mitkä matriisit E 1 ja E 31 nollaavat sijainnit (, 1) ja (3, 1) matriiseissa E 1 A ja E 31 A kun 1 A = 1. 8

Lisätiedot

Ohjelmoinnin perusteet, syksy 2006

Ohjelmoinnin perusteet, syksy 2006 Ohjelmoinnin perusteet, syksy 2006 Esimerkkivastaukset 1. harjoituksiin. Alkuperäiset esimerkkivastaukset laati Jari Suominen. Vastauksia muokkasi Jukka Stenlund. 1. Esitä seuraavan algoritmin tila jokaisen

Lisätiedot

System.out.printf("%d / %d = %.2f%n", ekaluku, tokaluku, osamaara);

System.out.printf(%d / %d = %.2f%n, ekaluku, tokaluku, osamaara); Kysy Karilta tai Kimmolta, jos tehtävissä on jotain epäselvää. Kerro WETOon liittyvät ongelmat suoraan Jormalle sähköpostitse (jorma.laurikkala@uta.fi). Muista nimetä muuttujat hyvin sekä kommentoida ja

Lisätiedot

Harjoitus 3 (viikko 39)

Harjoitus 3 (viikko 39) Mikäli tehtävissä on jotain epäselvää, laita sähköpostia vastuuopettajalle (jorma.laurikkala@uta.fi). Muista nimetä muuttujat hyvin sekä kommentoida ja sisentää koodisi. Vältä liian pitkiä rivejä. Ohjelmointitehtävien

Lisätiedot

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin peruskurssi Y1 Ohjelmoinnin peruskurssi Y1 CSE-A1111 21.9.2015 CSE-A1111 Ohjelmoinnin peruskurssi Y1 21.9.2015 1 / 25 Mahdollisuus antaa luentopalautetta Goblinissa vasemmassa reunassa olevassa valikossa on valinta Luentopalaute.

Lisätiedot

Neuroverkkojen soveltaminen vakuutusdatojen luokitteluun

Neuroverkkojen soveltaminen vakuutusdatojen luokitteluun Neuroverkkojen soveltaminen vakuutusdatojen luokitteluun Sami Hokuni 12 Syyskuuta, 2012 1/ 54 Sami Hokuni Neuroverkkojen soveltaminen vakuutusdatojen luokitteluun Turun Yliopisto. Gradu tehty 2012 kevään

Lisätiedot

Yleistä. Nyt käsitellään vain taulukko (array), joka on saman tyyppisten muuttujien eli alkioiden (element) kokoelma.

Yleistä. Nyt käsitellään vain taulukko (array), joka on saman tyyppisten muuttujien eli alkioiden (element) kokoelma. 2. Taulukot 2.1 Sisältö Yleistä. Esittely ja luominen. Alkioiden käsittely. Kaksiulotteinen taulukko. Taulukko operaation parametrina. Taulukko ja HelloWorld-ohjelma. Taulukko paluuarvona. 2.2 Yleistä

Lisätiedot

S-114.2720 Havaitseminen ja toiminta

S-114.2720 Havaitseminen ja toiminta S-114.2720 Havaitseminen ja toiminta Heikki Hyyti 60451P Harjoitustyö 2 visuaalinen prosessointi Treismanin FIT Kuva 1. Kuvassa on Treismanin kokeen ensimmäinen osio, jossa piti etsiä vihreätä T kirjainta.

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 17.2.2010 T-106.1208 Ohjelmoinnin perusteet Y 17.2.2010 1 / 41 Sanakirja Monissa sovelluksissa on tallennettava rakenteeseen avain arvo-pareja. Myöhemmin rakenteesta

Lisätiedot

Toinen harjoitustyö. ASCII-grafiikkaa

Toinen harjoitustyö. ASCII-grafiikkaa Toinen harjoitustyö ASCII-grafiikkaa Yleistä Tehtävä: tee Javalla ASCII-merkkeinä esitettyä grafiikkaa käsittelevä ASCIIArt-ohjelma omia operaatioita ja taulukoita käyttäen. Työ tehdään pääosin itse. Ideoita

Lisätiedot

Matriisilaskenta Laskuharjoitus 1 - Ratkaisut / vko 37

Matriisilaskenta Laskuharjoitus 1 - Ratkaisut / vko 37 Matriisilaskenta Laskuharjoitus 1 - Ratkaisut / vko 37 Tehtävä 1: Käynnistä Matlab-ohjelma ja kokeile laskea sillä muutama peruslaskutoimitus: laske jokin yhteen-, vähennys-, kerto- ja jakolasku. Laske

Lisätiedot

Numeerinen analyysi Harjoitus 1 / Kevät 2017

Numeerinen analyysi Harjoitus 1 / Kevät 2017 Numeerinen analyysi Harjoitus 1 / Kevät 2017 Palautus viimeistään perjantaina 3.3. Tehtävä 1: Oheinen MATLAB-funktio toteuttaa eksponenttifunktion evaluoinnin. 1 function y = seriesexp ( x ) 2 oldsum =

Lisätiedot

Luku 9. Relevanttien sivujen etsintä verkosta: satunnaiskulut verkossa

Luku 9. Relevanttien sivujen etsintä verkosta: satunnaiskulut verkossa 1 / 31 Luku 9. Relevanttien sivujen etsintä verkosta: satunnaiskulut verkossa T-61.2010 Datasta tietoon, syksy 2011 professori Heikki Mannila Tietojenkäsittelytieteen laitos, Aalto-yliopisto 1.12.2011

Lisätiedot

815338A Ohjelmointikielten periaatteet Harjoitus 3 vastaukset

815338A Ohjelmointikielten periaatteet Harjoitus 3 vastaukset 815338A Ohjelmointikielten periaatteet 2015-2016. Harjoitus 3 vastaukset Harjoituksen aiheena ovat imperatiivisten kielten muuttujiin liittyvät kysymykset. Tehtävä 1. Määritä muuttujien max_num, lista,

Lisätiedot

= 2 L L. f (x)dx. coshx dx = 1 L. sinhx nπ. sin. sin L + 2 L. a n. L 2 + n 2 cos. tehdään approksimoinnissa virhe, jota voidaan arvioida integraalin

= 2 L L. f (x)dx. coshx dx = 1 L. sinhx nπ. sin. sin L + 2 L. a n. L 2 + n 2 cos. tehdään approksimoinnissa virhe, jota voidaan arvioida integraalin BMA7 - Integraalimuunnokset Harjoitus 9. Määritä -jaksollisen funktion f x = coshx, < x < Fourier-sarja. Funktion on parillinen, joten b n = kun n =,,3,... Parillisuudesta johtuen kertoimet a ja a n saadaan

Lisätiedot

Perusteet. Pasi Sarolahti Aalto University School of Electrical Engineering. C-ohjelmointi Kevät Pasi Sarolahti

Perusteet. Pasi Sarolahti Aalto University School of Electrical Engineering. C-ohjelmointi Kevät Pasi Sarolahti C! Perusteet 19.1.2017 Palautteesta (1. kierros toistaiseksi) (Erittäin) helppoa Miksi vain puolet pisteistä? Vaikeinta oli ohjelmointiympäristön asennus ja käyttö Ei selvää että main funktion pitikin

Lisätiedot

Kannan vektorit siis virittävät aliavaruuden, ja lisäksi kanta on vapaa. Lauseesta 7.6 saadaan seuraava hyvin käyttökelpoinen tulos:

Kannan vektorit siis virittävät aliavaruuden, ja lisäksi kanta on vapaa. Lauseesta 7.6 saadaan seuraava hyvin käyttökelpoinen tulos: 8 Kanta Tässä luvussa tarkastellaan aliavaruuden virittäjävektoreita, jotka muodostavat lineaarisesti riippumattoman jonon. Merkintöjen helpottamiseksi oletetaan luvussa koko ajan, että W on vektoreiden

Lisätiedot

Luokka Murtoluku uudelleen. Kirjoitetaan luokka Murtoluku uudelleen niin, että murtolukujen sieventäminen on mahdollista.

Luokka Murtoluku uudelleen. Kirjoitetaan luokka Murtoluku uudelleen niin, että murtolukujen sieventäminen on mahdollista. 1 Luokka Murtoluku uudelleen Kirjoitetaan luokka Murtoluku uudelleen niin, että murtolukujen sieventäminen on mahdollista. Sievennettäessä tarvitaan osoittajan ja nimittäjän suurin yhteinen tekijä (syt).

Lisätiedot

z 1+i (a) f (z) = 3z 4 5z 3 + 2z (b) f (z) = z 4z + 1 f (z) = 12z 3 15z 2 + 2

z 1+i (a) f (z) = 3z 4 5z 3 + 2z (b) f (z) = z 4z + 1 f (z) = 12z 3 15z 2 + 2 BM20A5700 - Integraauunnokset Harjoitus 2 1. Laske seuraavat raja-arvot. -kohta ratkeaa, kun pistät sekä yläkerran että alakerran muotoon (z z 1 )(z z 2 ), missä siis z 1 ja z 2 ovat näiden lausekkeiden

Lisätiedot

Differentiaaliyhtälöt II, kevät 2017 Harjoitus 5

Differentiaaliyhtälöt II, kevät 2017 Harjoitus 5 Differentiaaliyhtälöt II, kevät 27 Harjoitus 5 Heikki Korpela 26. huhtikuuta 27 Tehtävä 2. Määrää seuraavan autonomisen systeemin kriittiset pisteet, ratakäyrät ja luonnostele systeemin aikakehitys: (t)

Lisätiedot

Sisällys. 3. Muuttujat ja operaatiot. Muuttujat ja operaatiot. Muuttujat. Operaatiot. Imperatiivinen laskenta. Muuttujat. Esimerkkejä: Operaattorit.

Sisällys. 3. Muuttujat ja operaatiot. Muuttujat ja operaatiot. Muuttujat. Operaatiot. Imperatiivinen laskenta. Muuttujat. Esimerkkejä: Operaattorit. 3. Muuttujat ja operaatiot Sisällys Imperatiivinen laskenta. Muuttujat. Nimi ja arvo. Muuttujan nimeäminen. Muuttujan tyyppi.. Operandit. Arvon sijoitus muuttujaan. Aritmeettiset operaattorit. Arvojen

Lisätiedot

Tieto- ja tallennusrakenteet

Tieto- ja tallennusrakenteet Tieto- ja tallennusrakenteet Sisältö Tyyppi, abstrakti tietotyyppi, abstraktin tietotyypin toteutus Tallennusrakenteet Taulukko Linkitetty rakenne Abstraktit tietotyypit Lista (Puu) (Viimeisellä viikolla)

Lisätiedot

Projektisuunnitelma. Projektin tavoitteet

Projektisuunnitelma. Projektin tavoitteet Projektisuunnitelma Projektin tavoitteet Projektin tarkoituksena on tunnistaa erilaisia esineitä Kinect-kameran avulla. Kinect-kamera on kytkettynä tietokoneeseen, johon projektissa tehdään tunnistuksen

Lisätiedot

Jaetun muistin muuntaminen viestin välitykseksi. 15. lokakuuta 2007

Jaetun muistin muuntaminen viestin välitykseksi. 15. lokakuuta 2007 Jaetun muistin muuntaminen viestin välitykseksi Otto Räsänen 15. lokakuuta 2007 1 Motivaatio 2 Valtuuden välitys Peruskäsitteitä 3 Kolme algoritmia Valtuuden välitys käyttäen laskuria ilman ylärajaa Valtuuden

Lisätiedot

3. Muuttujat ja operaatiot 3.1

3. Muuttujat ja operaatiot 3.1 3. Muuttujat ja operaatiot 3.1 Sisällys Imperatiivinen laskenta. Muuttujat. Nimi ja arvo. Muuttujan nimeäminen. Muuttujan tyyppi. Operaattorit. Operandit. Arvon sijoitus muuttujaan. Aritmeettiset operaattorit.

Lisätiedot

Numeeriset menetelmät

Numeeriset menetelmät Numeeriset menetelmät Luento 5 Ti 20.9.2011 Timo Männikkö Numeeriset menetelmät Syksy 2011 Luento 5 Ti 20.9.2011 p. 1/40 p. 1/40 Choleskyn menetelmä Positiivisesti definiiteillä matriiseilla kolmiohajotelma

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 2.2.2009 T-106.1208 Ohjelmoinnin perusteet Y 2.2.2009 1 / 43 Funktiot Tähän asti esitetyt ohjelmat ovat oleet hyvin lyhyitä. Todellisessa elämässä tarvitaan kuitenkin

Lisätiedot

SGN-1251 Signaalinkäsittelyn sovellukset Välikoe Heikki Huttunen

SGN-1251 Signaalinkäsittelyn sovellukset Välikoe Heikki Huttunen SGN-5 Signaalinkäsittelyn sovellukset Välikoe.. Heikki Huttunen Tentissä ja välikokeessa saa käyttää vain tiedekunnan laskinta. Tenttikysymyksiä ei tarvitse palauttaa. Sivuilla - on. Sivuilla 4-6 on. Vastaa

Lisätiedot

Kokonaislukuaritmetiikka vs. logiikkaluupit

Kokonaislukuaritmetiikka vs. logiikkaluupit Diskreetti matematiikka, syksy 2010 Matlab-harjoitus 3 (18.11. klo 16-18 MP103) Tehtäviin vastataan tälle paperille, osoitettuihin tyhjiin alueisiin, yleensä tyhjille riveille. Tehtävät saa ja on suorastaan

Lisätiedot

Lineaarikuvauksen R n R m matriisi

Lineaarikuvauksen R n R m matriisi Lineaarikuvauksen R n R m matriisi Lauseessa 21 osoitettiin, että jokaista m n -matriisia A vastaa lineaarikuvaus L A : R n R m, jolla L A ( v) = A v kaikilla v R n. Osoitetaan seuraavaksi käänteinen tulos:

Lisätiedot

System.out.printf("%d / %d = %.2f%n", ekaluku, tokaluku, osamaara);

System.out.printf(%d / %d = %.2f%n, ekaluku, tokaluku, osamaara); Mikäli tehtävissä on jotain epäselvää, laita sähköpostia vastuuopettajalle (jorma.laurikkala@uta.fi). Muista nimetä muuttujat hyvin sekä kommentoida ja sisentää koodisi. Ohjelmointitehtävien osalta palautetaan

Lisätiedot

Talousmatematiikan perusteet: Luento 11. Lineaarikuvaus Matriisin aste Käänteismatriisi

Talousmatematiikan perusteet: Luento 11. Lineaarikuvaus Matriisin aste Käänteismatriisi Talousmatematiikan perusteet: Luento 11 Lineaarikuvaus Matriisin aste Käänteismatriisi Viime luennolla Käsittelimme matriisien peruskäsitteitä ja laskutoimituksia Vakiolla kertominen, yhteenlasku ja vähennyslasku

Lisätiedot

Lineaarialgebra ja matriisilaskenta I

Lineaarialgebra ja matriisilaskenta I Lineaarialgebra ja matriisilaskenta I 30.5.2013 HY / Avoin yliopisto Jokke Häsä, 1/19 Käytännön asioita Kurssi on suunnilleen puolessa välissä. Kannattaa tarkistaa tavoitetaulukosta, mitä on oppinut ja

Lisätiedot

811312A Tietorakenteet ja algoritmit, 2014-2015, Harjoitus 7, ratkaisu

811312A Tietorakenteet ja algoritmit, 2014-2015, Harjoitus 7, ratkaisu 832A Tietorakenteet ja algoritmit, 204-205, Harjoitus 7, ratkaisu Hajota ja hallitse-menetelmä: Tehtävä 7.. Muodosta hajota ja hallitse-menetelmää käyttäen algoritmi TULOSTA_PUU_LASKEVA, joka tulostaa

Lisätiedot

Sisältö. 2. Taulukot. Yleistä. Yleistä

Sisältö. 2. Taulukot. Yleistä. Yleistä Sisältö 2. Taulukot Yleistä. Esittely ja luominen. Alkioiden käsittely. Kaksiulotteinen taulukko. Taulukko operaation parametrina. Taulukko ja HelloWorld-ohjelma. Taulukko paluuarvona. 2.1 2.2 Yleistä

Lisätiedot

Similaarisuus. Määritelmä. Huom.

Similaarisuus. Määritelmä. Huom. Similaarisuus Määritelmä Neliömatriisi A M n n on similaarinen neliömatriisin B M n n kanssa, jos on olemassa kääntyvä matriisi P M n n, jolle pätee Tällöin merkitään A B. Huom. Havaitaan, että P 1 AP

Lisätiedot

Osakesalkun optimointi. Anni Halkola Turun yliopisto 2016

Osakesalkun optimointi. Anni Halkola Turun yliopisto 2016 Osakesalkun optimointi Anni Halkola Turun yliopisto 2016 Artikkeli Gleb Beliakov & Adil Bagirov (2006) Non-smooth optimization methods for computation of the Conditional Value-at-risk and portfolio optimization.

Lisätiedot

MS-A0207 Differentiaali- ja integraalilaskenta 2 Luento 5: Gradientti ja suunnattu derivaatta. Vektoriarvoiset funktiot. Taylor-approksimaatio.

MS-A0207 Differentiaali- ja integraalilaskenta 2 Luento 5: Gradientti ja suunnattu derivaatta. Vektoriarvoiset funktiot. Taylor-approksimaatio. MS-A0207 Differentiaali- ja integraalilaskenta 2 Luento 5: Gradientti ja suunnattu derivaatta. Vektoriarvoiset funktiot. Taylor-approksimaatio. Riikka Korte Matematiikan ja systeemianalyysin laitos 1 Aalto-yliopisto

Lisätiedot

Matlabin perusteita Grafiikka

Matlabin perusteita Grafiikka BL40A0000 SSKMO KH 1 Seuraavassa esityksessä oletuksena on, että Matlabia käytetään jossakin ikkunoivassa käyttöjärjestelmässä (PC/Win, Mac, X-Window System). Käytettäessä Matlabia verkon yli joko tekstipäätteeltä,

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 1.2.2010 T-106.1208 Ohjelmoinnin perusteet Y 1.2.2010 1 / 47 Sijoituksen arvokehitys, koodi def main(): print "Ohjelma laskee sijoituksen arvon kehittymisen."

Lisätiedot

Sisältö. 22. Taulukot. Yleistä. Yleistä

Sisältö. 22. Taulukot. Yleistä. Yleistä Sisältö 22. Taulukot Yleistä. Esittely ja luominen. Alkioiden käsittely. Kaksiulotteinen taulukko. Taulukko metodin parametrina. Taulukko ja HelloWorld-ohjelma. Taulukko paluuarvona. 22.1 22.2 Yleistä

Lisätiedot

A TIETORAKENTEET JA ALGORITMIT KORVAAVAT HARJOITUSTEHTÄVÄT 3, DEADLINE KLO 12:00

A TIETORAKENTEET JA ALGORITMIT KORVAAVAT HARJOITUSTEHTÄVÄT 3, DEADLINE KLO 12:00 A274101 TIETORAKENTEET JA ALGORITMIT KORVAAVAT HARJOITUSTEHTÄVÄT 3, DEADLINE 9.2.2005 KLO 12:00 PISTETILANNE: www.kyamk.fi/~atesa/tirak/harjoituspisteet-2005.pdf Kynätehtävät palautetaan kirjallisesti

Lisätiedot

TL5503 DSK, laboraatiot (1.5 op) Kuvasignaalit. Jyrki Laitinen

TL5503 DSK, laboraatiot (1.5 op) Kuvasignaalit. Jyrki Laitinen TL553 DSK, laboraatiot (.5 op) Kuvasignaalit Jyrki Laitinen TL553 DSK, laboraatiot (.5 op), K25 Suorita oheisten ohjeiden mukaiset tehtävät Matlab- ja VCDemo-ohjelmistoja käyttäen. Kokoa erilliseen mittauspöytäkirjaan

Lisätiedot

MS-A0003/A0005 Matriisilaskenta Laskuharjoitus 1 / vko 44

MS-A0003/A0005 Matriisilaskenta Laskuharjoitus 1 / vko 44 MS-A0003/A0005 Matriisilaskenta Laskuharjoitus / vko Tehtävä (L): Käynnistä Matlab-ohjelma ja kokeile laskea sillä muutama peruslaskutoimitus: laske jokin yhteen-, vähennys-, kerto- ja jakolasku. Laske

Lisätiedot

Hissimatkustajien automaattinen tunnistaminen. Johan Backlund

Hissimatkustajien automaattinen tunnistaminen. Johan Backlund Hissimatkustajien automaattinen tunnistaminen Johan Backlund Johdanto Hissien historia pitkä Ensimmäiset maininnat voidaan jäljittää Rooman valtakuntaan Matkustaja hissien synty 1800-luvun puolessavälissä

Lisätiedot

Amazon Web Services (AWS) on varmaankin maailman suosituin IaaS-tarjoaja. Lisäksi se tarjoaa erilaisia PaaS-kategoriaan kuuluvia palveluita.

Amazon Web Services (AWS) on varmaankin maailman suosituin IaaS-tarjoaja. Lisäksi se tarjoaa erilaisia PaaS-kategoriaan kuuluvia palveluita. 1 2 Amazon Web Services (AWS) on varmaankin maailman suosituin IaaS-tarjoaja. Lisäksi se tarjoaa erilaisia PaaS-kategoriaan kuuluvia palveluita. 3 4 Region vastaa palvelun fyysistä sijaintipaikkaa (AWS

Lisätiedot

Harjoitustyön testaus. Juha Taina

Harjoitustyön testaus. Juha Taina Harjoitustyön testaus Juha Taina 1. Johdanto Ohjelman teko on muutakin kuin koodausta. Oleellinen osa on selvittää, että ohjelma toimii oikein. Tätä sanotaan ohjelman validoinniksi. Eräs keino validoida

Lisätiedot

ITKP102 Ohjelmointi 1 (6 op)

ITKP102 Ohjelmointi 1 (6 op) ITKP102 Ohjelmointi 1 (6 op) Tentaattori: Antti-Jussi Lakanen 22. huhtikuuta 2016 Vastaa kaikkiin tehtäviin. Tee jokainen tehtävä erilliselle konseptiarkille! Kirjoittamasi luokat, funktiot ja aliohjelmat

Lisätiedot

PERUSLASKUJA. Kirjoita muuten sama, mutta ota välilyönti 4:n jälkeen 3/4 +5^2

PERUSLASKUJA. Kirjoita muuten sama, mutta ota välilyönti 4:n jälkeen 3/4 +5^2 PERUSLASKUJA Matemaattisten lausekkeiden syöttäminen: Kirjoita ilman välilyöntejä /+^2 Kirjoita muuten sama, mutta ota välilyönti :n jälkeen / +^2 Kopioi molemmat matematiikka-alueet ja liiku alueen sisällä

Lisätiedot