MALMÖ HÖGSKOLA MA119A Centrum för teknikstudier VT 2010

MALMÖ HÖGSKOLA
Centrum för teknikstudier
MA119A
VT 2010, Yuanji Cheng
Viktigt information om labb
Vid laborationen gäller följande:
1. Labben görs i grupp av två studenter, och redovisningsuppgifterna skall vara gjorda
innan man kommer till labblektionen. Vid problem kan man fråga under övningslektionen.
2. Obligatorisk närvaro.
3. Under laborationslektion skall alla redovisningsuppgifter redovisas.
4. Vid redovisning ska två dokument redovisas: en Matlab m-l som visar kommando
för varje uppgifter, och en Word-dokument som innehåller båda kommando och
resultat.
5. Vara redo på att svara på frågor kring hur har du löst uppgifter.
Laboration 1: Linjär algebra
Syftet med denna labb är att lära vissa beräkningsverktyg i datorprogram Matlab för
olika uppgifter som uppkommer i kursdelen av linjär algebra.
Matlab är ett interaktivt program för numeriska beräkningar och visualisering. Det är
också ett programeringsspråk med instruktionsrepertoar liknande den som nns i många
andra program. Matlab nns på esta slags datorer, och till fördelarna med programmet
hör att det ser i stort sett likadant ut oberoende av på vilket sorts dator man kör det.
Börja med att logga in på ditt vanligt konto. Starta sedan Matlab genom att klicka på
Matlab-ikonen. Programmet avslutas med kommandot exit.
Till att börja med kan man tänka på Matlab som en avancerad räknedosa som beräknar
uttryck. Man skriver in vad man vill ha gjort och Matlab svarar.
> > 11.5 + 2.3
ans =
13.8
Variabler tilldelas värden med tecknet = och nns sedan kvar i minnet. Prova på att
tilldela några variabler värden.
> > a = 1;
En variabel, t ex a, kan raderas ur minnet med kommandot clear a. Läggs ett semikolon
; till efter en kommandorad, skrivs resultatet inte ut på skärmen.
Inom Matlab nns det fem aritmetiska operatorer och dessa utföras i olika prioritetsordningar
*
+
/
potens som har den högsta prioriteringen, dvs, prioritet 1.
multiplikation och division är prioritet 2
addition och subtraktion har prioritet 3.
> > 3*52/4;
ans = 18.75
Vid utskrift till skärmen visas tal normalt i så kallad kort decimalform med fyra decimaler,
med kommandot format long kan man få att utskriftet blir 14 decimaler.
> > b = 5/7
b =
0.7143
> > format long
> > b
b =
0.714285714285714
Det nns också funktion för att skriva i bråktal
> > format rat
> > sqrt(49/16)
ans =
7/4
I) För att genera en radvektor skriver man t ex
> > x = [10.99 12.95 14.90 15]
x =
10.99 12.95 14.90 15
För att skriva ut en kolonnvektor i Matlab, använder man tecken ; t ex,
> > y = [2; 1; 8]
y =
2
1
8
II) För att genera en matris i Matlab skriver man, t ex,
> > A =
A =
10
5
0
[10 9 5 2 -1 -4 0; 5 3 0 -2 -5 -10 -3; 0 0 0 3 2 0 2]
9 5 2
−1 −4 0
3 0 −2 −5 −10 −3
0 0 3
2
0
2
Addition och substraktion beräknas som vanligt, t ex
> >
> >
> >
ans
x = [10 -12
y = [-9 1 4
x +y
=
1 −11 12
> > x -y
ans =
19 −13 4
8 5];
7];
12
−2
III) Skalärprodukt x · y kan skrivas med kommandot
> > dot(x, y)
ans =
−35
√
IV) Längden av vektorer beräknas med hjälp av formeln |x| = x · x varför blir det i
Matlab
> > sqrt(dot(x, x))
ans =
18.248
V) För kryssprodukt kan man göra för vektorer i rymden, t ex
> >
> >
> >
ans
w = [0 -2 5];
z = [-1 3 7];
cross(w, z)
=
−29 −5 −2
Eftersom kryssprodukt nns endast för vektorer i rymden, då får man varning om dimension av vektorer inte är 3, t ex
> > cross(x, y)
??? Error using ==> cross at 37
A and B must have at least one dimension of length 3.
VI) Matris multiplikation kan beräknas också som vanligt, t ex
>
>
>
C
> A = [0 -2 5; 3 0 4]
> B = [-1 3; 2 7; 1 -6]
> C= A*B
=
1 −44
1 −15
> > D=B*A
D =
9
2
7
21
−4 38
−18 −2 −19
VII) Beräkning av determinant av kvadratiska matriser, t ex
> > det(C)
ans =
29
> > det(D)
ans =
0
VIII) Beräkning av invers av kvadratisk matris, t ex
> > inv(C)
ans =
−15/29 44/29
−1/29 1/29
Eftersom inversen nns bara för inverterbar matris, därför inversen av D existerar ej
och får en varning vid
> > inv(D)
Warning: Matrix is singular to working precision
IX) Linjära ekvationssytem. För att lösa följande linjärt ekvationssystem, t ex,


 x + 2y − 3z = 4


3x − 5y + z = −9
2x + 3y − 5z = 7
skriver man först detta på matris form AX = B sedan erhåller lösningen X = A−1 B .
> > A =[ 1 2 -3; 3 -5 1; 2 3 5]
> > B =[4; -9; 7]
> > X =inv(A)*B
X =
32/111
221/111
10/111
PS: Lösningen kan även fås genom kommandot > > X = A\B. Testa detta !
OBS: Lösbarhet hos ett linjärt ekvationssystem kan vara: i) lösning saknas, ii) en entydig lösning, iii) oändligt många lösningar. Dessa system av typ iii) kan inte hanteras
av Matlab, och vid fallet i) löser Matlab detta med minsta-kvadrat metod, dvs, löser
AT AX = AT B, och ger en lösning som är bästa i denna mening |AX − B|2 blir minsta
för alla vektor X. Följande ekvationssystemet saknar lösningen


 x+y
= −4
x − 2y = 2


3x + 4y = 1
Om man löser detta system i Matlab, får man
>
>
>
S
> M = [ 1 2; 1 -2 ; 3 4];
> N = [-4; 2; 1];
> S = M \N
=
1.0000
−0.8333
Anm. Vinkel beräkning arccos(x)
> > acos (1/13)
ans =
1.4938 i radian
Exempel: Vinkeln mellan vektorerna u = (1, −2, 3) och v = (4, 1, 0).
> > u = [1 -2 3]
> > v = [4 1 0]
> > a = dot(u, v)
a=
2
> > b = sqrt(dot(u, u))
b=
3.7417
> > c = sqrt(dot(v, v))
c=
4.1231
> > vinkeln = acos(a/(b*c))
vinkeln =
1.4408 i radian
X) m-l. För redovisnings ändamål kan man skappa en m-l för varje uppgift, sedan kan
man återkomma till dessa uppgifter när man vill.
XI) Redovisninguppgifter
1) Finn vinkeln mellan vektorerna s = (2, −1) och t = (3, 4).
2) Beräkna volymen till denna parallepipped som spänns upp av vektorerna
u = (1, −2, 3), v = (4, 1, 0) och w = (2, −7, 3).
3) Beräkna arean till denna triangel med hörn i punkterna P : (1, −1, 2), Q : (3, 1, 0)
och R : (−5, 4, −1).
4) Lös följande ekvationssystem

x + y + 2z + 2w




= −1
3x + 4y + 7z + 12w = −2

2x + 4y + 3z − 2w = −12



5x + y + 3z − 31w = −20
Är din lösning en riktig lösning eller en minsta-kvadrat lösning ?
5) Lös matrisekvationen 2AX + 3B = 5C, där


A=


1
1
−1
0
−1
0
2
2
0
1
−1
0
3
4
5
6



,



B=


1
2
−3
0
0
−2
1
5
Ange lösningen bådda i decimaltal och bråktal.



,



C=


3
0
−7
6
4
−2
1
−3



.
