در این آموزش با مثال و تمرین نحوه محاسبه معکوس ماتریس (inverse) رو به کمک دستور numpy.linalg.inv پایتون آموزش میدیم! و همینطور که میدونید معکوس ماتریس یکی از موارد پرکاربر در جبرخطی و ریاضیات است!
قطعه کد زیر رو در نظر بگیرید، تا بعدش خط به خط توضیح بدم!
import numpy as np a=np.array([ [1,2], [3,4] ]) b=np.linalg.inv(a) print(b)
در خط اول اومدیم پکیج numpy رو با نام مستعار np وارد برنامه کردیم! [چون این معکوس تابع در این پکیج numpy وجود داره، برای همین مجبوریم این پکیج رو بیاریم توی برنامه تا ازش استفاده کنیم!]
شاید بپرسید حالا چرا نام مستعار؟! چون من حوصله ندارم که نام طوووووولانی numpy رو تایپ کنم! برای همین یه اسم کوچولو موچولو مثل np براش در نظر میگیرم که صدا زدنش در طوووول برنامه ساده و خلاصهتر باشه! دقیقاً مثل اینکه بعضی از افراد به اسم “سیاوش” میگن “سیا”! [هرچند کار اشتباهی میکنن!]
در خط 2 تا 5 یک آرایه دو بعدی (ماتریس) تعریف کردیم! اگر نمیدونید آرایه چیست و این چیز میزایی که توی خطوط 2 تا 5 نوشتیم چیست، یعنی باید مراجعه کنید به مطلب زیر!
آموزش ساخت آرایه در numpy پایتون
در خط یکی مونده به آخر، داریم از پکیج numpy (یادآوری میکنم که اووون np اسم مستعار numpy بود دیگه!) و زیربخش linalg (مخفف Linear Algebra به معنی جبر خطی است!) تابع inv (که برای محاسبه inverse یا معکوس یک ماتریس استفاده میشه!) رو استفاده میکنیم! و به این تابع میگیم شما لطف کن معکوس ماتریس a رو محاسبه کن و خروجیش رو بریز توی متغیری به اسم b !
حتی توضیح خط آخر هم زشته! ولی با این وجود توضیح میدم! در خط آخر هم که داریم همووون b رو چاپ میکنیم (مقدارش رو)!
خروجی:
[[-2. 1. ]
[ 1.5 -0.5]]
برای اینکه تمرین بیشتر بکنیم، بذارید یه چیزی رو از ریاضیات یادآوری کنم و بعد بریم سراغ کدنویسیش!
یادآوری: ضرب «یک ماتریس» در «معکوس خودش» یک ماتریس همانی را میدهد!
حالا الان احتمالاً دارید میپرسید اصلاً ماتریس همانی چی هست؟!
یادآوری: [به بیان خودمونی:] ماتریس همانی یک ماتریسی است که روی قطر اصلیش 1 و بقیه عناصرش صفر است!
خب بیاید همین که ضرب یک ماتریس در معکوسش میشه همانی رو در پایتون چک کنیم!
فقط برای اینکه دوباره نویسی نشه! همون قطعه کد بالا رو در نظر بگیرید، با این تفاوت که بجای خط آخرش، خط زیر رو جایگزین کنید! همین!
print(a.dot(b))
و یادآوری کنم دستور dot برای آرایههای دو بعدی (یعنی ماتریس) معنی ضرب ماتریسی میده!
یعنی عملاً داریم ضرب ماتریسی a و b رو حساب میکنیم!
خروجی:
[[1.00000000e+00 1.11022302e-16]
[0.00000000e+00 1.00000000e+00]]
که میبینید دقیقاً روی قطر اصلی (یعنی درایههای 1و1 و 2و2) همگی یک است! و سایر جاها صفر!
شاید اعتراض کنید که: اِع! چرا درایه 1و2 1 هست! ولی دارید اشتباه میکنید اون هم صفر است! یادتون نره که در ماشین حساب و تمام زبووونهای برنامه نویسی، این موارد با محاسبات عددی عددی حل میشه! و اووون e-16 یعنی 10 به توان منفیِ16 که خب تقریباً صفر است دیگه! [بازهم تاکید میکنم در ماشین حساب و زبان های برنامه نویسی این ها رو به صورت محاسبات عددی حساب میکنن و معمولاً این تقریبها [خصوصاً در مورد 0] رو زیاد میبینید!]
امیدوارم این مطلب هم براتون مفید بوده باشه! لطفاً نقد، نظر و پیشنهاداتتون رو از طریق بخش نظرات برامووون بفرستید! ممنون از همگی!
آموزش محاسبه دترمینان یک ماتریس در پایتون !
محاسبه جمع و تفریق و ترانهاده ماتریس در پایتون !
آموزش محاسبه ضرب ماتریسی و ضرب درایه درایه دو ماتریس در پایتون !
آموزش محاسبه مقادیر ویژه و بردارهای ویژه یک ماتریس
آموزش تابع ones و zeros در numpy پایتون !
با این دوتا دستور ones و zeros میتونید ماتریس های مختلفی، با ابعاد مختلفی بسازید که درایههاشون صفر یا یک است!
تعداد دیدگاه | 8 |
تعداد بازدید | 10.3K |
تاریخ انتشار | 02/12/2019 |
تاریخ بروزرسانی | 02/12/2019 |
نویسنده | گروه آموزشی کولاک |