Upload
others
View
10
Download
0
Embed Size (px)
Citation preview
Matrix laboratory (Matlab)
ر از پنجره های موجود در صفحه ی اصلی متلبصح مختتوضی
Command window
پنجره ی فرمان
م.این پنجره میتوانیم مشاهده کنیم . هم چنین میتوانیم حاصل این اعمال را نیز در یک متغیر بریزی عمل اصلی را در 4گونه محاسبه مثل هر
Current directory
مسیر پیش فرض
برنامه ای را که مینویسیم و میخواهیم ذخیره کنیم ، در این مسیر پیش فرض ذخیره می شود . این مسیر قابل عوض کردن است
work space
معلوم کردیم را در این جا نشان می دهد. command windowتمام متغیر هایی که در
Command history
ورات قبلی که اجرا کرده ایم در اینجا ذخیره می شود . همچنین میتوانیم با استفاده از کلید های جهت نما به دستورات قبلی برویم.تمام دست
کنیم، مشخصات آن را نشان میدهد . مثال از جنس ماتریس است. clickبر روی هر کدام از متغیر ها work spaceاگر در
ه و مقدماتی گفته می شود :در این قسمت برخی دستورات ساد
Clc :
را پاک میکند . command windowاین دستور کل پنجره ی
را پاک کنیم، به صورت دستور زیر: work spaceاگر بخواهیم یکی از متغیر های موجود در
Clear a
پاک میشود . work spaceاز aمتغیر
Clear a b
را پاک میکند. bو متغیر aمتغیر
:work spaceپاک کردن کلیه ی متغیر ها از
Clear all یا clear
در متلب حروف کوچک و بزرگ متفاوتند .
.شود به عنوان یک متغیر حساب میهر متغیری که به آن عددی اختصاص یابد .تعیین ابعاد آن نیستدر متلب الزم به تعیین نوع متغیر و
می توان برای عنوان گذاری از حروف یونانی استفاده کرد . که در مباحث (plot)پشتیبانی نمیکند . فقط در قسمت ترسیم ها متلب حروف یونانی را
بعدی توضیح داده می شود .
Pi=3.1416
که تعداد ارقام بیشتری را رقم اعشار نمایش داده می شوند . اگر بخواهیم به فرمت طوالنی تر تبدیل کنیم، 4به صورت پیش فرض در متلب اعداد تا
Format long :نشان دهد
Format short اگر بخواهیم به فرمت قبل برگردد:
رقم اعشار است بر می گردد . 4هر بار که برنامه ی متلب را ببندیم و باز کنیم به فرمت قبل خود که همان
رقم اعشار : 4برای نمایش اعداد تا
Format bank
.اگر جلوی هر کدام بگذاریم به صورت نماد علمی نشان می دهد
Format longe
فرمت کسری :
Format rat
Ex:
Format rat
Pi
Ans
355/113
برای فرمت هگزا دسیمال:
Format hex
فرمت فشرده :*****
Format compact
ه تر می شوند.برای حذف کردن خط اضافه ی بین هر دو خط . یعنی خطوط فشرد
برای بازگشت به حالت قبل:
Format loose
برای تعیین دقت محاسبه از تابع زیر استفاده می کنیم:
Vpa: variable precision arithmetic
همه ی توابع در متلب ورودی میخواهند که این ورودی باید داخل پرانتز نوشته شود.
Vpa(pi,n)
رقم اعشار نمایش می دهد. nرا تا عدد
و در آخر ticاستفاده می کنیم بدین صورت که قبل از دستوراتی که میخواهیم زمانش را بفهمیم، tic tocبرای محاسبه زمان دستورات از دستور
مینویسیم . tocمجموعه دستورات
یدهد.زمان کامپیوتر را به ما م clockو همچنین با تایپ دستور
به عنوان مثال:
Format rat
Clock
Ans
2011 9 2 4 15 3223/87
و یا با فرمت دیگر
format long
>> clock
ans =
1.0e+003 *
2.01100000000000 0.00900000000000 0.00200000000000 0.00400000000000 0.01700000000000
0.04654600000000
ماتریس
در برنامه ، باید از کروشه استفاده کنیم: سبرای وارد کردن ماتری
Ex:
[1 2 3 4 5 6 7 8 9]
ans =
1 2 3 4 5 6 7 8 9
برای جدا کردن سطر ها باید مطابق زیر عمل کنیم :
[1 2 3 ;4 5 6 ;7 8 9]
ans =
1 2 3
4 5 6
7 8 9
دو کاربرد دارد یکی در همینجا که سطر های یک ماتریس را به وسیله ی آن مشخص می کنیم و دیگری در برنامه ها است که اگر در آخر هر ;نماد
تور نمایش داده نمی شود.استفاده کنبم، نتیجه ی آن خط دس ;دستور از
استفاده میشود. sizeبرای یافتن تعداد سطر و ستون ماتریس از تابع
Size(a)
را نمایش می دهد. Aتعداد سطر و ستون ماتریس
bو تعداد ستون ها میرود در aاگر به شکل زیر تعریف کنیم، تعداد سطر ها میردو در
[a b]=size(q)
استفاده می کنیم: lengthا همان طول ماتریس از تابع برای فهمیدن تعداد سطر ها ی
Length(a)
تالع دترمینان:
Det(a)
برای استفاده از این تابع، ماتریس حتما باید مربعی باشد.
زیر مواجه میشویم: errorاگر مربعی نباشد با
??? Error using ==> det
Matrix must be square.
معکوس یک ماتریس:
Inv(a)
ترمینان یک ماتریس، صفر باشد معکوس آن ماتریس تعریف نشده است.اگر د
برای اعمال یک سری تغییرات در ماتریس از دستورات زیر استفاده می کنیم:
Triu(a) :
باال مثلثی
Trid(a) :
پایین مثلثی
Diag(a) :
قطر اصلی
Flipud(a) :
چرخش از باال به پایین
Fliplr(a) :
چرخش از چپ به راست
برای یافتن قطر فرعی میتوانیم دو تابع را ادغام کنیم :
diag(fliplr(a))
ماتریس های خاصی که در متلب تعریف شده اند:
Eye(n,m) .ماتریس واحد به ما می دهد
N تعداد سطر
M تعداد ستون
دهد .واحد می n*n، ماتریس eye(n)اگر ماتریس واحد مربعی بخواهیم
Ex: eye(3,5)
1 0 0 0 0
0 1 0 0 0
0 0 1 0 0
Ones(a,b)
است. 1که همه ی درایه هایش n*mیک ماتریس
Zeros(a,b)
که همه ی درایه هایش صفر است. n*mیک ماتریس
Ex:
Zeros(3)
ans=
0 0 0
0 0 0
0 0 0
ول برنامه قالب ماتریس را معلوم کنیم و بعد درایه ها را تغییر بدهیم.مثال وقتی میخواهیم ا
آدرس دهی ماتریس:
X(n,m)
برای مقدار دهی درایه و یا تغییر مقدار آن:
Ex:
Ones(3)
Ans=
1 1 1
1 1 1
1 1 1
Ans(1,3)=4
Ans=
1 1 4
1 1 1
1 1 1
م :برای اینکه یک قسمت از یک ماتریس را برداری
A(1:2,3:6)
یعنی سطر اول تا دوم و ستون سوم تا ششم
A(:)
همه ی عناصر را ستونی نشان می دهد .
برای حذف یک قسمت از ستون ها یا سطر ها آن ها را برای تهی قرار می دهیم :
A(1:3,4)=[]
randاعداد تصادفی:
Rand .بین صفر و یک است
Rand(n,m)
می دهد. n*mیک ماتریس تصادفی
اگر مثال بخواهیم اعداد تصادفی بین صفر تا نه باشند:
9*rand(n,m)
اگر بخواهیم اعشار نداشته باشد :
Round
مثال:
Round(rand(5,9))
دلخواه خودمان باشد، rangeاگر بخواهیم اعداد تصادفی بین
Min<rand<max
Min+(max-min)*rand
permutationجایگشت های تصادفی اعداد:
Randperm(n)
به صورت تصادفی جایگشت مینویسد: nاز یک تا
Ex:
( randperm(13
Ans=
1 11 9 6 3 5 8 10 13 1 11 7 4
اعداد تصادفی با توزیع نرمال:
randn(x)
داد خیلی بزرگ یا خیلی کوچک ندارد.هستند اع 1میدهد که با توزیع نرمال همه ی اعداد در اطراف x*xماتریس
اگر بخواهیم اعداد تصادفی با میانگین و واریانس دلخواه داشته باشیم:
M+s^2(randn(x))
میانگین است. mهمان واریانس و s^2که
Sum(a)
از هر ستون جمع میگیرد. aاز ماترس
Sum(a(:))
جمع همه ی درایه ها
Prod(a) را ضرب می کند. از هر ستون همه ی درایه ها
prod(a(:))ضرب همه ی درایه ها:
استفاده میکنیم. 'Aاگر بخواهیم از هر سطری بگیرد و جمع یا ضرب کند، از
Sqrt .جذر میگیرد
Nthroot(x,n) n امین ریشه یx .را میگیرد
aوارد شود سپس بر روی مقدار عددی aواهیم مقداری مثل استفاده میکنیم . مثال میخ inputبرای اینکه بخواهیم از کاربر مقداری دریافت شود، از
اعمالی انجام شود:
A=input('please insert a=')
مثال:
ز آن ماتریس را نمایش دهد.یبرنامه ای بنویسید که کاربر یک ماتریس را به طور دلخواه وارد کرده و برنامه، حاصل جمع تمام درایه ها و سا
باز کنیم: mfileابتدا باید یک برای شروع برنامه نویسی
شود(. saveشود) اول باید runمیزنیم تا f5بعد از نوشتن برنامه
ها را با نام عدد ذخیره نکنیم و همچنین با اسم توابع نیز ذخیره نشود. mfileباید توجه داشت که
توابع رسم:
ایجاد یک سری نقاط با گام های مختلف:
T=0:10 0 1 2 3 4 5 6 7 8 9 10 گام پیش فرض
T=0:2:10 0 2 4 6 8 10
ایجاد نقاط با فواصل خطی:
Linspace(a,b)
عدد انتهاست. bعدد ابتدا و aکه
نقطه تعریف ند. 100پیش فرض این است که
Linspace(1,5,5) 1 2 3 4 5 5 .نقطه می دهد، با فواصل یکسان
تا نمونه به ما بدهد. 100یعنی در هر ثانیه 100با فرکانس نمونه برداری 1ا ت 0زمان
Fs=100
T=0:1/fs:1
Sin()
Sin .ورودی را رادیان می بیند
Sind() .ورودی را درجه می بیند
.180تا 0را میبرد به 1تا 0ضرب کنیم، از pi*2اگر یک
رسم:
Plot(x,fx)
شکل ظاهری نمودار های رسم شده: تغییراتی در
plot(t,y,'.') .شکل را بدون اینکه نقاط را به هم وصل کند رسم می کند
نمایش می دهد. استفاده کنیم به شکل دایره دایره oاگر به جای . از
و اشکال دیگر به صورت زیر می باشند:
Plot(t,y,'x')
Plot(t,y,'+')
نیز میتواند تغییر کند: plotو همچنین رنگ
R قرمز b آبی k مشکی g سبز y زرد m صورتی c الجوردی
Plot(t,y,'vc) ( به رنگ صورتی و شکل مثلثیv)
موجود در متلب:ریاضی توابع
Sin,cos,tan,cot
Log(x) که همانln(x) .است
Log10(x) که همانlog است. 10در پایه ی
Log2(x) ن که هماlog است. 1در پایه ی
Exp(x)=e^x
sind,cosd,sinh,coshو توابع مثلثاتی بر حسب درجه:
.را نگه می دارد plotاستفاده کنیم ، تصویر Hold onاز plotاگر بعد از هر
بنویسیم که اگر نام را ننویسیم به و نام مورد نظر را هم جلوی آن figureبنویسیم plotجدید باز کند میتوانیم قبل از figureاگر بخواهیم یک
صورت پیش فرض با عدد شماره گذاری می شود.
بنویسیم، تمام پنجره های قبلی بسته می شود. close allاگر اول برنامه
ها انجام داد: plotاعمالی که میتوان بر روی
Title('onvan')
عنوان مورد نظر به شکل اضافه می شود.
Xlabel(' ')
Ylabel(' ')
برای محور ها برچسب گذاشته میشود.
Axis off & axis on .محور های مختصات را خاموش و روشن میکند
Grid on & grid off .شکل را به صورت شبکه ای نمایش می دهد
Axis equal زمان محور های مختصاتx وy .را مساوی میگیرد
Axis normal میگرداند . به حالت عادی بر
Axis tight مختصات را به روی شکلfit .میکند
برای هر نمودار یک برچسب مشخص می کند . legendاستفاده از دستور
Legend(' ',' ')
و در مختصات خاصی ه مورد نظر ما است یک متنی نوشته شود: plotاگر بخواهیم داخل
Text(x,y,'matn')
مورد نظرماست.همان مختصات yو xکه
که می رویم هر جا کلیک کنیم متن را برایمان مینویسد. figureاستفاده کنیم ، بر روی gtext('matn') اگر از دستور
Rem reminder باقیمانده ی تقسیمa برb rem(a,b)
Floor(a) .به سمت عدد کوچکتر گرد می کند . همان براکت است
Fix(a) .قسمت اعشار را حذف میکند
Min(a) .مینیموم هر ستون را می دهد
Max(a) .برای هر ستون یک متکسیمم می دهد
maxهمه ی مقادیر را به دست بیاوریم و بعد تمام مقادیر را تقسیم بر آن maxاگر بخواهیم مقادیر ی ماترس را نرمالیزه کنیم برای این کار ابتدا باید
میکنیم.
Sort(a) .تمام ستون ها را از کوچک به بزرگ مرتب می کند
Mean(A) .میانگین تمتم ستون ها را به ما می دهد
Meanz(a) .میانگین تمام درایه ها را به ما می دهد
Dot(a,b) .ضرب داخلی که نتیجه ی آن یک عدد است
Cross(a,b) .ضرب خارجی که نتیجه ی آن یک بردار است
Gcd(a,b) Greatest common divisor
بزرگترین مقسوم علیه مشترک را نمایش می دهد.
Lcm(a,b) least common multiplier
دو عدد را نمایش می دهد. کوچکترین مضرب مشترک
تا این تابع انجام پذیرد را می بینیم. که نوشته شده mfileرا بزنیم کل دستورات open selectionو اگر روی یک تابع راست کلیلک کنیم
استفاده بکنیم. /.و *.برای اینکه در کار با ماتریس ها بخواهیم ضرب یا تقسیم درایه ها را نظیر به نظیر انجام بدهیم باید از
Isprime(b)
آیا عدد اول هست یا نه
یعنی عدد اول نبوده است. اگر یک بدهد یعنی عدد مورد نظر اول بوده است و اگر صفر بدهد
مثال:
را مشخص کنید: 1000تا 1اعداد اول
Clc
Clear all
T=1:1000;
A=isprime(t);
r=t.*A;
r'
میگذاریم تا ستونی نمایش دهد و راحت تر ببینیم. 'عالمت
اعداد مختلط:
به عنوان متغیر قبالً استفاده نشده باشند( jو i)باید .نمایش داده میشوند a+b*iو یا a+b*j اعداد مختلط در متلب به صورت
Z=complex(a,b) .عدد مختلط را می خواند
Real(z) برای مشاهده ی قسمت حقیقی
Imag(z) برای مشاهده و قسمت موهومی
Abs(z) .اندازه ی عدد مختلط را به ما می دهد
Angle(z) زاویه زاویه ی عدد مختلط را به ما می دهد . بر حسب
X*(180/pi) .رادیان را به زاویه میبرد
golden rectangleمثال:رسم مستطیل طالیی:
این مستطیل برای معماری کاربرد دارد.در این مستطیل نسبت طول به عرض برابر است با:
1+sqrt(5))/2)
1/6که حاصل آن برابر است با تقریبا
زیبا تر به چشم می آیند.اگر بنا ها با این نسبت ساخته شوند خیلی
اگر از مستطیل طالیی یک مربع جدا کنیم، شکل باقیمانده خود یک مستطیل طالیی است.
طریقه ی ایجاد :
یک مربع میکشیم و وسط یک ضلع را مییابیم به اندازه ی فاصله ی این نقطه ی وسط تا ضلع روبرویش یک کمان میزنیم و سپس ادامه می دهیم
باز می کنیم: mfileابتدا یک
clc clear all phi=(1+sqrt(5))/2; x=[0 phi phi 0 0] y=[0 0 1 1 0] plot(x,y) x1=[1 1] y1=[0 1] hold on plot(x1,y1) axis off text(-0.05,0.5,'1') text(0.5,-0.05,'1') text(phi/2,1.05,'\phi') text(1+(phi-1)/2,-0.05,'\phi-1') text(1.05,0.5,'1') set(gcf,'color','w')
این کار را انجام دهیم. \ها میتوانیم با استفاده از نام انگلیسی آن ها به همراه plotبرای نمایش حروف فقط در
در رسم مستطیل باال. phiمطابق
: figureدر یک plotرسم چند
Subplot(n,m,x)
است. plotشماره ی xها تعداد ستون m تعداد سط ها ، nکه در این جا
این کار را انجام بدهیم. plotگذاشتن در اینجا باید بعد از هر labelو یا titleبرای
رسم کنید: tanسوم plotدوم لگاریتمی و در plotپنجم سینوسی و در plotقسمتی، در figure 6در یک
clc clear all close all fs=100; t=-1:1/fs:1; y1=sin(2*pi*t); subplot(2,3,5) plot(t,y1),xlabel('time') y2=log(t) subplot(2,3,2) plot(t,y2) y3=tan(t) subplot(2,3,3) plot(t,y3)
های دیگر باشد، از روش زیر استفاده میکنیم.در مثال subplotباشد یعنی بزرگتر از subplot 1 ها مثال به اندازه ی subplotاگر بخواهیم یکی از
هاست. plotسومی در دو جایگاه سوم و چهارم قرار میگیرد و به اندازه ی دو برابر سایر plotپایین
clc clear all close all fs=100; t=0:1/fs:1; x1=sin(2*pi*t); x2=exp(-t); x3=(x1.*x2); subplot(2,2,1) plot(t,x1) subplot(2,2,2) plot(t,x2) subplot(2,2,3:4) plot(t,x3)
نمودار میله ای:
bar(x,f(x))
نمودار گسسته:
Stem(x,f(x))
نمودار پلکانی:
Stairs(x,f(x))
نمودار هیستوگرام:
Hist(f(x),x)
توابع سمبولیک یا آنالوگ:
polynomialچندجمله ای:
A=[2 4 6 8] است. 3معرف چند جمله ای درجه
A=[an,a(n-1),a(n-2),…,a0]
است. nجمله ای درجه معرف ضرایب چند
X=roots(a) که در آنa .یک بردار است، ریشه ها را به ما می دهد
Poly(x) .ضرایب را به ما میدهد
برعکس هم عمل میکنند. polyو rootsبه طوری که
شود. an 1میکند تا ضریب anمیگیرد و بقیه را تقسیم بر ضریب 1را an استفاده کنیم، همیشه ضریب polyهر گاه از
به سمبولیک: polynomial برای تبدیل
poly2sym()
A=[2 4 6 8]
Poly2sym(a)
Ans=
2*x^3+4*x^2+6*x+8
Syms x بعد از نوشتن این عبارتenter میزنیم وx .را به عنوان یک سمبل در نظر میگیرد
حاال میتوان از این سمبل استفاده کرد و سمبل های دیگر ساخت.
Y=sin(x)
سم توابع سمبولیک:ر
Ezplot(y)
و یا هر عبارت داخل پرانتز باید سمبولیک باشد. yکه در اینجا
Syms x
Y=sin(x)
Ezplot(y)
رسم میکند. 2piو 2pi-به صورت پیش فرض بین
اگر بخواهیم پیش فرضش را تغییر بدهیم:
Ezplot(y,[-10,10])
قرار بدهیم. ''سمبولیک نشده باشد میتوانیم داخل اگر متغیر قبال
Ezplot('z^3')
هم مختصات تعریف بکنیم. yکه در این حالت میتوانیم برای
Pretty(a)
به حالت دست نویس نشان میدهد.
Simple(y) .بسط ها را نشان می دهد
Factor(a) باشد از آن فاکتور میگیرد.اگر سمبلی قابل فاکتور گرفتن
Conv(a,b) که در آنa وb ضرائب چند جمله ای هستند، ضربconvolution .انجام می دهد
Convolution .وقتی به حوزه ی فرکانس برود به ضرب تبدیل میشود. برای فیلتر کاربرد دارد
Deconv(a,b) .تقسیم است
ی:مشتق چند جمله ای در بحث چند جمله ا
Polyder(a)
ضرایب چند جمله ای ست. aکه در این جا
Polyder(a,b)
مشتق ضرب چند جمله ای است.
[A B]=polyder(a,b)
مشتق تقسیم چند جمله ای است.
ارزیابی چند جمله ای ها:
Polyval(a,x0)
مقدار دهی میکند. aرا در چند جمله ای x0عدد با بردار
دهی در حالت سمبولیک:مقدار
Subs(f,'x',a)
قرار می دهد. xبه جای fرا در تابع aعدد
می توانیم به جای یک متغیر چند مقدار مختلف بگذاریم:
مثال :
F=x^z-sin(x+z)
Subs(f,'[x y z]',[1 pi/2 2])
: polyfitتابع
از یک سری نقطه: nاستخراج چند جمله ای درجه
polyfit(x,y,n)
درجه ی چند جمله ای باید از تعداد نقاط حداقل یکی کمتر باشد.
مجهول برای حالت سمبولیک: nمعادله nحل معادله ی
solve(' ',' ',' ',…………..)
یک معادله را می نویسیم. ' 'داخل هر کدام از نماد های
سمبولیک کنیم. ..……,a,b,xقبیل که الزم است قبل از آن تماد مجهول ها را از
مثال:
برای حالت غیر سمبولیک:
AX=B
ماتریس مجهول هاست. Xماتریس ضرائب است و Aکه در این جا
X=A(-1)*B که در اینجاA(-1) همان وارون ماتریسA .است
Rats(x) .اعداد را می گیرد و به صورت کسری نمایش می دهد
Rat(x) است. 1اعداد را می گیرد و به صورت کسرهایی نمایش می دهد که صورت آن ها
Vpa(a,n) عددa را تاn .رقم نشان می دهد و بقیه را گرد می کند
n جه ی 0حل یک معادله با در
Solve(d)
D .را برابر صفر می گیرد و معادله را حل می کند
استفاده می کنیم. ''کنیم اگر که سمبولیک نبود از نماد باید از توابع سمبولیک استفاده
مقادیر ویژه ی ماتریس:
Eig(a)
Det(SI-A)=0
ماتریس یکه است. Iکه در آن
در قسمت فضای حالت کاربرد دارد. 1در درس مدار
اگر
A ماتریس حالت
B ماتریس ورودی
C ماتریس خروجی
D ماتریس انتقال
X التمتغیر های ح
U متغیر های ورودی
Y متغیر های خروجی باشند ، مقادیر ویؤه ی ماتریسA .فرکانس های طبیعی شبکه هستند
x.=Ax+Bu
y=Cx+Du
ا رابطه ی زیر حساب برنامه ای بنویسید که کاربر یک ماتریس مربعی با ابعاد دلخواه وارد کرده و برنامه یک بار مقادیر ویژه را با این تابع و یک بار هم ب
کند.
Det(SI-A)
معادالت دیفرانسیل در حالت سمبلیک: حل
Dsolve('………','…','…','x')
آخر هم برای xهای بعدی شرایط اولیه را که باید تعدادشان برابر با درجه ی معادله باشد. و ''اید معادله دیفرانسیل را بنویسیم و در اول ب ''که در نماد
است. xاین است که معادله بر حسب
بزرگ ( استفاده کنیم. D) حتما Dبرای نشان دادن مشتق باید از
نظر میگیرد.در tبه صورت پیش فرض ، متغیر مستقل را
مثال:
ترکیب توابع سمبولیک:
F(g(x))=fog
Compose(f,g)
حد توابع سمبولیک:
Limit(f,x,a)
helpتعریف نشده است . همانطور که در را نمایش می دهد که نشانگر NaNدر مواقعی که حد چپ و حد راست با هم برابر نیست ، اگر حد بگیریم
می باشد. not a numberمخفف عبارت NaNنرم افزار متلب توضیح داده است
استفاده کنیم: leftو rightاگر بخواهیم حد راست و یا حد چپ گرفته شود باید از
مشتق توابع سمبولیک:
Diff(f)
است. xخواهد داشته باشد مشتق بر حسب مشتق می گیرد. ورودی هر چند متغیری که می xبه صورت پیش فرض ، بر حسب
diff(f,'y')اگر بخواهیم بر حسب متغیر دیگری مشتق بگیرد :
ام: nمشتق مرتبه ی
Diff(f,n)
انتگرال عبارات سمبولیک:
Int(f)
Indefinite integral
انتگرال نا معین
Int(f,a,b) انتگرال معین
int(f,y)ی انتگرال گیری انجام شود : اگر بخواهیم بر حسب متغیر دیگر
برای انتگرال چندگانه میتوانیم ازچند انتگرال داخل هم استفاده کنیم:
سری تیلور برای توابع سمبولیک:
Taylor(f) .بسط تیلور حول نقطه ی صفر است
x0و حول نقطه ی mتا taylor(f,m,x0)بسط مک لورن:
یکی sin(x)را حول نقطه ی صفر حساب کند و مشخص کنید تا جمله ی چندم مشتق با شکل خود تابع sin(x)ویسید که بسط تیلور تابع برنامه ای بن
میشود.
برنامه را به شکلی مینویسیم که کاربر عدد را وارد کند و برنامه بسط تیلور را تا آن عدد محاسبه کند:
وارد می کنیم و بعد افزایش میدهیم تا جایی که شکل ها یکی شوند. 5نوان مثال از را اول به ع aمطابق شکل های زیر، عدد
وارد می کنیم: 10را برابر با aعدد
وارد می کنیم: 13را aعدد
وارد می کنیم: 14را aعدد
با اندکی خطا دو شکل شبیه هم شدند. 14برابر با aبا در نظر گرفتن عدد
استفاده کنیم : hold onبرای اینکه دو شکل را منطبق بر هم ببینیم میتوانیم از
A=14
ها را زیاد میکنیم مطابق شکل زیر plotو برای اینکه دقیق بتوانیم خطا را ببینیم محدوده ی
Dirac(x) ضربه
Heaviside(x) لهپ
تبدیل فوریه برای توابع سمبولیک:
Fourier(f)
را فوریه بگیریم شیفت میدهد. expاگر
عکس تبدیل فوریه:
Ifourier(f)
است که دوگان همند. sincو rectبه عنوان مثال کاربرد آن در تبدیل
Sinc در متلی تعریف شده است . برای ساختنrect :
هر کدام ، تبدیل فوریه ی دیگری است ، از برنامه ی زیر استفاده میکنیم: rectو sincشان دادن این که برای ن
jacobian(f)
Curl()
و.....
یک سری از توابع در متلب هستند که برای موضوع های خاص به کار می روند. مثال برای مغناطیس و...
و برای مشاهده توابع خاص از help elfunاز رد. برای مشاهده ی توابع ابتدایی متلب استفاده ک helpمیتوان از قسمت برای مشاهده ی توابع در متلب
help specfun .استفاده میشود
تبدیل الپالس:
Laplace(f(t))
به ما می دهد. sجواب را بر حسب متغیر
laplace(f(x),m)نمایش دهد: mاگر بخواهیم بر حسب ماغیر دیگری مثال
عکس تبدیل الپالس:
Ilaplace(F(s))
عکس تبدیل الپالس غبارت زیر را به دست آورید:
(S^2+2*s+3)/(s+1)^3
تفکیک کسر ها در متلب:
Residue(a,b)
ضرائب مخرج میباشد. bضرائب صورت و aغیر سمبولیک است و
ب قطب کمتر به بیشتر را می دهد. برای ریشه های مککر هم از کمترین توان می دهد.به ترتیب اول ضرائ
:zتبدیل
Ztrans(f(t))
:zعکس تبدیل
iztrans()
بعدی: 3ترکیبات
الف: توابع پیوسته )سمبلیک(
Ezplot3()
معادالت پارامتری خط یا منحنی:
Ezplot('x','y','z')
ک در نظر میگیرد.قرار میدهیم سمبلی ''چون بین دو
را هم بدهیم: Tمیتوانیم مختصات
ezplot3('x','y','z',[tmin tmax])
به عنوان مثال معادله ی فنر به صورت زیر است:
رسم سطوح سه بعدی:
Ezsurf(z)
متلب آمده است: helpشکل زیر مثالی است که در
مثالی از رسم یک صفحه:
مثالی از رسم یک منحنی:
یک روش ابتدایی برای رسم کره که البته مناسب هم نیست:
وارد شده است: r=5شکل زیر مربوط به زمانی ست که
نرم افزار متلب تابعی دارد برای رسم کره:
Sphere(a)
عددی است که بعداد خانه ها را نشان می دهد. aکه
رسم استوانه:
Cylinder
ب:توابع گسسته )غیر سمبلیک(:
Plot3(…,…,…)
: tباید اول نقاط را تعریف کنیم برای
برای رسم سطوح:
Surf(z)
[x y]=meshgrid(-5:5)
یک فضا برایمان تعریف می کند.
ن تابع استفاده کنیم.نمونه برداری کنیم و بعد از ای meshgridابتدا باید با استفاده از
Waterfall(z) .نمودار آبشاری را رسم میکند
Contour(z) و contour3(z) . سطوح تراز هستندmeshc(z) .حالت مش بندی با کانتر است
محور های لگاریتمی:
Semilogx(x,f(x)) محورx .را اگاریتمی می کند
Semilogy(x,f(x)) محورy .را اگاریتمی می کند
Loglog(x,f(x)) .هر دو محور را لگاریتمی می کند
Linspace(a,b) نقطه بین صدa وb .در نظر می گیرد
دستورات برنامه نویسی:
برای تکرار انجام دستورات: forحلقه ی -1
For i=1:100
دستور را انجام بده
End
را دو میگیرد دستورات را انجام می دهد و به همین ترتیب مثال تا صد که در iمیدهد و بعد را یک میگیرد دستورات را انجام iبدین صورت که اول
اینجا نوشته شده .
مثال:
را نمایش دهد: aتا 1را از کاربر دریافت کرده و حاصلجمع aبرنامه ای بنویسید که عدد
ifدستور شرطی
If
عبارت منطقی
دستورات
Else
تدستورا
End
و به شکل زیر نیز میتوان نوشت:
if
1شرط
1دستورات
Else if
1شرط
1دستورات
Else if
.
.
.
End
End
End
. را نمایش دهد noو اگر اول نباشد yesبرنامه ای بنویسید که عدد را در ورودی بگیرد اگر عدد اول باشد عبارت
جای دهد. 5*4عضو از کاربر دریافت کند و به ترتیب در ماتریس 10برداری با برنامه ای بنویسید که
برای شکستن حلقه: breakدستور
For ………….
If…….
Break
مثال:
متوقف شود. بیشتر شد، برنامه 1000تا آن عدد را حساب کند اما اگر این عدد از 1برنامه ای بنویسید که عددی را از کاربر بگیرد و حاصل جمع
وید.برنامه ای بنویسید که یک عدد از کاربر دریافت کرده و تمام مقسوم علیه های آن عدد را نشان دهد و هم چنین تعداد مقسوم علیه ها را بگ
whileدستور
While
شرایط
دستورات
End
د.تا زمانی که شرط برقرار است دستورات را انجام ده
عبارت های شرطی:
A=[1 2 3 4 5 6]
A>4
[0 0 0 0 1 1]
هر جا شرط برقرار باشد به جایش یک میگذارد.
q=a>4 Q=q.*A
Q=[0 0 0 0 5 6]
>=
<=
==
~=
And(…,…)
Or(…,…)
Xor(…,…)
مقال:
کی ازشان کم کند و بقیه اعداد را خودشان را نمایش دهد:بود، ی 8را بگیرد ، اگر درایه ها زوج بود یا بزرگتر از aبرنامه ای بنویسید که ماتریس
Continue کنترل اجرای کد را به تکرار بعدی از حلقه ی :for یاwhile .منتقل می کند
مثال:
را که قبال کاربر وارد qرا نمایش دهد اما در این حاصلضرب عدد aتا 1و ضرب کل اعداد را از کاربر دریافت کرده aبرنامه ای بنویسید که عدد
کرده حساب نکند.
دوران یک ماتریس:
Rot90(a)
درجه خالف جهت عقربه های ساعت می چرخاند)کاربرد در پردازش تصویر است(. 90
Rot90(a,3) 170 .درجه می چرخاند
Rot90(a,-1)
در جهت عقربه های ساعت.
تغییر سایز ماتریس:
Reshape(a,m2,n2)
M2 تعداد سطر های جدید وn2 .تعداد ستون های جدید می باشد
m1*n1=m2*n2
آرایه ها:
a={…….}
Double یعنی فرمت اعداد حقیقی با دقت ممیز شناور
می بیند. doubleدر متلب به طور پیش فرض همه ی اعداد را به صورت
A{1}
همه ی عناصر عنصر اول آرایه را به ما نشان می دهد.
ام از عناصر آؤایه خود می توانند یک آرایه باشند.هر کد
Cell(m,n)
آرایه ی تهی ایجاد می کند:
ایجاد منو برای انتخاب ورودی:
Menu('aaaa','…','…','…')
.ها گزینه ها هستند …متن و aaaaکه در این جا
Magic(n)
برابرند. رعی با هممی دهد که جمع سطر و ستون و قطر اصلی و قطر ف n*nماتریس
مثال:
کردن، در با اجرا کردن برنامه ی فوق منوی زیر باز می شود و به کاربر این امکان را می دهد که یکی از گزینه ها را انتخاب کند و بعد از انتخاب
command window ده می گزینه ی انتخاب شده نمایش دا
شود
: swith case دستور
توجه به مقدار یک متغیر ، در مورد اجرای کد های مختلف تصمیم گیری می کند. با
هدف: افزودن نویز به سیگنال و فیلتر کردن آن:
س و فرکان 0.3نمونه برداری شده است، نویزی سینوسی با دامنه ی 1000bit/secکه با نرخ 3hzو فرکانس 15به یک سیگنال سینوسی به طول
40hz .اضافه کرده سپس نویز را حذف کنید
Filter(a,b,f) که در آن :a ، ضرائب صورتb ضرائب مخرج وf .سیگنالی است که میخواهیم فیلترش کنیم
فیلتر باترورث:
[a b]=butter(n,d) که در آنn درجه ی فیلتر وd .فرکانسی ست که میخواهیم قطع کند
را نیز به عبارت باال اضافه می کنیم. 'high'اشد اگر بخواهیم باالگذر ب
پردازش تصویر:
مشخصه ی یک تصویر دیجیتال:
Pixel picture cell
نقاط بسیار ریز مربعی شکل
Resolution یک تصویر : غلظتpixel هاست که هر چه بیشتر باشدresolution باشد:بیشتر است و واحد آن به صورت زیر می
Dot per inch (dpi)
نقطه ها در هر اینچ
تصویر آنالوگ: دوربین های عکاسی قدیمی که نگاتیو داشت.
تصاویر سیاه و سفید:
Pixel هایشان فقط دو حالت دارند یا صفر و یا یک که صفر نمایانگر پایین ترین سطح روشنایی یا همان رنگ مشکی است و یک باالترین سطح
رنگ سفید است.روشنایی و معرف
تا سطح مختلف روشنایی را می تواند از هم تفکیک کند . 156تصاویر سطوح خاکستری: در حالت عادی چشک انسان
تا سطح روشنایی تبدیل می کند. 156در طراحی دوربین ها هر منظره ای را به
ذخیره می کند. byteرا در یک pixelهر
فراخوانی یک تصویر:
Y=imread('address\name.format')
آدرس، اسم تصویر و پسوند آن را وارد می کنیم .
Imshow(y)
تصویر را می بینیم.
Imview اطالعات هرpixel .را نیز نشان می دهد به صورتی که هرگاه با موس بر روی تصویر برویم مشخصات می دهد
Y1=im2bw(y) سفید است. 1تا 0.5سیاه و 0.5تا 0سفید می برد. که تصویر را به حالت صفر و یک یا سیاه و
جدید باز می شود. figureندارند . خودش در ی figureبسته نمی شوند و نیازی به نوشتن close allبا imviewتصاویر باز شده به وسیله ی
Im2bw(y,0.3)
ید می کند.ها را سف 0.3را به باینری تبدیل می کند به صورتی که باالی yتصویر
: RGB red green blueتصاویر رنگی
سیستم های بصری انسان به کمک سه نوع حسگر رنگی موجود در شبکه از طیف نور مرئی نمونه برداری می کند. این حسگر ها بیشترین شدت پاسخ
رنگ قرمز و سبز و آبی معروفند. پس در طراحی سیستم های نانومتر دارند که به ترتیب به سلول های حساس به 410و 530و 560را در طول موج های
اشند.تصویرگیر و نمایشگر الزم است سه نوع سنسور رنگی در سیستم قرار داده شود تا به رنگ های قرمز و سبز و آبی بیشترین حساسیت را داشته ب
سفید و بینش رنگ مورد نظر است. 155مشکی و 0که را به خود اختصاص دهند . 155تا 0هر کدام از این رنگ ها می توانند عددی بین
عدد برای قرمز و سبز و آبی به وجود می آید. 3از ترکیب pixelهر
بیت. 14بایت یعنی 3درایه نیاز داریم . pixel 3برای هر
Tif.jpg.png.bpm .پسوند تصاویر هستند بسته به حالتی که تصویر روی حافظه ذخیره می شود
Size(y) یز ماتریس که حاصلضرب سطر و ستون آن میشود تعداد ساpixel .ها
)نمایه گذاری شده( indexتصاویر
تعریف می کنند. indexرا به rgbبرای کاهش حافظه ی تصویر
مشخص میکند.اشاره می کند . ستون اول مقادیر قرمز ستون بعدی مقادیر سبز و ستون بعدی مقادیر آبی را k*3یه یک ماتریس pixelرنگ هر
Y1=rgb2gray(y) .تصویر را به خاکستری تبدیل می کند
Help imdemos .کل تصاویری که متلب دارد را به ما نشان می دهد
نشان داده شده است: help imdemosاین تصویر نمایانگر تعدادی از اسامی تصاویری است که با استفاده از
ر متلب و فرمت ذخیره ی آن ها:کالس های مختلف دیتا د
Range توضیح Data type
Int8 عدد صحیح عالمت دار integerبیتی 8 - 128تا127 7^2-تا 7-1^2
Int16
Int32
Uint8 عدد صحیح بدون عالمت 155تا 0 1-8^2تا 0
Uint16
Uint32
double اعداد حقیقی با دقت ممیز شناور
logical اعداد منطقی
ها را می توان به دیگری تبدیل کرد. هر کدام از این فرمت
نمودار هیستوگرام یک تصویر:
imhist(y)
نمودار افقی شدت رنگ است و نمودار عمودی شدت نور.
(contrastیکنواخت کردن هیستوگرام)افزایش
Histeq
کنیم و دوباره به هم بچسبانیمشان. eqبکنیم،باید اول هر کدام از سه بعدش را جدا بگیریم بعد برای این که بتوانیم این کار را با تصویر رنگی
:نباشد باید مسیر آن مشخص شود( current directory)اگر عکس در به عنوان مثال تصویر رنگی زیر
چرخاندن یک تصویر:
imtotate(y,t) که در اینجاt رجه ی چرخش است . اگر مثبت باشد پادساعتگرد و اگر منفی باشد به طور ساعتگرد چرخانده می شود.د
Imcrop(y) .تصویر را برش می دهد
وقتی اینتر را بزنیم با موس میتوانیم انتخاب کنیم که کجای تصویر را برش بزنیم . همچنین می توانیم مختصات بدهیم.
Imwrite(y,'address\title.fmt') .تصویر را در هارد ذخیره می نماید
برای یکنواخت کردن تصاویر رنگی:
Imadjust(y,[a1,b1],[a2,b2])
A1 حد پایین تصویر ورودی
B1 حد باالی تصویر ورودی
A2 حد پایین تصویر خروجی
B2 حد باالی تصویر خروجی
مثال:
[0.1,0.7],[0.2,0.5]
0.1را می برد به 0.1مقادیر کمتر از
نگاشت می دهد. 0.5را به 0.7و خود 0.7ادیر بیشتر از مق
نگاشت می دهد. 0.5و 0.1را بین 0.7و 0.1مقادیر بین
افزودن نویز به تصاویر:
Y1=imnoise(y,'noise type',noise quantity)
نویز معروفی است. salt&pepperدر پردازش تصویر نویز
ها را سیاه می کند و بعضی ها را سفید می کند. pixelبه طور تصادفی بعضی
% تصویر نویزی 5است یعنی 0.05ها خراب می شوند. مقدار پیش فرض pixel% است پس همه ی 100باشد 1تغییر می کند . اگر 1تا 0مقدار نویز از
می شود.
salt&pepperفیلتر میانه برای حذف نویز
Y2=medfilt2(y1)
ن سطح و پایین ترین سطح را حذف می کند.باالتری
طراحی فیلتر برای تصاویر:
F=fspecial('filter type')
Imfilter(y,f)
پردازش صدا:
ی می خواهیم به کمک یک میکروفن صدای یک شخص را که یک سیگنال آنالوگ است ، به کامپیوتر ببریم که صدا به صورت موج پیوسته منتشر م
شود.
که استاندارد است: waveفشرده سازی و تبدیل به فرمت های مختلف مثل
Dsp= digital signal processing
باید به بیت های رقمی یا دیجیتال تبدیلش کنیم تا به کامپیوتر برود.
ویژگی های صدای دیجیتال:
نرخ نمونه برداری: -1
بیت نمونه برداری می کند تا صدا را دیجیتال کند. 44100شخص را تولید می کند. در هر ثانیه بیت بر ثانیه حالت ایده آل صدای 44100استاندارد
bit/sec 8191و 11015و 11050نرخ های نمونه برداری دیگری نیز هستند:
تعداد بیت در هر نمونه ) دقت نمونه ها( -1
کاناله بودن صدا ) استریو ( 1کاناله بودن صدا ) مونو ( یا 1 -3
ثانیه شنیده می شود: 11.33بیت بر ثانیه نمونه برداری شده است به مدت 44100تا نمونه که با نرخ 500000یجیتالی با صدای د
500000/44100=11.33
را پخش می کند. waveمتلب فرمت
برای پخش صدا:
wavereadخواندن صدا:
اگر مونو باشد یک ستون دارد و از یک باند پخش می شود. است که اکر استریو باشد دو ستون دارد و 1تا 1-صدا در متلب بین
waveplay(y,fs)پخش صدا:
Y بردار صدا می باشد وfs .فرکانس نمونه برداری است
است. fs 11015پیش فرض
را بزنیم طول صدا را به ما می دهد. command window ،length(y)اگر در
کند.تند تر پخش می fs*2بزنیم fsاگر به جای
بزنیم ، کند تر پخش می کند. fs/2و بر عکس اگر
اگر بخواهیم یک کانال را پخش کند :
X=y(:,1);
کانال اول را جدا می کند و از یک بلندگو بیرون می آید.
ایجاد موج صوتی:
هرتز می باشد. 10000تا 10گوش انسان قادر به شنیدن صدا با فرکانس بین
ضرب کردیم تا صدا بلند تر به گوش ما برسد. 5هرتز است که برای پخشآن موج را در عدد 100تصویر باال ساخت موج
هر چه فرکانس را زیاد کنیم ، صدا نازک تر می شود و هر چه فرکانس را کم کنیم صدا بم تر می شود.
سر هم شنیده شود: می توانیم از فرکانس های مختلف ترکیبی از نت ها را ایجاد کنیم تا به صورت چند نت پشت
می خواهیم به وسیله ی میکروفن صدا را به کامپیوتر بدهیم:
Wavrecord(n,fs,m,'double')
N .تعداد نمونه هاست
Fs .فرکانس نمونه برداری است
M باشد. 1یا 1تعداد کانال هاست که می توان
Double بیتی باشد. 16بیتی یا 8هم میتواند
Wavwrite(y,fs,'address\title.fmt')
در علم تشخیص گفتار به کار می رود.
برنامه ای بنویسید که اثر انگشت را از کاربر دریافت کند ، اگر کج بود آن را صاف کند و بعد کادر اضافه ی دور آن را ببرد:
ی زیر را نوشته و ذخیره می کنیم. ابتدا برنامه
برنامه اجرا شده و تصویر آن را در زیر میبینید:برای نمونه این
و حاال برنامه ی زیر را می نویسیم تا ویرایش های الزم بر روی تصاویر اعمال شود.
مقدمه ای سیستم های کنترلی:
Tf: transfer function
Zpk مدل صفر و قطب و بهره
Zpk(zero,pole,gain)
به هم تبدیل کرد. این دو حالت را میتوان
Pzmap(h) نمایش صفر ها و قطب ها
مثال:
rlocus(h)
مکان هندسی ریشه های تابع انتقال حلقه باز:
Bode(h) :نمودار بود
Nyquist(h) :نمودار نایکوئیست را نمایش می دهد
Nichols(h) :نمودار نیکولز را نمایش می دهد
Series(h1,h2) ا سری می کند.دو تابع ر
Parallel(h1,h2) .موازی می کند
Feedback(h1,h2) فیدبک منفی
Feedback(h1,h2,+1) فیدبک مثبت
Impulse(h) .پاسخ ضربه را نمایش می دهد
Step(h) پاسخ پله
Gensig پاسخ سیستم به ورودی دلخواهgeneral signal
Lsim(h,u,t) که در آنh .تابع انتقال است
به صورت کمرنگ ورودی را نمایش می دهد و پر رنگ خروجی را نمایش می دهد.