Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.77/13: Рейтинг темы: голосов - 13, средняя оценка - 4.77
0 / 0 / 0
Регистрация: 18.05.2014
Сообщений: 7

Найти минимум функции методом кубической параболы

18.05.2014, 00:47. Показов 2740. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый вечер. Делаю лабораторную работу по c++ (нахождение минимума функции методом кубической параболы) и не знаю как реализовать последний пункт в алгоритме (шаг 7). Подкиньте идейку. Сам никак не придумаю как это сделать.
Миниатюры
Найти минимум функции методом кубической параболы  
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
18.05.2014, 00:47
Ответы с готовыми решениями:

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

Пересечение кубической параболы и окружности
Задание звучит так: с клавиатуры вводятся коэффициенты, которые определяют полином третьего степени. Найти точки пересечения его с...

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

4
6 / 6 / 5
Регистрация: 02.06.2013
Сообщений: 47
18.05.2014, 01:04
А в чем проблема? Оба эпсилона ты знаешь, x1, и х с чертой знаешь, функцию вычислить можешь. Я не понял вопроса. Скинь то, до чего ты уже дорешался.
0
0 / 0 / 0
Регистрация: 18.05.2014
Сообщений: 7
18.05.2014, 11:50  [ТС]
Я не понимаю как в с++ реализовать 7 шаг (поменять значения переменных и вернутся в шаг 5).
0
6 / 6 / 5
Регистрация: 02.06.2013
Сообщений: 47
18.05.2014, 15:19
Скинь код, который уже есть.
0
0 / 0 / 0
Регистрация: 18.05.2014
Сообщений: 7
19.05.2014, 20:58  [ТС]
Недоделанный код (не объявлял переменные, не проверял на ошибки):
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
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
#include <iostream>
#include <math.h>
#include <stdlib.h>
 
using namespace std;
 
double  a=1,  h=1, eps1 = 0.01, eps2 = 0.03, xl;
 
double f(double);
double fp(double);
double kit(double);
 
 
int main()
{
    
 
    xl = mp3();
    cout << "Minimum = " << xl << endl;
    system("pause");
    return 0;
}
 
double f(double x)
{
    return x*cos(x)-x;
}
 
double fp(double x)
{
    return (-x)*sin(x)+cos(x)-1;
}
double kip(double x1, double x2) // кубический интерполяционный полином
{
    double w, z, nu;
    z = (3 * (f(x1) - f(x2))) / x2 - x1 + fp(x1) + fp(x2);
 
 
    if (x1 < x2)
        w = pow((pow(z, 2) - fp(x1)*fp(x2)), 1 / 2.);
    else w = -pow((pow(z, 2) - fp(x1)*fp(x2)), 1 / 2.);
 
    nu = (fp(x2) + w - z) / (fp(x2) - fp(x2) + 2 * w);
 
    if (nu < 0) xl = x2;
    if (nu >= 0 && nu <= 1) xl = x2 - nu*(x2 - x1);
    if (nu>1) xl = 1;
 
    if (f(xl) >= f(x1)) xl = xl - 1 / 2.*(xl - x1);
    do {
        xl = xl - 1 / 2.*(xl - x1);
    } while (f(xl) <= f(x1));
    return xl;
}
double x1( double h)
{
    double x0, x, x1, x2, xk_p_1, xm, xm_m_1;
    int k = 0, m = 0;
    x0 = a;
    x = x0 + 1;
    if (fp(x0)<0)
    do {
        xk_p_1 = pow(x, k + 1);
        xk_p_1 = pow(x, k) + pow(2, k)*h;
 
        k++;
        m++;
        xm = pow(x, m);
        xm_m_1 = pow(x, m + 1);
    } while (fp(xm_m_1)*fp(xm)<=0);
    else
    do {
        xk_p_1 = pow(x, k + 1);
        xk_p_1 = pow(x, k) - pow(2, k)*h;
    
        k++;
        m++;
        xm = pow(x, m);
        xm_m_1 = pow(x, m + 1);
 
 
    } while (fp(xm_m_1)*fp(xm)<=0);
    x1 = pow(x, m - 1);
    return x1;
}
double x2(double h)
{
    double x0, x, x1, x2, xk_p_1, xm, xm_m_1;
    int k = 0, m = 0;
    x0 = a;
    x = x0 + 1;
    if (fp(x0)<0)
    do {
        xk_p_1 = pow(x, k + 1);
        xk_p_1 = pow(x, k) + pow(2, k)*h;
 
        k++;
        m++;
        xm = pow(x, m);
        xm_m_1 = pow(x, m + 1);
    } while (fp(xm_m_1)*fp(xm) <= 0);
    else
    do {
        xk_p_1 = pow(x, k + 1);
        xk_p_1 = pow(x, k) - pow(2, k)*h;
 
        k++;
        m++;
        xm = pow(x, m);
        xm_m_1 = pow(x, m + 1);
 
 
    } while (fp(xm_m_1)*fp(xm) <= 0);
    x2 = pow(x, m);
    return x2;
}
Есть две идеи:
1. х1 и х2 объединить в одну функцию и возвращать от туда структуру.
2. Менять значение иксов в этой структуре и отправлять в функцию, где считается полином.

Добавлено через 5 часов 42 минуты
Помогите пожалуйста, совсем не понимаю как это сделать

Добавлено через 1 час 53 минуты
А можно ли менять значение x1 и x2, например в меине (xl=x1, x1=x2 и тд) и отправлять их в функцию kip?

Добавлено через 21 час 49 минут
Никто не может помочь? :'(
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
19.05.2014, 20:58
Помогаю со студенческими работами здесь

Создать титульный лист и построить график кубической параболы
Создать титульный лист и построить график кубической параболы

Для каждой параболы вывести уравнение, найти эктремумы; выяснить совпадают или пересекаются эти параболы
Вот само задание: http://i.**********/ZOUVXmQ.jpg П.5.18.Правил Запрещено размещать задания и решения в виде картинок и других файлов с...

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

Как задать криволинейный замкнутый контур по точкам методом кубической интерполяции?
В с++ я новичок, полазив по форумам, я нашел некотрые коды, но они либо не работают, либо выдают не то что нужно. Не мог бы мне кто-нибудь...

Найти минимум функции
Доброго времени суток. Нужно минимизировать функцию f(x,y)=(1-x)^2+100*(y-x*x)^2; используя следующие методы: 1. Золотого сечения; 2....


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru