Карта сайта
Дипломные проекты по другим темам:
перейти к полному списку дипломных проектов
Ссылка на скачивания файла в формате .doc находится в конце странички
-80 c
3. Грегори К. Использование Visual C++ 6. Специальное издание.: Пер. с англ. – М.: СПб.; К.: Издательский дом «Вильямс», 2003. – 849 с.
4. Заде Л. Понятие лингвистической переменной и его применение к принятию приближенных решений. – М.: Мир, 1976.
5. Нечеткая логика математические основы BaseGroup Labs
http://www.basegroup.ru/fuzzylogic/math_print.htm
6. Страуструп Бьярн Язык программирования C++ Второе издание. – К.: ДиаСофт, 1993. – 480 с.
ПРИЛОЖЕНИЕ
Приложение А
Листинг программы
// Fuzzy_.h: interface for the CFuzzy_ class.
class CFuzzy_
{
public:
void fisError(char *msg);
CFuzzy_();
virtual ~CFuzzy_();
double CFuzzy_::fisTriangleMf(double x, double *params);
double fisTrapezoidMf(double x, double *params);
double fisGaussianMf(double x, double *params);
double fisGaussian2Mf(double x, double *params);
double fisSigmoidMf(double x, double *params);
};
// Fuzzy_.cpp: implementation of the CFuzzy_ class.
include "stdafx.h"
include "fuzzy.h"
include "Fuzzy_.h"
include
ifndef ABS
define ABS(x) ( (x) > (0) ? (x): (-(x)) )
endif
ifndef MAX
define MAX(x,y) ( (x) > (y) ? (x) : (y) )
ifndef MIN
define MIN(x,y) ( (x) < (y) ? (x) : (y) )
CFuzzy_::CFuzzy_()
}
CFuzzy_::~CFuzzy_()
/* Triangular membership function */
double CFuzzy_::fisTriangleMf(double x, double *params)
double a = params[0], b = params[1], c = params[2];
if (a>b)
{fisError("Illegal parameters in fisTriangleMf() --> a > b");return -1;}
if (b>c)
{fisError("Illegal parameters in fisTriangleMf() --> b > c");return -1;}
if (a == b b == c)
return(x == a);
if (a == b)
return((c-x)/(c-b)*(b<=x)*(x<=c));
if (b == c)
return((x-a)/(b-a)*(a<=x)*(x<=b));
return(MAX(MIN((x-a)/(b-a), (c-x)/(c-b)), 0));
/* Trapezpoidal membership function */
double CFuzzy_::fisTrapezoidMf(double x, double *params)
double a = params[0], b = params[1], c = params[2], d = params[3];
double y1 = 0, y2 = 0;
if (a>b) {
fisError("Illegal parameters in fisTrapezoidMf() --> a > b");
fisError("Illegal parameters in fisTrapezoidMf() --> b > c");
if (c>d) {
fisError("Illegal parameters in fisTrapezoidMf() --> c > d");
if (b <= x)
y1 = 1;
else if (x < a)
y1 = 0;
else if (a != b)
y1 = (x-a)/(b-a);
if (x <= c)
y2 = 1;
else if (d < x)
y2 = 0;
else if (c != d)
y2 = (d-x)/(d-c);
return(MIN(y1, y2));
/* Gaussian membership function */
double CFuzzy_::fisGaussianMf(double x, double *params)
double sigma = params[0], c = params[1];
double tmp;
if (sigma==0)
fisError("Illegal parameters in fisGaussianMF() --> sigma = 0");
tmp = (x-c)/sigma;
return(exp(-tmp*tmp/2));
/* Extended Gaussian membership function */
double CFuzzy_::fisGaussian2Mf(double x, double *params)
double sigma1 = params[0], c1 = params[1];
double sigma2 = params[2], c2 = params[3];
double tmp1, tmp2;
if ((sigma1 == 0) || (sigma2 == 0))
fisError("Illegal parameters in fisGaussian2MF() --> sigma1 or sigma2 is zero");
tmp1 = x >= c1? 1:exp(-pow((x-c1)/sigma1, 2.0)/2);
tmp2 = x <= c2? 1:exp(-pow((x-c2)/sigma2, 2.0)/2);
return(tmp1*tmp2);
/* Sigmoidal membership function */
double CFuzzy_::fisSigmoidMf(double x, double *params)
double a = params[0], c = params[1];
return(1/(1+exp(-a*(x-c))));
void CFuzzy_::fisError(char *msg)
MessageBox(NULL,msg,"Error",MB_OK|MB_ICONSTOP);
// fuzzy.h : main header file for the FUZZY application CFuzzyApp
include "resource.h"
class CFuzzyApp : public CWinApp
CFuzzyApp();
// Overrides
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CFuzzyApp)
virtual BOOL InitInstance();
//}}AFX_VIRTUAL
// Implementation
//{{AFX_MSG(CFuzzyApp)
// NOTE - the ClassWizard will add and remove member functions here.
// DO NOT EDIT what you see in these blocks of generated code !
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
// fuzzy.cpp : Defines the class behaviors for the application. CFuzzyApp
include "fuzzyDlg.h"
BEGIN_MESSAGE_MAP(CFuzzyApp, CWinApp)
//{{AFX_MSG_MAP(CFuzzyApp)
// NOTE - the ClassWizard will add and remove mapping macros here.
// DO NOT EDIT what you see in these blocks of generated code!
ON_COMMAND(ID_HELP, CWinApp::OnHelp)
END_MESSAGE_MAP()
CFuzzyApp::CFuzzyApp()
CFuzzyApp theApp;
// CFuzzyApp initialization
BOOL CFuzzyApp::InitInstance()
AfxEnableControlContainer();
ifdef _AFXDLL
Enable3dControls();
else
Enable3dControlsStatic();
CFuzzyDlg dlg;
m_pMainWnd = dlg;
dlg.
скачать бесплатно Библиотека MFC
Содержание дипломной работы
Идея, лежащая в основе теории нечетких множеств, заключается в том, что человек в своей повседневной жизни мыслит и принимает решения на основе нечетких понятий Тогда нечетким множеством С называется множество упорядоченных пар вида C={MFc(x)/x}, MFc(x) [0,1] Последнее, что осталось сделать – построить функции принадлежности для каждого лингвистического терма из базового терм-множества T Нечеткая нейронная сеть как правило состоит из четырех слоев: слоя фазификации входных переменных, слоя агрегирования значений активации условия, слоя агрегирования нечетких правил и выходного слоя В отличие от простых когнитивных карт, нечеткие когнитивные карты представляют собой нечеткий ориентированный граф, узлы которого являются нечеткими множествами Когда MS Windows обнаруживает ресурс окна в программе, она использует команды из этого ресурса для конструирования работающего окна При перемещении мыши выводится значение точки x (с учетом масштаба) и степень принадлежности (значение данной функции принадлежности) этой точки x гос h" include , нами было разработано и проведено 6 занятий по 3D моделированию, позволяющих изучить основы 3D моделирования , нами было разработано и проведено 6 занятий по 3D моделированию, позволяющих изучить основы 3D моделирования , нами было разработано и проведено 6 занятий по 3D моделированию, позволяющих изучить основы 3D моделирования
Закачай файл и получай деньги