Untitled

 avatar
unknown
plain_text
a year ago
1.9 kB
6
Indexable
def wyswietl_macierz(macierz, n):
    for i in range(n):
        print(*macierz[i])

def wykonaj_operacje(macierz, n):
    i, j, k, c, flag, m, pro = 0, 0, 0, 0, 0, 0, 0
    
    for i in range(n):
        if all(macierz[i][j] == 0 for j in range(n)) and macierz[i][n] != 0:
            # Wszystkie zmienne x, y, z, ..., w są równe zero, ale wynik jest różny od zera
            return 3

    for i in range(n):
        if (macierz[i][i] == 0):
            c = 1
            while ((i + c) < n and macierz[i + c][i] == 0):
                c += 1
            if ((i + c) == n):
                flag = 1
                break
            j = i
            for k in range(1 + n):
                temp = macierz[j][k]
                macierz[j][k] = macierz[j+c][k]
                macierz[j+c][k] = temp

        for j in range(n):
            if (i != j):
                p = macierz[j][i] / macierz[i][i]
                k = 0
                for k in range(n + 1):
                    macierz[j][k] = macierz[j][k] - (macierz[i][k]) * p

    return flag

def wyswietl_wynik(macierz, n, flag):
    
    print("Wynik: ")

    if (flag == 2):
        print("Istnieje nieskończoność rozwiązań")
    elif (flag == 3):
        print("Brak rozwiązania")
    else:
        for i in range(n):
            print(macierz[i][n] / macierz[i][i], end=" ")
        

def sprawdz_konsekwencje(macierz, n, flag):
    flag = 3
    for i in range(n):
        suma = 0
        for j in range(n):
            suma = suma + macierz[i][j]
        if (suma == macierz[i][j]):
            flag = 2

    return flag
S
macierz_Rozszerzona = [[0, 0, 0, 0, -3], [0,0,0,0,0], [0, 0, 0,0, 0], [0, 0, 0, 0, 0]]
rozmiar = 4
flaga = 0

flaga = wykonaj_operacje(macierz_Rozszerzona, rozmiar)

if (flaga == 1):
    flaga = sprawdz_konsekwencje(macierz_Rozszerzona, rozmiar, flaga)



wyswietl_wynik(macierz_Rozszerzona, rozmiar, flaga)
Editor is loading...
Leave a Comment