0 / 0 / 0
Регистрация: 18.04.2014
Сообщений: 26
1

Поиск точек экстремума методом золотого сечения

27.12.2014, 00:57. Показов 649. Ответов 0
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
#include <iostream>
#include <conio.h>
#include <fstream>
#include <string>
#include <Windows.h>
#include <locale.h>
#include <vector>
#include <cmath>
 
using namespace std;
 
double F_Parabola(const double &X, const double &A, const double &B, const double &C)
{ return A * X*X + B * X + C; }
 
double Extremum(double &a, double &b, const double &tochnosty, const double &A, const double &B, const double &C)
{
    double X_M = (a + b) / 2;
    double X_L, X_R;
    do
    {
        X_L = X_M - tochnosty;
        X_R = X_M + tochnosty;
 
        if (F_Parabola(X_L, A, B, C) < F_Parabola(X_M, A, B, C) &&
            F_Parabola(X_M, A, B, C) < F_Parabola(X_R, A, B, C))
        {
            a = X_M;
            X_M = (a + b) / 2;          
        }
        else if (F_Parabola(X_L, A, B, C) > F_Parabola(X_M, A, B, C) &&
                 F_Parabola(X_M, A, B, C) > F_Parabola(X_R, A, B, C))
        {
            b = X_M;
            X_M = (a + b) / 2;      
        }
        else if (F_Parabola(X_L, A, B, C) < F_Parabola(X_M, A, B, C) &&
                 F_Parabola(X_M, A, B, C) > F_Parabola(X_R, A, B, C))   
            return X_M;
 
    }while(true);
}
 
int main()
{
    setlocale (LC_ALL, "rus");
    cout << "Введите исходные данные для уравнения вида A*x^2 + B*x + C." << endl; 
    double A, B, C;
    cout << "A: ";
    cin >> A;
    cout << "B: ";
    cin >> B;
    cout << "C: ";
    cin >> C;
    
    double a, b;
    cout << "Границы интервала (a и b): ";
    cin >> a >> b;
    
    double tochnosty;
    cout << "Точность: ";
    cin >> tochnosty;   
    double res = Extremum(a, b, tochnosty, A, B, C);
 
    int aa = fabs(log10(tochnosty)); 
    char s[100];
 
    sprintf(s, "%dlf", aa);
    for(int i = strlen(s) + 2; i >= 2; i--)
        s[i] = s[i -2];
 
    s[0] = '%';
    s[1] = '.';
 
    printf("X = ");
    printf(s, res);
    printf(", Y = %lf", F_Parabola(res, A, B, C));  
 
    _getch();
    return 0;
}
для чего это?
C++
1
2
3
4
5
6
7
8
9
    int aa = fabs(log10(tochnosty)); 
    char s[100];
 
    sprintf(s, "%dlf", aa);
    for(int i = strlen(s) + 2; i >= 2; i--)
        s[i] = s[i -2];
 
    s[0] = '%';
    s[1] = '.';
Добавлено через 31 минуту
что-то я не могу понять. результаты не выводит. программа не моя, хочу разобраться, но не понимаю что в конце написано
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.12.2014, 00:57
Ответы с готовыми решениями:

Поиск методом золотого сечения
Здравствуйте, вот задался целью написать поиск в большом массиве, с помощью метода золотого...

Поиск элемента в массиве методом золотого сечения
* Составить блок-схему алгоритма поиска элемента в массиве методом золотого сечения. Массив...

найти методом золотого сечения минимум
просто нужно взять любое линейное уравнение и найти методом золотого сечения минимум. и на с++ всё...

Найти минимум функции методом золотого сечения.
Помогите пожалуйста!... Нужно найти минимум функции у=х*х-sinх методом золотого сечения. в СИ....

0
27.12.2014, 00:57
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.12.2014, 00:57
Помогаю со студенческими работами здесь

Вычисление корня нелинейного уравнения методом Золотого сечения.
Всем вечер добрый, нужен алгоритм поиска корня нелинейного уравнения методом Золотого сечения....

Метод Золотого сечения. Пассивный поиск
Нужно написать программу Описание на картинке. Выручайте! Спасибо заранее кто поможет...

Поиск экстремумов, методы золотого сечения, дихотомии, кв. интерполяции-экстраполяции
Всем привет! Возникли проблемы с реализацией методов, указанных выше. Функция всегда используется...

Поиск экстремума методом деления отрезка пополам
Выдаёт ошибку в 15 строчке. Не могу понять в чём дело, помогите) #include&lt;iostream&gt; ...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru