MAT1120: Obligatorisk oppgave 1

Transcription

MAT1120: Obligatorisk oppgave 1
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