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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.78
BennyVorona
3 / 3 / 1
Регистрация: 18.12.2013
Сообщений: 16
#1

Нахождение минимума функции на интервале способом перебора - C++

27.03.2014, 10:17. Просмотров 1596. Ответов 3
Метки нет (Все метки)

Помогите реализовать программу, которая позволяет найти минимум некоторой функции на заданном интервале. Алгоритм нахождения минимума заключается в последовательном переборе с заданным шагом точек интервала и сравнении значений функции в текущей точке с ранее найденным минимумом. Нахождение минимума реализовать отдельной функцией. Параметры функции - интервал, указатель на функцию, для которой ищется минимум, и шаг (по умолчанию шаг равен 0.00001). Разместить все функции, кроме main(), в отдельной единице трансляции (заголовочный файл и файл реализации).
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.03.2014, 10:17
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Нахождение минимума функции на интервале способом перебора (C++):

Непрерывные функции и нахождение минимума на отрезке - C++
Помогите реализовать функцию Solve из данной задачи: Задается непрерывная функция f(x). Требуется на интервале с заданной точностью E...

Нахождение минимума функции методом половинного деления - C++
Есть программа нахождения корня методом половинного деления. Как ее переделать, чтобы она находила минимум функции и выводила график не...

Нахождение минимума функции одной переменной методом кубической параболы - C++
Допущена ошибка в коде.Предполагаю,что неверно выбран x1 в самой функции метода.Также возможна ошибка в выборе шага(я беру 0.59). ...

Численное нахождение максимального значения функции у = f (x) на заданном интервале - C++
Помогите пожалуйста написать программу численного нахождения максимального значения функции у = f (x) на заданном интервале на C++. За...

Нахождение минимума k в матрице - C++
подскажите пожалуйста какой код будет для нахождения минимума k в матрице

Нахождение локального минимума - C++
Здравствуйте!!!! Напишите программу или алгоритм для нахождения локального минимума. Заранее спасибо Добавлено через 14 минут я...

3
aLarman
642 / 563 / 89
Регистрация: 13.12.2012
Сообщений: 2,109
27.03.2014, 11:00 #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
typedef (*Func)(double x);
 
double Solve(double Start, double End, Func f, double Step = 0.00001)
{
double xMin = Start;
double fMin = f(Start);
while(Start < End)
{
if(f(Start) < fMin)
{
xMin = Start;
fMin = f(Start);
}
Start +=Step;
}
return xMin;
}
вот ф-ция которая ищет минимум, остальное я думаю сможете доделать
1
BennyVorona
3 / 3 / 1
Регистрация: 18.12.2013
Сообщений: 16
27.03.2014, 13:25  [ТС] #3
1>------ Сборка начата: проект: МинимумФункции, Конфигурация: Debug Win32 ------
1> МинимумФункции.cpp
1>c:\users\documents\visual studio 2013\projects\минимумфункции\минимумфункции\somefile.h(3): error C2061: синтаксическая ошибка: идентификатор "Func"
1> SomeFile.cpp
1>c:\users\documents\visual studio 2013\projects\минимумфункции\минимумфункции\somefile.h(3): error C2061: синтаксическая ошибка: идентификатор "Func"
1>c:\users\documents\visual studio 2013\projects\минимумфункции\минимумфункции\somefile.cpp(5): error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию
1> Создание кода...
========== Сборка: успешно: 0, с ошибками: 1, без изменений: 0, пропущено: 0 ==========
Ошибка в строке typedef (*Func)(double x);

Добавлено через 9 минут
aLarman, Пожалуйста напишите полностью, а то все ошибки выдает. Функцию можете взять x * x + 2 * x;
0
aLarman
642 / 563 / 89
Регистрация: 13.12.2012
Сообщений: 2,109
27.03.2014, 14:01 #4
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
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
32
double Function(double x)
{
    return x*x+2.*x;
}
 
typedef double(*Func)(double x);
 
double Solve(double Start, double End, Func f, double Step = 0.00001)
{
    double xMin = Start;
    double fMin = f(Start);
    while(Start < End)
    {
        if(f(Start) < fMin)
        {
            xMin = Start;
            fMin = f(Start);
        }
        Start +=Step;
    }
    return xMin;
}
int main(int argc, char* argv[])
{
    double Start = 0, End = 0;
    cin >> Start >> End;
    double x = 0;
    x = Solve(Start, End, &Function);
    cout << "x = " << x<<endl;
    system("pause");
    return 0;
}
1
27.03.2014, 14:01
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.03.2014, 14:01
Привет! Вот еще темы с ответами:

Рекурсия, нахождение минимума в массиве - C++
В общем, в названии темы само задание. int min(int a,int n) { int minim=a; if(minim&gt;a) {minim=a; return min(a,n-1);} else...

Нахождение минимума из двух чисел - C++
Делая лабораторную с условием: Найти минимум из двух чисел х и у, написала такого вида программу: #include &lt;iostream.h&gt; #include...

Нахождение максимума и минимума (вставка ассемблера) - C++
Не работает ассемблерная вставка. Как решить проблему? #include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;time.h&gt; #include...

Нахождение минимума/максимума в конкретной строке или столбце - C++
Ребят, подскажите пожалуйста, я забыл как находить минимальный/максимальный элемент в конкретной строке/столбце. Подправьте код, а то...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

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