Upload
others
View
1
Download
0
Embed Size (px)
Citation preview
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 &
¡ 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.
¡ 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.
¡ 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.
¡ 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 )
¡ 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)
¡ MATLABharenjätteanvändbarfunktionförattgöragrafer.
¡ Förmerinformationomhurmananvänderden,skriv>> help plot