Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
oksanaBM
1 / 1 / 0
Регистрация: 27.01.2011
Сообщений: 91
#1

Реализация класса функций принадлежности треугольника и трапеций - C++

17.05.2014, 10:19. Просмотров 761. Ответов 10
Метки нет (Все метки)

Здравствуйте. Передо мной стоит такая задача. Необходимо реализовать задачу поиска регрессионной зависимости в условиях нечеткой логики. Для этого надо прописать класс функций принадлежности. В котором у меня будут две функции: для построения треугольника и для построения трапеции.
C
1
2
3
4
5
6
class funcMembership
{
public:
    double funcTriangle(double x,double a, double b);//треугольная функция принадлежности
    double funcTrapezoid(double x,double a, double b);//трапециедальная функция принадлежности
};
Формулы для функций в картинках.
Как я поняла, для треугольника я задаю координаты х точек на основании, а координату х для пика должна вычислить. Так? Собственно, для трапеции такая же ситуация, координаты х пиков я должна тоже вычислить?
0
Миниатюры
Реализация класса функций принадлежности треугольника и трапеций   Реализация класса функций принадлежности треугольника и трапеций  
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.05.2014, 10:19
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Реализация класса функций принадлежности треугольника и трапеций (C++):

Реализация класса на базе класса Stack с возможностью !индексирования! - C++
Помогите пожалуйста!!! Нужно реализовать на базе класса stack другой класс с возможностью индексирования, а именно: Например 1 - й...

Перегрузка функций. Реализация функций - C++
Разработать функцию f(x) , которая возвращает младшую цифру натурального числа x . Вычислить с ее помощью значение выражения z= f(a) +...

Вызов функций класса Dictionary функциями дружественного класса - C++
Функции класса Tree используют функции дружественного класса Dictionary,но вылетают ошибки,не находятся определения функций класа...

функции класса раздела private реализуються так же как и раздела public? в смысле виртуальных функций, дружественных функций, и т.д. - C++
функции класса раздела private реализуються так же как и раздела public? в смысле виртуальных функций, дружественных функций, и т.д.

Реализация функций - C++
Помогите, пожалуйста, реализовать методы классов (заголовки даны в biTree.g) Я плохо шарю, а завтра сдавать! Очень надо( Дан: biTree.h...

Реализация математических функций - C++
Где можно найти, как реализованы примитивные мат. функции такие, как sqrt, pow, sin, asin, log и другие и сколько примерно тактов...

10
oksanaBM
1 / 1 / 0
Регистрация: 27.01.2011
Сообщений: 91
17.05.2014, 10:33  [ТС] #2
Нагуглила вот такую реализацию функции треугольника, но совсем не понимаю ее. Задаются значения 1о и high, которые определяют базовые вершины треугольника. Высшая точка задается как high/2.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
//функция принадлежности в виде треугольника
public float spikeProfile (float value, float lo, float high)
{
    float peak;
    value += (-lo);
    if ((lo < 0) && (high < 0))
    {
        high = -(high - lo);
    }
    else 
        if ((lo < 0) && (high > 0))
        {
            high += -lo;
        }
        else 
            if ((lo > 0) && (high > 0))
            {
                high -= lo;
            }
    peak = (float)(high / 2.0);
    lo =(float)0.0;
    if (value < peak)
        {
            return (value / peak);
        }
        else if (value > peak)
        {
            return ((high - value) / peak);
        }
    return (float)1.0;
}
0
Том Ардер
Модератор
Эксперт по математике/физике
3755 / 2368 / 296
Регистрация: 15.06.2009
Сообщений: 4,243
17.05.2014, 12:22 #3
Цитата Сообщение от oksanaBM Посмотреть сообщение
Нагуглила вот такую реализацию функции треугольника
Наверное, в том месте должно быть и описание функции - параметры, интерфейс вызова. Без этого понять, что делает функция, восстановить алгоритм по коду - весьма сложно. Вам проще написать свой код функции - формулы уже есть.
И всё это лучше обсуждать в разделе форума С++, к статистике это не имеет никакого отношения.
0
oksanaBM
1 / 1 / 0
Регистрация: 27.01.2011
Сообщений: 91
17.05.2014, 12:33  [ТС] #4
В том месте, к сожалению, просто перечислены функции, без их вызова. Так вот написала начало:
C++
1
2
3
4
5
6
7
8
9
double funcMembership::funcTriangle(double x,double a, double b)//треугольная функция принадлежности
{
    float peak;//верхняя вершина треугольника 
 
    if (x<=a) return 0.0;
    if (x>a && x<=c) return (x-a)/(c-a);
    if (x>c && x<b) return (b-x)/(b-c);
    if (x>=b) return 1.0;
}
А как вычислить точку пика я не знаю(
0
Том Ардер
Модератор
Эксперт по математике/физике
3755 / 2368 / 296
Регистрация: 15.06.2009
Сообщений: 4,243
17.05.2014, 13:19 #5
Цитата Сообщение от oksanaBM Посмотреть сообщение
как вычислить точку пика я не знаю(
Что такое "точка пика"? Смысл строки 3 в коде? В алгоритме (формула, рисунок) есть параметр с, в коде тоже, а где его определение?
0
oksanaBM
1 / 1 / 0
Регистрация: 27.01.2011
Сообщений: 91
17.05.2014, 13:23  [ТС] #6
Ну так я и не знаю, с я должна вычислять или задавать.
0
Том Ардер
Модератор
Эксперт по математике/физике
3755 / 2368 / 296
Регистрация: 15.06.2009
Сообщений: 4,243
17.05.2014, 13:40 #7
В найденном Вами коде функции spikeProfile происходит просто смещение координат вершин треугольника, чтобы конечные выражения были проще.
В Вашем коде peak - это координата вершины, т.е. то же самое, что точка c, ввиду симметрии
C++
1
peak = (a+b)/2;
0
oksanaBM
1 / 1 / 0
Регистрация: 27.01.2011
Сообщений: 91
17.05.2014, 13:51  [ТС] #8
хорошо.
а как найти в трапециевидной точки с и d подобные точке с треугольника ?
C++
1
2
3
4
5
6
7
8
9
double funcMembership::funcTriangle(double x,double a, double b)//трапециевидная функция принадлежности
{
    float c,d;//вершины верхнего основания трапеции
 
    if (x<=a && x>=b) return 0.0;
    if (x>a && x<c) return (x-a)/(c-a);
    if (x>=c && x<=d) return 1.0;
    if (x>d && x<b) return (b-x)/(b-c);
}
0
Том Ардер
Модератор
Эксперт по математике/физике
3755 / 2368 / 296
Регистрация: 15.06.2009
Сообщений: 4,243
17.05.2014, 14:10 #9
Цитата Сообщение от oksanaBM Посмотреть сообщение
как найти в трапециевидной точки с и d подобные точке с треугольника
Никак, хотя бы одну нужно задавать, вторую по симметрии.
0
oksanaBM
1 / 1 / 0
Регистрация: 27.01.2011
Сообщений: 91
17.05.2014, 14:18  [ТС] #10
Хм. Мне необходимо их как-то вычислять.. А в этом файле слишком замудрено? Тут вычисляются эти точки.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
public float plateauProfile(float value, float lo, float lo_plat, float hi_plat, float hi)
{
    float upslope;
    float downslope;
    value += (-lo);
    
    if (lo < 0.0)
    {
        lo_plat += -lo; hi_plat += -lo;
        hi += -lo; lo = 0;
    }
        else
        {       
            lo_plat -= lo; hi_plat -= lo;
            hi -= lo; lo = 0;
        }
    upslope =(float) (1.0 / (lo_plat - lo));
    downslope = (float)(1.0 / (hi - hi_plat));
    
    if (value < lo) return (float)0.0;
    else 
        if (value > hi) return (float)0.0;
        else 
            if ((value >= lo_plat) && (value <= hi_plat)) return (float)1.0;
            else 
                if (value < lo_plat) return ((value - lo) * upslope);
                else 
                    if (value > hi_plat) return ((hi - value) * downslope);
    return (float)0.0;
}
0
Том Ардер
Модератор
Эксперт по математике/физике
3755 / 2368 / 296
Регистрация: 15.06.2009
Сообщений: 4,243
17.05.2014, 15:54 #11
Судя по названиям переменных, здесь задаются координаты нижнего основания и величины верхнего и нижнего оснований трапеции. Вычисление точек c, d требует знаний геометрии на уровне 6-7 классов.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.05.2014, 15:54
Привет! Вот еще темы с ответами:

Реализация перегруженных функций - C++
Нужна помощь по реализации перегруженных функций: int func (int * arr, int length, int number); int func (char * str, char ch); ...

Классы и реализация функций - C++
Дан класс Class Move { privare: double x; double y; public: //присваивает x, у значения a, b Move(double a=0, double...

Реализация функций интерфейса - C++
Есть класс с прототипами - интерфейс (верно?). Наследую от него два класса, А и В. Как мне в этих классах сделать разную реализацию...

Перегрузка функций вычисления площади треугольника - C++
Есть 11 функций которые считают площадь треугольника. Каждая по отдельной формуле. Не все функции с разным количеством параметров. Как их...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Yandex
Объявления
17.05.2014, 15:54
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru