gringotopies

BOIKWD 3A

Oct 23rd, 2019
247
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.72 KB | None | 0 0
  1. import numpy as np
  2. import math
  3. import cmath
  4.  
  5.  
  6. A = np.array([
  7.     [1, 2/3, 2, 5/2, 5/3, 5],
  8.     [3/2, 1, 3, 10/3, 3, 9],
  9.     [1/2, 1/3, 1, 4/3, 7/8, 5/2],
  10.     [2/5, 3/10, 3/4, 1, 5/6, 12/5],
  11.     [3/5, 1/3, 8/7, 6/5, 1, 3],
  12.     [1/5, 1/9, 2/5, 5/12, 1/3, 1]
  13. ])
  14.  
  15. Aw = np.array([[3], [1]])
  16.  
  17. nA = 6
  18.  
  19. B = np.array([[1, 0.4, 3, 7/3, 0.5, 1],
  20.     [2.5, 1, 4/7, 5/8, 1/3, 3],
  21.     [1/3, 1.75, 1, 0.5, 2, 0.5],
  22.     [3/7, 1.6, 2, 1, 4, 2],
  23.     [2, 3, 0.5, 0.25, 1, 0.5],
  24.     [1, 1/3, 2, 0.5, 2, 1]])
  25.  
  26. Bw = np.array([[2], [1/2], [1]])
  27.  
  28. nB = 6
  29.  
  30. C = np.array([
  31.     [1, 4.25, 0.85, 1.6, 23/6, 8/3],
  32.     [4/17, 1, 0.2, 0.4, 0.9, 2/3],
  33.     [20/17, 5, 1, 2.1, 5.1, 10/3],
  34.     [5/8, 2.5, 10/21, 1, 2.5, 11/6],
  35.     [6/23, 10/9, 10/51, 0.4, 1, 19/30],
  36.     [3/8, 1.5, 0.3, 6/11, 30/19, 1]])
  37.  
  38. Cw = np.array([[2], [5]])
  39.  
  40. nC = 6
  41.  
  42. def koczkodaj(matrix):
  43.     (n, _) = matrix.shape
  44.  
  45.     def kij(i, j, k):
  46.         return matrix[i, j]/(matrix[i, k]*matrix[k, j])
  47.  
  48.     def triple(i, j, k):
  49.         return min(abs(1-kij(i, j, k)), abs(1-(1/kij(i, j, k))))
  50.  
  51.     triples = [triple(i, j, k) for i in range(n) for j in range(n) for k in range(n)]
  52.     return max(triples)
  53.  
  54.  
  55. print("Index Koczkodaja macierzy A= ", koczkodaj(A))
  56.  
  57. A1 = A[0:4, 0:4].copy()
  58. A2 = A[0:4, 4:6].copy()
  59. print(A1)
  60.  
  61. A1 *= (-1)/(nA-1)
  62. A1[0][0]=1
  63. A1[1][1]=1  
  64. A1[2][2]=1
  65. A1[3][3]=1    
  66. print(A1)
  67. a1_wektor = np.matmul(A2, Aw)
  68. print (a1_wektor)
  69. a1_wektor *= (1)/(nA-1)
  70.  
  71. A1_temp = np.linalg.inv(A1)
  72. wynik_A = np.matmul(A1_temp, a1_wektor)
  73. print (wynik_A)
  74.  
  75.  
  76. print("Index Koczkodaja macierzy B= ", koczkodaj(B))
  77.  
  78. B1 = B[0:3, 0:3].copy()
  79. B2 = B[0:3, 3:6].copy()
  80. print(B1)
  81. print(B2)
  82.  
  83. B1 *= (-1)/(nB-1)
  84. B1[0][0]=1
  85. B1[1][1]=1
  86. B1[2][2]=1
  87.    
  88. print(B1)
  89. b1_wektor = np.matmul(B2, Bw)
  90. print (b1_wektor)
  91. b1_wektor *= (1)/(nB-1)
  92.  
  93. B1_temp = np.linalg.inv(B1)
  94. wynik_B = np.matmul(B1_temp, b1_wektor)
  95. print (wynik_B)
  96.  
  97.  
  98.  
  99.  
  100.  
  101.  
  102. Cprim=np.empty((6, 6), float)
  103. Cprim[0]=C[0].copy()
  104. Cprim[1]=C[2].copy()
  105. Cprim[2]=C[4].copy()
  106. Cprim[3]=C[5].copy()
  107. Cprim[4]=C[1].copy()
  108. Cprim[5]=C[3].copy()
  109. Cprimprim=np.empty((6, 6), float)
  110. Cprimprim[:,0]=Cprim[:,0].copy()
  111. Cprimprim[:,1]=Cprim[:,2].copy()
  112. Cprimprim[:,2]=Cprim[:,4].copy()
  113. Cprimprim[:,3]=Cprim[:,5].copy()
  114. Cprimprim[:,4]=Cprim[:,1].copy()
  115. Cprimprim[:,5]=Cprim[:,3].copy()
  116.  
  117.  
  118. #print(Cprimprim)
  119.  
  120. print("Index Koczkodaja macierzy C= ", koczkodaj(C))
  121.  
  122. C1 = Cprimprim[0:4, 0:4].copy()
  123. C2 = Cprimprim[0:4, 4:6].copy()
  124.  
  125. print(C1)
  126. print(C2)
  127.  
  128. C1 *= (-1)/(nC-1)
  129. C1[0][0]=1
  130. C1[1][1]=1  
  131. C1[2][2]=1
  132. C1[3][3]=1    
  133. print(C1)
  134. c1_wektor = np.matmul(C2, Cw)
  135. print (c1_wektor)
  136. c1_wektor *= (1)/(nC-1)
  137.  
  138. C1_temp = np.linalg.inv(C1)
  139. wynik_C = np.matmul(C1_temp, c1_wektor)
  140. print (wynik_C)
Add Comment
Please, Sign In to add comment