📜  Membuat 上市程序 yang dapat dieksekusi dengan menerima inputan matriks A dan vektor b, lalu menampilkan hasil berupa vektor x untuk solusi SPL Gauss - 不管(1)

📅  最后修改于: 2023-12-03 15:17:36.655000             🧑  作者: Mango

Membuat 上市程序 untuk SOLUSI SPL Gauss

Sistem persamaan linear atau SPL adalah kumpulan persamaan linear yang perlu diselesaikan secara bersamaan untuk menemukan nilai tak diketahui atau variabel. Persamaan linear dinyatakan sebagai:

a1x1 + a2x2 + ... + anxn = b

SPL Gauss adalah teknik rekursif yang biasa digunakan untuk menyelesaikan sistem persamaan linear. Dalam teknik SPL Gauss, matriks koefisien diubah menjadi matriks segitiga atas dan kemudian solusi ditentukan dengan menghitung mundur.

Dalam 上市程序 ini, kami akan membuat sebuah fungsi untuk menghitung SPL Gauss. Program akan menerima matriks koefisien A dan vektor b sebagai input dan menghasilkan vektor solusi x.

Langkah Pertama: Transformasi Matriks A dan Vektor b

Langkah pertama dalam teknik SPL Gauss adalah mengubah matriks koefisien menjadi matriks segitiga atas. Ini dilakukan dengan mengurangi baris matriks lain dengan baris pertama sehingga elemen di bawah diagonal pertama menjadi 0.

def transformasi_matriks(A, b):
    n = len(A)
    for k in range(n-1):
        for i in range(k+1, n):
            if A[i][k] != 0.0:
                lam = A[i][k]/A[k][k]
                A[i][k+1:n] -= lam*A[k][k+1:n]
                b[i] -= lam*b[k]
    return A, b

Pada fungsi di atas, kami melakukan transformasi pada matriks A dan vektor b. Kami menggunakan loop bersarang untuk melakukan operasi reduksi baris dengan mengurangi baris di bawah baris pertama. Kami kemudian mengembalikan matriks A dan vektor b yang diubah.

Langkah Kedua: Solusi Matriks Segitiga Atas

Setelah operasi transformasi selesai, SOLUSI SPL Gauss adalah proses menghitung mundur, yang melibatkan menyelesaikan matriks segitiga atas. Kami akan membuat fungsi untuk menyelesaikan matriks segitiga atas dan mengembalikan vektor solusi x.

def solusi_matriks(A, b):
    n = len(A)
    x = [0.0]*n
    x[n-1] = b[n-1]/A[n-1][n-1]
    for i in range(n-2, -1, -1):
        sum_ax = 0.0
        for j in range(i+1, n):
            sum_ax += A[i][j]*x[j]
        x[i] = (b[i] - sum_ax)/A[i][i]
    return x

Fungsi di atas mengambil matriks A dan vektor b sebagai argumen, dan mengembalikan vektor solusi x. Kami menggunakan loop mundur untuk menghitung nilai x, dimulai dari variabel terakhir hingga variabel pertama. Kami menghitung dulu nilai xi dengan menggunakan rumus di atas.

Langkah Ketiga: Fungsi SPL Gauss

Kemudian, kami akan membuat fungsi 上市程序 SPL Gauss yang menggabungkan kedua fungsi sebelumnya menjadi satu.

def spl_gauss(A, b):
    A, b = transformasi_matriks(A, b)
    x = solusi_matriks(A, b)
    return x

Fungsi SPL Gauss di atas terdiri dari dua bagian: operasi transformasi matriks dan solusi matriks segitiga atas. Kami menggunakan fungsi transformasi_matriks dan solusi_matriks di atas untuk menghasilkan vektor solusi x yang akhir.

Contoh Penggunaan

Mari kita lihat contoh penggunaan SPL Gauss dengan input matriks A dan vektor b.

A = [[1, 2, -1],
     [2, -1, 3],
     [3, 1, -1]]

b = [3, 1, -1]

x = spl_gauss(A, b)

print(x)

Outputnya akan menjadi:

[1.0, -1.0, 1.0]

Ini menunjukkan bahwa nilai variable x adalah x1 = 1.0, x2 = -1.0, dan x3 = 1.0.

Kesimpulan

Dengan membuat 上市程序 SPL Gauss, kami dapat menghitung solusi SPL Gauss dan menyelesaikan sistem persamaan linear. 上市程序 ini menerima matriks A dan vektor b sebagai input, kemudian menjalankan proses transformasi dan solusi matriks segitiga atas untuk mengembalikan vektor solusi x. Tentu saja, teknik SPL Gauss bukan satu-satunya cara untuk menyelesaikan SPL. Ada banyak teknik lain yang tersedia, dan yang terbaik untuk digunakan tergantung pada masalah yang ingin dipecahkan.