menusearch
javapro.ir

جلسه هفتم | ماتریس ها در برنامه نویسی متلب

جستجو
پنج شنبه ۱۱ آذر ۱۴۰۰ | ۰:۴۹:۱
۱۴۰۰/۸/۱۶ یکشنبه
(2)
(0)
جلسه هفتم | ماتریس ها در برنامه نویسی متلب
جلسه هفتم | ماتریس ها در برنامه نویسی متلب

فهرست جلسات مینی دوره متلب

جلسه اول | آموزش تصویری نصب برنامه متلب در کامپیوتر

جلسه دوم | آموزش کار با برنامه متلب

جلسه سوم | آموزش کار با توابع ریاضی ساده در متلب

جلسه چهارم | آموزش متغیرها در برنامه نویسی متلب

جلسه پنجم | معرفی انواع داده ها در متلب

جلسه ششم | آرایه ها در برنامه نویسی متلب

جلسه هفتم | ماتریس ها در برنامه نویسی متلب

جلسه هشتم | ادامه ماتریس ها در برنامه نویسی متلب

جلسه نهم | رشته ها در برنامه نویسی متلب

جلسه دهم | آرایه سلول ها در برنامه نویسی متلب

جلسه یازدهم | اسکریپت ها در برنامه نویسی متلب

جلسه دوازدهم | آرایه‌‌‌‌‌های چندبعدی در متلب

جلسه سیزدهم | حلقه ها و دستورات شرطی در متلب

جلسه چهاردهم | ساختارها(structures) در متلب

جلسه پانزدهم | توابع در متلب

جلسه شانزدهم | رسم نمودار دوبعدی در متلب

جلسه هفدهم | ادامه رسم نمودار دوبعدی در متلب

جلسه هجدهم | رسم نمودار سه بعدی در متلب

جلسه نوزدهم | محاسبات نمادین در متلب

جلسه بیستم(آخر) | ادامه محاسبات نمادین در متلب

 

مینی دوره آموزش رایگان برنامه نویسی متلب

 

 

آموزش برنامه نویسی متلب
موضوع:ماتریس ها در برنامه نویسی متلب
جلسه: هفتم
مدرس : مدرسین جاواپرو
متلب را ساده،آسان و شیرین بنوشید!!!

 

در جلسه ششم آموزش برنامه نویسی متلب کار با آرایه ها را شروع کردیم، و گفتیم که آرایه ها همان بردارها یا ماتریس‌‌‌‌های یک بعدی هستند. بنابراین دستورات گفته شده در جلسه قبل برای ماتریس ها نیز صدق می‌کند ولی یک سری تفاوت هایی نیز وجود داشته که در یک جلسه جداگانه قصد داریم به آن بپردازیم.
به دو شکل می‌توان یک ماتریس را مستقیما تعریف نمود:

 

>>m = [1 2 3;4 5 6;7 8 9]
m =
    1    2    3
    4    5    6
    7    8    9
>>m =[1 2 3
4 5 6
7 8 9]
m =
    1    2    3
    4    5    6
    7    8    9


حالت اول با استفاده از ";" و حالت دوم با فشردن Enter. در حالت دوم نیز می‌توان با ایجاد چند tab درایه‌‌‌‌های هر ستون را زیر هم قرار داد، این کار صرفا به خوانایی و زیبایی دستور کمک می‌کند و در هر حالت تفاوتی در نتیجه ایجاد نمی‌کند:

 

>>m =[1 2 3
    4 5 6
    7 8 9]
m =
    1    2    3
    4    5    6
    7    8    9


بین درایه ها نیز می‌توان به جای فاصله از "," استفاده کرد.
ترانهاده ی ماتریس m نیز بدین شکل خواهد بود:

 

>>m'
ans =
    1    4    7
    2    5    8
    3    6    9


برای جمع، تفریق، ضرب، تقسیم و حتی توان درایه ای(نه ماتریسی که در نظریه ماتریس ها مطرح می-شود) از عملگر‌‌‌‌های +.، -.، *.، /. و ^. به ترتیب استفاده می‌شود.
مثال:

 

>>m = [1,2,3;1,2,3;1,2,3];
>>n = [1,0,0;0,1,0;0,0,1];
>>m,n
m =
    1    2    3
    1    2    3
    1    2    3
n =
    1    0    0
    0    1    0
    0    0    1
>>m .* n
ans =
    1    0    0
    0    2    0
    0    0    3
>>m .^ 2
ans =
    1    4    9
    1    4    9
    1    4    9


در این حالت باید ابعاد دو ماتریس دقیقاً برابر باشند. اما برای ضرب و تقسیم و توان ماتریسی نیازی به "." قبل از عملگر نیست. به شرط درست بودن ابعاد ماتریس ها این عملیات قابل انجام است.


مثال:

 

>>m = [1 2 3;4 5 6]
m =
    1    2    3
    4    5    6
>>n = [1 1;2 2;3 3]
n =
    1    1
    2    2
    3    3
>>m * n
ans =
  14  14
  32  32
>>n * m
ans =
    5    7    9
  10  14  18
  15  21  27
>>m = [1,2,3;1,2,3;1,2,3];
>>m * m
ans =
    6  12  18
    6  12  18
    6  12  18
>>m ^ 2
ans =
    6  12  18
    6  12  18
    6  12  18

 

  • ماتریس وارون و دترمینان یک ماتریس مربعی از طریق inv() و det() به دست می‌آیند.

 


مثال: اگر A و B به صورت زیر تعریف شده باشد،معادله Ax = B را حل نمایید.

 

>>A =
    4    1    4
    1    2    1
    1    4    2
>>B =
    2    1    1
    1    1    4
    3    3    4


جواب:


برای حل معادله باید دو طرف را در A-1 ضرب نماییم. پس x = A-1B. بنابراین ابتدا معکوس A را به دست آورده سپس در B ضرب می‌کنیم. بهتر است قبل از انجام اینکار دترمینان ماتریس A را حساب کرده تا مطمئن شویم که مخالف صفر بوده و در نتیجه A معکوس پذیر است:

 

>>det(A) == 0
ans =
    0
پس داریم:
>>inv(A)*B
ans =
  -1.0000  -1.0000  4.0000
  0.2857  0.4286  2.1429
  1.4286  1.1429  -4.2857


- سه ماتریس []، ones(m,n) و zeros(m,n) به ترتیب ماتریس‌‌‌‌های تهی، یکه با ابعاد m*n و صفر با ابعاد m*n هستند که به شکل زیر تعریف می‌گردند:

 

>>ones(2,3)
ans =
    1    1    1
    1    1    1
>>zeros(3,3)
ans =
    0    0    0
    0    0    0
    0    0    0


مطالب گفته شده پیرامون استخراج آرایه در مورد ماتریس ها نیز صادق است. ماتریس زیر را در نظر بگیرید:

 

m =
    1    2    3
    4    5    6
    7    8    9


اگر شمارش درایه ها را از ستون اول به صورت ستونی انجام دهیم درایه پنجم برابر خواهدبود با:

 

m(4)
ans =
    2


برای دسترسی به درایه ها می‌توان اندیس مؤلفه‌‌‌‌های آن را نیز وارد کرد:

 

m(2,2)
ans =
    5
m(end)
ans =
    9


مثال‌‌‌‌های زیر را با دقت بررسی کنید. دستورات گفته شده در جلسه قبل این بار با ماتریس فوق بررسی شده اند.

 

>>m(:)
ans =
    1
    4
    7
    2
    5
    8
    3
    6
    9
>>m(1:3)
ans =
    1    4    7
>>m(1,2:3)
ans =
    2    3
>>m(2:3,2:3)
ans =
    5    6
    8    9
>>m([1 3],[1 3])
ans =
    1    3
    7   
9


تمرین: در مثال فوق جای سطر دوم و اول را در ماتریس m تعویض کنید.


جواب:

 

>>m([2 1 3],[1 2 3])
ans =
    4    5    6
    1    2    3
    7    8    9


آرایه اول، مربوط به اندیس سطرها و آرایه دوم اندیس ستون هاست.
برای استخراج ستون دوم علاوه بر روش‌‌‌‌های گفته شده بدین ترتیب نیز می‌توان عمل کرد:

 

>>m(:,2)
ans =
    2
    5
    8


نکته: علامت ":" معادل 1:end است.
دستور find در ماتریس ها به دوشکل قابل استفاده است. حالت اول مشابه قبل:

 

>>find(m>=5)'
ans =
    3    5    6    8    9
>>m(ans)
ans =
    7    5    8    6    9


توجه: از "’" برای تبدیل به بردار سطری استفاده شده است.
ابتدا اندیس ها و سپس درایه‌‌‌‌های مربوط به هر اندیس را استخراج کردیم.
اما حالت دوم، چنانچه اندیس‌‌‌‌های سطر و ستون مؤلفه‌‌‌‌های مربوطه را بخواهیم بدین شکل عمل می‌کنیم:

 


>>[a b] = find(m>=5)
a =
    3
    2
    3
    2
    3
b =
    1
    2
    2
    3
    3


-دستور diag:

 

>>diag(m)
ans =
    1
    5
    9


این دستور اگر یک ماتریس را در آرگومان بگیرد عناصر قطر اصلی را برمی گرداند.(برای ماتریس‌‌‌‌های مستطیلی نیز امتحان کنید.)
اما چنانچه یک بردار را در آرگومان بگیرد یک ماتریس قطری(ماتریسی که در آن همه درایه ها به جز قطر اصلی صفر هستند) با درایه‌‌‌‌های بردار داده شده برمی گرداند:

 

>>diag(ans)
ans =
    1    0    0
    0    5    0
    0    0    9


-دستور sum:
مجموع عناصر ستون‌‌‌‌های یک ماتریس را برمی گرداند. اگر آرگومان آن یک بردار باشد، مجموع مؤلفه‌‌‌‌های آن بردار را می‌دهد:

 

>>sum(m)
ans =
  12  15  18
>>d = diag(m);
>>sum(d)
ans =
 
15


واضح است که برای به دست آوردن مجموع کل درایه‌‌‌‌های ماتریس می‌توان نوشت:

 

>>sum( sum(m) )
ans =
  45


-ماتریس جادویی:
ماتریسی مربعی است که مجموع سطرها یا ستون‌‌‌‌های آن یکسان خواهد بود. برای مثال برای حالت 3 در 3:

 

>>magic(3)
ans =
    8    1    6
    3    5    7
    4    9    2
>>sum(ans)
ans =
  15  15  15


مجموع عناصر قطر اصلی این ماتریس نیز برابر با 15 است:

 

>>sum( diag( magic(3) ) )
ans =
 
15

 

پیروز و موفق باشید

 


ادامه حیات سایت جاواپرو به حمایت مالی (دونیت) از طرف شما کاربر عزیز بستگی دارد....


 

جلسه هفتم | ماتریس ها در برنامه نویسی متلب

 

فرمت:PDF (لطفا در صورت خرابی لینک دانلود گزارش بدید که لینک اصلاح کنیم)

 


لینک دانلود آموزش رایگان اندروید

لینک دانلود

نظرات کاربران
*نام و نام خانوادگی
* پست الکترونیک
* متن پیام

بستن
*نام و نام خانوادگی
* پست الکترونیک
* متن پیام

0 نظر