Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import numpy as np
- def gaussian_elimination(arr, b):
- arr = np.array(arr, dtype=float)
- b = np.array(b, dtype=float)
- n = len(b)
- for k in range(n - 1):
- for i in range(k + 1, n):
- factor = arr[i][k] / arr[k][k]
- arr[i][k:] -= factor * arr[k][k:]
- b[i] -= factor * b[k]
- x = np.zeros(n)
- for i in range(n - 1, -1, -1):
- x[i] = (b[i] - np.dot(arr[i][i + 1 :], x[i + 1 :])) / arr[i][i]
- return x
- lines = int(input("Input number of equations: "))
- print()
- nums = int(input("Input number of unknowns: "))
- arr = np.zeros((lines, nums), dtype=float)
- b = np.zeros(lines, dtype=float)
- print("Input matrix A by rows like: x y z ... = b")
- for i in range(lines):
- row = list(map(int, input().split()))
- for j in range(nums):
- arr[i][j] = row[j]
- print("Input vector b")
- b_input = list(map(int, input().split()))
- for i in range(lines):
- b[i] = b_input[i]
- print("\nBefore:")
- print(arr)
- print("\nVector b:")
- print(b)
- result = gaussian_elimination(arr, b)
- print("\nAfter:")
- print(arr)
- print("\nSolution:")
- print(result)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement