7
Allt du behöver veta om MATLAB: Industristandard för numeriska beräkningar och simulationer. Används som ett steg i utvecklingen (rapid prototyping) Har ett syntax… ¡ Ett teleskopord för « matrix laboratory » ¡ Utvecklades som substitut för Fortran+LINPACK i slutet av 70‐talet. ¡ I mitten av 80‐talet startades The MathWorks. ¡ MATLAB används nu av alla+hunden. ¡ MATLAB har en enda positiv egenskap – det är lätt att testa en idé snabbt. ¡ Lösningar i MATLAB är ofta mycket långsammare än motsvarande specialdesignade lösningar. ¡ Bättre idag? ¡ Det finns flera andra program som liknar MATLAB. Sage, Octave, Maple och... MATLAB Python Har enkla datastrukturer lämpade för att hålla data i matris eller list form. Användaren kan inte definiera egna. Har komplexa datastrukturer. Användaren kan definiera egna typer. Kräver att MATLAB är installerad på datorn för att köra skriven kod. Kan inte kompileras till maskinkod, pga licenser. Kräver att python‐tolk är installerad på datorn. Kan i vissa fall kompileras till maskinkod. Har de vanligaste matematiska funktioner, de mer avancerade och de som används aldrig. Har plot‐funktion. Har elementära mattematiska funktioner. Kostar. Men Ni kan ladda ner gratis från skolans hemsida…. Och piratebay. Yarr. Gratis. ¡ Öppna terminalen. ¡ Inkludera senaste matlab (en gång) >module add matlab/r2007b >module initadd matlab/r2007b ¡ Starta MATLAB >matlab &

MATLAB - KTH · hålla data i matris eller list form. Användaren kan inte definiera egna. Har komplexa datastrukturer. Användaren kan definiera egna typer. Kräver att MATLAB är

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: MATLAB - KTH · hålla data i matris eller list form. Användaren kan inte definiera egna. Har komplexa datastrukturer. Användaren kan definiera egna typer. Kräver att MATLAB är

AlltdubehövervetaomMATLAB:•Industristandardförnumeriskaberäkningarochsimulationer.•Användssomettstegiutvecklingen(rapidprototyping)•Harettsyntax…

¡ Ettteleskopordför«matrixlaboratory»¡ UtveckladessomsubstitutförFortran+LINPACKislutetav70‐talet.

¡ Imittenav80‐taletstartadesTheMathWorks.

¡ MATLABanvändsnuavalla+hunden.

¡ MATLABharenendapositivegenskap–detärlättatttestaenidésnabbt.

¡ LösningariMATLABäroftamycketlångsammareänmotsvarandespecialdesignadelösningar.

¡ Bättreidag?

¡ DetfinnsfleraandraprogramsomliknarMATLAB.Sage,Octave,Mapleoch...

MATLAB PythonHarenkladatastrukturerlämpadeföratthålladataimatrisellerlistform.Användarenkanintedefinieraegna.

Harkomplexadatastrukturer.Användarenkandefinieraegnatyper.

KräverattMATLABärinstalleradpådatornförattköraskrivenkod.Kanintekompilerastillmaskinkod,pgalicenser.

Kräverattpython‐tolkärinstalleradpådatorn.Kanivissafallkompilerastillmaskinkod.

Hardevanligastematematiskafunktioner,demeravanceradeochdesomanvändsaldrig.Harplot‐funktion.

Harelementäramattematiskafunktioner.

Kostar.MenNikanladdanergratisfrånskolanshemsida….Ochpiratebay.Yarr.

Gratis.

¡ Öppnaterminalen.¡ Inkluderasenastematlab(engång)>module add matlab/r2007b>module initadd matlab/r2007b

¡ StartaMATLAB>matlab &

Page 2: MATLAB - KTH · hålla data i matris eller list form. Användaren kan inte definiera egna. Har komplexa datastrukturer. Användaren kan definiera egna typer. Kräver att MATLAB är

¡ MankananvändaMATLABsomendyrminiräknare.

¡ Devanligasteoperatorernafinns:+ - * / .* ./ \< > ==

¡ Observeraattoperatorernaärtypspecifika.¡ Massoravinbyggdafunktioner,t.ex. what, who, clear, clc, clf why, tic, toc, quit, disp

¡ Massoravinbyggdamatte‐funktioner,som sin, cos, atan, exp, pow, mod

¡ Inbyggdakonstanter: i, pi, true, false

¡ Medkommandotformat mankanändrahurutskriftenserut.

¡ Denviktigastefunktionenavalla>>help

¡ Provaskriva>>help matlab\general>>help syntax>>help matlab\matfun

¡ doc görsammasomhelp ,menöppnarettnyttfönster.

¡ Variablerdeklarerasmedhjälpav=operatorn.

¡ PrecissomiPython.¡ SynligaiWorkspace.

Page 3: MATLAB - KTH · hålla data i matris eller list form. Användaren kan inte definiera egna. Har komplexa datastrukturer. Användaren kan definiera egna typer. Kräver att MATLAB är

¡ Förattfåettkommandoattinteskrivautnågotpåskärmen,använd;

¡ Villintesemellansteg.¡ Visaresultatetmeddisp.¡ Vissafunktionerbehöverinteavslutasmed”;”,mengördetändå.

¡ JämförCommandWindowmedPythonsInteractiveShell.

¡ Villskrivastörrekodi.m filer,påsammasättsomPython‐programi.py filer.

¡ AnvändEditor.

¡ Brakodärvälkommenteradkod.¡ Tvåsättattgörakommentarerpåideninbyggdaeditorn.

¡ % <text>¡ %% <text> Nytt!

¡ Finnstvåtyper–vanligaochanonyma.¡ Deklareraenvanligfunktiongenomattskapaen.mfil,medföljandeöverst:function [out1, out2, …] =<namn>(in1, in2, …)

¡ Deklareraenanonymfunktionsomettkommando:<namn> = @(in1, in2) <kropp>;minfunktion = @(x) sin(x);

¡ Funktionersomintetarparametraranropasävenutantommaparenteser.AnnarssomiPython.

Page 4: MATLAB - KTH · hålla data i matris eller list form. Användaren kan inte definiera egna. Har komplexa datastrukturer. Användaren kan definiera egna typer. Kräver att MATLAB är

¡ Vektorerärlistoravelement*,ochenanvändbarmatematiskstruktur.

¡ IMATLABfinnsbaralistoravenklatyper–heltal,flyttal,komplexatal.

¡ Deklareraenlistamedhakparanteser,somiPython.Separeraelementmedkommaellermellanslag.>> lista = [1, 2, 3, 4];>> listb = [4 5 6 7];

¡ range() skaparföljdlistoriPython.IMATLABärsyntaxen:

¡ >> a = 1:3; skaparlistan[1,2,3]¡ >> b = 1:0.3:5; skaparlistan[1, 1+0.3, 1+2*0.3, … , 4.9]

¡ Matematiskalistorärorienterade.Förattändrapåorienteringenanvänderman”’”>> b = b’;

¡ IPythonärallaindexnoll‐baserade,d.v.s.detförstaelementetharindex0,ochmanskriver>>>a=[1,2,3]>>>print a[0]1

¡ IMATLABärallaindex1‐baserade,somimatematiken.Förstaelementetharindex1.>>a = 1:3;>>disp( a(1) ); 1>>

¡ Fåutlängdenpålistanmedfunktionenlength>> length(a)ans =

3

¡ DeinbyggdafunktionernaiMATLABtrådarsigoftastautomatiskt.Detbetyderattfunktionenappliceraspåvarjeelementienlista.

¡ f([1,2,3])=[f(1),f(2),f(3)]förmångaf.¡ >> format compact>> lista = 0:pi/4:2*pilista =0 0.7854 1.5708 2.3562 3.14163.9270 4.7124 5.4978 6.2832>> sin( lista )ans =0 0.7071 1.0000 0.7071 0.0000-0.7071 -1.0000 -0.7071 -0.0000>>

¡ Ommanhartvålistorochvillmultiplicerademmedvarandra,vadmenarmandå?

¡ Mankanmenamatrismultiplikation(vektorskalärprodukt)–>> [1,2,3]*[3,4,5]’ans = 26

¡ Mankanocksåmenaattelementenmultiplicerasparvis.Dåharman.*operatorn.>> [1,2,3].*[3,4,5]ans = 3 8 15

¡ Enligtmatrisräkneregler+och–utförsparvissommanförväntarsig,men* / ^ ochandraoperatorerharenannanbetydelse.

Page 5: MATLAB - KTH · hålla data i matris eller list form. Användaren kan inte definiera egna. Har komplexa datastrukturer. Användaren kan definiera egna typer. Kräver att MATLAB är

¡ Förattskrivaennumeriskalgoritmbehövervioftaflödeskontroll,dvsif‐,while‐,ochforsatser.

¡ IPythonhadeviindentering.IMATLABharviend‐satsen.

¡ IfsatsenharföljandesyntaxiMATLAB.if <test>

<kropp>elseif <test>

<kropp>elseif <test>

<kropp>...else

<kropp>end

¡ Testskavaranågotsomärsantellerfalskt.¡ Kroppärnollellerflerkommandon.

¡ WhilesatsenfungerarprecissomiPython,exekverarsinkropptillsnågotharändrats.DenharföljandesyntaxiMATLAB:while<test>

<kropp>end

¡ Forsatsenbehöverenvektor(lista)förattfungera.Syntaxenär:for <var> = <list><kropp>

end¡ Variabeln<var> antarvärdenilistan<list> innutikroppen<kropp>enefteren.

¡ Forsatsenärineffektiv,MATLABförsökerskrivaomfor‐loopenpådenrättaformen.

¡ IblandlyckasMATLAB.Iblandinte.¡ Denrättaformenärattanvändainbyggdafunktionensum:>> sum( 1:1000 )

Page 6: MATLAB - KTH · hålla data i matris eller list form. Användaren kan inte definiera egna. Har komplexa datastrukturer. Användaren kan definiera egna typer. Kräver att MATLAB är

¡ Enmatrisärenmattematisktabell.Givetettekvationssystem,kanviskrivaomdenpåmatrisform.

¡ VikanskrivasammamatrisiMATLABsom>> A = [1 3 -2;3 5 6; 2 4 3];

¡ Ochresultatvektorn,som(noteraorienteringen)>> b = [5 7 8]’;

¡ För att lösa ut x, y och zskriver vi>>A\b

¡ DetfinnstvåsättattkommaåtmatriselementiMATLAB.Definieraföljandematris.

>> A = [1 3 -2; 3 5 6; 2 4 3];¡ Enparameter.A(n)returnerardetn:teelementetiA,somomAvarenlista(vektor)avkolonner(OBS!).>> A(3)ans = 2

¡ Tvåparametrar.A(r,c)returnerarelementetpåradenrochkolumnenc.>> A(2,3)ans = 6

¡ Iställetförattanvändaskalärersomparametrar,kanmanläggainhelalistor.GivetsammamatrisA.>> A = [1 3 -2; 3 5 6; 2 4 3];

¡ OmvivillfåutvartannatelementurAkanviskriva>> A( 1:2:9 )ans = 1 2 5 -2 3

¡ Påsammasättkanmanfåutsubmatriserochsublistor.Experimentera!(Labbuppgift,anywho)

Page 7: MATLAB - KTH · hålla data i matris eller list form. Användaren kan inte definiera egna. Har komplexa datastrukturer. Användaren kan definiera egna typer. Kräver att MATLAB är

¡ MATLABharenjätteanvändbarfunktionförattgöragrafer.

¡ Förmerinformationomhurmananvänderden,skriv>> help plot

[email protected]