next up previous contents index
Next: Databehandling Up: Basal brug af MATLAB Previous: Tabeloperationer   Contents   Index

Subsections

Yderligere matrixoperationer

Tidligere er det vist, hvorledes det er muligt at oprette vektorer. MATLAB giver mulighed for nemt at oprette visse vektorer uden at taste hvert element ind for sig. Til dette anvendes kolonsymbolet i udtrykkene.

Eksempel

Udtryk af typen:
   y = 1:7
giver vektoren
   y = 
        1  2  3  4  5  6  7
Det vil sige, at der oprettes en rækkevektor, hvis elementer løber fra 1 til 7. Her er afstanden 1 mellem hvert af elementerne.

$ \Box$

Andre intervallængder end enheden 1 kan anvendes, ligesom en negativ ændring er mulig. Mellem to kolontegn angives intervallængde og hvis denne ønskes negativ markeres dette med en minustegn.

Eksempel

En ny vektor løbene fra 3 til 1.75 med intervallængden 0.25 ønskes oprettet. Derfor skrives der:
     y = 3 : -0.25 : 1.75
og der gives svaret
     y =
         3.0000  2.7500  2.5000  2.2500  2.0000  1.7500
$ \Box$

Funktioner

Der tilbydes rigtig mange forskellige slags hjælpfunktioner til behandling af matricer. Her vil kun et udvalg blive præsenteret. Hvis A er en matrix gives der følgende funktioner. Som ved division af matricer er disse funktioner afhængige af om A er singulær eller ej. Der kan derfor forekomme fejlmeddelelser og vurderinger af matricens rank og konditionstal som kommentar til resultatet, hvor rank er et mål for hvor tæt på singulær matricen er. (Se MATLABs User's Guide for flere detaljer omkring MATLABs rank-funktion).

Eksempel

En matrix A er givet ved A = [2 -3 -1;-1 1 0;-3 0 1]. Egenværdierne bestemmes ved at skrive:
    x = eig(A)
og der gives svaret
    x = 
         4.0000
        -1.0000
         1.0000
Ligeledes er det muligt at bestemme egenvektorerne i kombination med en diagonal matrice indeholdende egenværdierne.
      [V,D] = eig(A)
Her er svaret de to matricer V og D:
      V = 
          -0.6882    0.5345    0.0000          
           0.2294    0.2673   -0.3162
           0.6882    0.8018   -0.9487    
      
      D =
           4.0000       0         0
              0     -1.0000       0
              0         0      1.0000
De egenvektorer der angives er ikke nær så ''pæne'' som de der findes ad analystisk vej. Dette skyldes at MATLAB angiver egenvektorerne normeret, således at de alle har længden 1.

$ \Box$

ADVARSEL: Brugeren må selv forholde sig til løsningen. Her gives et eksempel der tilsyneladende går godt:

Eksempel

Matricen B angives som B = [1 2 2;2 -1 2;2 -2 1], hvilket er en ikke-singulær matrix. Ved kommandoen [V, D] = eig(B) gives følgende svar:
      V = 
           0.8018   -0.7071    0.7071          
           0.5345    0.0000    0.0000
           0.2673    0.7071   -0.7071    
      
      D =
           3.0000       0         0
              0     -1.0000       0
              0         0     -1.0000
Men B er ikke diagonaliserbar, idet den geometriske multiplicitet er forskellig fra den algebraiske multiplicitet. Alligevel indikerer notationen i MATLAB at det kan lade sig gøre. Dette må brugeren selv være opmærksom på. Det er selvfølgelig et symptom at der er to ''ens'' søjler i V.

$ \Box$

Udvælgelse af dele og elementer i en matrix

Det kan være ret nyttigt at kunne udvælge dele af matricer, til speciel behandling. MATLAB giver mulighed for at specificere elementer, søjler, rækker og submatricer i matricer. Dette gælder også for vektorer, der blot behandles som matricer.

Eksempel

Der vil her blive givet eksempler, på nogle af de forskellige måder at foretage udvælgelser i en matrix på. Matricen A er givet som i forrige eksempel. Skal der referers til matricens indre bliver det nu på formen A(række ,søjle) Hvis nu element nummer 2 i søjle nummer 3 ønskes udvalgt skrives A(2,3).

Er der ønske om hele søjle 3 skrives i stedet A(:,3). Her står kolontegnet således for alle rækkerne i søjle 3, altså hele søjlen. Ønskes kun de to første elementer i søjle nummer 3 skrives A(1:2,3). Hvis der ønskes række 2 element nummer 2 og 3 skrives A(2,2:3). Ønskes $ 2 \times 2$ submatricen bestående af øverste højre hjørne af A skrives

    X = A(1:2,2:3)
der giver svaret
    X = 
          2    2
         -1    2
$ \Box$

Specielle matricer

Der gives flere funktioner til nemt at generere matricer. Vektorer kan også oprettes ved følgende funktioner. Her præsenteres et udvalg:

hvor n og m betegner naturlige tal.

De to sidste funktioner rand og randn kan også benyttes som talgenerator for enkeltvis tal ved blot at skrive rand eller randn.

Eksempel

Her oprettes en matrix X, hvis elementer er tilfældigt genererede udfra intervallet [0,1].

Der skrives

    X = rand(3,4)
og der gives f.eks. svaret
    X = 
         0.2190   0.6793   0.5194   0.0535
         0.0470   0.9347   0.8310   0.5297
         0.6789   0.3835   0.0346   0.6711
$ \Box$


next up previous contents index
Next: Databehandling Up: Basal brug af MATLAB Previous: Tabeloperationer   Contents   Index
Bo Jakobsen 2000-08-15