یکی از مثالای خود نرم افزار متلب رو براتون اینجا می نویسم و توضیح میدم (البته چند خط کد بهش اضافه کردم) :
ابتدا با دستور newfis ، یک fis با نام tipper ساخته ایم . سپس با دستور addvar ، اولین ورودی را با نام service و با محدوده 0 تا 10 تعریف کرده ایم . در سه خط بعد ، با دستور addmf ، سه تابع عضویت برای ورودی شماره اول تعریف کرده ایم . با دستور plotmf می توانیم توابع عضویت را مشاهده کنیم که برای ورودی اول به صورت عکس زیر می باشد (روی عکس کلیک کنید تا آن را در اندازه اصلی ببینید) :
این بار با دستور addvar ، ورودی دوم را با نام food و با محدوده 0 تا 10 تعریف کرده ایم . سپس دو بار از دستور addmf استفاده کرده ایم تا دو تابع عضویت برای ورودی دوم تعریف کنیم . سپس با دستور plotmf ، توابع عضویت را برای ورودی دوم رسم کرده ایم که نتیجه به صورت عکس زیر می باشد :
در مرحله بعد ، با دستور addvar ، خروجی (تنها یک خروجی) را تعریف کرده ایم . این خروجی با نام tip و دارای محدوده 0 تا 30 می باشد . با دستور addmf ، سه تابع عضویت برای خروجی تعریف کرده ایم . این بار از دستور plotmf برای رسم توابع عضویت خروجی استفاده کرده ایم که نتیجه به صورت زیر می باشد :
ruleList شامل قوانینی است که تعریف می کنیم . با دستور addrule ، این قوانین را به قوانین fis اضافه می کنیم . قوانین هم به صورت اعداد 5 تایی هست که 2 عدد اول مربوط به مقدار 2 ورودی ، عدد سوم مربوط به مقدار خروجی ، عدد چهارم مربوط به وزن (weight) در نظر گرفته شده برای قانون و عدد چهارم هم مشخص می کند که قانون به صورت AND می باشد یا OR (عدد 1 برای AND و عدد 2 برای OR) .
در انتها نیز با دستور evalfis ، مقدار دو ورودی را تعیین می کنیم تا ببینیم خروجی دارای چه مقداری می باشد . نتیجه خروجی به صورت زیر است :
امیدوارم این مطالب مفید بوده باشه .
کد:
clear all
close all
clc
a=newfis('tipper');
a=addvar(a,'input','service',[0 10]);
a=addmf(a,'input',1,'poor','gaussmf',[1.5 0]);
a=addmf(a,'input',1,'good','gaussmf',[1.5 5]);
a=addmf(a,'input',1,'excellent','gaussmf',[1.5 10]);
plotmf(a,'input',1)
a=addvar(a,'input','food',[0 10]);
a=addmf(a,'input',2,'rancid','trapmf',[-2 0 1 3]);
a=addmf(a,'input',2,'delicious','trapmf',[7 9 10 12]);
figure
plotmf(a,'input',2)
a=addvar(a,'output','tip',[0 30]);
a=addmf(a,'output',1,'cheap','trimf',[0 5 10]);
a=addmf(a,'output',1,'average','trimf',[10 15 20]);
a=addmf(a,'output',1,'generous','trimf',[20 25 30]);
figure
plotmf(a,'output',1)
ruleList=[ ...
1 1 1 1 2
2 0 2 1 1
3 2 3 1 2 ];
a=addrule(a,ruleList);
out=evalfis([1 1],a)
ابتدا با دستور newfis ، یک fis با نام tipper ساخته ایم . سپس با دستور addvar ، اولین ورودی را با نام service و با محدوده 0 تا 10 تعریف کرده ایم . در سه خط بعد ، با دستور addmf ، سه تابع عضویت برای ورودی شماره اول تعریف کرده ایم . با دستور plotmf می توانیم توابع عضویت را مشاهده کنیم که برای ورودی اول به صورت عکس زیر می باشد (روی عکس کلیک کنید تا آن را در اندازه اصلی ببینید) :
این بار با دستور addvar ، ورودی دوم را با نام food و با محدوده 0 تا 10 تعریف کرده ایم . سپس دو بار از دستور addmf استفاده کرده ایم تا دو تابع عضویت برای ورودی دوم تعریف کنیم . سپس با دستور plotmf ، توابع عضویت را برای ورودی دوم رسم کرده ایم که نتیجه به صورت عکس زیر می باشد :
در مرحله بعد ، با دستور addvar ، خروجی (تنها یک خروجی) را تعریف کرده ایم . این خروجی با نام tip و دارای محدوده 0 تا 30 می باشد . با دستور addmf ، سه تابع عضویت برای خروجی تعریف کرده ایم . این بار از دستور plotmf برای رسم توابع عضویت خروجی استفاده کرده ایم که نتیجه به صورت زیر می باشد :
ruleList شامل قوانینی است که تعریف می کنیم . با دستور addrule ، این قوانین را به قوانین fis اضافه می کنیم . قوانین هم به صورت اعداد 5 تایی هست که 2 عدد اول مربوط به مقدار 2 ورودی ، عدد سوم مربوط به مقدار خروجی ، عدد چهارم مربوط به وزن (weight) در نظر گرفته شده برای قانون و عدد چهارم هم مشخص می کند که قانون به صورت AND می باشد یا OR (عدد 1 برای AND و عدد 2 برای OR) .
در انتها نیز با دستور evalfis ، مقدار دو ورودی را تعیین می کنیم تا ببینیم خروجی دارای چه مقداری می باشد . نتیجه خروجی به صورت زیر است :
کد:
out =
5.5375
امیدوارم این مطالب مفید بوده باشه .
لطفا برای درج کد، از دکمه مخصوص درج کد در ادیتور انجمن استفاده کنید.
در مورد برنامه نویسی، مدیران تنها راهنمایی می کنند و نوشتن برنامه نهایی، به عهده کاربران می باشد (اینجا محلی برای یادگیری است، نه سفارش کدنویسی).
کاربران باید ابتدا خود به خطایابی برنامه بپردازند، نه اینکه به محض دیدن خطا، کدها را در انجمن، copy و paste کرده و از مدیران انتظار بررسی داشته باشند.