MAT1120 Obligatorisk oppgave 1 Nicolai Kristen Solheim MAT1120: Obligatorisk oppgave 1 Oppgave 1 (i) I denne oppgaven skal vi se på overgangsmatrisen 28 matrise gitt , som er en 28 er regulær og deretter angi en minste slik at i filen Oslo.m Vi skal først sjekke om bare har positive elementer. Vi kan gjøre dette ved å legge til følgende kode i filen Oslo.m: P=B'; % Se om matrisen er regulær k=4; P2 = P^k; if (min(min(P2)) < 0 || min(min(P2)) == 0) fprintf('Matrisen er ikke regulær for k = %d\n', k) else fprintf('Matrisen er regulær for k = %d\n', k) end % eller n = size(P); val = 0; for i = 1:n(1) for j = 1:n(2) if (min(min(P2)) < 0 || min(min(P2)) == 0) val = 1; else if val == 1; val = 1; else val = 0; end end end end if val == 1 fprintf('Matrisen er ikke regulær for k = %d\n', k) else fprintf('Matrisen er regulær for k = %d\n', k) end % finne minste k teller=100; while (teller > 0 && min(min(P2^teller)) ~= 0) pt = P^teller; if min(min(pt)) == 0 k = k; else k = teller; end teller = teller - 1; end fprintf('k = %d\n',k); Ovenfor er det brukt to måter for å sjekke om er regulær. Dersom vi nå kjører filen, vil vi få at ikke er regulær for 4, men regulær for minste som vi også finner. >> run('C:\Users\Nicolai Solheim\Desktop\Obliger\MAT1120\oblig 1\Oslo.m') Matrisen er ikke regulær for k = 4 Matrisen er ikke regulær for k = 4 k = 6 Page 1 of 17 MAT1120 Obligatorisk oppgave 1 Som vist fra kjørekoden, er regulær for finnes elementer 0 for denne -verdien. (ii) 6, og Nicolai Kristen Solheim er ikke regulær for 4 da det Vi betrakter så Markov-kjeden der ,…, , 1. Siden og er regulær vet vi enhver Markov-kjede assosiert med konvergerer mot en entydig bestemt likevektsvektor , som vi kan finne ved å bruke Matlab. Dette gjør vi enkelt ved å legge til følgende kode i programmet oslo.m % finne x* x = ones(28,1)*(1.0/28.0); xp = ones(28,1); while x ~= xp x2=P*x; xp = x; x = x2; end x sum(x) , og vil returnere Fra koden over ser vi at “while”-løkken vil fortsette så lenge når det ikke lenger er noen endring. Vi sjekker at dette er riktig ved å regne ut summen av som skal bli 1. 0 da summen av sannsynligheter 1. 0. Kjører vi dette programmet vil vi få [...] x = 0.0500 0.0464 0.0357 0.0536 0.0321 0.0321 0.0250 0.0393 0.0214 0.0143 0.0286 0.0357 0.0214 0.0321 0.0500 0.0571 0.0464 0.0536 0.0286 0.0250 0.0429 0.0357 0.0357 0.0321 0.0393 0.0250 0.0321 0.0286 ans = 1 Page 2 of 17 MAT1120 Obligatorisk oppgave 1 Nicolai Kristen Solheim Videre kan vi anta nettverket endres pga. veiarbeid slik at kant nr. 28 forsvinner. Vi oppdaterer filen vår ut fra dette ved å fjerne rad og kolonne 28 i , og sette inn 0.7, , og lar de andre sannsynlighetene i , 0.8 være uendret. Dette gjøres med et par linjer kode. % Endring i veinettet P(:,28) = []; P(28,:) = []; P(25,22) = 0.7; P(21,24) = 0.8; og finne hvilke tre veistrekninger Deretter kan vi finne den nye likevektsvektoren som får størst økning i trafikk som en følge av endringen . Vi kan også finne hva denne økningen tilsvarer i antall biler dersom den totale trafikkmengden i nettverket er 50000 biler. Vi legger til følgende kode i programmet: % finne ny x* x3 = ones(27,1)*(1.0/27.0); xp = ones(27,1); while x3 ~= xp x4 = P*x3; xp = x3; x3 = x4; end x2 = x3 sum(x2) % Finne endringen delta = x2-x(1:27,:) % Finne de 3 største endringene a = 0; b = 0; di = 0; ei = 0; n=size(delta); for i=1:n(1) if delta(i,1) > a c = b; ci = di; b = a; di = ei; a = delta(i,1); ei = i; end end val = [a;b;c]; % Vi regner ut for 50000 biler val=50000*val; fprintf('For 50000 biler, vil vi få følgende økning i trafikk på de \n3 mest trafikerte veistrekkene: \nrad %d = %4.0f\nrad %d = %4.0f\nrad %d = %4.0f\n', ei,val(1,1),di,val(2,1),ci,val(3,1)) Dersom vi kjører dette programmet vil vi få følgene verdier i tillegg til det vi har fått i punktene tidligere. Vi har igjen regnet ut summen av for å se at sum 1. x2 = 0.0519 0.0481 0.0370 0.0556 0.0259 0.0333 0.0259 0.0407 0.0222 0.0148 Page 3 of 17 MAT1120 Obligatorisk oppgave 1 Nicolai Kristen Solheim 0.0296 0.0370 0.0222 0.0333 0.0519 0.0593 0.0407 0.0556 0.0296 0.0222 0.0556 0.0370 0.0370 0.0333 0.0481 0.0259 0.0259 ans = 1 delta = 0.0019 0.0017 0.0013 0.0020 -0.0062 0.0012 0.0009 0.0015 0.0008 0.0005 0.0011 0.0013 0.0008 0.0012 0.0019 0.0021 -0.0057 0.0020 0.0011 -0.0028 0.0127 0.0013 0.0013 0.0012 0.0089 0.0009 -0.0062 For 50000 biler, vil vi få følgende økning i trafikk på de 3 mest trafikerte veistrekkene: rad 21 = 635 rad 16 = 106 rad 4 = 99 Vi ser fra programmet at endringen i disse tre veistrekkene er 635, 106 og 99 biler. Page 4 of 17 MAT1120 Obligatorisk oppgave 1 Nicolai Kristen Solheim Oppgave 2 Det er i alt 6 permutasjonsmatriser for permutasjonsmatriser av orden 3. 3, da vi vet at 3! 6. Følgende matriser er en , , 1 0 0 0 0 1 0 0 1 , , 1 0 0 0 0 1 0 1 0 , , 0 1 0 1 0 0 0 0 1 , , 0 0 1 1 0 0 0 1 0 , , 0 0 1 0 1 0 1 0 0 , , 0 1 0 0 0 1 1 0 0 Page 5 of 17 MAT1120 Obligatorisk oppgave 1 Nicolai Kristen Solheim Oppgave 3 Dersom er en permutasjonsmatrise av orden , så fremkommer ved å bytte om , vil vi ved å rekkefølgen på radene i identitetsmatrisen . Da vi vet at bytte om rekkefølgen på radene i permutere .Vi kan forklare dette ved at en slik matrise er karakterisert ved at det i hver rad og hver kolonne er nøyaktig en 1-er og ellers bare 0-ere. Dersom vi bytter om radene, vil vi få en endring i radene eller kolonnen vi multipliserer permusjonsmatrisen med. Hadde det vært mer enn én 1-er i hver rad eller kolonne, ville vi fått andre verdier. E.g. · 1 ·1 ·0 · 0. Altså vil vi få en permutasjonsmatrise ved å bytte om rekkefølgen på radene i da dette kun permuterer verdiene for en vilkårlig matrise. Page 6 of 17 MAT1120 Obligatorisk oppgave 1 Nicolai Kristen Solheim Oppgave 4 (i) Vi har antatt at er en matrise, og og er permutasjonsmatriser av henholdsvis orden og slik at og . Vi kan fra dette se at kolonnen i består av de samme kolonnene i , men med permutert rekkefølge. Mens radene i består av de samme radene som , men her også med ombyttet rekkefølge. Vi kan begrunne dette med at vi for ganger med en permutasjonsmatrise, mens vi for ganger en permutasjonsmatrise med . Dette vil gi følgende forskjell for en 3 3 matrise 1 · 4 7 · · 1 4 7 2 5 8 2 5 8 3 6 9 3 6 · 9 1 1 1 1 4 7 4 4 4 2 5 8 7 7 7 3 6 9 2 2 2 1 4 7 5 5 5 2 5 8 8 8 8 3 6 9 3 3 3 1 4 7 6 6 6 2 5 8 9 9 9 3 6 9 te rad i er tilstede i hvert ledd i den Fra modellen over, kan vi for · se at hver te raden. Med andre ord er den te raden i bare representert i den te raden i den endelige matrisen. Vi ser fra dette at kolonnene i vil få en annen rekkefølge avhengig av verdiene i permutasjonsmatrisen . te elementet i en rad i er Likeledes har vi for · , men her ser vi at den representert i den te kolonnen i matrisen. Altså vil dette føre til en permutert rekkefølge av radene. Vi kan illustrere dette med et eksempel hvor 0 · 0 1 · · 0 0 1 Fra dette kan vi se at (ii) 1 0 0 3 slik at 1 0 0 1 0 0 0 1 · 0 gir en endring i kolonnene, mens Vi kan videre vise at rank rank rank rank og rank gir en endring i radene. rank . Dette kan vi begrunne da vi vet at linerært uavhengige kolonner linerært uavhengige rader linerært uavhengige kolonner Page 7 of 17 linerært uavhengige rader MAT1120 Obligatorisk oppgave 1 Nicolai Kristen Solheim og da får vi at linerært uavhengige kolonner linerært uavhengige rader slik at rank rank rank . Dette kan vi videre begrunne med at rangen tilsvarer dimensjonen til kolonnerommet som vil være like for , og da det kun er blitt utført et ombytte i rader og kolonner. Det er ingen endring i verdiene. (iii) , ser vi at vi kan skrive dette som . Da har Dersom vi nå setter samme rank som , vil også få samme rank som . Vi har vist dette ved at rangen i en matrise ikke vil endres når den multipliseres med en permutasjonsmatrise . Altså vil rank rank rank . rank Page 8 of 17 MAT1120 Obligatorisk oppgave 1 Nicolai Kristen Solheim Oppgave 5 (i) Vi kan begrunne at ,…, , ,…, informasjonen som er gitt. Vi har at er en basis for Col ved å se på den hvor ,…, Vi kan videre anta at for Col . Så hvis ,…, ,…, er en basis for Col , lar vi 0, … ,0, , 0, … ,0 , hvor vi lar 0 0 0 0 være definert ,…, Fra dette ser vi at er en basis være definert ved ,…, Tilsvarende har vi hvis ved ,…, og at som vi kan uttrykke som 0 0 0 0 Dette kan skrives ,…, , 0, … ,0 , og 0, … ,0, , … , , . Videre må vi se på lineærkombinasjonen, for å kunne begrunne basisen. Ser vi nå på og kan vi se hvordan dette utspenner seg. hvor Col . (ii) og er basisvektorene og er uavhengig av hverandre. Altså er og basis for gitt ved , . Dette viser at ,…, , ,…, er en basis for Col Vi kan videre bruke (i) til å begrunne at rank ,…, i forrige oppgave, er at vi har en basis produkt av kun er og rank rank . og , ,…, rank for Col rank . Det vi har sett som er et som er uavhengig av hverandre. Ser vi nærmere på dette vil vi se at det som vil ha en betydning for rangen, da rank 0. Fra dette kan vi anta at er summen av rank og rank slik at rank rank Deretter kan vi bruke rangteoremet til å konkludere med at Page 9 of 17 MAT1120 Obligatorisk oppgave 1 Dim Null A Dim Null Nicolai Kristen Solheim Dim Null A . Rangteoremet for matriser sier at kolonnerommet og radrommet (lik underrommet utspent av radene) til en matrise har samme dimensjon. Slik at vi kan bruke dimensjonsformelen rank Dim Null som kan skrives om til rank Dim Null Med dette kan vi sette inn for matrisene slik at rank rank rank Dim Null Dim Null Dim Null Dim Null Dim Null Dim Null Dim Null Dim Null Vi kan med dette konkludere med at Dim Null Dim Null Dim Null Page 10 of 17 Dim Null Dim Null . Dim Null Dim Null MAT1120 Obligatorisk oppgave 1 Nicolai Kristen Solheim Oppgave 6 (i) , Vi betrakter grafen : , , , med følgende ordning av hjørner og kanter : , , , , Fra dette kan vi uttrykke indikatormatrisen dette med en figur , , , , , for . Men det kan også lønne seg å illustrere Vi kan nå uttrykke indikatormatrisen 0 0 1 1 0 0 1 1 1 1 0 0 1 1 0 0 1 0 1 0 1 0 1 0 ved å rangere 0 1 1 0 0 1 1 0 i radene, og i kolonnene slik at 0 1 0 1 0 1 0 1 Fra dette har vi funnet indikatormatrisen . Vi kan deretter bruke Matlab til å beregne Rank og Rank og vise at disse to tallene er like. Vi gjør dette ved å skrive en kode a = [-1,0,0,1,-1;1,-1,0,0,0;0,1,-1,0,1;0,0,1,-1,0]; b = [0,-1,1,0,0;0,1,0,-1,-1;1,0,-1,1,0;-1,0,0,0,1]; rank(a) rank(b) rref(a) rref(b) if rank(a) == rank(b) fprintf 'Equal! \n' else fprintf 'Not equal! \n' end Fra dette skal vi se at og skal ha samme antall pivotkolonner slik at Rank Rank . Dersom vi nå kjører programmet får vi >> run('C:\Users\Nicolai Solheim\Desktop\Obliger\MAT1120\oblig 1\six.m') ans = 3 Page 11 of 17 MAT1120 Obligatorisk oppgave 1 Nicolai Kristen Solheim ans = 3 ans = 1 0 0 0 ans = 1 0 0 0 Equal! 0 1 0 0 0 0 1 0 -1 -1 -1 0 1 1 0 0 0 1 0 0 0 0 1 0 0 -1 -1 0 -1 -1 -1 0 hvor vi kan se at Rank (ii) Rank 3. Videre kan vi vise at indikatormatrisen en får for avhenger av hvilken rekkefølge man bruker for hjørner og kanter. Imidlertid vil rangen til en indikatormatrise for alltid være den samme (punkt (i) gir et eksempel på at dette stemmer). Vi kan bruke oppgave 4 til å begrunne denne påstanden. Vi har i oppgave 4 sett på permutasjonsmatriser, og sett at rangen til en matrise alltid vil være lik dersom den blir multiplisert med en permutasjonsmatrise . Oppgave 4 har også vist at elementene i blir det samme, men med en endring i enten rader eller kolonner. Det samme gjelder for indikatormatrisen, men her har vi en verdi 1 i hver rad og kolonne. Denne verdien representerer fra, mens 1 representerer til. Fra dette kan vi se at indikatormatrisen en får for avhenger av hvilken rekkefølge man bruker for hjørner og kanter. Vi har at , hvor gir en endring i matriser, og en endring i kolonner. Fra oppgave 4 ser vi også at rank for en vilkårlig permutasjonsmatrise alltid vil være . Det samme har vi for indikatormatrisen da det bare er én 1 og én 1 i hver rad og kolonne. Dette vil gi at rangen for indikatormatrisene for alltid vil være den samme. Page 12 of 17 MAT1120 Obligatorisk oppgave 1 Nicolai Kristen Solheim Oppgave 7 Lar vi være en indikatormatrise for en rettet graf , kan vi videre begrunn at radene i A er lineært avhengige. Vi vet at radene vil være lineært uavhengig dersom vi kan uttrykke som 1 1 0 0 0 1 0 0 1 1 0 0 1 1 0 0 1 1 0 1 0 0 0 0 0 eller 0 0 0 0 0 0 for at radene skal være lineært uavhengig. Men siden vi antar at 0 vil radene være lineært avhengige. Hvor vi vil få en løsning Siden radene er lineært avhengig vet vi også at DimNul Dette har vi fra rangteoremet som sier at rank Dim Null Setter vi nå inn for DimNul rank rank 1 slik at rank 1. Dim Null vil vi få at 1 der er antall kanter. Da vi ser på erstatter vi med hvor er antall hjørner. Dette viser at rank 1 for en indikatormatrise for en rettet graf hvor radene er lineært avhengige. Vi kan også forklare dette med å se på pivotkolonnene i en matrise med hjørner. Vi vet at det må være minst en lineær avhengig rad slik at antall pivotkolonner 1 som da tilsvarer rank 1. Page 13 of 17 MAT1120 Obligatorisk oppgave 1 Nicolai Kristen Solheim Oppgave 8 (i) Vi har i denne oppgaven laget et eksempel på en oppdelbar, rettet graf hjørner og minst fem kanter. Denne grafen kan uttrykkes ved illustreres med figuren nedenfor med minst seks og kan og Fra denne figuren kan vi definere , , : : : : , , slik at , , : : , , , , , , , , Vi kan fra dette lage en indikatormatrise for 0 1 1 0 0 0 0 1 1 0 0 0 1 0 1 0 0 0 1 0 1 0 0 0 1 1 0 0 0 0 1 1 0 0 0 0 0 0 0 1 1 0 0 0 0 1 1 0 0 0 0 1 0 1 0 0 0 1 0 1 Fra dette har vi funnet indikatormatrisen til . Vi kan videre beregne rangen til indikatormatrisen ved å bruke Matlab. Lager vi nå et program, og kjører de får vi følgende resultat. a = [0,1,-1,0,0;-1,0,1,0,0;1,-1,0,0,0;0,0,0,1,-1;0,0,0,1,0;0,0,0,0,1]; rref(a) rank(a) run('C:\Users\Nicolai Solheim\Desktop\Obliger\MAT1120\oblig 1\eight.m') ans = 1 0 -1 0 0 0 1 -1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 Page 14 of 17 MAT1120 Obligatorisk oppgave 1 0 0 0 0 Nicolai Kristen Solheim 0 ans = 4 Vi ser fra dette at rangen til (ii) blir 4. Dette kan vi både se ved å bruke rref(a) og rank(a). har hjørner, hvor er en Antar vi at en oppdelbar rettet graf indikatormatrise for , vil vi se at rank 2. Dette kan vi begrunne ved å se på det vi gjorde i oppgave 7. Vi så der at rank 1 for en matrise . Vi har også sett at rank rank i oppgave 5. Bruker vi dette vil vi få følgende. rank rank rank rank rank rank rank 1 Vi kan fra dette se at rank 1 2, hvor 2 2. Page 15 of 17 slik at MAT1120 Obligatorisk oppgave 1 Nicolai Kristen Solheim Nul kan vi bruke rangteoremet til å vise Oppgave 9 (i) Tomt, det er her ikke mere! (ii) Antar vi at at dim er sammenhengende og setter 1. Rangteoremet er dim Nul rank Videre har vi gitt at som følger av oppgave 8 (ii) at en rettet graf med indikatormatrise er sammenhengende dersom rank 1. Da vi antar at er sammenhengende vil rank 1 slik at dim Nul dim Nul 1 Deretter setter vi inn Nul 1 og får 1 dim 1. Vi ser fra dette hvordan vi fra rangteoremet kan vise at dim (iii) og angi en basis for Betrakter vi grafen fra eksempel 1, kan vi beregne dim der oppgitt en indikatormatrise . Denne matrisen er gitt ved 1 1 0 0 0 1 1 0 0 0 1 1 1 0 0 1 1 0 1 0 1 0 0 0 0 1 0 0 0 0 1 0 for å se antall elementer i basisen til Først kan vi finne dim at den rettede grafen har 4 hjørner, og 5 kanter slik at 1 dim 5 4 1 1 1 1 0 . Vi får i eksempel 1 vite Altså skal det være 2 elementer i basisen. Videre får , dersom vi setter 0 0 0 Vi ser fra dette at og og er frie variabler slik at 1 1 1 1 0 1 1 0 0 2 0 0 1 1 0 0 1 Page 16 of 17 . Vi får , at MAT1120 Obligatorisk oppgave 1 1 1 1 1 Hvor 1 og 0 er basis for Null 0 1 1 0 Nicolai Kristen Solheim SG . Tester vi dette med Matlab, får vi 2 basiser >> a = [-1,0,0,1,-1;1,-1,0,0,0;0,1,-1,0,1;0,0,1,-1,0]; >> Null(a) ans = 0.6124 0.6124 0.2041 0.2041 -0.4082 0 0 0.5774 0.5774 0.5774 ikke inneholder noen sannsynlighetsvektorer da summen må være Fra dette kan vi se at lik 1 og 0 1. Med andre ord er det ingen av vektorene i nullrommet til som oppfyller dette. Page 17 of 17 29.09.10 15:31 C:\Users\Nicolai Solheim\Desktop\Obliger\MAT1120\ob...\Oslo.m % MAT1120 Oblig. Oslo trafikk clear all; n=28; B=zeros(n); B(1,1)=0.3; B(1,2)=0.3; B(1,3)=0.2; B(1,7)=0.2; B(2,2) =0.4; B(2,19)=0.3; B(2,22)=0.3; B(3,3) =0.4; B(3,17)=0.1; B(3,20)=0.2; B(3,23)=0.2; B(3,27)=0.1; B(4,4)=0.4; B(4,3)=0.1; B(4,7)=0.2; B(4,8)=0.3; B(5,5)=0.3; B(5,2)=0.1; B(5,7)=0.3; B(5,8)=0.3; B(6,2)=0.5; B(6,3)=0.3; B(6,8)=0.2; B(7,19)=0.3; B(7,14)=0.4; B(7,18)=0.3; B(8,8)=0.3; B(8,9)=0.2; B(8,12)=0.5; B(9,6)=0.2; B(9,14)=0.3; B(9,18)=0.5; B(10,1)=0.5; B(10,12)=0.5; B(11,1)=0.6; B(11,9)=0.4; B(12,13)=0.3; B(12,16)=0.7; 1 of 5 29.09.10 15:31 B(13,6)=0.5; B(13,10)=0.2; B(13,18)=0.3; B(14,11)=0.5; B(14,16)=0.5; B(15,15)=0.4; B(15,11)=0.3; B(15,13)=0.3; B(16,16)=0.4; B(16,24)=0.4; B(16,26)=0.2; B(17,17)=0.4; B(17,6)=0.2; B(17,10)=0.2; B(17,14)=0.2; B(18,18)=0.4; B(18,5) =0.1; B(18,20)=0.2; B(18,23)=0.2; B(18,27)=0.1; B(19,5)=0.1; B(19,17)=0.4; B(19,23)=0.3; B(19,27)=0.2; B(20,4)=0.6; B(20,22)=0.4; B(21,21)=0.3; B(21,4)=0.5; B(21,19)=0.2; B(22,22)=0.3; B(22,25)=0.5; B(22,28)=0.2; B(23,23)=0.2; B(23,21)=0.4; B(23,25)=0.4; B(24,24)=0.2; B(24,21)=0.5; B(24,28)=0.3; B(25,25)=0.2; B(25,15)=0.6; B(25,26)=0.2; C:\Users\Nicolai Solheim\Desktop\Obliger\MAT1120\ob...\Oslo.m 2 of 5 29.09.10 15:31 C:\Users\Nicolai Solheim\Desktop\Obliger\MAT1120\ob...\Oslo.m B(26,26)=0.3; B(26,5)=0.2; B(26,17)=0.2; B(26,20)=0.2; B(26,23)=0.1; B(27,27)=0.3; B(27,15)=0.4; B(27,24)=0.3; B(28,28)=0.3; B(28,5)=0.2; B(28,17)=0.2; B(28,20)=0.1; B(28,27)=0.2; P=B'; % Se om matrisen er regulær k=4; P2 = P^k; if (min(min(P2)) < 0 || min(min(P2)) == 0) fprintf('Matrisen er ikke regulær for k = %d\n', k) else fprintf('Matrisen er regulær for k = %d\n', k) end % eller n = size(P); val = 0; for i = 1:n(1) for j = 1:n(2) if (min(min(P2)) < 0 || min(min(P2)) == 0) val = 1; else if val == 1; val = 1; else val = 0; end end end end if val == 1 fprintf('Matrisen er ikke regulær for k = %d\n', k) else fprintf('Matrisen er regulær for k = %d\n', k) end % finne minste k teller=100; while (teller > 0 && min(min(P2^teller)) ~= 0) pt = P^teller; if min(min(pt)) == 0 3 of 5 29.09.10 15:31 C:\Users\Nicolai Solheim\Desktop\Obliger\MAT1120\ob...\Oslo.m 4 of 5 k = k; else k = teller; end teller = teller - 1; end fprintf('k = %d\n',k); % finne x* x = ones(28,1)*(1.0/28.0); xp = ones(28,1); while x ~= xp x2=P*x; xp = x; x = x2; end x sum(x) % Endring i veinettet P(:,28) = []; P(28,:) = []; P(25,22) = 0.7; P(21,24) = 0.8; % finne ny x* x3 = ones(27,1)*(1.0/27.0); xp = ones(27,1); while x3 ~= xp x4 = P*x3; xp = x3; x3 = x4; end x2 = x3 sum(x2) % Finne endringen delta = x2-x(1:27,:) % Finne de 3 største endringene a = 0; b = 0; di = 0; ei = 0; n=size(delta); for i=1:n(1) if delta(i,1) > a c = b; ci = di; b = a; di = ei; a = delta(i,1); ei = i; end end val = [a;b;c]; % Vi regner ut for 50000 biler val=50000*val; fprintf('For 50000 biler, vil vi få følgende økning i trafikk på de \n3 mest trafikerte veistrekkene: \nrad %d = %4.0f\nrad %d = %4.0f\nrad %d = %4.0f\n', ei,val 29.09.10 15:31 C:\Users\Nicolai Solheim\Desktop\Obliger\MAT1120\ob...\Oslo.m (1,1),di,val(2,1),ci,val(3,1)) 5 of 5 29.09.10 15:32 C:\Users\Nicolai Solheim\Desktop\Obliger\MAT1120\obl...\six.m a = [-1,0,0,1,-1;1,-1,0,0,0;0,1,-1,0,1;0,0,1,-1,0]; b = [0,-1,1,0,0;0,1,0,-1,-1;1,0,-1,1,0;-1,0,0,0,1]; rank(a) rank(b) rref(a) rref(b) if rank(a) == rank(b) fprintf 'Equal! \n' else fprintf 'Not equal! \n' end 1 of 1 29.09.10 15:40 C:\Users\Nicolai Solheim\Desktop\Obliger\MAT1120\o...\eight.m a = [0,1,-1,0,0;-1,0,1,0,0;1,-1,0,0,0;0,0,0,1,-1;0,0,0,-1,0;0,0,0,0,1]; rref(a) rank(a) 1 of 1 29.09.10 15:31 MATLAB Command Window >> run('C:\Users\Nicolai Solheim\Desktop\Obliger\MAT1120\oblig 1\Oslo.m') Matrisen er ikke regulær for k = 4 Matrisen er ikke regulær for k = 4 k = 6 x = 0.0500 0.0464 0.0357 0.0536 0.0321 0.0321 0.0250 0.0393 0.0214 0.0143 0.0286 0.0357 0.0214 0.0321 0.0500 0.0571 0.0464 0.0536 0.0286 0.0250 0.0429 0.0357 0.0357 0.0321 0.0393 0.0250 0.0321 0.0286 ans = 1 x2 = 0.0519 0.0481 0.0370 0.0556 0.0259 0.0333 0.0259 0.0407 0.0222 0.0148 0.0296 1 of 3 29.09.10 15:31 MATLAB Command Window 0.0370 0.0222 0.0333 0.0519 0.0593 0.0407 0.0556 0.0296 0.0222 0.0556 0.0370 0.0370 0.0333 0.0481 0.0259 0.0259 ans = 1 delta = 0.0019 0.0017 0.0013 0.0020 -0.0062 0.0012 0.0009 0.0015 0.0008 0.0005 0.0011 0.0013 0.0008 0.0012 0.0019 0.0021 -0.0057 0.0020 0.0011 -0.0028 0.0127 0.0013 0.0013 0.0012 0.0089 0.0009 -0.0062 For 50000 biler, vil vi få følgende økning i trafikk på de 3 mest trafikerte veistrekkene: 2 of 3 29.09.10 15:31 MATLAB Command Window rad 21 = 635 rad 16 = 106 rad 4 = 99 >> run('C:\Users\Nicolai Solheim\Desktop\Obliger\MAT1120\oblig 1\six.m') ans = 3 ans = 3 ans = 1 0 0 0 0 1 0 0 0 0 1 0 -1 -1 -1 0 1 1 0 0 0 1 0 0 0 0 1 0 0 -1 -1 0 -1 -1 -1 0 ans = 1 0 0 0 Equal! >> run('C:\Users\Nicolai Solheim\Desktop\Obliger\MAT1120\oblig 1\eight.m') ans = 1 0 0 0 0 0 ans = 4 >> 0 1 0 0 0 0 -1 -1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 3 of 3
© Copyright 2024