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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ Как удалить символ через cout? http://www.cyberforum.ru/cpp-beginners/thread671277.html
Собственно вся суть изложена в названии темы. Я слышал, что через cout << '' можно удалить один символ. Там нужно cout << '\какая-то буква'. Подскажите эту "какую-то" букву. Всё, проблема решена, не знаю как удалить тему.
C++ Программирование типовых числовых задач обработки одномерных массивов 1) Вычислить и запомнить в структуре одномерного массива (таблица 1) фиксированное количество элементов числовой последовательности, заданной рекуррентным выражением; 2)Найти минимальный элемент последовательности и его номер; 3)Найти максимальный элемент последовательности и его номер; 4)Вычислить сумму элементов последовательности; 5)Вычислить произведение элементов последовательности;... http://www.cyberforum.ru/cpp-beginners/thread671269.html
Объявление переменной, после ввода её имени с клавиатуры C++
необходимо, чтобы пользователь имел возможность задавать свои имена переменных. А вообще требуется для создания множества с определённым именем в виде линейного списка.
Шаблоны с переменным числом аргументов C++
Написал шаблон функции с переменным числом аргументов которая считает сумму своих аргументов. Практики по этому вопросу не имею, поэтому возник вопрос - правильно ли написано или это все можно сделать как то по проще, можно ли обойтись без статической переменной? Вот код:#include <iostream> using namespace std; static long double sum = 0; template <class T> long double sum_values(const...
C++ Простая задачка: Распаковка строки http://www.cyberforum.ru/cpp-beginners/thread671232.html
Задача D «Распаковка строчки» Будем рассматривать только строчки, состоящие из заглавных латинских букв. Например, рассмотрим строку*AAAABCCCCCDDDD. Длина этой строки равна 14. Поскольку строка состоит только из латинских букв, повторяющиеся символы могут быть удалены и заменены числами, определяющими количество повторений. Таким образом, данная строка может быть представлена как 4AB5C4D. Длина...
C++ Перевод числа из восьмиричной в десятичную систему счисления Здравствуйте! Вопрос такой. Мне нужно ввести с клавиатуры число и перевести его как бы (на самом деле в программе она должна находиться в десятичной) в восьмеричную систему счисления. Получившееся значение присвоить переменной. Как это можно реализовать??? подробнее

Показать сообщение отдельно
dnb_dnb
44 / 0 / 1
Регистрация: 13.11.2011
Сообщений: 95
14.10.2012, 21:47     Поиск минимума методом трихотомии
Здравствуйте! Написал, но почему-то не работает. Подскажите пожалуйста что тут не так?
Метод трихотомии - деление на три, аналог метода дихотомии (деление на два).

Или то что я нахожу 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)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 04:30. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru