Inleiding Matlab

advertisement
2 Getallen en online help
Okay, start M ATLAB weer op.
Inleiding Matlab
Opdracht-3: Tik in 2+3
Zoals je ziet laat M ATLAB het resultaat 5 zien.
Opdracht-4: Tik in a=2+3;
Dit definieert de variabele a en zijn waarde is 5. Dat M ATLAB het resultaat niet laat zien is omdat het commando eindigt met ;
1 Matlab
Dit is een beknopte, telegram-stijl inleiding tot een M ATLAB . Het pakket M ATLAB is bij uitstek geschikt voor numeriek werk en voor het rekenen met vectoren en matrices.
M ATLAB kenmerkt zich door korte en efficiënte code en het
is makkelijk in gebruik.
Elke paragraaf behandelt een beperkt aantal onderwerpen.
Aan de hand van vele korte opgaven (de grijze kadertjes)
leiden we de onderwerpen in.
Opdracht-5: Tik in a=2+3*sqrt(-1)
Aha, M ATLAB kent dus complexe getallen. Je had overigens ook gewoon a=2+3*i in kunnen tikken. M ATLAB
heeft heel veel functies die op getallen werken. Bijvoorbeeld sin(1) geeft wat je verwacht. Als je niet weet hoe
een functie werkt of of een functie überhaupt binnen M ATLAB gedefinieerd is kun ‘help’ roepen:
Opdracht-6: Tik in help abs
Opdracht-1: Start M ATLAB op.
Als je ‘iets’ wil met tangens (Engels: tangent) maar je weet
niet precies hoe en wat, dan doe je ‘lookfor’. Dat geeft
een overzicht van alle commando’s die iets met tangens te
maken hebben:
Als het goed is zie je nu zoiets als dit:
Opdracht-7: Tik in lookfor tangent
(overigens, dit kan een tijdje duren)
Opdracht-8: Tik in x=1/0
Opdracht-9: Tik in y=1/x
Jawel, in M ATLAB mag je delen door nul en door oneindig.
Het grote venster rechts heet de command window en dat is
waar je interactief de M ATLAB commando’s kunt intikken
(we maken ons niet druk om de kleine venstertjes links). De
twee groter-dan tekens >> in de command window geeft aan
dat M ATLAB klaar is voor invoer.
3 Vectoren
Opdracht-10: v=[1 2 3 4 5]
Dit definieert de rij-vector v∈ R1×5 . Om bijvoorbeeld het
tweede element ervan te zien doe je v(2). Het veranderen
van de waarden gaat bijvoorbeeld zo:
Opdracht-2: Selecteer met de muis de command window
en tik vervolgens exit return
Opdracht-11: v(2)=-2
Hiermee verlaat je M ATLAB. In het vervolg laten we
return achterwege en veronderstellen we dat de command window al is geselecteerd.
Opdracht-12: v(8)=8
Je ziet, je hoeft in M ATLAB vectoren niet vooraf te declareren: op het moment dat je v(8) nodig hebt gebruik je het
1
gewoon. M ATLAB geeft de door jouw nog niet gedefinieerde v(6) en v(7) de waarde nul. Overigens, het voortdurend laten groeien van de dimensie van een vector kost erg
veel tijd en geheugen en is het beste te vermijden.
x =[1 -2 3]; roots(x)
de nulpunten van de polynoom 1 · t 2 − 2 · t + 3.
Opdracht-27: Bepaal de nulpunten van de polynoom t 3 +
3t2 + 3t + 1.
Opdracht-13: nul=zeros(1,5)
Opdracht-14: een=ones(5,1)
4 Plotten
Opdracht-15: rij=1:5
Om de grafiek van y = t 2 te plotten zou je bijvoorbeeld
kunnen doen:
Opdracht-16: kolom=(1:5)’
Opdracht-17: rij=10:-2:3
t=1:6;
% da’s [1 2 3 4 5 6]
y=t.*t;
% da’s [1 4 9 16 25 36]
plot(t,y);
De laatste behoeft wellicht enige uitleg. De constructie
a:b:c betekent de rij-vector
a a + b a + 2b a + 3b · · · a + b c−a
b cb
Het commando plot zet hier de elementen van de vector
y uit tegen de elementen van t. Iets geavanceerder is dit
plotje van sin t :
Anders
gezegd, het is de doorsnijding van het rijtje
a a + b a + 2b · · · met het interval [a c]. Nog een
paar andere constructies:
t=0:0.01:20;
y=sin(t);
plot(t,y);
Opdracht-18: x=1:3
Hier gebeurt iets bijzonders: t is een vector dus y=sin(t)
geeft aan dat we de sinus van een vector kunnen bepalen!
De sinus van een vector is de vector van de sinussen, bijvoorbeeld
Opdracht-19: v=[-2 x x 10]
Opdracht-20: x([1 3])=[-11 -33]
sin([3 5]) == [sin(3) sin(5)]
Het laatste commando is een compacte manier om te zeggen
dat x(1)=-11 en x(3)=-33. Je kunt vectoren optellen
en scalair vermeningvuldigen, bijvoorbeeld
Opdracht-28: t=0:0.01:20;
Opdracht-29: y=sin(t);
Opdracht-21: x=[1 2 4]; y=x+x
Opdracht-30: plot(t,y,’b’,t+1,y/2,’ro’);
Toont twee grafieken met wat toeters en bellen.
Opdracht-22: x=[1 2 4]; y=3*x
Met help plot zie je dat plot nog veel meer toeters en
bellen kent.
M ATLAB kent daarnaast ook het zeer handige elementsgewijze product, quotiënt etcetera van vectoren en matrices.
Als deze elementsgewijze operaties worden bedoeld dan
moet de operatie worden voorafgegaan door een . bijvoorbeeld
Opdracht-31: Bepaal de plot van cos t 1 + t op [0,10]
We kunnen zonder veel moeite functies in het complexe vlak
weergeven. De complexe functie e it kun je bijvoorbeeld op
de volgende manier plotten in het complexe vlak:
[2 5].*[2 5]
geeft de rijvector [4 25]. Dergelijke operaties zijn o.a.
zinvol als er functies geplot moeten worden (zie verderop).
t=0:pi/50:2*pi;
plot(exp(i*t))
Opdracht-23: x=[1 -2 3]; y=x.*x
We hebben tot dusver steeds in één figuur-venster de nieuwe plot weergegeven. Vaak wil je meerdere plots tegelijk
kunnen weergeven, ofwel in één venster of juist in meerdere
vensters. Met het commando hold zorg je er voor dat de
volgende plot aan de huidige wordt toegevoegd (dus zonder
de huidige te overschrijven). Nog een keer het commando hold zorgt ervoor dat de volgende plot de huidige plot
weer overschrijft.
Opdracht-24: x=[1 -2 3]; y=x./x
Opdracht-25: x=[1 -2 3]; y=x.ˆx
Opdracht-26: x=[1 -2 3]; y=x+10 Ook handig
Een vector kan in M ATLAB ook een polynoom representeren. Zo geeft bijvoorbeeld het commando
2
Opdracht-32: Teken de grafieken van sin t , sin 2t en
sin 4t op het interval [− ] in één figuur-venster.
Opdracht-38: Open de editor weer en tik in deze editor
in:
function [mi,ma,gem]=stats(v);
mi=min(v);
ma=max(v);
n=length(v);
gem=sum(v)/n;
Wil je een tweede figuur-venster, dan kunnen je deze openen
met figure(2). Soortgelijk kun je een derde, vierde, etc.
figuur-venster openen.
Opdracht-33: Teken de grafieken van sin t , sin 2t en
sin 4t op het interval [− ] in drie verschillende
figuur-vensters.
Bewaar dit bestand onder de naam stats.m
De eerste regel is hier van de vorm
function uitvoer=naam(invoer);
Tenslotte nog een opmerking over
het bewaren van figuren. Onder het kopje File in het
figuur-venster vind je Export... Dit commando stelt je
in staat om je figuur te bewaren als o.a. eps-bestand of pdfbestand (beide van goede kwaliteit). Je plaatst een figuur in
de clipboard door onder Edit op Copy Figure te klikken. Dit laatste resulteert evenwel in een bitmap van de
figuur en is daarom van iets mindere kwaliteit.
Bewaren van figuren.
waarbij naam ook de naam van bestand is. Je hebt nu een
functie aan M ATLAB toegevoegd. Deze functie bepaalt het
minimum, het maximum en het gemiddelde van een vector.
Opdracht-39: w=[1 2 3 4];
Opdracht-40: [mii,maa,gemm]=stats(w)
Als het goed is zijn mii, maa en gem het minimum, het
maximum respectievelijk het gemiddelde van [1 2 3 4].
5 Scripts en functies (m-files)
Het interactieve van M ATLAB (en M APLE) mag dan handig
zijn, je wilt de commando’s en uitvoer ook kunnen bewaren.
De makkelijkste manier is door alle commando’s in een bestand (macro) te bewaren. Dergelijke bestanden moeten als
extensie .m hebben vandaar dat men spreekt over m-files.
6 Tot slot
We hebben slechts een klein tipje van M ATLAB’s sluier
opgelicht. Voor meer informatie doe demo of doc. Dit
opent een apart venster van waaruit vele demonstraties geselecteerd kunnen worden. Als je help doet dan krijg je
een compact overzicht van de verschillende toolboxen te
zien (waaronder ops). Elke toolbox kun je apart bekijken
door, bijvoorbeeld, help ops in te tikken. Dat geeft dan
weer een lijst, die je ook weer met help verder kan bekijken, zoals help punct. Als je bijvoorbeeld wilt weten
hoe je de uitvoer kan bewaren doe dan help print of
help save. Als je wilt weten hoe for-loops en whileloops werken doe dan help for en help while etcetera.
Opdracht-34: Tik in edit
Dit opent een editor.
Opdracht-35: Tik in in deze editor:
disp(’Goedendag’);
Opdracht-36: Bewaar dit bestand onder de naam dag.m
Opdracht-37: Tik in in de command window dag
Als het goed is antwoordt M ATLAB met een welgemeende
Goedendag. Als M ATLAB klaagt met
Undefined function or variable ’dag’
dan kan M ATLAB je bestand dag.m niet vinden. Dit
kun je verhelpen door bovenin de M ATLAB-window de
Current directory aan te passen. Overigens, het aardige van M ATLAB is dat je m-files niet hoeft te declareren,
te laden of te compileren: als M ATLAB het bestand dag.m
kan vinden dan kun je de commando’s in dat bestand uitvoeren door simpelweg dag in te tikken in M ATLAB’s command window.
3
Download