MATLAB Repetition og Udførelse af programmer Anders P. Ravn Institut for Datalogi Aalborg Universitet Forår 2005 >>mit_modul minf.m … minf(a) … mit_modul.m.

Slides:



Advertisements
Lignende præsentationer
Reduktion AM 2009.
Advertisements

Algoritmer og Datastrukturer 2 Del-og-kombiner [CLRS, kapitel , , 28
1 Pentium IA-32 Maskinarkitekturen Kort resume – uge 5.
Symbolsk maskinsprog.
MATLAB Programplanlægning Anders P. Ravn Institut for Datalogi Aalborg Universitet Forår 2003 >>mit_program(`ud.txt´) myconstants.m function mit_program(iud)
MATLAB Afslutning Anders P. Ravn Institut for Datalogi Aalborg Universitet Forår 2005.
Reduktion AM 2009.
Algoritmer og Datastrukturer 2 Dynamisk Programmering [CLRS, kapitel 15] Gerth Stølting Brodal Aarhus Universitet.
GP 10, 7/ Grundlæggende programmering Efterår 2001 Forelæsning 10 onsdag 7/ kl. 9:15 – 12:00.
FEN Rekursion og induktion1 Induktion og (især) rekursion Mange begreber defineres ud fra en basis og så en gentagen anvendelse af et antal regler.
MATLAB Programmering Anders P. Ravn Institut for Datalogi Aalborg Universitet Forår 2005 d = size(s); for k = 1:d(1), for n = 1:d(2), if (s(k,n) < 0) r(k,n)
Anvendelser I Leg og spil.
MATLAB Programmering Anders P. Ravn Institut for Datalogi Aalborg Universitet Forår 2003 d = size(s); for k = 1:d(1), for n = 1:d(2), if (s(k,n) < 0) r(k,n)
Buttom-up parsning: Hvor er vi Mellem- kode Kald til Runtimesys. Mellemk.- optimering Kode- generering Kode- optimering Leksikalsk- analyse Syntax- analyse.
Program Design – 4 Introduktion til PHP. Dagens lektion Hvad er PHP?  - og lidt historie Hvordan virker PHP? Grundlæggende PHP  Variable  Typer  Løkker.
Lektion 7 Læsestof: Kopier fra Caranno
1 JavaScript Lektion 6: Repetition i JavaScript Math TIDY Litteratur: JST lektion 10.
Per P. Madsen- Proces1 Algoritmer og datastrukturer Grundprincipper og analyse af algoritmer. MM1 Lister, stakke og køer. MM2 Træer, og Hash-tabeller.
FEN KbP/seminar 1: Specifikationer/Notationen Q 1 Kontraktbaseret programmering: Seminar 1 Om specifikationer Algoritmenotationen Q.
1 Sortering. 2 Plan Elementære metoder til sortering -sortering ved indsættelse -Shellsort Sorteringsmetoder baseret på rekursion –quicksort –flettesortering.
MATLAB Programplanlægning Anders P. Ravn Institut for Datalogi Aalborg Universitet Forår 2003 >>mit_program(‘ind.txt’.`ud.txt´) myconstants.m function.
Ingeniørhøjskolen i Århus Slide 1 Newton approximation ”Oversæt” til algoritme - Step 5: Skriv kode - Step 4: Skriv pseudokode - Step 3: Specificér pre-
1 Sortering. 2 Sortering ved fletning (merge-sort) 7 2 | 9 4  | 2  2 79 | 4   72  29  94  4.
10. Datastrukturer. 2 Nordjyllands Erhvervakademi Collections library Datastrukturer i.NET kaldes normalt Collections Findes i namespace System.Collections.
Procestræ under afvikling af cp init login shell cp cp src dest.
Paradigmer i Programmering 2. Sammensatte typer Tupler og lister Programmering med rekursion Programmering med pipe-lines Programmering med polymorfe.
Paradigmer i Programmering 1. Program for idag : Funktioner og udtryk i SML : Øvelse : Frokost – 14.00: Deklarative.
Begreber og Redskaber 7. Plan for idag Rekursive underprogrammer Rekursive datastrukturer Rekursion vs iteration Rekursivt: Flette sortering.
11 - Exceptions. 2 NOEA2009Java-kursus – Exceptions Hvad er en exception? En undtagelse. Typisk en fejl der opstår runtime Afbryder det normale programflow.
Paradigmer i Programmering 1. Plan for kurset 4 x Mads R, 4 x Torben B, 2 x opgave MR: Funktionsprogrammering, SML TB: Logikprogrammering, Prolog Opgave:
Fundamentale sprogbegreber
1 Sortering. 2 Plan Elementære metoder til sortering -sortering ved indsættelse -Shellsort Sorteringsmetoder baseret på rekursion –quicksort –flettesortering.
Anvendelser I Leg og spil.
C#: Udtryk og metoder Kilde: Joe Hummel. 2 Nordjyllands Erhvervakademi – 2008 Indhold “With regards to programming statements and methods, C# offers what.
03 – Udtryk og metoder. 2 NOEA2009Java-kursus – Udtryk og metoder Udtryk i Java Java har standard udtrykene… Værditildeling Subrutiner og funktionskald.
PD – kursusgang 3 Introduktion til Java Script. Mål Viden om hvordan JavaScripts indlejres i HTML dokumenter Viden om programmering i JavaScript  Erklæring.
Intro Siden sidst: evaluering på opgaver og virtuel kursus.
Intro Siden sidst: evaluering på opgaver og virtuel kursus Kursussammensætning: forelæsning – læse – arbejde selvstændigt – newsgroup – øvelsestime – aflevering.
Algoritmer og Datastrukturer 2 Del-og-kombiner [CLRS, kapitel , , 28
Forelæsning 7.1 – repetition
Paradigmer i Programmering 3. Højere ordens funktioner Idag: Højere ordens funktioner Algebraiske datatyper Næste gang: I/O, Filer, interaktive programmer.
Quiz 3.1. Quiz 1 – Assignment dIntProg, E14 Hvad er værdierne af x og y efter udførelse af følgende program? 1.x er 6, y er 3 2.x er 8, y er 5 3.x er.
MATLAB Indledning Anders P. Ravn Institut for Datalogi Aalborg Universitet Forår 2002.
I o p o DAIMI, AU, November 1999Programkonstruktion I9E.1 Konstruktion og brug af klasser – en stak og en HP-regnemaskine push pop.
Fundamentale sprogbegreber Sætninger og udtryk Niveauer af programbeskrivelse (statisk versus dynamisk syn)
MATLAB Indledning Anders P. Ravn Institut for Datalogi Aalborg Universitet Forår 2005.
Sweep-algoritmer. DAIMIIntroducerende objektorienteret programmeringsweep.2 Datatypen Sequence Oprette Sequence() Sequence(s, l, h) Kopiere Sequence clone()
 Michael E. Caspersen, 2000Introducerende objektorienteret programmering9B.1 Fletning.
Algoritmer og Datastrukturer 2 Gerth Stølting Brodal.
MATLAB Indledning II Anders P. Ravn Institut for Datalogi Aalborg Universitet Forår 2005.
MATLAB Programplanlægning Anders P. Ravn Institut for Datalogi Aalborg Universitet Forår 2005 >>mit_program(‘ind.txt’.`ud.txt´) myconstants.m function.
Type analyse i FunCalc / CoreCalc Baggrund og kontekst Formål Designovervejelser → løsning /arkitektur Strategi for implementering og afprøvning Resultater.
Trinvis forfinelse Systematisk, gradvis udvikling af programmer.
 Jens Bennedsen 2001Multimedie programmering11.1 Lingo Basis.
Programmering med interfaces Separering af specifikation, anvendelse og implementation.
DAIMIIntroducerende objektorienteret programmeringfletning.1 Fletning.
Jesper Mosegaard Multimedie Programmering E2003 MMProg uge44 Java til Lingo Klasser, statements og lister.
Ændr 2. linje i overskriften til AU Passata Light AARHUS UNIVERSITET AU ARBITRARY PRECISION MICHAEL I. SCHWARTZBACH KRISTOFFER JUST ANDERSEN INSTITUT FOR.
Forelæsning Uge 2 – Torsdag
1587 Server - Blandet miljø Webintegrator HF1
”Avanceret” Programmering
Algoritmer og Datastrukturer 2
Reduktion AM 2009.
Studiepraktik Thomas Bøgholm Mikkel Hansen Jacob Elefsen
Programmering.
Thesis Critique Københavns Universitet er én institution – men det er langt fra en ensartet institution. De mange forskningsområder og forskellige uddannelser.
VEKTORER AM 2006.
Algoritmer og Datastrukturer 2
Algoritmer og Datastrukturer 2 Dynamisk Programmering [CLRS 15]
ROBOTTERNE KOMMER - OZOBOTTERNE.
Præsentationens transcript:

MATLAB Repetition og Udførelse af programmer Anders P. Ravn Institut for Datalogi Aalborg Universitet Forår 2005 >>mit_modul minf.m … minf(a) … mit_modul.m function r = minf(x) … r= size(x) …

MATLAB Hovedvindue

Matricen Et rektangulært talsæt: A = » A = [1 2 3; 4 5 6; 7 8 9] Dimensioner: Antal rækker x Antal søjler » size(A) ans = 3 3

Talværdier reelle tal komplekse tal » B = [1 2.1 pi; 3E1-2i j-1 6] B = i i » size(B)

Vektor Rækkevektor – 1 x n Søjlevektor – n x 1 » C = [1 2 3]; D = [1;2;3] C = D = 1 2 3

Skalar Hvad er en vektor af længde 1? En 1 x 1 matrice » a = 5 a = 5 » size(a) 1 1 » length(a) 1

Delmatricer A(2:3,1:2) A(2,2) A(1,:) A(1:2:3,1:2:3) A(pi,pi) A = » A(2:3,1:2) » A(2,2)5 » A(1,:)1 2 3 » A(1:2:3,1:2:3) » A(pi,pi) Warning: Subscript indices must be integer values. 9

MATLAB-maskinen Script » A = [9,7] ans = … » B = 25i ans = … … Matlab.exe Workspace A B Lager (memory) Procesenhed Program

Bygning af Matricer a = » A = [a ; a] » B = [A, [4 ;4]] » C = [A ; a] » D = [A, a] ??? All matrices on a row in the bracketed expression must have the same number of rows. » D = [A, a'] ??? All matrices on a row in the bracketed expression must have the same number of rows. » D = [C, a']

Transponering Transponering af A A’ Ombytter rækker og søjler » D = [ ; ] D = » D' » A'

Specielle Matricer Nulmatrix Enhedsmatrix Etmatrix Tom matrix Tilfældige tal … Se help elmat » zeros(2,3) » eye(2,3) » ones(2,3) » A = [] » size(A) 0 0 » rand(2,3)

Addition og Subtraktion A = B = A+B = ? A-B = ? A+B’ = ? ??? Error using ==> + Matrix dimensions must agree. B’ =

Multiplikation A = B = A.* B = ? A * B = ? A * B’ = ? ??? Error using ==> * Inner matrix dimensions must agree B’ =

Matrix-multiplikation A = A * B’ = A * B = ? A(1,:) * B(:,1) A(1,:) * B(:,2) A(2,:) * B(:,1) A(2,:) * B(:,2) [m x n] * [n x k] = [m x k] B’ = ??? Error using ==> * Inner matrix dimensions must agree.

Lidt gymnastik A = [1 2 3] A* A’ = ? A’* A = ? [A; A ] * A’= ? A * [ A; A; A] = ?

Matrix-Division X = A / B betyder at X * B = A Y = A \ B betyder at A * Y = B » X = A/B X = » X*B » Y = » A*Y \ “op i”

Og så er der skalering A* 5 A/3 A + 5 A

Programstrukturer Et program definerer rækkefølgen for at udføre ordrer. sekvens ordre ; ordre … valg if ( ) … end; switch … gentagelse (iteration, løkke) for …, while … kald af underprogram (funktion) f( … ) afbrydelse break, return

Funktioner function y = sinus(x,k) % Beregn sin(x).^k y = sin(x).^k

MATLAB-maskinen Script » A = [9,7] ans = … » B = 25i ans = … » sinus(A,6) … Matlab.exe Workspace A B Lager (memory) Procesenhed Program

Funktionskald Script » A = [9,7] ans = … » B = 25i ans = … » sinus(A,6) … Matlab.exe Workspace A B function y = sinus(x,k) Workspace x init A k init 6 y init ?

Funktionskald -afslutning Script » A = [9,7] ans = … » B = 25i ans = … » sinus(A,6) … Matlab.exe Workspace A B function y= sinus(x,k) Workspace x init A k init 6 y = … ans = y

Funktioner function resultat = kvadratrod(a) % Beregn kvadratrod af a ved bisektion low = 0; high = a; while (high - low) > 2*eps, mid = (high+low)/2; if mid*mid > a, high = mid; else low = mid; end end; resultat = (high+low)/2; kvadratrod(4) kvadratrod(1000) ans = » ans*ans

Sammensat returværdi function [fundet,resultat] = findindeks(e,a) % finder index for element e i vektor a, hvis det findes fundet = 0; for i=1:length(a), if a(i) == e, fundet = 1; break; end; if fundet, resultat = i; else resultat = 0; end; [b,c] = findindeks(7,a) b = 0 c = 0

Rekursion function resultat = kvadratrod(a) % Beregn kvadratrod af a ved bisektion resultat = trin(0,a+1,a); function r = trin(low,high,b) % kvadratrod b er mellem low og high if (high - low) <= 2*eps, r = (high+low)/2; return; end; mid = (high+low)/2; if mid*mid > b, r = trin(low,mid,b); else r = trin(mid,high,b); end;

Funktionskald - rekursion Script »f(8) Matlab.exe Workspace ans = ? function r = f(x) r = f(x-1) Workspace x init 8 r init ? function r = f(x) r = f(x-1) Workspace x init 7 r init ? …

Og så … PRØV DET !