Mavzu: python tilida matematik hisoblashlarni realizatsiya qilish



Download 48,61 Kb.
bet6/7
Sana05.07.2022
Hajmi48,61 Kb.
#740431
1   2   3   4   5   6   7
Bog'liq
3-mavzu

Matritsali obyektlar. Hisoblash amaliyotida N o‘lchamli massivlar o‘rniga ko‘pincha vektorlar va matritsalar (bir o‘lchovli va ikki o‘lchovli massivlar) bilan ishlash qulayroqdir. Xususan, dasturlashda massivlar bilan elementli amallar o‘rniga matritsali amallardan foydalanish mumkin. Matritsa turlari bilan ishlash MATLAB ilmiy hisoblash tizimining hisoblash asosi hisoblanadi.
NumPy to'plamida N o'lchovli massivning umumiy turiga (ndarray) qo'shimcha ravishda vektor, matritsa va tenzor ob'ektlarining kichik sinflari mavjud. Bizni NumPy matritsa ob'ektlari (matritsalari) chiziqli algebra masalalarini yechishda foydalanish nuqtai nazaridan qiziqtiradi. Bu yerda ndarray bilan solishtirganda matritsadan foydalanishning o'ziga xos xususiyatlarini qayd etamiz. Ko'rinib turibdiki, bir tomondan, ma'lumotlar umumiy turi sifatida massivlar bilan ishlash ko'proq imkoniyatlarni beradi. Boshqa tomondan, matritsali masalalar ko'pincha ilovalar uchun o'zini-o'zi ta'minlaydi va umumiy massivlar bilan ishlash uchun keng imkoniyatlarga ehtiyoj yo'q.
Matritsa ob'ektlari uchun satrni indekslash mumkin, matritsa elementlari MATLAB sintaksisiga ko'ra satr va ustun uchun ajratuvchi sifatida bo'sh joy bilan belgilanadi.
import numpy as np
a = np.mat('1 2 3; 4 5 6')
b = np.mat([[1, 2, 3], [4, 5, 6]])
print(type(a), 'а:\n', a)
print(type(b), 'b:\n', b)
Natija:
а:
[[1 2 3]
[4 5 6]]
b:
[[1 2 3]
[4 5 6]]

Chiziqli algebraning asosiy amallari matritsalarni ko'paytirishdir (maxsus holatda matritsalarni vektor bo`yicha va vektorni vektor bo'yicha). NumPy da ndarray va matritsa ob'ektlaridan foydalanilganda, matritsalarni ko'paytirish sintaksisi boshqacha. ndarray da * belgisi element bo‘yicha ko‘paytirishga to‘g‘ri keladi, matritsani ko‘paytirish uchun dot() funksiyasi qo‘llaniladi. matrix da * belgisi matritsalarni ko‘paytirish uchun, multiply() funksiyasi esa elementi bo‘yicha ko‘paytirish uchun ishlatiladi.


import numpy as np
a = np.array([[1, 2], [3, 4]])
b = np.array([[5, 6], [7, 8]])
print('ndarray - a*b:\n', a*b)
print('ndarray - dot(a,b):\n', np.dot(a, b))
c = np.mat(a)
d = np.mat(b)
print('matrix - c*d:\n', c*d)
print('matrix - multiply(c,d):\n', np.multiply(c, d))
Natija:
ndarray - a*b:
[[ 5 12]
[21 32]]
ndarray - dot(a,b):
[[19 22]
[43 50]]
matrix - c*d:
[[19 22]
[43 50]]
matrix - multiply(c,d):
[[ 5 12]
[21 32]]

Bu misol ndarray obyektlarini matritsaga aylantirish uchun mat() funksiyasidan foydalanadi. U massivlarni aniqlash uchun zeros(), one(), eye(), linspace() kabi funksiyalar yordamida matritsalarni aniqlashda foydalanish mumkin.


Massivlar bilan ishlashda transpozitsiyalangan matritsani olish uchun (satrlarni berilgan matritsa ustunlari bilan almashtirish) .T atributidan foydalanish qulay.
Matritsa ob'ektlari uchun quyidagi atributlar ham qo'llaniladi:
• .H – kompleks bog`langan transpozitsiya;
• .I – teskari matritsa;
• .A – matritsani ikki o‘lchovli massivga aylantirish,
import numpy as np
a = np.mat(np.linspace(1, 4, 4).reshape(2,2))
print('linspace - reshape -> a:\n', a)
print('a: ', type(a))
b = a.I
print('a.T:\n', a.T)
print('a.I:\n', b)
print('a*a.I:\n', a*b)
print('a.A: ', type(a.A))
Natija:
linspace - reshape -> a:
[[1. 2.]
[3. 4.]]
a:
a.T:
[[1. 3.]
[2. 4.]]
a.I:
[[-2. 1. ]
[ 1.5 -0.5]]
a*a.I:
[[1.0000000e+00 0.0000000e+00]
[8.8817842e-16 1.0000000e+00]]
a.A:



Download 48,61 Kb.

Do'stlaringiz bilan baham:
1   2   3   4   5   6   7




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish