معمولاً برنامهنویسان برای اینکه در نوشتن برنامههای بزرگ و پیچیده دچار مشکل نشوند، از توابع استفاده میکنند. این توابع، خود میتواند ساده یا پیچیده باشند. از نرمافزار متلب اغلب برای حل معادلات ریاضی پیچیده، بهینهسازی توابع خطی و غیر خطی، دستگاههای معادلات، پردازش تصویر، استفاده و تحلیل دادههای آماری، انواع رگرسیون و برازش منحنی، رسم نمودارهای چند بعدی با امکانات بالا، شبکههای عصبی، منطق فازی و… استفاده میشود. نکته مهم این است که کاربر به کمک نرمافزار متلب میتواند در کمترین زمان ممکن، بسیاری از توابع آماده در یک برنامه واحد را به کار بگیرد. همین امر سبب شده که نرمافزار متلب تبدیل به یک نرمافزار مهم و کاربردی در میان دانشجویان مهندسی و علوم پایه شود.
ممکن است بسیاری از افراد بپرسند که بهترین کتاب آموزشی نرمافزار متلب چیست. در پاسخ خواهم گفت: هلپ (Help) نرمافزار متلب . مشکل بسیاری از کتابهای آموزشِ نرمافزار متلب این است که علیرغم پرحجم و قطور بودن، سنگین و گران بودن، باز هم کامل نیستند و شیوه استفاده از بسیاری از توابع را توضیح ندادهاند. علاوه بر این، دیدهام که در برخی از نسخههای متلب، برخی توابع حذف و اضافه میشوند و یا شیوه استفاده از آنها در نرمافزار تغییر میکند. اگر آشنایی اندکی هم با زبان انگلیسی داشته باشید کافی است و کارتان راه میافتد. شما میتوانید با جستجوی کلیدواژههای مختلف در Help نرمافزار، در کمترین زمان به توابع مختلف و شیوه استفاده از آنها، حلقهها و شرطهای برنامهنویسی و … دسترسی داشته باشید و در مواردی مثالهای مختلفی را در نرمافزار بیابید.
همچنین سایت نرمافزار متلب نیز منبع بسیار خوبی برای یادگیری و آموزش استفاده از توابع و امکانات نرمافزار متلب است که البته متاسفانه برای کاربران با IP ایران در دسترس نیست و کاربران ایرانی برای استفاده از این سایت باید IP خود را تغییر دهند. در سایتِ نرمافزارِ متلب، کاربران بدون ثبتنام، میتوانند به مثالهای نرمافزار همراه با توضیحات و کد دسترسی داشته باشند.
اگر فکر میکنید نرمافزار متلب همیشه به کارتان میآید، میتوانید شیوه استفاده از توابع مختلف را در اِم فایل (M-file)های جداگانه ذخیره کنید تا هنگام نوشتن برنامههای بزرگ و پیچیده، سردرگم نشوید و زمان کمتری را صرف حل مسئله کنید. قبلاً تعدادی از کاربردیترین و رایجترین توابع متلب در قالب M-file در آورده بودم و برای راحتیِ کار، در برنامهها از آنها استفاده میکردم. اکنون برخی از این برنامهها را برای استفاده شما در زیر آوردهام:
برنامه یافتن ریشه معادله غیر خطی (x.^3-2*x+cos(x)-5)
%roots of nonlinear Eq
% we want to find the roots of (x)x.^3-2*x+cos(x)-5
% By IRAN MATLAB: www.matlab1.ir
clc
clear all
f= @(x)x.^3-2*x+cos(x)-5;
z= fzero(f,2)
برنامه مشتقگرفتن به صورت عددی (تعدادی عدد داریم. ابتدا یک چند جملهای از مجموعه نقاط عبور میدهیم (برازش منحنی) و سپس مشتق منحنی را در نقطه دلخواه بدست میآوریم.)
% find y'(4) with following data
% The polyder function calculates the derivative of polynomials
%answer is the drivative value of the curve in four point.
% By IRAN MATLAB: www.matlab1.ir
clc
clear all
x=[2 3.5 5 6 8 9.5 10]’
y=[3 4 5 7 7 4.5 2]’
p=polyfit(x,y,5);
d=polyder(p);
answer=polyval(d,4) %moshtaghe tabe dar x=4
برازش منحنی (Curve Fitting) چند جملهای به کمک دستور ployfit. با داشتن چندین نقطه (X,Y)، یک منحنی درجه n از این نقاط عبور میدهیم. این برنامه با دریافت n، ضرایب چند جملهای را به شما میدهد. پیشفرض n=3.
% By IRAN MATLAB: www.matlab1.ir
clc
clear all
x = [3 4 6 7 9]’
y = [8 17 40 55 90]’
%P(x)=p1*x^4 + p2*x^3 + p3*x^2 + p4
p = polyfit(x,y,3)’
plot(x,y,’*’)
برنامه به دست آوردن ریشه معادله چند جملهای درجه n.
% roots
% By IRAN MATLAB: www.matlab1.ir
clc
clear all
p=[ 1 4 3]’ %P(x)=x^2 + 4x + 3
roots(p)
برنامه به دست آوردن مقدار تابع چندجملهای درجه n در نقطهای خاص.
% By IRAN MATLAB: www.matlab1.ir
%polyval meghdare chand jomle’ee ra be ezaye meghdare hkas midahad
%P(x)=3*x^2 + 2*x +5
clc
clear all
p=[3 2 5]’ % P(x)=3*x^2 + 2*x +5
f=polyval(p,5) % P(5)=90
برنامه محاسبه انتگرال به همراه رسم نمودار. در این برنامه برخی از جزئیات رسم نمودار از جمله، شطرنجی بودن، برچسب (label)های عمودی و افقی. برچسب در دو خط و برچسب متغیر به هنگام خروجیهای مختلف برنامه آورده شده است.
% By IRAN MATLAB: www.matlab1.ir
clc
clear all
x = (0:5)’
y=x+3
I=trapz(x,y) %Trapezoidal numerical integration. ans=((3+8)*5)/2
plot(x,y)
%title((date),’fontsize’,14)
f = 70;
title([‘Temperature is ‘,num2str(f),’ C’],’fontsize’,12)
%title(‘Temperature is ‘)
%xlabel(‘mehvar x’)
xlabel({‘first line’;’second line’})
%ylabel(‘mehvar y’)
ylabel(‘George”s Popularity’,’fontsize’,12,’fontweight’,’b’)
xlim([0 6])
ylim([0 10])
%axis([0 6 0 10]) % axis([xmin xmax ymin ymax])
grid on
برنامه درونیابی (Interpolation) خطی مجموعهای از نقاط.
% 1-D data interpolation
% X should be ascendant or descend
% By IRAN MATLAB: www.matlab1.ir
clc
clear all
x=[2 6 8 12 15 17]’
y=[3 7 9 11 8 5]’
x0=[7 13 15.5]’
y0=interp1(x,y,x0)
%with 2-degree interpolation:
%y0=interp1(x,y,x0,’spline’)
%with 3-degree interpolation:
%y0=interp1(x,y,x0,’cubic’)
برنامه درونیابی (Interpolation) دو بعدی مجموعهای از نقاط. (مثلاً در درونیابی دادههای جداول بخار در ترمودینامیک کاربرد دارد.)
% By IRAN MATLAB: www.matlab1.ir
clc
clear all
years = 1950:10:1990′
service = 10:10:30′
wage = [150.697 199.592 187.625
179.323 195.072 250.287
203.212 179.092 322.767
226.505 153.706 426.730
249.633 120.281 598.243]
%it is possible to interpolate to find the wage
%earned in 1975 by an employee with 15 years’ service:
w = interp2(service,years,wage,15,1975)
یک برنامه شامل شش نقطه که یک منحنی درجه ۵ از آن عبور داده شده و ضرایب این منحنی و همچنین ریشههای معادله این منحنی نیز بدست آمده است. مقدار ماکسیمم و مینیمم این منحنی در بازهای مشخص محاسبه شده و نمودار این منحنی همراه با نقاط اولیه (مثل نقاط حاصل از آزمایش) و نقاط اکسترمم به همراه گزینههای دیگری ترسیم و نشان داده شده است. خواندن و کار کردن روی این برنامه میتواند بسیار کاربردی و مفید باشد. در این برنامه دستورهای plot، legend، polyfit، polyval، fminbnd و num2str به کار رفته است.
% By IRAN MATLAB: www.matlab1.ir
clc
clear all
% plot experimentalData ———————————————-
x = 0:5′ % x data
y = [2 1 4 4 3 2]; % y data
p = polyfit(x,y,5)’ % Degree 5 fit
% plot polynimial——————————————————
plot(x,y,’r*’,’LineWidth’,3) % Plot data
hold on
xfit = -1:0.1:6;
yfit = polyval(p,xfit);
plot(xfit,yfit,’LineWidth’,2) % Plot fit
ylim([-1,5])
legend(‘Experimental’,’Perdicted’)
grid on
%roots——————————————————————-
roots=roots(p)
%P(3)——————————————————————–
p_3=polyval(p,3)
% display 1to6 ———————————————————
t=0;
for t=1:6
text(x(t), y(t), num2str(t) ,’FontSize’,12)
end
%Flash——————————————————————-
text(3.5,3.4,’ \leftarrow P(x)’,’FontSize’,12)
%Min value—————————————————————
fmin = @(x)p(1)*x^5+p(2)*x^4+p(3)*x^3+p(4)*x^2+p(5)*x+p(6);
xmin = fminbnd(fmin, 0, 4)
fxmin=polyval(p,xmin)
plot(xmin,fxmin,’k*’,’LineWidth’,3)
text(xmin,fxmin,’ Minimum’)
%Max value—————————————————————
[xmax fval] = fminbnd(@(x)-(p(1)*x^5+p(2)*x^4+p(3)*x^3+p(4)*x^2+p(5)*x+p(6)),0,8);
xmax
fxmax=-fval %fval in maximum problem, returen negative number so we put -fval
plot(xmax,fxmax,’k*’,’LineWidth’,3)
text(xmax,fxmax,’ Maximum’)
% Title and lables —————————————————–
%title(‘Temperature is ‘)
%title((date),’fontsize’,14)
f = 70;
title([‘Temperature is ‘,num2str(f),’ C’],’fontsize’,12)
xlabel({‘first line’;’second line’})
ylabel(‘y-axis’)
%Export to excel——————————————————-
%save(‘test1.txt’ ,’roots’)
%xlswrite(‘test1’,p) % this section export p-value to test1.xls (excel file)
%mydata=xlsread(‘test1’, -1); %this section opens test1.xls file immidiately
برنامه رسم نمودار در متلب به کمک دستور plot و ezplot برای رسم معادله تک متغیر و یا مجموعهای از اعداد.
clc
clear all
% By IRAN MATLAB: www.matlab1.ir
%x = [3 4 6 7 9]’
%y = [5 8 13 8 12]’
% P(x)=p1*x^4 + p2*x^3 + p3*x^2 + p4
%p = polyfit(x,y,3)’
%plot(x,y)
%x = [3 4 6 7 9]’
%y = [8 17 40 55 90]’
%plot(x,y,’*’)
ezplot(‘x^2+4*x-1’) %ezplot(fun2,[xmin,xmax,ymin,ymax])
برنامه به دست آوردن مقدار بیشینه (ماکسیمم) یک تابع تک متغیر به کمک دستور fminbnd.
clc
clear all
f = @(x)-(-(x^2)+4*x-1); %(x+2)^2 – 5
[x fval] = fminbnd(@(x)-(-(x^2)+4*x-1), 0, 4);
xmax=x
fxmax=-fval
ezplot(‘-(x^2)+4*x-1’) %ezplot(fun2,[xmin,xmax,ymin,ymax])
grid on
ylim([-1,5])
% By IRAN MATLAB: www.matlab1.ir
برنامه به دست آوردن مقدار کمینه (مینیمم) یک تابع تک متغیر به کمک دستور fminbnd.
% By IRAN MATLAB: www.matlab1.ir
clc
clear all
f = @(x)x^2+4*x-1 %(x+2)^2 – 5
xmin = fminbnd(f, -4, 4)
fxmin=f(xmin)
hold on
ezplot(‘x^2+4*x-1’) %ezplot(fun2,[xmin,xmax,ymin,ymax])
ylim([-4,0])
ylim([-6,0])
grid on
برنامه ای را در متلب بنویسید که از بین n عدد ورودی تعداد اعدادی را بیابد که رقم دهگان آنها فرد باشد .
سلام
زوج و فرد در برنامه نویسی مقدماتی متلب گفته میشود. تشخیص زوج و فرد با محاسبه باقیمانده بر 2 انجام میشود.
دهگان یک عدد هم با محاسبه یاقیمانده تقسیم عدد بر 10 پیدا می شود.
سلام.میشه کمکم کنید.
برنامه فوق را طوری تغییر دهید که علاوه بر مقدار n، عددی بین 0 و 1 را نیز از کاربر بگیرد و در متغیر جدید d قرار دهد. سپس بردار x را بین 0 و 2nπ اما با گامهایی برابر با d محاسبه نماید.
سلام.لطفا راهنمایی کنید.
برنامه ای بنویسید که دو ماتریس عددی را از کاربر بگیرد و در متغیرهای x و y قرار دهد . سپس یک رشته کاراکتری شامل عبارتی ریاضی از متغیرهای x و y را از کاربر بگیرد و نتیجه آن را براساس مقادیر متغیرهای ورودی تعیین کند .
سلام
این کد بسیار ساده می باشد
می توانید از آموزش سیر تا پیاز متلب استفاده کنید.