srp - matrixregning - danish

17
Udarbejdet af: A - J Klasse: 2011 Fag: Matematik A & Informationsteknologi B Dato: 2011-2012 MATRIXREGNING STUDIERETNINGSPROJEKT 2011-12

Upload: jalilmughal

Post on 30-Oct-2014

173 views

Category:

Documents


12 download

TRANSCRIPT

Page 1: SRP - Matrixregning - Danish

[År]

H

T

X

C

P

H

W

e

s

t

[

V

æ

l

Udarbejdet af: A - J

Klasse: 2011

Fag: Matematik A &

Informationsteknologi B

Dato: 2011-2012

MATRIXREGNING STUDIERETNINGSPROJEKT

2011-12

Page 2: SRP - Matrixregning - Danish

1

Abstract

This study is about matrix calculation; especially the calculation rules of matrices. It also includes

the use of matrix in mathematics and information technology by giving examples of every rules and

a developed Java–program which has the ability to convert 3 equations with 3 unknown variables

into total matrix form.

The content has been written with the use of books and internet websites, which were reliable and

trustworthy. However, some of the content has been made based on own programming skills.

Matrix calculation is one of the most interesting topics for engineers such as software developers

etc. mostly because it can be used to encrypt and decrypt codes. Matrices can also be used to

display networks allowing mathematical calculations to be worked out more easily with relation to

problems such as traffic flow and plumbing.

Page 3: SRP - Matrixregning - Danish

2

Indholdsfortegnelse_Toc314650710

Indledning ............................................................................................................................................ 3

Matricer ................................................................................................................................................ 4

Regneregler for matricer .................................................................................................................. 4

Lighed ........................................................................................................................................... 4

Multiplikation ............................................................................................................................... 5

Addition og Subtraktion ............................................................................................................... 6

Determinantmetoden (Cramers sætning).......................................................................................... 6

Transponeret matrix ......................................................................................................................... 7

Lineære ligningssystemer ................................................................................................................. 7

Enhedsmatrix ................................................................................................................................ 8

Invers matrix ................................................................................................................................. 8

Rækkeoperationer ......................................................................................................................... 9

Echelon – matrix ........................................................................................................................... 9

Gauss’ elimination ........................................................................................................................ 9

Eksempel på 3 ligninger med 3 ubekendte ..................................................................................... 10

Matricer i informationsteknologi ....................................................................................................... 11

Analyse af matrixregning i IT ............................................................................................................ 12

Konklusion ......................................................................................................................................... 13

Litteraturliste ...................................................................................................................................... 14

Bilag ................................................................................................................................................... 16

Totalmatrix ..................................................................................................................................... 16

Page 4: SRP - Matrixregning - Danish

3

Indledning

Indledningsvis vil jeg i denne opgave gøre rede for matrixregning. Matrixregning er et interessant-

og voksende emne, indenfor matematik samt informationsteknologi og generelt indenfor

ingeniøruddannelsen. Matrixregning er også helt nødvendig for dagens teknologiske løsninger

indenfor lineære ligningssystemer.

Eksempelvis ved problemer, hvor man opererer med et større antal sammenhørende lineære

ligninger (førstegradsligninger), kan man med fordel anvende matrixregning.

Det kunne f.eks. være en matrix A:

I denne opgave vil jeg redegøre for matricer i lineære ligningssystemer. Jeg vil også programmere

et Java–program, som kan omskrive tre ligninger med tre ubekendte til totalmatrix form. Til sidst

vil jeg analysere et informationsteknologisk produkt, der har anvendt matrixregning.

Page 5: SRP - Matrixregning - Danish

4

Matricer

Begrebet matrix spiller en stor rolle i den lineære algebra, specielt i teorien for løsning af lineære

ligningssystemer. En matrix er en tabel af tal eller bogstavsymboler. Matrix kan være en meget

nyttig måde at præsentere sit data op i en tabel. En matrix kan have en eller flere rækker og søjler

med tal opstillet i en tabel. De enkelte symboler i matricen kaldes for matricens elementer.

Der findes forskellige type matricer, for eksempel:

En matrix A med tre rækker og tre søjler er en tre ”gange” 3 (3 x 3) matrix.

Eksempel: Matricen A=

Matricer kan også skrives som en matrix, hvor m er rækkenummer og n er søjlenummer. Det

vil sige, at matricen A kan også skrives som .

En sådan matrix, der har lige mange rækker og søjler kaldes for en kvadratisk matrice.

En matrix B med tre rækker og én søjle er en (3 x 1) matrix.

Eksempel: Matricen B=

En sådan matrix, der har et rektangulærform kaldes for en rektangulær matrice. Matricer som

B ( ), kan også kaldes for søjlematricer.

Regneregler for matricer

Regneregler for matricer er følgende:

1. Lighed

2. Multiplikation

Multiplikation af en matrix med tal (skalarmultiplikation)

Multiplikation af matricer

3. Addition og Subtraktion

Lighed

Hvis der er to ens m x n matricer og tilsvarende elementer i de to matricer er ens, så er A = B. De to

matricer kaldes for hinandens lighedsmatricer.

1.søjle

2.søjle 3.søjle

1.række 2.række

3.række

A m x n

B 3x1

A 3 x 3

Page 6: SRP - Matrixregning - Danish

5

Eksempel: Matricen A=

og matricen B=

er ens.

Multiplikation

Multiplikation af en matrix med tal (skalarmultiplikation)

For et tilfældig reelt tal k og en tilfældig matrix A, defineres der ”k . A” som en ny matrix, som er

fremkommet ved at multiplicere A’s elementer med k.

Eksempel: ,

Dvs. at ”2” skal multipliceres med matricens elementer:

Så får vi:

En sådan matrix, hvor du multiplicerer k med en matrix, kaldes for skalarmultiplikation.

Multiplikation af matricer

Hvis vi har to matricer A og B, og antallet af søjler i A er lig med antallet af rækker i B, så betyder

det at matricerne kan godt multipliceres med hinanden.

Eksempelvis:

Matricen A har to rækker og tre søjler, hvor matricen B har tre rækker og tre søjler. Dvs. at antallet

af søjler i A er lig med antallet af rækker i B.

Når man skal multiplicere to matricer sammen, skal første række i matricen A, multipliceres med

første søjle i matricen B og så skal første række multipliceres med anden søjle osv. Efter hver

multiplikation skal produkterne lægges sammen. Vi prøver at multiplicere A med B (Multiplikation af

matricerne kan også ses ved farverne):

Dvs.

Page 7: SRP - Matrixregning - Danish

6

Addition og Subtraktion

Addition (eller subtraktion) af to matricer sker ved at tilføje (eller trække) elementerne i tilsvarende

stillinger i matricer. Derfor skal de to matricer være af samme størrelse. Det produkt man får ud af

addition eller subtraktion af de to matricer, bliver en anden matrix af samme størrelse.

Eksempel på Addition af to matricer:

Eksempel på subtraktion af matrice A og B:

Determinantmetoden (Cramers sætning) Determinanten af en matrix er en værdi beregnet ud fra indgangene i matricen. Determinant

metoden har forskellige anvendelser inden for ingeniørarbejde, herunder invers (reciprokke)

matricer og løse systemer af samtidige ligninger.

Determinanten for en 2 x 2 matrix A, er defineret som:

Determinanten af matricen , findes ved at multiplicere og så trække fra:

Det vil sige, at determinanten af matricen A er lig med 13.

Page 8: SRP - Matrixregning - Danish

7

Transponeret matrix

Den transponerede matrix er en ny matrix, hvor rækkerne af den oprindelige matrix bliver til

søjlerne i den ny matrix. Vi bruger hævet T til den nye transponerede matrix.

Eksempel: Matrix

Og dens transponerede matrix bliver:

Hvis vi betragter et par af de elementer, kan vi se at værdien i position (3,1) er nu flyttet til position

(3,1), og at værdien i position (4,3) er nu flyttet til position (3,4). En sådan transponering af en

matrix kaldes for den transponerede matrix.

Lineære ligningssystemer

Lineære ligningssystemer kan basalt betegnes som tre ligninger med tre ubekendte, eller rettet sagt

hvor der er lige mange antal ligninger og ubekendte. Nedenunder fremgår et eksempel på et

ligningssystem:

Ligningssystemet kan nu opskrives således:

For nemheds skyld implementeres de alle i en tabel (A . X = B)

Dette ligningssystem kaldes for koefficientmatrix

samt

Page 9: SRP - Matrixregning - Danish

8

Løsning af en sådan ligning, kræver en bekendtgørelse af den inverse matrix (reciprok) A-1

Hvor:

Enhedsmatrix

Når der er tale om en enhedsmatrix, så skal der forstås at der er tale om en kvadratisk n x n matrix,

hvor alle elementer i diagonalen er 1 og alle de andre elementer udenfor diagonalen er 0.

Enhedsmatrix skrives som E eller En.

Eksempelvis er

en 3 x 3 enhedsmatrix.

Invers matrix

Hvis determinanten for en matrix A er forskellige fra nul, findes der en matrix A-1

, som opfylder:

Matrix A-1

kaldes A’s inverse matrix.

For at finde den inverse matrix til en (2x2)-matrix A, hvis determinanten ikke er nul.:

. Så er den inverse matrix A-1

For at vise, at dette er sandt, udregnes

Det vil sige, at A-1

er den inverse matrix til matricen A, som er sandt.

Page 10: SRP - Matrixregning - Danish

9

Rækkeoperationer

Et lineært ligningssystems løsningsmængde ændrer sig ikke, hvis:

a) To ligninger ombyttes – svarende til rækkeombytning i totalmatricen T.

b) En ligning multipliceres med en konstant - svarende til en række i T multipliceres

med

c) En ligning - svarende til at den q’te række i T multipliceres med k og adderes til

den p’te række . Dette kaldes en rækkeoperation i T og skrives kort .

To matricer A og B er rækkeækvivalente (Skrives ), hvis de overføres i hinanden ved en

eller flere af de i punkterne a), b) og c) nævnte ændringer.

Ved brug af rækkeoperationer kan man omforme totalmatricen til en matrix med lutter 0’er

under diagonalen. Det giver et ligningssystem, der er forholdsvis simpelt at løse ved ”baglæns

regninger”.

Eksempel til rækkeoperationen kan ses under afsnit ”Eksempel tre ligninger med tre ubekendte”.

Echelon – matrix

Echelon – matrix betyder trinvis opstilling med skrå front. En sådan matrix er karakteriseret ved:

1) at rækker, som består af lutter 0’er er placeret nederst i matricen, og for de øvrige rækker

gælder

2) at i en række er det første fra 0 forskellige tal i rækken et 1-tal. Tallet kaldes for rækkens

”ledende” 1–tal,

3) at for to på hinanden følgende rækker vil det ledende 1-tal i den nederste af de to rækker stå

længere til højre end det ledende 1-tal i den øverste af de to rækker.

Andre eksempler på echelon – matricer er:

Bemærk, at ethvert ledende 1-tal har lutter 0’er under sig.

Gauss’ elimination

Det førstetrin i Gauss elimination er at eliminere en variabel i hver ligning, som indeholder den

samme variabel. Denne eliminationsmetode kaldes for Gauss’ elimination

Page 11: SRP - Matrixregning - Danish

10

Eksempel på ”Gauss’ elimination” kan ses under afsnit ”Eksempel 3 ligninger med 3 ubekendte”.

Eksempel på 3 ligninger med 3 ubekendte

Som et eksempel skal jeg løse nedenstående ligningssystem ved brug af matrixregning (x, y og z er

ukendte reelle tal):

I slutning af opgaven, skal jeg kontrollere min løsning.

For at løse opgaven bruger jeg ”Gauss Elimination”. Da der er lige mange ligninger og ubekendte,

beregner jeg dens inverse matrix. Jeg skriver ligningerne til totalmatrixform.

Jeg reducerer nu totalmatrix til Echelon – form:

Vi multiplicere 2.række (r2) med -2, og lægger den til 1.ligning (r1), så kan man eliminere x (x2),

dvs.:

Nu kan jeg isolere z (z2) i anden ligning (r2).

For at isloere x (x3) i tredje række (r3), indsætter jeg z-værdien i tredje ligning (r3):

For at finde y (y1), indsætter vi x- og z-værdierne ind i første ligning (r1):

(1. ligning)

(2. ligning)

(3. ligning)

Page 12: SRP - Matrixregning - Danish

11

Det vil sige, at de tre ubekendte reelle tal (x, y og z) er:

For at kontrollere min løsning, kan jeg indsætte x-, y- og z-værdierne i de tre ligninger med tre

ubekendte og de skal give henholdsvis 11, 1 og 0:

Dvs. at de tre ukendte reelle tal x, y og z er beregnet rigtige.

Matricer i informationsteknologi

Der er mange anvendelsesmuligheder for matricer i hverdagen. Et eksempel på, hvordan matricer

kan anvendes, er kryptering. Når en programmør krypterer eller koder en besked, kan han bruge

matricer og dens inverse matrix. Handel på nettet ville heler ikke være sikkert nok med

betalingskort, da det også virker under samme princip. Matricer bruges også til at tegne grafer og

statistikker. Matricer bruges også til at beregne bruttonationalproduktet (BNP) i økonomi, og

dermed hjælpe i beregning af at producere varer mere effektivt. Matricer er også blevet undertiden

en meget nyttige måde til computer animation (3D-animation). De kan også bruges som etiketter for

eleverne at holde styr på. For eksempel til at udfylde skemaet, til at lave meningsmålinger, til

Page 13: SRP - Matrixregning - Danish

12

afrunding af tid til hele tal, fx videnskabsmænd kan bruge matricer til at registrere data fra deres

eksperimenter osv.

Jeg har produceret et matrix–beregningsprogram. Det programmet kan, er at omforme de indtastede

elementværdierne til totalmatrixform. Programmet kan også vise, hvor mange rækker og kolonner

matricen indeholder.

Eksempel:

public static void outputArray(int[][] array) {

for(int i = 0; i <= 1; i++) {

System.out.print("[");

for(int j = 0; j <= 2; j++) {

System.out.print(" " + array[i][j]);

}

System.out.println(" ]");

}

System.out.println();

}

(Java–koden til beregningsprogrammet kan ses under bilaget på side 16)

Analyse af matrixregning i IT

Jeg har valgt at analysere et spil, der hedder ”Doom 3”. Her er del af koderne til den

fysiskbevægelse af selve spilleren, fx at hovedpersonen skal samle et våben op eller løbe osv.

void idPhysics_RigidBody::ReadFromSnapshot( const idBitMsgDelta &msg ) {

idCQuat quat, localQuat;

current.atRest = msg.ReadLong();

current.i.position[0] = msg.ReadFloat();

current.i.position[1] = msg.ReadFloat();

current.i.position[2] = msg.ReadFloat();

quat.x = msg.ReadFloat();

Figur 1: Dette er et billede af den totalmatrixformet matrix, hvor der bliver både vist antal rækker og antal kolonner.

Page 14: SRP - Matrixregning - Danish

13

quat.y = msg.ReadFloat();

quat.z = msg.ReadFloat();

current.i.linearMomentum[0] = msg.ReadFloat(

RB_MOMENTUM_EXPONENT_BITS, RB_MOMENTUM_MANTISSA_BITS );

current.i.linearMomentum[1] = msg.ReadFloat(

RB_MOMENTUM_EXPONENT_BITS, RB_MOMENTUM_MANTISSA_BITS );

current.i.linearMomentum[2] = msg.ReadFloat(

RB_MOMENTUM_EXPONENT_BITS, RB_MOMENTUM_MANTISSA_BITS );

current.i.angularMomentum[0] = msg.ReadFloat(

RB_MOMENTUM_EXPONENT_BITS, RB_MOMENTUM_MANTISSA_BITS );

current.i.angularMomentum[1] = msg.ReadFloat(

RB_MOMENTUM_EXPONENT_BITS, RB_MOMENTUM_MANTISSA_BITS );

current.i.angularMomentum[2] = msg.ReadFloat(

RB_MOMENTUM_EXPONENT_BITS, RB_MOMENTUM_MANTISSA_BITS );

current.localOrigin[0] = msg.ReadDeltaFloat(

current.i.position[0] );

current.localOrigin[1] = msg.ReadDeltaFloat(

current.i.position[1] );

current.localOrigin[2] = msg.ReadDeltaFloat(

current.i.position[2] );

localQuat.x = msg.ReadDeltaFloat( quat.x );

localQuat.y = msg.ReadDeltaFloat( quat.y );

localQuat.z = msg.ReadDeltaFloat( quat.z );

current.pushVelocity[0] = msg.ReadDeltaFloat( 0.0f,

}

I fysikkens verden, er et ”RigidBody” en idealisering af en solidekrop endelig størrelse.

Det betyder at afstanden forbliver mellem to givne punkter af en stiv krop konstant i tiden. Det der

sker i koden er at der bliver indhentet tre konstant talværdier udefra nogle punkter (const)

idBitMsgDelta, som fx:

localQuat.x = msg.ReadDeltaFloat( quat.x );

localQuat.y = msg.ReadDeltaFloat( quat.y );

localQuat.z = msg.ReadDeltaFloat( quat.z );

Til sidst bliver der dannet en kropbevægelse til 2 gange 3 matricer.

current.i.orientation = quat.ToMat3();

current.localAxis = localQuat.ToMat3();

Konklusion

Hermed kan jeg konkludere at jeg har redegjort for matrixregning, hvor jeg udførligt har vist med

eksempler. Jeg kan også konkludere, at det er meget nemmere, at bruge matricer til at beregne tre

ligninger med tre ubekendte. Jeg har også fundet ud af at matricer bl.a. kan bruges til at samle data.

Matrixregning kan bruges til bl.a. programmering, så som omforme ligninger til totalmatrix form

vha. mit Java–program.

Page 15: SRP - Matrixregning - Danish

14

Litteraturliste

Bøger:

Forfattere: M. Etter, Delores og A. Ingber, Jeanine

Titel: Engineering Problem Solving with C++

Forlag: Pearson International Inc.

Udgave: 2. Udgave

Årstal: 2008

Sidenumre: 316 – 335

Bøger:

Forfattere: Hansen, Frank og Nørgaard Olesen, Mogens

Titel: Lineær Algebra

Forlag: Akademisk Forlag København

Udgave: 1. udgave

Årstal: 2007

Sidenumre: 43 – 56, 59 – 64, 185 – 188.

Bøger:

Forfattere: Hellesen, Bjarne og Oddershede Larsen, Mogens

Titel: Matematik for ingeniører

Forlag: Danmarks Tekniske Universitet

Udgave: 1. udgave

Årstal: 2008

Sidenumre: 170 – 191

Page 16: SRP - Matrixregning - Danish

15

Internet Websites

Navn Links Udgivet

Khan

Academy

http://www.khanacademy.org/video/introduction-to-

matrices?playlist=Linear%20Algebra 07/06/2008

Khan

Academy

http://www.khanacademy.org/video/matrix-multiplication--part-

1?playlist=Linear%20Algebra 07/06/2008

Khan

Academy

http://www.khanacademy.org/video/matrix-multiplication--part-

2?playlist=Linear%20Algebra 07/06/2008

Khan

Academy

http://www.khanacademy.org/video/inverse-matrix--part-

1?playlist=Linear%20Algebra 08/06/2008

Khan

Academy

http://www.khanacademy.org/video/inverting-matrices--part-

2?playlist=Linear%20Algebra 08/06/2008

Khan

Academy

http://www.khanacademy.org/video/inverting-matrices--part-

3?playlist=Linear%20Algebra 08/06/2008

Khan

Academy

http://www.khanacademy.org/video/matrices-to-solve-a-system-of-

equations?playlist=Linear%20Algebra 14/06/2008

Khan

Academy

http://www.khanacademy.org/video/matrices-to-solve-a-vector-

combination-problem?playlist=Linear%20Algebra 14/06/2008

Khan

Academy

http://www.khanacademy.org/video/singular-

matrices?playlist=Linear%20Algebra 15/06/2008

Khan

Academy

http://www.khanacademy.org/video/3-variable-linear-equations--part-

1?playlist=Linear%20Algebra 07/02/2008

Khan

Academy

http://www.khanacademy.org/video/solving-3-equations-with-3-

unknowns?playlist=Linear%20Algebra 11/04/2009

Page 17: SRP - Matrixregning - Danish

16

Bilag

Totalmatrix

public class TotalMatrix {

/**

* @param args

*/

public static void main(String[] args) {

int array[][]= {{1,2,5},{9,4,6}};

System.out.println("Antal Rækker= " +

array.length);

System.out.println("Antal Kolonner = " +

array[1].length);

outputArray(array);

}

public static void outputArray(int[][] array)

{

for(int i = 0; i <= 1; i++) {

System.out.print("[");

for(int j = 0; j <= 2; j++) {

System.out.print(" " + array[i][j]);

}

System.out.println(" ]");

}

System.out.println();

}

}