ورود ثبت

ورود به بخش کاربری

نام کاربری *
رمز عبور *
مرا به خاطر بسپار
    جمعه, 01 دی 1396 ساعت 03:46

    جلسه پنجم - معرفی ماتریس ها در Matlab

    نوشته شده توسط
     

    مقدمه ای برای تعریف و کار با ماتریسها در این مبحث ارائه خواهد شد. فرض بر این است که شما با ماتریس ها در ریاضیات آشنا هستید و اصول اولیه نحوه استفاده از MATLAB را می دانید حال به تعریف ماتریس  خواهیم پرداخت. یک ماتریس شبیه به یک مجموعه بردار (Vectors) است (به آموزش نحوه معرفی بردار ها در Matlab مراجعه نمایید). برای تعریف یک ماتریس، شما می توانید آن را مانند یک ستون از بردارهای سطری در نظر بگیرید:

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

    A =

         1     2     3

         3     4     5

         6     7     8

    و یا شما همچنین می توانید آن را مانند یک ردیف از بردارهای ستونی در نظر بگیرید:

    >> B = [ [1 2 3]' [2 4 7]' [3 5 8]']

    B =

         1     2     3

         2     4     5

         3     7     8

    جمع و ضرب ماتریس بردار را می توان به راحتی انجام داد. اما شما باید مراقب باشید تا ماتریس ها و بردارهای شما اندازه مناسب داشته باشند تا با پیغام خطا مواجه نشوید!

    >> v = [0:2:8] v =      0     2     4     6     8 

    >> A*v(1:3)??? Error using ==> *Inner matrix dimensions must agree.

     >> A*v(1:3)' ans =     16    28    46

    شما می توانید با بخش های مختلف یک ماتریس کار کنید درست همانطور که با بردارها کار می­کردید. کافیست مراقب خطاها باشید. در اینجا خطای ابعاد:

    >> A(1:2,3:4)???  Index exceeds matrix dimensions. 

    >> A(1:2,2:3) ans =      2     3     4     5 

    >> A(1:2,2:3)' ans =      2     4     3     5

    توابع ماتریس

    هنگامی که شما قادر به ایجاد و کار با ماتریس ها هستید، می توانید بسیاری از عملیات استاندارد را بر روی آن انجام دهید. به عنوان مثال، شما می توانید معکوس یک ماتریس را پیدا کنید. با این حال، باید مراقب عملیات عددی باشید تا با خطا مواجه نشوید.

    تابع معکوس:

     در مثال زیر ماتریس معکوس یک ماتریس با تابع inv() بدست آمده است:

    >> A = [ 1 2 3; 2 3 4; 1 2 5]

    A =

         1     2     3

         2     3     4

         1     2     5

    >> inv(A)

    ans =

       -3.5000    2.0000    0.5000

        3.0000   -1.0000   -1.0000

       -0.5000         0    0.5000

    به  این نکته نیز توجه داشته باشید که Matlab به بزرگ و کوچک بودن حروف حساس است.

    >> inv(a)??? Undefined function or variable a.

    مقادیر ویژه:

    عملیات دیگر شامل پیدا کردن تقریبی مقادیر ویژه یک ماتریس است. دو نسخه از این تابع وجود دارد، یکی فقط مقادیر ویژه را پیدا می کند، دیگری مقایر ویژه همراه با بردارهای ویژه را پیدا می کند. اگر فراموش کردید که پارامترهای هر دستور کدام است، می توانید اطلاعات بیشتری را با تایپ کردن در بخش جستجوی راهنمایی در متلب سریعا دریافت کنید.

     >> eig(A)

     
    ans =
     
       14.0664
       -1.0664
        0.0000
     
    >> [v,e] = eig(A)
     
    v =
     
       -0.2656    0.7444   -0.4082
       -0.4912    0.1907    0.8165
       -0.8295   -0.6399   -0.4082
     
     
    e =
     
       14.0664         0         0
             0   -1.0664         0
             0         0    0.0000
     
    >> diag(e)
     
    ans =
     
       14.0664
       -1.0664
        0.0000
     

     

    عملیات ماتریس ها

    قبل از پیدا کردن تقریب حاصل ضرب و جمع روی ماتریس ها، مهم است که به یاد داشته باشید که اگر A و B هر دو ماتریس باشند، A*B لزوما برابر با B*A نیست.

    دو اپراتور در Matlab برای تقسیم استفاده می شود:

    تقسیم راست با نشان نماد / (Slash)

    بخش چپ با نماد \ (Backslash)

    این دو اپراتور از یکدیگر متفاوت هستند:

    در تقسیم معمولی که روزانه از آن استفاده می کنیم داریم:

    8/4=2

    برخلاف تقسیم سمت راست، بخش چپ این تقسیم را معکوس می کند، یعنی

    8\4=4/8=0.5

    حال به تقسیم ماتریس ها در Matlab توجه کنید:

    A/B معادل  A*inv(B)
     
    A=[1 2 ; 2 2];
    B=[3 2 ; 1 1];
    >> A/B 
     
    ans =
       -1   4    
        0   2   
    A\B  معادل inv(A)*B
    >> A\B 
     
    ans =
       -2.0000   -1.0000    
        2.5000    1.5000   
     

    ضرب و تقسیم ماتریس ها به صورت عنصر به عنصر

    گاهی وقتها لازم است برای ضرب یک عدد در ماتریس ها یا همچنین ضرب یا تقسیم ماتریسها ، از روش عنصر به عنصر استفاده شود. تفاوت اینها را ببینید:

    1

    A=[1 2 2; 1 0 5; 3 1 2];

    B=[3 2 5;3 0 0; 1 1 2];

    C=A*B

    D=A.*B

    2

    A=[1 2 ; 2 2];B=[3 2 ; 1 1];

    A./B

    3

     در نهایت، گاهی اوقات می خواهم تمامی داده ها را پاک کرده و از اول شروع به کار کنیم. شما این کار را با فرمان clear می توانید انجام دهید.

    >> clear

    خواندن 87 دفعه آخرین ویرایش در یکشنبه, 01 بهمن 1396 ساعت 09:57
    © هر گونه کپی برداری و نشر غیر قانونی مورد پیگرد قانونی قرار می‌گیرد