Matriks Toeplitz
Python

Menentukan Suatu Matriks Apakah Matriks Toeplitz atau Tidak

Menentukan Suatu Matriks Apakah Matriks Toeplitz atau Tidak – Pada artikel kali ini akan dibahas tentang menentukan suatu matriks apakah matriks Toeplitz atau tidak. Diberikan suatu matriks dengan ukuran nxn, kemudian tentukan apakah matriks tersebut merupakan matriks Toeplitz atau tidak. Suatu matriks dikatakan matriks Toeplitz jika matriks tersebut memiliki nilai yang konstan dari diagonal dari kiri atas hingga kanan bawah.

Matriks Toeplitz adalah suatu matriks Tn berukuran nxn, Tn = [tk,j, k,j = 0,1,…,n-1] dimana tk,j = tk-j dengan bentuk matriks sebagai berikut:

Matriks Toeplitz
Matriks Toeplitz

Implementasi yang dilakukan menggunakan bahasa pemrograman Python. Implementasi yang dilakukan cukup sederhana, dimana untuk setiap elemen dari baris pertama dan kolom pertama di dalam matriks akan dilakukan pengecekan secara diagonal apakah memiliki value yang sama. Jika ditemukan nilai yang berbeda pada diagonal matriks maka akan mengembalikan nilai False, sedangkan jika nilai yang terdapat pada diagonal matriks sama maka akan mengembalikan nilai True.

Source code untuk menentukan suatu matriks apakah Toeplitz atau tidak

 

# Program untuk mengecek apakah suatu
# matriks merupakan matriks Toeplitz atau tidak

N = 4
M = 4

# Fungsi untuk memeriksa apakah semua elemen pada
# diagonal di posisi (i,j) di matriks sama atau tidak
def checkDiagonal(mat, i, j):
    res = mat[i][j]
    i += 1
    j += 1

    while (i < N and j < M):

        # Jika ada ketidakcocokan maka akan
        # mengembalikan nilai False
        if (mat[i][j] != res):
            return False

        i += 1
        j += 1

    # Jika semua elemen pada diagonal matriks
    # sama maka akan mengembalikan nilai True
    return True


# Fungsi untuk memerika matriks merupakan
# matriks Toeplitz atau tidak
def isToeplitz(mat):
    # Lakukan pada setiap elemen pada baris pertama
    for j in range(M):

        # Memeriksa matriks diagonal dari posisi
        # (0,j) di dalam matriks
        if not (checkDiagonal(mat, 0, j)):
            return False

    # Lakukan pada setiap elemen pada kolom pertama
    for i in range(1, N):

        # Memeriksa matriks diagonal dari posisi
        # (i,0) di dalam matriks
        if not (checkDiagonal(mat, i, 0)):
            return False

    return True


# Driver Code
if __name__ == "__main__":

    mat1 = [[1, 2, 3, 4],
           [5, 1, 2, 3],
           [1, 5, 1, 2],
           [0, 1, 5, 1]]

    mat2 = [[1, 2, 3, 4],
           [5, 1, 2, 3],
           [1, 1, 2, 3],
           [0, 1, 5, 1]]

    if (isToeplitz(mat1)):
        print("Matriks 1 yang dimasukkan merupakan matriks Toeplitz")
    else:
        print("Matriks 1 yang dimasukkan merupakan bukan matriks Toeplitz")

    if (isToeplitz(mat2)):
        print("Matriks 2 yang dimasukkan merupakan matriks Toeplitz")
    else:
        print("Matriks 2 yang dimasukkan merupakan bukan matriks Toeplitz")

Hasil keluaran yang diberikan adalah sebagai berikut:

 

Matriks 1 yang dimasukkan merupakan matriks Toeplitz
Matriks 2 yang dimasukkan merupakan bukan matriks Toeplitz

Process finished with exit code 0

 

Kompleksitas waktu dari implementasi diatas adalah O(n2) karena melakukan pengecekan pada setiap elemen matriks.

Sekian artikel mengenai Menentukan Suatu Matriks Apakah Matriks Toeplitz atau Tidak, nantikan artikel menarik lainnya hanya di Inpows.

Referensi 1: Teori mengenai matriks Toeplitz matriks diperoleh dari https://en.wikipedia.org/wiki/Toeplitz_matrix

Referensi 2: Implementasi kode mengenai matriks Toeplitz diperoleh dari https://www.geeksforgeeks.org/find-if-given-matrix-is-toeplitz-or-not/