Rumah  >  Artikel  >  hujung hadapan web  >  Anda boleh menggunakan JavaScript untuk mencari matriks songsang

Anda boleh menggunakan JavaScript untuk mencari matriks songsang

王林
王林asal
2023-05-09 14:33:07630semak imbas

Penyongsangan matriks ialah pengiraan penting dalam algebra linear Ia sering digunakan dalam pengiraan matematik dan amalan kejuruteraan, seperti menyelesaikan sistem persamaan, mengira matriks transformasi, dsb. Artikel ini memperkenalkan cara menggunakan bahasa JavaScript untuk melaksanakan fungsi menyongsangkan matriks.

1. Pengetahuan asas algebra linear

Sebelum memperkenalkan cara menyongsangkan matriks dalam JavaScript, kita perlu memahami beberapa pengetahuan asas tentang algebra linear.

  1. Matriks dan vektor

Matriks ialah jadual nombor segi empat tepat, yang terdiri daripada m baris dan n lajur Ia boleh dinyatakan sebagai:

A = [a1,1 a1,2 ... a1,n

 a2,1 a2,2 ... a2,n
 ...  ...  ...  ...
 am,1 am,2 ... am,n]

Vektor ialah matriks lajur dan boleh dinyatakan sebagai:

v = [v1

 v2
 ...
 vn]
  1. Tambahan dan pendaraban matriks

Tambahan dan pendaraban matriks ialah operasi antara unsur yang sepadan. Hasil penambahan matriks ialah penambahan unsur sepadan dua matriks. Hasil pendaraban matriks ialah baris-baris matriks pertama yang didarab dengan lajur matriks kedua dan kemudian dijumlahkan.

  1. Transpose matriks

Transpose matriks ialah matriks baharu yang diperoleh dengan menukar baris dan lajur matriks. Contohnya:

A = [1 2 3

 4 5 6]

A' = [1 4

  2 5
  3 6]
  1. Matriks Songsang

Matriks Songsangan ialah matriks, dan hasil darabnya dengan matriks asal ialah matriks identiti. Matriks identiti ialah matriks dengan 1s pada pepenjuru utama dan 0s di tempat lain.

Jika songsangan matriks A ialah A^-1, maka A A^-1 = A^-1 A = I.

Perhatikan bahawa hanya matriks segi empat sama boleh diterbalikkan.

2. Gunakan JavaScript untuk melaksanakan matriks songsang

Melaksanakan matriks songsang dalam JavaScript memerlukan beberapa pengetahuan asas matematik dan algoritma. Di bawah ini kami akan memperkenalkan kaedah pelaksanaan khusus langkah demi langkah.

  1. Mencari penentu matriks

Mencari penentu matriks ialah langkah pertama dalam menyelesaikan songsangan matriks. Penentu ialah nilai berangka yang mewakili hasil darab unsur pepenjuru matriks tolak hasil darab unsur luar pepenjuru. Contohnya:

A = [1 2 3

 4 5 6
 7 8 9]

|A| = 1 5 9 + 2 6 7 + 3 4 8 - 3 5 7 - 2 4 9 - 1 6 8 = 0

Kita boleh menggunakan rekursi untuk menyelesaikan Mod baris dan lajur. Apabila saiz matriks ialah 1x1, penentu adalah sama dengan nilai unsur apabila saiz matriks ialah 2x2, penentu adalah sama dengan hasil darab unsur kiri atas dan kanan bawah tolak dengan hasil darab unsur kanan atas dan kiri bawah apabila saiz matriks Apabila lebih besar daripada 2x2, penentu adalah sama dengan hasil tambah penentu submatriks yang terdiri daripada elemen pertama setiap baris dan unsur selebihnya didarab dengan sepadan. pekali.

Berikut ialah kod JavaScript untuk menyelesaikan penentu:

function det(A) {

var n = A.length;
if (n === 1) {
    return A[0][0];
} else if (n === 2) {
    return A[0][0] * A[1][1] - A[0][1] * A[1][0];
} else {
    var sum = 0;
    for (var i = 0; i < n; i++) {
        var submatrix = [];
        for (var j = 1; j < n; j++) {
            submatrix.push(A[j].slice(0, i).concat(A[j].slice(i + 1)));
        }
        var sign = Math.pow(-1, i);
        var cofactor = sign * det(submatrix);
        sum += A[0][i] * cofactor;
    }
    return sum;
}

}

  1. Cari matriks bersebelahan daripada matriks

Matriks bersebelahan matriks (matriks adjugate) ialah hasil darab songsang matriks dan penentunya. Setiap elemen matriks bersebelahan ialah kofaktor algebra bagi matriks.

Contohnya, untuk matriks 3x3 berikut:

A = [1 2 3

 4 5 6
 7 8 9]

Matriks bersebelahannya ialah:

adj(A) = [ -3 6 -3

        6 -12  6
       -3  6 -3 ]

Untuk menyelesaikan matriks bersebelahan, anda boleh menggunakan kod JavaScript berikut:

fungsi adj(A) {

var n = A.length;
var adjA = [];
for (var i = 0; i < n; i++) {
    adjA[i] = [];
    for (var j = 0; j < n; j++) {
        var submatrix = [];
        for (var k = 0; k < n; k++) {
            if (k !== i) {
                submatrix.push(A[k].slice(0, j).concat(A[k].slice(j + 1)));
            }
        }
        var sign = Math.pow(-1, i + j);
        adjA[i][j] = sign * det(submatrix);
    }
}
return adjA;

}

  1. Mencari songsangan matriks

Untuk mencari songsangan matriks, anda perlu terlebih dahulu mencari matriks bersebelahan dan penentu matriks, dan kemudian mengikut formula A ^-1 = adj(A) / |A|, iaitu matriks Matriks songsang diperoleh dengan membahagikan matriks bersebelahan dengan penentunya.

Berikut ialah kod JavaScript untuk menyelesaikan matriks songsang:

fungsi songsang(A) {

var n = A.length;
var detA = det(A);
if (detA === 0) {
    console.log("Matrix is not invertible.");
    return null;
}
var adjA = adj(A);
var Ainv = [];
for (var i = 0; i < n; i++) {
    Ainv[i] = [];
    for (var j = 0; j < n; j++) {
        Ainv[i][j] = adjA[j][i] / detA;
    }
}
return Ainv;

}

  1. Kod ujian

Kami boleh mengesahkan ketepatan kod JavaScript di atas untuk menyelesaikan matriks songsang melalui kod ujian mudah:

var A = [[1, 2, 3], [4, 5, 6], [7, 8, 9]];
console.log("A = ");
console.log(A);

var Ainv = songsang(A) ;
console.log("Ainv = ");
console.log(Ainv);

var I = numeric.dot(A, Ainv);
console.log(" A * Ainv = ");
console.log(I);

Hasil output hendaklah seperti berikut:

A =
[ [ 1, 2, 3 ] ,
[ 4, 5, 6 ],
[ 7, 8, 9 ] ]
Ainv =
[ [ -0.5000000000000001, 1, -0.5 ],
[ 1, -🎜> , 1 ] ,
[ -0.5000000000000001, 1, -0.5 ] ]
A * Ainv =
[ [ 1, 0, 0 ],
[ 0, 0.9999,9999 [ 3.33066907387 54696e -16, 0, 1 ] ]

Seperti yang anda lihat, hasilnya sangat hampir dengan matriks identiti.

3. Ringkasan

Menyelesaikan matriks songsang ialah pengiraan matematik yang sangat penting. Sebagai bahasa pengaturcaraan yang popular, bahasa JavaScript boleh melaksanakan fungsi menyelesaikan matriks songsang dengan mudah. Artikel ini memperkenalkan kaedah khusus untuk menyelesaikan matriks songsang menggunakan bahasa JavaScript, termasuk mencari penentu, matriks bersebelahan dan matriks songsang matriks. Semoga artikel ini dapat membantu pembangun JavaScript yang perlu melakukan pengiraan matematik.

Atas ialah kandungan terperinci Anda boleh menggunakan JavaScript untuk mencari matriks songsang. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn