konopka228
@konopka228
Пытаюсь понять программирование

Как исправить ошибку AttributeError: 'int' object has no attribute 'fabs'?

Есть программа нахождения детерминанта матрицы. При компиляции пишет: AttributeError: 'int' object has no attribute 'fabs'. Скорее всего, проблема в введении размерности матрицы. Помогите пожалуйста с этой проблемой

import math as m
import random
import numpy as np
eps = 1E-9
b = [[]]
det = 1
while True:
    try:
        n = int(input('Enter the number of rows: '))
        m = int(input('Enter the number of columns: '))
        break
    except ValueError:
        print('\nError: enter integer numbers')
if n == m:
    m = n
    a = np.zeros((n, m), dtype=int)
    for i in range(n):
        for j in range(m):
            a[i, j] = random.randint(-128, 128)
    print(f'Matrix 1:\n {a}')
    for i in range(n):
        k = i
        for j in range(i+1, n):
            if m.fabs(a[j, i]) > m.fabs(a[k, i]):
                k = j
        if m.fabs(a[k, i] < eps):
            det = 0
            break
    b[0] = a[i]
    a[i] = a[k]
    a[k] = b[0]
    if (i != k):
        det = -det
    det *= a[i, i]
    for j in range(i+1, n):
        a[i, j] /= a[i, i]
    for j in range(n):
        if j != i and m.fabs(a[j, i] > eps):
            for k in range(i + 1, n):
                a[j, k] -= a[i, k] * a[j, i]
    print(det)
else:
    print('Error: Only in a square matrix can be found determinant')
  • Вопрос задан
  • 6050 просмотров
Решения вопроса 1
origami1024
@origami1024
went out for a night walk
Тут конфликт названий переменных:
import math as m
и потом еще
m = int(input('Enter the number of columns: '))

сделай import math просто, и замени все m.fabs на math.fabs
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы