MATLAB introduktion - Øvelser

Hjælpemenuer

I den første del af øvelsen skal man vænne sig til MATLAB. Nyttige hjælpeemner er: "help", "demo", "general", "elfun" (elementære funktioner) "graph2D" og "graph3D" (visning af grafer).

Introduktion

Kald MATLAB frem på jeres PC under Windows.

Demo

Få et overblik over  "demo"  - især over visning af grafik - og især 2D-grafik.

Variable og funktionskald

Nu skal vi prøve at definere variable og kalde funktioner ved at indtaste ordrer:

a) Definer en variabel  med navnet x, der skal  indeholde  tallene fra 1 til 10:

» x = 0 : 10

Bemærk at tegnet '»'  er MATLABs "prompt" (stikord) . Det skal ikke indtastes, bemærk også at en ordre afsluttes med linjeskift - ellers sker der ikke noget.

b) Beregn funktionen sinus af  værdierne i x:

» sin(x)
Bemærk at vi kan få en oversigt over alle mulige elementære funktioner med ordren "help elfun" -tilsvarende kan vi få noget at vide om sin med "help sin".

c) Gem sinus-værdierne i en variabel y:

» y = sin(x)
Vis nu et plot af x mod y med kaldet "plot(x,y)"  

d) Kurven ser noget kantet ud, vi må vælge mindre trin i x-værdierne,  og beregner y-værdierne påny.
» x = 0 : 0.2 : 10

» y = sin(x);
Jeg har skrevet ":" efter den sidste ordre for at undertrykke udskriften af svaret. Prøv at skrive ordren igen uden ";".

Man kan genfinde en tidligere ordre ved at bruge piletasterne - brug dem til at vise kurven igen.

e) Vi vil nu beregne sin(x2) i en variabel z:
» z = sin(x .^2);
Plot den!

f) Hvis man vil se samme funktion i et finere interval kan man definere xfin som
» xfin = 0:0.01:10;
man kan bruge udtryk som "sin(xfin .^2)" i stedet for z i selve plot-ordren. Prøv det.
Prøv forresten også at plotte sin(x17) !

Simple opgaver

Introduktionen viser, hvordan man skriver ordrer ind og får dem udført. Nu skal I selv finde ud af  at skrive ordrene. Hvis I bliver desperate er der dog lidt at se på i Vink i indholdsfortegnelsen.

I det følgende bruger jeg sædvanlig matematisk notation. Det er en del af øvelsen at finde ud af hvordan det skrives i MATLAB.

A.
Forsøg at plotte sink(x)  for x mellem 0 og 2 pi for nogle forskellige værdier af k (1,2,3,7,17,...).
Bemærk: Man bliver nødt til at beregne sinus-værdierne for hvert $k$ med en ordre, fx

» y5 = sin(x).^5;

Kan de forskellige plots vises  samlet i et plotvindue? Find ud af hvordan det kan gøres med "help plot".
Hvad sker der, hvis vi prøver med tangens ("tan"), når vi nærmer os pi/2, pi, 3 pi/2, ... ?

Hvad sker der hvis vi viser grafer for funktioner med meget forskellige værdier i samme vindue? Prøv med tangens eller "exp" sammen med sinus,

Hvad sker der med komplekse tal, dvs tal der indeholder den imaginære enhed  i-  når de plottes? Prøv med "plot( exp(x*i))" for x mellem 0 og 2 pi . Prøv også at plotte resultatet mod  x.

B

Vi skal også se på 3D-plot. Kig igen på demo-eksempler.

Her er et lille  script at lege med:

           » y = x

» for i = 1: length(x) for j = 1: length(y) z(i,j) = sin(x(i)+y(j)); end; end

» surf(x,y,z)
Prøv med forskellige udtryk for z[i,j], fx kan man rette , så der står  "z(i,j) = x(i)+y(j);"   eller  " z(i,j) = sin(x(i)) + exp(y(j));".

Prøv også at ersatte "surf" med  "pcolor", "contour" og "mesh",

Prøv også med forskellige  varianter af  "colormap" -
 
C

Og før denne del af øvelsen er forbi skal I besøge MathWorks hjemmeside og kigge på siden med MATLAB materiale.

Og hvad med en søgning på MATLAB? - bare så ikke glemmer hvordan man får mere at vide.

Eksersits med matricer

Operatorerne forklares vha. "help ops" (elementære operatorer), matricer i  "help elmat".

De følgende opgaver øver matrixregning.

a)  Definer nogle vektorer

» a = [1 2 3]; b = [1 ; 2 ; 3]; c= [0 5]; d = [-1 ; -4];
Find dimensionerne af dem med funktionen "size". Hvilke af dem er rækkevektorer og hvilke er søjlevektorer?

b)  Udregn nogle udtryk: - læg mærke til at jeg har enkelte udtryk med fejl i - dimensioner passer ikke.
» a + b'
» a' + b
» a + b
» c - d'

» c' - d

» a(1:2)+c
» a([1 3]) + c
» b+d

» b + [0 ; d]
» b + [0 ; d] - a'

» a .* a

» a' .* a
» a*a'
» a'*a
» a*b
» a*b*c

» a*b*c*d
» d*c*b*a
» d'*c'*b'*a'

» (a*3 + b'/3) - c*d/2

c) Nu vil vi kigge på matricer, Definer nogle:
» A = [0 1; 1 0]; B = [a ; a]; C = [A d]; D = [1:10]' * [1:10]; E = eye(2); F = [1 2; 1 3];
Find deres dimensioner og værdi. Man får værdien ved at indtaste et udtryk, nemlig navnet på den variabel man vil se.

d) Vi skal se nogle udtryk:
» A*B
» B*A
» B'*A
» A*A
» B*C
» B*C'


» D(a,a)
» D(a+7,a+7)
» D(E+3)

» E/A
» E/A*A
» X = E/F

» X*F
» F*X
» inv(F)
» X = A/F
» Y = F\A

» X*F == A

» F*X == A
» Y*F == A
» F*Y == A

» pcolor(D)
» surf(D)

A.P. Ravn
2005-02-02