تبليغاتX
مهندسي صنايع دانشگاه قم

آموزش مطلب (جلسه هشتم)
تاريخ: پنجشنبه 1385/05/12 ساعت :10:4

 

توابع اسکالر :

 

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

متداول ترین این توابع عبارتند از :

 

abs                   ceil                   log                    eye

acos                  cos                   log10                sin

asin                  exp                   rem                  sqrt

atan                  floor                  round                tan

 

 

به عنوان مثال دستورات زیرجدول سینوسی تولید می کنند.

x = ( 0 : 0.1 : 2 )'

y = sin ( x )

[ x , y ]

 

 

توابع بردار :

 

دیگر توابع Matlab، لزوما بر روی بردار (سطری یا ستونی ) عمل می کنند و در صورتی که به یک ماتریس m*n ( m > 2 ) اعمال شوند، به صورت ستون به ستون عمل کرده و برداری سطری را ایجاد می کنند که هر درایه آن حاصل اعمال سطر به سطر تابع می توان از ترانهاده ( مثلا mean (A')' ) استفاده کرد یا این که سطر مورد نظر را مشخص کرد ( مثلا mean (A , 2 ) ) چند نمونه از این توابع عبارتند از :

 

max                  sum                  median              any                   std

sort                   mean                min                   prob                 all

 

 

بزرگترین دارایه ماتریس A با دستور max ( max (A) ) حاصل می شود نه max ( A ) .

 

توابع ماتریسی :

 

بیشتر توانی های مطلب از توابع ماتریسی آن ناشی می شود که سودمندترین آنها عبارتند از :

 

 

مقادیر ویژه و بردارهای ویژه

eig

فاکتورگیری ( تجزیه به عوامل ) به روش cholesky

chol

تجزیه مقدار منفرد(single value decomposition)

svd

معکوس

inv

فاکترگیری LU

lu

فاکتور گیری QR

qr

فرم hessenberg

hess

تجزیه schur

schur

صورت پلکانی یا سطر کاهش یافته

rref

                تابع نمایی ماتریسی

expm

جذر ماتریسی

sqrtm

چند جمله ای

ploy

دترمینان

det

اندازه آرایه

size

طول بردار

length

رتبه

rank

ضرب تانسوری Kronecker

kron

پیدا کردن اندیس درایه های غیر صفر

find

 

 توابع Matlab می توانند یک یا چند آرگومان خروجی داشته باشند.

y = eig ( a )

 

 

بردار ستونی شامل مقادیر ویژه A تولید می کند در حالی که

 

[ u , d ] = eig( a )

 

منجر به ایجاد ماتریس های U و D می شود ؛ U  ماتریسی است که ستونی های آن بردار ویژه A است و D ماتریسی است قطری که مقادیر ویژه A قطر آن را تشکیل می دهند.

 

اجرا شده دستورات را در ادامه مطلب خواهید دید.


ادامه مطلب
نوشته شده توسط انجمن علمی مهندسی صنایع | موضوع: آموزش matlab | لينک ثابت |
آموزش مطلب (جلسه هفتم)
تاريخ: پنجشنبه 1385/04/29 ساعت :0:53

ایجاد ماتریس:

 

ماتریس همانی

eye

ماتریس صفرها

zeros

ماتریس یک ها

ones

ایجاد ماتریس های قطری یا استخراج قطرها

diag

بخش بالا مثلثی ماتریس

triu

بخش پایین مثلثی ماتریس

tril

ایجاد ماتریس تصادفی

rand

ماتریس Hilbert

hild

ماتریس مربع جادویی

magic

ماتریس Toeplitz

toeplitz

 

دستور rand(n) ماتریس n * n تصادفی ایجاد می کند که درارایه های آن به صورت تصادفی ایجاد شده اند.

این درایه ها به صورت بی نظم بین صفر و یک توزیع شده اند در حالی که rand ( n , m ) ماتریسی m * n  ایجاد می کند ( البته n  و  m  نشانگر اعداد مثبت می باشند) امتحان کنید.

A = rand ( 3 );

Rand ('start', 0) تولید کننده اعداد تصادفی را reset می کند.

Zeros (m, n) ماتریسی m * n  از صفر ها و zeros(n) ماتریسی n * n از صفر ها را تولید می کند. اگر A یک ماتریس باشد، دستورzeros ( size(A)) ماترسی صفری با ابعاد A تولید می نماید. اگر x یک بردار باشد diag(x) ماتریسی است که x قطر آن را تشکیل می دهد و اگر A یک ملتریس باشد ، diag(A) برداری شامل قطرA می باشد.

مثال :

x = 1 : 3

diag(x)

diag(a)

diag(size(A))

 

ماتریس ها را می توان با استفاده از بکوک ها ایجاد نمود. ایجاد ماتریس 5*5 :

B = [ A, (zeros ( 3,2)) ; ( pi * ones (2,3)) , (eye (2) ) ]

همان طور ک ه گفته شد magic(n) ماتریسی n*n ایجاد می کند که مربع جادویی نامیده می شود (سطرها، ستون ها و قطر ها دارای مجموعه یکسانی می باشند ). Hilb(n) یک ماتریس Hilbert و n * n ایجاد می کند ؛ ماتریس Hilbert یکی از انواع ماتریس های ناموزون (ill-conditioned)است . ماتریس ها را به کمک حلقه for نیز می توان ایجاد کرد .

 

Triu  و tril   به ترتیب بخش بالا مثلثی و پایین مثلثی را استخراج می کنند.

triu (a)

 triu ( a) == a

 

اجرا شده دستورات را در ادامه مطلب خواهید دید.

  


ادامه مطلب
نوشته شده توسط انجمن علمی مهندسی صنایع | موضوع: آموزش matlab | لينک ثابت |
آموزش مطلب (جلسه ششم)
تاريخ: شنبه 1385/04/10 ساعت :13:44

دسترسی به زیر ماتریس ها :

 

از نماد (:) می توان برای دسترسی به زیرماتریس های یک ماتریس استفاده نمود. برای آزمودن آن ابتدا دستورات

A = rand ( 6 , 6 );

B = rand ( 6 , 4 );

که ماتریس های A 6*6 و B 6*4 را تولید می کند را تایپ کنید.

A (1:4,3) بردار ستونی شامل چهار درایه اول ستون سوم A می باشد.

نماد (:) به تنهایی نشاندهنده کل سطر یا ستون است : A(:,3) ستون سوم و A(1:4,:) چهار سطر اول A می باشند.

می توان از بردارهای کامل دلخواه به عنوان زیرنویس استفاده نمود.

A (: ; [2 4] ) شامل ستون های دوم و چهارم A  می  باشد . این گونه زیرنویس ها را می توان در هر دو طرف عبارت تخصیص دهی استفاده نمود :

A( : ; [ 2 4 5 ] ) = B ( : ; 1 : 3 )

 

ستون های 2 و 4 و 5 را با ستون اول ماتریس B جایگزین می کند. ستون دوم و جهارم ماتریس A را می توان د رماتریس 2*2 ی [1 2 ; 3 4 ] ضرب نمود :

A ( : ; [2 4 ] ) = A ( : ; [2 ; 4] ) * [1 2 ; 3 4 ]

 

زیر ماتریس روش بسیار ساده ای برای انجام  بسیاری از محاسبات است مثلا چرخش Givens سطرهای سوم و پنجم ماتریس برای صفر کردن درایه A ( 3 , 1 ) را می توان به صورت زیر نوشت (با فرض غیر صفر بودن norm([a  b]) :

 a = A ( 5 , 1 );

b = B ( 3 , 1 );

G = [ a b ; -b a ] / norm([a  b])

A ( [5 3] , : ) = G * A( [ 5 3] , : )

همچنین می توانید به تمام درایه های یک زیر ماتریس، مقداری اسکالر تخصیص دهید.

A ( : ; [2 4] ) = 99

برای حذف کردن سطر و ستون های یک ماتریس می توانید به آن ها ماتریس تهی نسبت دهید:

A ( : ; [2 4] ) = []

در یک ماتریس، end اندیس آخرین مولفه است.

x = rand (1 , 5);

x = x (end :-1 : 1 );

 

توابع MATLAB :

 

یکی ا زمهمترین قسمت های هر زبان برنامه نویس استفاده از توابع آن است. تا کنون با برخی از این توابع نظیر  zeros, rand, inv آشنا شدید. با ما در سری بعدی آموزش مطلب همراه باشید تا به طور مفصل به آن بپردازیم.
نوشته شده توسط انجمن علمی مهندسی صنایع | موضوع: آموزش matlab | لينک ثابت |
آموزش Matlab ( جلسه 5 )
تاريخ: شنبه 1385/02/16 ساعت :15:56

عملگرهای قیاسی

عملگرهای  قیاسی که عبارتند از:

کوچکتر از                                    >

بزرگتر از                                      <

کوچکتر مساوی                           =>

بزرگتر مساوی                             =<

مساوی                                      = =

نامساوی                                    ~ =

که همه آنها به صورت درایه ای عمل می کنند.دقت کنید که عملگر (=) assignment  در عبارت های نسبت دهی استفاده می شود در حالی که (= =) عملگر قیاسی است. عملگر های قیاسی را می توان با عملگرهای منطقی and ,or,&,| ترکیب نمود.

همان طور که می دانید وقتی این عملگرها به مقادیر اسکالر اعمال می گردند نتیجه بسته به درست یا غلط بودن 0 یا 1 است.3>5  و  5>3و 3= = 5 و 3= =3 را وارد کرده و نتیجه را ببینید.وقتی عملگرهای منطقی به ماتریس های هم اندازه اعمال شوند نتیجه  ماتریسی از صفرها و یک هاست که مقدار عبارت برای درایه های متناظر را نشان می دهد. همچنین می توان مولفه های ماتریس را با مقداری اسکالر مقایسه نمایید.

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

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

در عبارت های منطقی مقدار غیرصفر به عنوان درستو صفر به عنوان غلط تعبیر می گردد.

عنوان نمونه ~ 0  ,  1 است و ~3  ,  0 است و  5 & 4   ,1 است.

 

اعداد مختلط

در اکثر عمل ها و توابع matlab   می توان از اعداد مختلط استفاده نمود.دو شکل متداول ماتریسهای مختلط عبارتند از :

A= [1  2  ;  3  4 ] + i * [ 5  6  ;  7   8 ]

B= [1+5i; 2+6i; 3+7i; 4+8i]