Advertisement
UsSe3wa

Untitled

Apr 16th, 2025
252
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.12 KB | None | 0 0
  1. import numpy as np
  2.  
  3.  
  4. def gaussian_elimination(arr, b):
  5.     arr = np.array(arr, dtype=float)
  6.     b = np.array(b, dtype=float)
  7.     n = len(b)
  8.  
  9.     for k in range(n - 1):
  10.         for i in range(k + 1, n):
  11.             factor = arr[i][k] / arr[k][k]
  12.  
  13.             arr[i][k:] -= factor * arr[k][k:]
  14.             b[i] -= factor * b[k]
  15.  
  16.     x = np.zeros(n)
  17.     for i in range(n - 1, -1, -1):
  18.         x[i] = (b[i] - np.dot(arr[i][i + 1 :], x[i + 1 :])) / arr[i][i]
  19.  
  20.     return x
  21.  
  22.  
  23. lines = int(input("Input number of equations: "))
  24. print()
  25. nums = int(input("Input number of unknowns: "))
  26.  
  27. arr = np.zeros((lines, nums), dtype=float)
  28. b = np.zeros(lines, dtype=float)
  29. print("Input matrix A by rows like: x y z ... = b")
  30. for i in range(lines):
  31.     row = list(map(int, input().split()))
  32.     for j in range(nums):
  33.         arr[i][j] = row[j]
  34.  
  35. print("Input vector b")
  36. b_input = list(map(int, input().split()))
  37. for i in range(lines):
  38.     b[i] = b_input[i]
  39. print("\nBefore:")
  40. print(arr)
  41. print("\nVector b:")
  42. print(b)
  43.  
  44. result = gaussian_elimination(arr, b)
  45.  
  46. print("\nAfter:")
  47. print(arr)
  48. print("\nSolution:")
  49. print(result)
  50.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement