← Back to list

Matrix in SymPy

Sympy ဖြင့် matrix ပုစ္ဆာများကို ဖြေရှင်းခြင်း

MinSiThu · 2025-05-26 06:22 · 0 claps · 2.6 min read
#symbolic-computation #sympy #minsithu #burmese #technology
Open on Medium ↗

Matrix in SymPy

Sympy ဖြင့် matrix ပုစ္ဆာများကို ဖြေရှင်းခြင်း

ကျွန်တော်တို့ကြုံတွေ့ရတဲ့ linear algebra ဆိုင်ရာ ပြဿနာတွေဟာ အမျိုးမျိုးရှိပါတယ်။ တစ်ခါတစ်ရံမှာ ရိုးရှင်းတဲ့ ၂×၂ matrix တစ်ခုရဲ့ determinant ကို ရှာတာကနေစပြီး eigenvalues နဲ့ linear equations များ ဖြေရှင်းတဲ့အထိ ရှုပ်ထွေးနိုင်ပါတယ်။ ဒီပြဿနာတွေကို ဖြေရှင်းရတဲ့အခါ ကျောင်းသားတွေအနေနဲ့ ရိုးရိုး python program ရေးရတာ အချိန်ကြာတက်ပြီး အမှားအယွင်းလည်း တွေ့ရနိုင်ပါတယ်။ SymPy လို သင်္ကေတတွေသုံးပြီး တွက်ချက်နိုင်တဲ့ programming library က ဒီအခက်အခဲတွေကို ဖြေရှင်းရာမှာ အရမ်းအသုံးဝင်ပါတယ်။

Matrix ဆိုတာ ဘာလဲ?

အခြေခံအားဖြင့် matrix ဆိုတာ နံပါတ်တွေကို သေသပ်စွာ စီထားတဲ့ အတန်းလိုက်နဲ့ ကော်လံလိုက် စီထားတဲ့ ဇယားကွက်တစ်ခုဖြစ်ပါတယ်။ ဥပမာအားဖြင့် ၂×၂ matrix တစ်ခုမှာ အစိတ်အပိုင်း လေးခုပါဝင်ပြီး အတန်းနှစ်ခု၊ ကော်လံနှစ်ခုနဲ့ ဖွဲ့စည်းထားပါတယ်။ Matrix တွေဟာ လက်တွေ့မှာ ကွမ်တမ်မက္ကင်းနစ်၊ structure analysis၊ နဲ့ data science လိုမျိုး နယ်ပယ်တွေမှာ အရမ်းအသုံးဝင်ပါတယ်။

Matrix များ တည်ဆောက်ခြင်း

SymPy ထဲမှာ matrix တစ်ခုကို တည်ဆောက်ဖို့ Matrix class ကို အသုံးပြုပါတယ်။

from sympy import Matrix

# ၂×၂ matrix တစ်ခုဖန်တီးပါ
A = Matrix([[1, 2], [3, 4]])
print("Matrix A:")
print(A)

ရလဒ်ကတော့ အောက်ပါအတိုင်းပါ။

Matrix A:
Matrix([
[1, 2],
[3, 4]])

ဒီမှာ ကျွန်တော်တို့ ဖန်တီးလိုက်တဲ့ matrix က အတန်းနှစ်ခု၊ ကော်လံနှစ်ခုပါဝင်တဲ့ ၂×၂ matrix ဖြစ်ပါတယ်။ ပထမအတန်းမှာ 1 နဲ့ 2၊ ဒုတိယအတန်းမှာ 3 နဲ့ 4 ဆိုပြီး ပါဝင်ပါတယ်။

သင်္ကေတပုံစံ ဖန်တီးခြင်း

SymPy ရဲ့ အဓိကအားသားချက်တစ်ခုကတော့ ကိန်းဂဏန်းတွေကိုသာမက သင်္ကေတတွေကိုပါ အသုံးပြုနိုင်ခြင်းပဲ ဖြစ်ပါတယ်။ ဥပမာအနေနဲ့ a, b, c, d ဆိုတဲ့ သင်္ကေတတွေကိုသုံးပြီး matrix တစ်ခုကို ဖန်တီးကြည့်ရအောင်။

from sympy import symbols, Matrix

# ပထမဆုံး သင်္ကေတတွေကို သတ်မှတ်ပါ
a, b, c, d = symbols('a b c d')

# သင်္ကေတတွေသုံးပြီး matrix တစ်ခုဖန်တီးပါ
M = Matrix([[a, b], [c, d]])
print("Symbolic Matrix:")
print(M)

ရလဒ်ကတော့ ဒီလိုပါ။

Symbolic Matrix:
Matrix([
[a, b],
[c, d]])

Matrix လုပ်ငန်းစဉ်များ

Matrix တွေကို ပေါင်းခြင်း၊ နှုတ်ခြင်း၊ မြှောက်ခြင်းစတဲ့ အခြေခံလုပ်ငန်းစဉ်တွေ လုပ်နိုင်ပါတယ်။ ကြည့်ကြရအောင်။

B = Matrix([[5, 6], [7, 8]])

# Matrix ပေါင်းခြင်း
C = A + B
print("A + B:")
print(C)

# Matrix မြှောက်ခြင်း
D = A * B
print("A * B:")
print(D)

code ကို run လိုက်ရင်

A + B:
Matrix([
[ 6,  8],
[10, 12]])

A * B:
Matrix([
[19, 22],
[43, 50]])

Matrix ပေါင်းခြင်းက ရိုးရှင်းပါတယ်။ တူညီတဲ့အတန်းနဲ့တိုင်(ကော်လံ)မှာရှိတဲ့ တန်ဖိုးတွေကို ပေါင်းလိုက်တာပါ။ ဒါပေမယ့် matrix မြှောက်ခြင်းကတော့ နည်းနည်းပိုရှုပ်ထွေးပါတယ်။ ဥပမာ၊ (1,1) နေရာမှာရှိတဲ့ 19 ဆိုတဲ့ ရလဒ်ကို ရဖို့ ကျွန်တော်တို့ဟာ ပထမ matrix ရဲ့ ပထမအတန်း (1,2) နဲ့ ဒုတိယ matrix ရဲ့ ပထမကော်လံ (5,7) ကို အောက်ပါအတိုင်း မြှောက်ပြီး ပေါင်းရပါတယ်။

1 × 5 + 2 × 7 = 5 + 14 = 19

Matrix မြှောက်ခြင်းဟာ လက်တွေ့မှာ ရှုပ်ထွေးတဲ့ တွက်ချက်မှုတွေပါဝင်လာရင် SymPy လိုမျိုး library တွေက အလွန်အသုံးဝင်ပါတယ်။

Determinant — Matrix ရဲ့ အဓိက ဝိသေသလက္ခဏာ

Determinant ဆိုတာ matrix တစ်ခုရဲ့ အရေးကြီးတဲ့ ဂုဏ်သတ္တိတစ်ခုဖြစ်ပြီး ဒီနံပါတ်က matrix ရဲ့ inverse ရှိမရှိ၊ linear equation system တစ်ခုမှာ တစ်ခုတည်းသော အဖြေရှိမရှိ စတာတွေကို ပြောပြနိုင်ပါတယ်။ ၂×၂ matrix တစ်ခုအတွက် determinant ကို ရှာကြည့်ရအောင်။

det_A = A.det()
print("det(A):", det_A)

ရလဒ်

det(A): -2

၂×၂ matrix တစ်ခုရဲ့ determinant ကို လက်နဲ့ဘယ်လို တွက်လဲဆိုရင် ဒီလိုတွက်ပါတယ်: (1×4) — (2×3) = 4–6 = -2

ကျွန်တော်တို့ဟာ သင်္ကေတတွေပါတဲ့ matrix တစ်ခုရဲ့ determinant ကိုလည်း ရှာနိုင်ပါတယ်။

det_M = M.det()
print("det(M):", det_M)

အဖြေကတော့

det(M): a*d - b*c

ဒီဟာက ၂×၂ matrix တစ်ခုရဲ့ determinant အတွက် အထွေထွေပုံသေနည်းကို ပြတာဖြစ်ပါတယ်။

Inverse Matrix — ညီမျှခြင်းတွေဖြေရှင်းရာမှာ အရေးကြီးတဲ့စနစ်

Matrix တစ်ခုရဲ့ inverse ဆိုတာ အဲဒီ matrix နဲ့မြှောက်လိုက်တဲ့အခါ identity matrix ရတဲ့ matrix ဖြစ်ပါတယ်။ Linear equation တွေဖြေရှင်းရာမှာ inverse matrix က အလွန်အသုံးဝင်ပါတယ်။ Matrix A ရဲ့ inverse ကို ကြည့်ကြပါမယ်။

A_inv = A.inv()
print("Inverse of A:")
print(A_inv)

Inverse matrix ကတော့

Inverse of A:
Matrix([
[-2,  1],
[3/2, -1/2]])

SymPy ရဲ့ အားသာချက်တစ်ခုကတော့ ဒဿမကိန်းအစား 3/2 လိုမျိုး အပိုင်းကိန်းအတိအကျကို ပြတာပါ။ ဒါက တိကျမှုကို ထိန်းသိမ်းပေးပါတယ်။ ဒါကိုလည်း အရင်ဆောင်းပါးတွေမှာ ဖော်ပြခဲ့ပြီးဖြစ်ပါတယ်။

Eigenvalues နဲ့ Eigenvectors — ရှုပ်ထွေးတဲ့စနစ်တွေကို နားလည်ခြင်း

Eigenvalues နဲ့ eigenvectors တွေဟာ quantum mechanics, machine learning၊ structure stability လိုမျိုး နယ်ပယ်တွေမှာ အရေးကြီးပါတယ်။ ဒါတွေက matrix တစ်ခုရဲ့ အဓိကသဘောသဘာဝကို ဖော်ပြပေးပါတယ်။

Eigenvector ဆိုတာ matrix တစ်ခုနဲ့ မြှောက်လိုက်တဲ့အခါ လားရာအတိုင်းပဲ ပြောင်းသွားပြီး အရှည်ပဲ ပြောင်းသွားတဲ့ vector တစ်ခုပဲ ဖြစ်ပါတယ်။

Eigenvector တစ်ခုကို matrix တစ်ခုနဲ့ မြှောက်တဲ့အခါ ရရှိတဲ့တန်ဖိုးက အဲ့ဒီ eigenvector နဲ့ eigenvalue နဲ့ မြှောက်ထားတဲ့ vector ကိုပဲ ပြန်ရစေတဲ့ အထူး vector တစ်ခု ဖြစ်ပါတယ်။ သင်္ချာအရ ဆိုရင် A(v) = λv ဖြစ်ပါတယ်။ ဒီနေရာမှာ A က matrix, v က eigenvector, λ က eigenvalue ဖြစ်ပါတယ်။

ဥပမာတစ်ခုကို ကြည့်ကြပါစို့။

E = Matrix([[6, 2], [2, 3]])
eigen_data = E.eigenvects()

print("Eigenvalues and Eigenvectors:")
for val in eigen_data:
    print("Eigenvalue:", val[0])
    print("Multiplicity:", val[1])
    print("Eigenvector:", val[2][0])

ရလဒ်ကတော့

Eigenvalues and Eigenvectors:
Eigenvalue: 7
Multiplicity: 1
Eigenvector: Matrix([[2], [1]])

Eigenvalue: 2
Multiplicity: 1
Eigenvector: Matrix([[-1], [1]])

ဒီ matrix မှာ eigenvalues နှစ်ခု ရှိပါတယ် — 7 နဲ့ 2 ပါ။ 7 ရဲ့ eigenvector က [2, 1] ဖြစ်ပြီး 2 ရဲ့ eigenvector က [-1, 1] ဖြစ်ပါတယ်။ ဒါကို စစ်ဆေးဖို့ E · [2, 1] = 7 · [2, 1] ဖြစ်မဖြစ် တွက်ကြည့်နိုင်ပါတယ်။

ကိန်းဂဏန်းတွေအစား သင်္ကေတတွေကို အသုံးပြုခြင်းက matrix တွေရဲ့ အထွေထွေဂုဏ်သတ္တိတွေကို လေ့လာရာမှာ အရမ်းအသုံးဝင်ပြီး၊ ဒီနည်းအားဖြင့် ကျွန်တော်တို့ဟာ ကိန်းဂဏန်းတစ်ခုချင်းစီအတွက် မဟုတ်ဘဲ၊ matrix တစ်ခုလုံးရဲ့ အပြုအမူကို ယေဘုယျပုံစံနဲ့ နားလည်နိုင်ပါတယ်။


메타데이터
post_id
76fd64492f5d
slug
matrix-in-sympy-76fd64492f5d
url
https://medium.com/@minsithu_53495/matrix-in-sympy-76fd64492f5d
canonical_url
https://medium.com/@minsithu_53495/matrix-in-sympy-76fd64492f5d
author_url
https://medium.com/@minsithu_53495
status
ok
fetched_at
2026-06-09 15:37:30