Advertisement
999ms

dets

Apr 27th, 2020
659
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.26 KB | None | 0 0
  1. def det(a):
  2.     result = 0.0
  3.  
  4.     result += a[0][0] * (a[1][1] * a[2][2] - a[2][1] * a[1][2])
  5.     result -= a[0][1] * (a[1][0] * a[2][2] - a[2][0] * a[1][2])
  6.     result += a[0][2] * (a[1][0] * a[2][1] - a[2][0] * a[1][1])
  7.  
  8.     return result
  9.  
  10. def transponse(A):
  11.     res = [[A[j][i] for j in range(3)] for i in range(3)]
  12.     return res
  13.  
  14. def read_matrix():
  15.     return [list(map(float, input().split())) for _ in range(3)]
  16.  
  17. def Solve(a):
  18.     arr = [[[1 if j == index else a[i][j] for j in range(3)] for i in range(3)] for index in range(-1, 3)]
  19.     det_a = det(arr[0])
  20.     det_a1 = det(arr[1])
  21.     det_a2 = det(arr[2])
  22.     det_a3 = det(arr[3])
  23.  
  24.     det_a123 = det_a1 + det_a2 + det_a3
  25.  
  26.     game_cost = det_a / det_a123
  27.  
  28.     x1 = det_a1 / det_a123
  29.     x2 = det_a2 / det_a123
  30.     x3 = det_a3 / det_a123
  31.  
  32.     return det_a, det_a1, det_a2, det_a3, game_cost, x1, x2, x3
  33.  
  34.  
  35. matrix = read_matrix()
  36. c, c1, c2, c3, cost, x1, x2, x3 = Solve(matrix)
  37. print('Cost %.3f' % cost)
  38. print('C %.3f, C1 %.3f, C2 %.3f, C3 %.3f' % (c, c1, c2, c3))
  39. print('x1 %.3f, x2 %.3f, x3 %.3f' % (x1, x2, x3))
  40.  
  41. c, c1, c2, c3, cost, x1, x2, x3 = Solve(transponse(matrix))
  42. print('C~ %.3f, C~1 %.3f, C~2 %.3f, C~3 %.3f' % (c, c1, c2, c3))
  43. print('y1 %.3f, y2 %.3f, y3 %.3f' % (x1, x2, x3))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement