Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from sympy import *
- from numpy.linalg import matrix_power
- from numpy import *
- M = Matrix([[1,2,-3,1,-1,2],[3,0,3,1,-5,2],[1,0,1,-1,1,2],[2,1,0,0,-1,3]])
- B = M.rref() #Gjør om matrisen til redusert trappeform
- bRow = M.rowspace() #Finner radrommet til M
- print('Redusert trappeform: \n', B)
- print('Radrommet blir: \n', bRow)
- v = Matrix([[1,2,1,1],[3,0,1,1],[1,0,-1,1],[2,1,0,1]]) #Den augmenterte matrisen til kol(A) med u-vektor
- u = Matrix([[1,2,1,2],[3,0,1,4],[1,0,-1,4],[2,1,0,5]]) #Den augmenterte matrisen til kol(A) med v-vektor
- uRow = u.rowspace() #Gjør om matrisene til trappeform og sjekker om en av radene blir borte
- vRow = v.rowspace()
- print('Radrommet med u-vektoren: \n', uRow) #Om en av radene blir borte og tallet lengst til høyre ikke står alene vil vektoren ligge i kolonnerommet til M
- print('Radrommet med v-vektoren: \n', vRow) #Om en av radene blir borte og tallet lengst til høyre ikke står alene vil vektoren ligge i kolonnerommet til M
- A = array([[1/2,1/2,-5/4],[0,1,-5/4],[0,0,-1/4]]) #Dette er matrisen i oppgave 2
- A2 = matrix_power(A,2)
- A3 = matrix_power(A,3)
- A6 = matrix_power(A,6) #Regner ut A-matrisen opphøyd i 2,3 og 6
- print('A-matrisen opphøyd i 2: \n', A2,'\n A-matrisen opphøyd i 3: \n', A3,'\n A-matrisen opphøyd i 6: \n', A6)
- D = Matrix([[1/2, 1/2, -5/4],[0, 1, -5/4],[0, 0, -1/4]]) #Matrisen som brukes i Oppgave 2d
- Idrett = Matrix([[10],[20],[10]]) #Startkapitalen til idrettsklubbene
- for i in range(300):
- Idrett = D.dot(Idrett)
- IdrettNeste = D.dot(Idrett) #Regner ut verdien til idrettsklubben om 300mnd
- print('Etter 300mnd vil den respektive kapitalen til idrettsklubbene være:\n', Idrett)
- HUGEarray = array([[1,1,0,1,0],[0,0,1,0,2],[0,1,0,4,0],[0,0,1,0,8],[0,1,0,16,0]]) #Lager et array av matrisen i oppgave 3, bruker array for å kunne bruke linalg.det-funksjonen
- determinant = linalg.det(HUGEarray) #Finner determinanten
- print('Determinanten til matrisen i oppgave 3 er:', determinant)
- HUGEMATRIX = Matrix([[1,1,0,1,0],[0,0,1,0,2],[0,1,0,4,0],[0,0,1,0,8],[0,1,0,16,0]])
- trappeform = HUGEMATRIX.rowspace() #Finner trappeformen for å se om den beholder ranken sin
- print('Matrisen i oppgave 3 blir seende slik ut på trappeform \n', trappeform)
- assert not determinant == 0 #Sjekker at determinanten ikke er 0 (den er faktisk 72)
- print('Matrisen i oppgave 3 er invertibel siden assertfunksjonen ikke stoppet programmet,\ni tillegg har den fortsatt tall i alle kolonner i trappeformen som også betyr at den \nbeholdt ranken sin og er invertibel')
- #run MAT1120oblig1.py
- #Redusert trappeform:
- # (Matrix([
- #[1, 0, 1, 0, -1, 1],
- #[0, 1, -2, 0, 1, 1],
- #[0, 0, 0, 1, -2, -1],
- #[0, 0, 0, 0, 0, 0]]), (0, 1, 3))
- #Radrommet blir:
- # [Matrix([[1, 2, -3, 1, -1, 2]]), Matrix([[0, -6, 12, -2, -2, -4]]), Matrix([[0, 0, 0, 8, -16, -8]])]
- #Radrommet med u-vektoren:
- # [Matrix([[1, 2, 1, 2]]), Matrix([[0, -6, -2, -2]]), Matrix([[0, 0, 8, -16]])]
- #Radrommet med v-vektoren:
- # [Matrix([[1, 2, 1, 1]]), Matrix([[0, -6, -2, -2]]), Matrix([[0, 0, 8, -4]]), Matrix([[0, 0, 0, 24]])]
- #A-matrisen opphøyd i 2:
- # [[ 0.25 0.75 -0.9375]
- # [ 0. 1. -0.9375]
- # [ 0. 0. 0.0625]]
- # A-matrisen opphøyd i 3:
- # [[ 0.125 0.875 -1.015625]
- # [ 0. 1. -1.015625]
- # [ 0. 0. -0.015625]]
- # A-matrisen opphøyd i 6:
- # [[ 1.56250000e-02 9.84375000e-01 -9.99755859e-01]
- # [ 0.00000000e+00 1.00000000e+00 -9.99755859e-01]
- # [ 0.00000000e+00 0.00000000e+00 2.44140625e-04]]
- #Etter 300mnd vil den respektive kapitalen til idrettsklubbene være:
- # [10.0000000000000, 10.0000000000000, 2.40991986510288e-180]
- #Determinanten til matrisen i oppgave 3 er: 72.0
- #Matrisen i oppgave 3 blir seende slik ut på trappeform
- # [Matrix([[1, 1, 0, 1, 0]]), Matrix([[0, 1, 0, 4, 0]]), Matrix([[0, 0, 1, 0, 2]]), Matrix([[0, 0, 0, 12, 0]]), Matrix([[0, 0, 0, 0, 6]])]
- #Matrisen i oppgave 3 er invertibel siden assertfunksjonen ikke stoppet programmet,
- #i tillegg har den fortsatt tall i alle kolonner i trappeformen som også betyr at den
- #beholdt ranken sin og er invertibel
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement