ပြင်ဆင်နည်း- numpy.linalg.linalgerror- အနည်းကိန်း matrix
Python တွင် သင်ကြုံတွေ့ရသော အမှားတစ်ခုမှာ-
numpy.linalg.LinAlgError: Singular matrix
အနည်းကိန်း matrix ကို ပြောင်းပြန်လှန်ရန် သင်ကြိုးစားသောအခါတွင် ဤအမှားသည် အဓိပ္ပါယ်ဖွင့်ဆိုချက်အားဖြင့် သုညဖြစ်ပြီး ပြောင်းပြန်မရနိုင်သည့် matrix ဖြစ်သည်။
ဤသင်ခန်းစာတွင် ဤအမှားကို လက်တွေ့ဖြေရှင်းနည်းကို ရှင်းပြထားသည်။
အမှားကို ဘယ်လိုပြန်ထုတ်မလဲ။
NumPy ကို အသုံးပြု၍ အောက်ပါ matrix ကို ဖန်တီးမည်ဆိုပါစို့။
import numpy as np
#create 2x2 matrix
my_matrix = np. array ([[1., 1.], [1., 1.]])
#display matrix
print (my_matrix)
[[1. 1.]
[1. 1.]]
ယခု ကျွန်ုပ်တို့သည် matrix ၏ပြောင်းပြန်ကိုတွက်ချက်ရန် NumPy ၏ inv() function ကိုအသုံးပြုရန်ကြိုးစားသည်ဆိုပါစို့။
from numpy import inv
#attempt to invert matrix
inv(my_matrix)
numpy.linalg.LinAlgError: Singular matrix
ကျွန်ုပ်တို့ဖန်တီးထားသော matrix သည် ပြောင်းပြန် matrix မပါသောကြောင့် အမှားအယွင်းတစ်ခုကို လက်ခံရရှိပါသည်။
မှတ်ချက် – ပြောင်းပြန်မက်ထရစ်မပါသော မတူညီသော matrices 10 ခုကိုပြသထားသည့် Wolfram MathWorld မှ ဤစာမျက်နှာကို ကြည့်ရှုပါ။
အဓိပ္ပါယ်အားဖြင့်၊ matrix သည် အနည်းကိန်းဖြစ်ပြီး ၎င်းတွင် သုညအဆုံးအဖြတ်ပါရှိလျှင် ပြောင်းပြန်လှန်၍မရပါ။
ပြောင်းပြန်လှန်ရန် မကြိုးစားမီ ပေးထားသော matrix ၏ အဆုံးအဖြတ်ကို တွက်ချက်ရန် NumPy ၏ det() လုပ်ဆောင်ချက်ကို သင်အသုံးပြုနိုင်သည်-
from numpy import det
#calculate determinant of matrix
det(my_matrix)
0.0
ကျွန်ုပ်တို့၏ matrix ၏ အဆုံးအဖြတ်သည် သုညဖြစ်ပြီး ၎င်းသည် အမှားတစ်ခုကြုံတွေ့ရကြောင်း ရှင်းပြသည်။
အမှားကိုဘယ်လိုပြင်မလဲ။
ဤ error ကိုဖြေရှင်းရန် တစ်ခုတည်းသောနည်းလမ်းမှာ အနည်းကိန်းမဟုတ်သော matrix တစ်ခုကို ဖန်တီးရန်ဖြစ်သည်။
ဥပမာအားဖြင့်၊ ကျွန်ုပ်တို့သည် အောက်ပါ matrix ကို ပြောင်းပြန်လှန်ရန် inv() လုပ်ဆောင်ချက်ကို အသုံးပြုသည်ဆိုပါစို့။
import numpy as np
from numpy. linalg import inv, det
#create 2x2 matrix that is not singular
my_matrix = np. array ([[1., 7.], [4., 2.]])
#display matrix
print (my_matrix)
[[1. 7.]
[4. 2.]]
#calculate determinant of matrix
print (det(my_matrix))
-25.9999999993
#calculate inverse of matrix
print (inv(my_matrix))
[[-0.07692308 0.26923077]
[0.15384615 -0.03846154]]
matrix သည် အနည်းကိန်းမဟုတ်သောကြောင့် matrix ကို ပြောင်းပြန်လှန်သည့်အခါ အမှားအယွင်းများ မရရှိပါ။
ထပ်လောင်းအရင်းအမြစ်များ
အောက်ဖော်ပြပါ သင်ခန်းစာများသည် Python ရှိ အခြားသော ဘုံအမှားများကို မည်သို့ပြင်ဆင်ရမည်ကို ရှင်းပြသည်-
ပြင်နည်း- Object ‘numpy.float64’ ကို ခေါ်ဆို၍မရပါ။
ပြင်နည်း- Object ‘numpy.ndarray’ ကို ခေါ်ဆို၍မရပါ။
ပြင်နည်း- အရာဝထ္ထု ‘numpy.float64’ ကို ကိန်းပြည့်အဖြစ် အဓိပ္ပာယ်မဖွင့်နိုင်ပါ။