Cara memperbaiki di r: sistemnya persis tunggal


Kesalahan yang mungkin Anda temui di R adalah:

 Lapack routine dgesv: system is exactly singular: U[2,2] = 0

Kesalahan ini terjadi ketika Anda mencoba menggunakan fungsi solve() , namun matriks yang Anda kerjakan adalah matriks tunggal yang tidak memiliki invers matriks.

Tutorial ini menjelaskan cara mengatasi kesalahan ini dalam praktiknya.

Bagaimana cara mereproduksi kesalahan tersebut

Misalkan kita membuat matriks berikut di R:

 #create singular matrix
mat <- matrix(c(1, 1, 1, 1), ncol= 2 , nrow= 2 )

#view matrix
mast

     [,1] [,2]
[1,] 1 1
[2,] 1 1

Sekarang misalkan kita mencoba menggunakan fungsi solve() untuk menghitung invers matriks:

 #attempt to invert matrix
solve(mat)

Error in solve.default(mat): 
  Lapack routine dgesv: system is exactly singular: U[2,2] = 0

Kita mendapatkan error karena matriks yang kita buat tidak mempunyai matriks invers.

Catatan : Lihat halaman ini dari Wolfram MathWorld yang menunjukkan 10 contoh matriks berbeda yang tidak memiliki matriks invers.

Menurut definisinya, suatu matriks dikatakan tunggal jika mempunyai determinan nol.

Anda dapat menggunakan fungsi det() untuk menghitung determinan matriks tertentu sebelum mencoba membalikkannya:

 #calculate determinant of matrix
det(mat)

[1] 0

Penentu matriks kita adalah nol, yang menjelaskan mengapa kita mengalami kesalahan.

Bagaimana cara memperbaiki kesalahan tersebut

Satu-satunya cara untuk memperbaiki kesalahan ini adalah dengan membuat matriks yang tidak tunggal.

Misalnya, kita menggunakan fungsi solve() untuk membalikkan matriks berikut di R:

 #create matrix that is not singular
mat <- matrix(c(1, 7, 4, 2), ncol= 2 , nrow= 2 )

#view matrix
mast

     [,1] [,2]
[1,] 1 4
[2,] 7 2

#calculate determinant of matrix
det(mat)

[1] -26

#invert matrix
solve(mat)

            [,1] [,2]
[1,] -0.07692308 0.15384615
[2,] 0.26923077 -0.03846154

Kami tidak menerima kesalahan apa pun saat membalik matriks karena matriksnya tidak tunggal.

Sumber daya tambahan

Tutorial berikut menjelaskan cara memperbaiki kesalahan umum lainnya di R:

Cara memperbaikinya: kondisi memiliki panjang > 1 dan hanya elemen pertama yang akan digunakan
Cara memperbaiki: argumen non-numerik dari operator biner
Cara memperbaikinya: dim(X) harus mempunyai panjang positif
Cara memperbaiki: kesalahan dalam memilih argumen yang tidak digunakan

Tambahkan komentar

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *