Advertisement
Guest User

Untitled

a guest
Sep 19th, 2019
108
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 4.56 KB | None | 0 0
  1.  
  2. from sympy import *
  3. from numpy.linalg import matrix_power
  4. from numpy import *
  5.  
  6.  
  7. 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]])
  8. B = M.rref()                                                #Gjør om matrisen til redusert trappeform
  9. bRow = M.rowspace()                                         #Finner radrommet til M
  10. print('Redusert trappeform: \n', B)
  11. print('Radrommet blir: \n', bRow)
  12.  
  13. 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
  14. 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
  15. uRow = u.rowspace()                                         #Gjør om matrisene til trappeform og sjekker om en av radene blir borte
  16. vRow = v.rowspace()
  17. 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
  18. 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
  19.  
  20. A = array([[1/2,1/2,-5/4],[0,1,-5/4],[0,0,-1/4]])            #Dette er matrisen i oppgave 2
  21. A2 = matrix_power(A,2)
  22. A3 = matrix_power(A,3)
  23. A6 = matrix_power(A,6)                                       #Regner ut A-matrisen opphøyd i 2,3 og 6
  24. 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)
  25.  
  26. D = Matrix([[1/2, 1/2, -5/4],[0, 1, -5/4],[0, 0, -1/4]])        #Matrisen som brukes i Oppgave 2d
  27.  
  28. Idrett = Matrix([[10],[20],[10]])                       #Startkapitalen til idrettsklubbene
  29.  
  30. for i in range(300):
  31.     Idrett = D.dot(Idrett)
  32.     IdrettNeste = D.dot(Idrett)                         #Regner ut verdien til idrettsklubben om 300mnd
  33.  
  34. print('Etter 300mnd vil den respektive kapitalen til idrettsklubbene være:\n', Idrett)
  35.  
  36.  
  37. 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
  38. determinant = linalg.det(HUGEarray)                                                            #Finner determinanten
  39. print('Determinanten til matrisen i oppgave 3 er:', determinant)
  40. 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]])
  41. trappeform = HUGEMATRIX.rowspace()                                                             #Finner trappeformen for å se om den beholder ranken sin
  42. print('Matrisen i oppgave 3 blir seende slik ut på trappeform \n', trappeform)
  43.  
  44. assert not determinant == 0                                                                     #Sjekker at determinanten ikke er 0 (den er faktisk 72)
  45.  
  46. 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')
  47.  
  48.  
  49. #run MAT1120oblig1.py
  50. #Redusert trappeform:
  51. # (Matrix([
  52. #[1, 0,  1, 0, -1,  1],
  53. #[0, 1, -2, 0,  1,  1],
  54. #[0, 0,  0, 1, -2, -1],
  55. #[0, 0,  0, 0,  0,  0]]), (0, 1, 3))
  56. #Radrommet blir:
  57. # [Matrix([[1, 2, -3, 1, -1, 2]]), Matrix([[0, -6, 12, -2, -2, -4]]), Matrix([[0, 0, 0, 8, -16, -8]])]
  58. #Radrommet med u-vektoren:
  59. # [Matrix([[1, 2, 1, 2]]), Matrix([[0, -6, -2, -2]]), Matrix([[0, 0, 8, -16]])]
  60. #Radrommet med v-vektoren:
  61. # [Matrix([[1, 2, 1, 1]]), Matrix([[0, -6, -2, -2]]), Matrix([[0, 0, 8, -4]]), Matrix([[0, 0, 0, 24]])]
  62. #A-matrisen opphøyd i 2:
  63. # [[ 0.25    0.75   -0.9375]
  64. # [ 0.      1.     -0.9375]
  65. # [ 0.      0.      0.0625]]
  66. # A-matrisen opphøyd i 3:
  67. # [[ 0.125     0.875    -1.015625]
  68. # [ 0.        1.       -1.015625]
  69. # [ 0.        0.       -0.015625]]
  70. # A-matrisen opphøyd i 6:
  71. # [[ 1.56250000e-02  9.84375000e-01 -9.99755859e-01]
  72. # [ 0.00000000e+00  1.00000000e+00 -9.99755859e-01]
  73. # [ 0.00000000e+00  0.00000000e+00  2.44140625e-04]]
  74. #Etter 300mnd vil den respektive kapitalen til idrettsklubbene være:
  75. # [10.0000000000000, 10.0000000000000, 2.40991986510288e-180]
  76. #Determinanten til matrisen i oppgave 3 er: 72.0
  77. #Matrisen i oppgave 3 blir seende slik ut på trappeform
  78. # [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]])]
  79. #Matrisen i oppgave 3 er invertibel siden assertfunksjonen ikke stoppet programmet,
  80. #i tillegg har den fortsatt tall i alle kolonner i trappeformen som også betyr at den
  81. #beholdt ranken sin og er invertibel
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement