Norms in Python - Docx 2
Norms in Python - Docx 2
# ussama atiq
# fa19-bee-022
import numpy as np
L1 Norm: 15.0
L2 Norm: 7.416198487095663
import numpy as np
def is_diagonally_dominant(matrix):
n = len(matrix)
for i in range(n):
diagonal_sum = sum(abs(matrix[i][j]) for j in range(n) if j !=
i)
if abs(matrix[i][i]) <= diagonal_sum:
return False
return True
if is_diagonally_dominant(A):
print("The matrix is diagonally dominant.")
else:
print("No, the matrix is not diagonally dominant.")
2.
import numpy as np
import matplotlib.pyplot as plt
def is_diagonally_dominant(A):
n = A.shape[0]
for i in range(n):
row_sum = np.sum(np.abs(A[i, :])) - np.abs(A[i, i])
if np.abs(A[i, i]) <= row_sum:
return False
return True
if not is_diagonally_dominant(A):
print("The coefficient matrix is not diagonally dominant. The
method may not converge.")
return None, error_list
for _ in range(max_iterations):
for i in range(n):
sigma = np.dot(A[i, :n], x) - A[i, i] * x[i]
x_new[i] = (b[i] - sigma) / A[i, i]
error = np.linalg.norm(x_new - x)
error_list.append(error)
if error < tol:
return x_new, error_list
x = np.copy(x_new)
return x, error_list
A = np.array([[10, 2, 1],
[1, 5, 1],
[2, 3, 10]], dtype=float)
b = np.array([7, -8, 6], dtype=float)