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

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

Войти
Регистрация
Восстановить пароль
 
dnb_dnb
44 / 0 / 1
Регистрация: 13.11.2011
Сообщений: 95
#1

Поиск минимума методом трихотомии - C++

14.10.2012, 21:47. Просмотров 756. Ответов 1
Метки нет (Все метки)

Здравствуйте! Написал, но почему-то не работает. Подскажите пожалуйста что тут не так?
Метод трихотомии - деление на три, аналог метода дихотомии (деление на два).

Или то что я нахожу f1 и f2 - уже не правильно?
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
#include <conio.h>
#include <math.h>
#include <iostream>
using namespace std;
double f(double x) {
 
    return  pow((x-1),2)+1;
}
int main() {
 
    double a,b,E,Xopt;
    cout<<"a="; cin>>a;
    cout<<"b="; cin>>b;
    cout<<"E="; cin>>E;
 
    do {
        int f1=(b-a)*1/3;
        int f2=(b-a)*2/3;
        if (f(a)>=f(f1) && f(f1)>=f(f2) && f(f2)>=f(b)) {f2=a; Xopt=(a+b)/2;}
        if (f(a)<=f(f1) && f(f1)<=f(f2) && f(f2)<=f(b)) {f1=b; Xopt=(a+b)/2;}
        if (f(a)>=f(f1) && f(f1)>=f(f2) && f(f2)<=f(b)) {f2=a; Xopt=(a+b)/2;}
        if (f(a)>=f(f1) && f(f1)<=f(f2) && f(f2)<=f(b)) {f1=b; Xopt=(a+b)/2;}
 
    }
    while (fabs(E*(b-a))>=E); //абсолютное значение
        cout<<"X минимальный: "<<Xopt<<"\n";
        cout<<"Значение в минимальной точке функции: "<<f(Xopt)<<"\n";
        cout<<"Погрешность: "<<E<<"\n";
        getch();
    return 0;
}
Лучше всего, для этой функции вводить a=0, b=2. (потому что тут минимум должен быть в точке 1)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.10.2012, 21:47
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Поиск минимума методом трихотомии (C++):

Поиск минимума функции методом наискорейшего спуска - C++
Добрый день. Передо мной встала задача: реализовать поиск минимума функции градиентным методом наискорейшего спуска. Я программу решила...

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

Поиск минимума - C++
Сидим на паре. Дали модуль - Используя оператор цикла, составить программу, в которой находится значение минимального положительного члена...

Найти приближенное значение минимума функции методом Фибоначчи - C++
Помогите пожалуйста написать программу. Найти приближенное значение минимума заданной функции(значение функции вычислить в N=21 точках)...

Поиск минимума с рекурсией - C++
Описать функцию min(x) для определения минимального элемента массива X, введя вспомогательную рекурсивную функцию min(k), находящую минимум...

Поиск максимума и минимума - C++
Уважаемые форумчане помогите с задачей немогу понять как её зделать. Задание:N точек на площаде заданы своими координатами (xi,yi)....

1
Nixy
ComfyMobile
400 / 281 / 8
Регистрация: 24.07.2012
Сообщений: 916
14.10.2012, 22:48 #2
C++
1
 int f1=(b-a)*1/3;
я метода не знаю но вот вопрос точно ли f1 f2 должны быть целыми числами?
и еще 2/3,на всякий случай поменяй на 2./3. ,иначе возможно целочисленное деление, результат которого отнюдь не тот которого ты ждешь
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.10.2012, 22:48
Привет! Вот еще темы с ответами:

Поиск минимума в массиве - C++
Подскажите,как исправить ошибку? Вот функция main: #include &quot;PUPC.h&quot; #include &quot;Printer.h&quot; #include &quot;Monitor.h&quot; using namespace...

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

Поиск второго минимума в массиве - C++
можно ли сие как-нибудь реализовать одним циклом?

Функции. Поиск минимума и максимума. - C++
Составить программу для нахождения суммы минимального и максимального значений среди элементов каждой из линейных таблиц Х и Y


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

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

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