ပြင်ဆင်နည်း- 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’ ကို ကိန်းပြည့်အဖြစ် အဓိပ္ပာယ်မဖွင့်နိုင်ပါ။

မှတ်ချက်တစ်ခုထည့်ပါ။

သင့် email လိပ်စာကို ဖော်ပြမည် မဟုတ်ပါ။ လိုအပ်သော ကွက်လပ်များကို * ဖြင့်မှတ်သားထားသည်