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

Поиск экстремума функции двух переменных

25.06.2015, 01:30. Показов 5542. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
нужна помощь, циклит программу в с++ с ошибкой -1.#end
Кликните здесь для просмотра всего текста
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
#include "stdafx.h"
#include <iostream>
#include <math.h>
using namespace std;
 
float f(float l, float i)
{
    return pow((i-pow(l,2)),2)+pow((1-l),2);//Исходная функция
}
 
float pf1(float l, float i)
{
    return -4*l*(i-pow(l,2))-2*(1-l);//производная функции по х1
}
 
float pf2(float l, float i)
{
    return 2*(i-pow(l,2))+2*(1-l);//производная функции по х2
}
 
int _tmain(int argc, _TCHAR* argv[])
{
    setlocale(LC_ALL, "RUSSIAN");
    float n;
    float a = 1;//коэффициент пропорциональности
    float x1, x2, fu,df1,df2;
    //ввод начальные значения
    cout << "Введите начальное значение x1= ";
    cin>>x1;
    cout << "Введите начальное значение x2= ";
    cin>>x2;
    fu = f(x1, x2);
    cout << "fu= " << fu << endl;
    cout << "pf1= " << pf1(x1,x2) << endl;
    cout << "pf2= " << pf2(x1,x2) << endl;
    cout << "____________" << endl;
    do
    {
        a = 0.5*a;
        n = fu;
        //значения на следующем шаге
        x1 = x1 - a*pf1(x1,x2);
        x2 = x2 - a*pf2(x1,x2);
        fu = f(x1, x2);
        cout << "x1= " << x1 << endl;
        cout << "x2= " << x2 << endl;
        cout << "fu= " << fu << endl;
        cout << "pf1= " << pf1(x1,x2) << endl;
        cout << "pf2= " << pf2(x1,x2) << endl;
        cout << "____________" << endl;
        df1 = pf1(x1,x2);
        df2 = pf2(x1,x2);
        
    } 
    while((df1!=0) || (df2!=0));//цикл работает, пока производные не обнулятся
    float y = fu;
    cout << "Minimum =  " << y << " v tochke x = " << x1 << ","<< x2 << endl;
    system("pause");
    return 0;
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
25.06.2015, 01:30
Ответы с готовыми решениями:

Поиск экстремума математической функции методом эволюционного алгоритма
С помощью Генного Алгоритма найти близкое к максимальному значению (с точностью ε), что приобретает непрерывная функция одной...

Поиск экстремума функций двух переменных
3xy+\frac{7}{x}+\frac{9}{y} Поиск экстремума функций двух переменных. Я начал решать, но , судя по мудрённым дробям, где-то допустил...

Система двух переменных для экстремума функции
Добрый вечер. У меня в ИДЗ задание: Исследовать на экстремум функцию u = sin(x) + sin(y) + cos(x+y) где x э y э . Я...

2
lss
941 / 869 / 355
Регистрация: 10.10.2012
Сообщений: 2,706
25.06.2015, 03:59
http://habrahabr.ru/post/171203/
0
Модератор
Эксперт С++
 Аватар для zss
13773 / 10966 / 6491
Регистрация: 18.12.2011
Сообщений: 29,243
25.06.2015, 05:51
Насколько я понял - это алгоритм поиска экстремума методом градиентного спуска.
В первую очередь бросается в глаза (df1!=0) . Нельзя так сравнивать плавающие числа на ноль.
Можно только с какой-то точностью (fabs(df1)>1e-6).
2. Кто Вас учил так возводить в квадрат?
Цитата Сообщение от Allari Посмотреть сообщение
-pow(l,2)
Неужели l*l писать намного противнее.
И не используйте l в качестве имени. Ну не читается она как эль, а исключительно как единица.

3.
C++
1
2
3
4
float pf2(float l, float i)
{
    return 2.*(i-l*l);//производная функции по х2
}
4.
C++
1
    double a = 0.1;//коэффициент пропорциональности
5.
C++
1
        //a = 0.5*a; // удаляем
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
25.06.2015, 05:51
Помогаю со студенческими работами здесь

Достаточные условные и безусловные условия экстремума функции нескольких переменных
Подскажите, пожалуйста, в чём разница между условными и безусловными условиями.

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

Поиск экстремума функции в Маткаде
Всем доброго дня. С маткадом особо не сталкивался раньше, но теперь встал 1 вопрос: есть функция вида (ссылка на фастпик) и необходимо...

Поиск экстремума функции на заданном промежутке
написал програму для нахождения екстремума функции f(x)=x^3-〖6x〗^2+9x+4 в диапазоне с грубым значение шага 0.3 ,и точьностью обсчета...

Поиск экстремума функции методом квадратичной интерполяции
поиск экстремума функции методом квадратичной интерполяции для довольно взятой функции


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru