Метод градиентного спуска

Ознакомление с методами поиска экстремума нелинейной выпуклой функции нескольких переменных и решение таких задач с помощью ЭВМ. Листинг программы поиска экстремума нелинейной функции. Рассмотрение выполнения программы на примере конкретной функции.

Рубрика Программирование, компьютеры и кибернетика
Вид лабораторная работа
Язык русский
Дата добавления 05.06.2016
Размер файла 21,7 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Министерство образования Российской Федерации

Уфимский Государственный Авиационный Технический Университет

Лабораторная работа №3

МЕТОД ГРАДИЕНТНОГО СПУСКА

Выполнил студент

группы ПИ-304з

Чудаков Кирилл

Проверил преподаватель:

Поречный С.С

Уфа 2014

1. Цель работы

Ознакомление с методами поиска экстремума нелинейной выпуклой функции нескольких переменных и решение таких задач с помощью ЭВМ.

2. Описание метода

Задача состоит в отыскании минимума функции двух переменных f(x,y) (следует отметить, что если необходимо найти максимум некоторой функции F(x,y), то эта задача сводится к поиску минимума функции f(x,y)=F(x,y) ).

Большинство численных методов состоит в отыскании некоторой последовательности (x0,y0), (x1,y1),..,(xk,yk), которая при k®R (или при k®kM) сходится к точке минимума (x*,y*). Если при этом выполняется f(x0,y0)>f(x1,y1)>..>f(xk,yk), то есть значения функции монотонно убывают при увеличении k, то такой метод называется методом спуска.

Известно, что вектор градиента функции

направлен в сторону наибольшего возрастания функции f(x,y). Поэтому в качестве направления движения можно принять противоположное градиенту направление (антиградиент), т.е. координаты точек пересчитываются по формулам

;

Выбор величины ak, с которой связана длина k-го шага, в общем случае является сложной задачей. Если ak мало, то движение будет слишком медленным и потребует значительного объема вычислений. Если ak велико, то существует возможность перескочить точку минимума и выйти на противоположный склон функции. При этом возможно нарушение требования монотонного убывания последовательности f(xk,yk) и появляется опасность зацикливания, то есть колебания последовательности (xk,yk) в некоторой окрестности точки минимума (x*,y*) без приближения к ней.

Существует несколько различных способов выбора ak. В данной работе рассматривается разновидность метода с дроблением шага. Для этого задается начальное приближение (x0,y0) и начальное значение a0 (например, x0=y0=0, 0=1). Вычисление x1,y1 и всех последующих xk+1,yk+1 производится по формуле (5.1). При этом если окажется, что f(xk+1,yk+1)>f(xk,yk), то величина ak уменьшается в два раза и вычисление xk+1,yk+1 повторяется от точки (xk,yk) с новым значением ak. Если же значение функции убывает, то величина ak=ak1.

Критерием окончания счета принимается неравенство

либо одновременное выполнение двух неравенств

,

Листинг программы

#include <iostream.h>

#include <stdio.h>

#include <math.h>

void main()

{

float a,b,c,d,e;

float x[9999],y[9999],fxy[9999],r[9999];

cout<<"VVedite dla uravnenia f(x,y)=ax+bx+e^(cx^2+dy^2) koeffizent a:"<<endl; cin>>a;

cout<<"b:"<<endl; cin>>b;

cout<<"c:"<<endl; cin>>c;

cout<<"d:"<<endl; cin>>d;

cout<<"vvedite to4nost' e:"; cin>>e;

int n=0;

power: n++;

x[0]=0;

y[0]=0;

r[0]=1;

fxy[0]=1;

x[n]=x[n-1]-r[n-1]*(a+2*c*x[n-1]*exp(c*x[n-1]*x[n-1]+d*y[n-1]*y[n-1]));

y[n]=y[n-1]-r[n-1]*(b+2*d*y[n-1]*exp(c*x[n-1]*x[n-1]+d*y[n-1]*y[n-1]));

fxy[n]=a*x[n]+b*y[n]+exp(c*x[n]*x[n]+d*y[n]*y[n]);

if(fxy[n]>fxy[n-1])

{

r[n]=r[n-1]/2;

}

else

{

r[n]=r[n-1];

} cout<<"f[n]"<<fxy[n]<<endl;

if(fabs(a+2*c*x[n-1]*exp(c*x[n-1]*x[n-1]+d*y[n-1]*y[n-1]))>=e/2 && fabs(b+2*d*y[n-1]*exp(c*x[n-1]*x[n-1]+d*y[n-1]*y[n-1]))>=e/2) goto power;

else

{

cout<<"r["<<n<<"]="<<r[n]<<endl;

cout<<"x["<<n<<"]="<<x[n]<<endl<<"y["<<n<<"]="<<y[n]<<endl<<"f(x,y)="<<fxy[n]<<endl;

};

}

Пример

Рассмотрим выполнение программы на примере функции , где

a

b

c

d

1

-1.4

0.01

0.11

2

-1.3

0.04

0.12

экстремум нелинейный функция листинг

VVedite dla uravnenia f(x,y)=ax+bx+e^(cx^2+dy^2) koeffizent a:

1

b:

-1.4

c:

0.01

d:

0.11

vvedite to4nost' e:0.0001

f[1]=-1.70693

f[2]=-3.38065

f[3]=-4.24626

f[4]=-4.96938

f[5]=-5.61447

f[6]=-6.18591

f[7]=-6.68664

f[8]=-7.11966

f[9]=-7.48826

f[10]=-7.7964

f[11]=-8.04873

f[12]=-8.25068

f[13]=-8.40834

f[14]=-8.5282

f[15]=-8.61688

f[16]=-8.68071

f[17]=-8.72544

f[18]=-8.756

f[19]=-8.77641

f[20]=-8.78975

f[21]=-8.79831

f[22]=-8.80372

f[23]=-8.8071

f[24]=-8.80919

f[25]=-8.81046

f[26]=-8.81124

f[27]=-8.81171

f[28]=-8.81199

f[29]=-8.81216

f[30]=-8.81226

f[31]=-8.81232

f[32]=-8.81235

f[33]=-8.81237

f[34]=-8.81239

f[35]=-8.81239

f[36]=-8.8124

f[37]=-8.8124

f[38]=-8.8124

f[39]=-8.8124

f[40]=-8.8124

f[41]=-8.8124

f[42]=-8.81241

f[43]=-8.81241

f[44]=-8.81241

f[45]=-8.81241

f[46]=-8.81241

r[46]=1

x[46]=-11.2509

y[46]=1.43215

f(x,y)=-8.81241

Press any key to continue

VVedite dla uravnenia f(x,y)=ax+bx+e^(cx^2+dy^2) koeffizent a:

2

b:

-1.3

c:

0.04

d:

0.12

vvedite to4nost' e:0.001

f[1]=-4.25265

f[2]=-7.25985

f[3]=-8.23204

f[4]=-8.54052

f[5]=-8.59224

f[6]=-8.59782

f[7]=-8.59863

f[8]=-8.59875

f[9]=-8.59911

f[10]=-8.5992

f[11]=-8.59947

f[12]=-8.59955

f[13]=-8.59976

f[14]=-8.59984

f[15]=-8.6

f[16]=-8.60007

f[17]=-8.6002

f[18]=-8.60025

f[19]=-8.60035

f[20]=-8.6004

f[21]=-8.60048

f[22]=-8.60052

f[23]=-8.60058

f[24]=-8.60062

f[25]=-8.60067

f[26]=-8.60069

f[27]=-8.60073

f[28]=-8.60076

f[29]=-8.60079

f[30]=-8.60081

f[31]=-8.60083

f[32]=-8.60085

f[33]=-8.60087

f[34]=-8.60088

f[35]=-8.6009

f[36]=-8.60091

f[37]=-8.60092

f[38]=-8.60093

f[39]=-8.60094

f[40]=-8.60095

f[41]=-8.60096

f[42]=-8.60097

f[43]=-8.60097

f[44]=-8.60098

f[45]=-8.60098

f[46]=-8.60099

f[47]=-8.60099

f[48]=-8.601

f[49]=-8.601

f[50]=-8.601

f[51]=-8.601

f[52]=-8.60101

f[53]=-8.60101

f[54]=-8.60101

f[55]=-8.60101

f[56]=-8.60101

f[57]=-8.60102

f[58]=-8.60102

f[59]=-8.60102

f[60]=-8.60102

f[61]=-8.60102

f[62]=-8.60102

f[63]=-8.60102

f[64]=-8.60102

f[65]=-8.60102

f[66]=-8.60102

f[67]=-8.60102

f[68]=-8.60102

f[69]=-8.60102

f[70]=-8.60102

f[71]=-8.60103

f[72]=-8.60103

f[73]=-8.60103

f[74]=-8.60103

f[75]=-8.60103

f[76]=-8.60103

f[77]=-8.60103

f[78]=-8.60103

f[79]=-8.60103

f[80]=-8.60103

f[81]=-8.60103

f[82]=-8.60103

f[83]=-8.60103

f[84]=-8.60103

f[85]=-8.60103

f[86]=-8.60103

f[87]=-8.60103

f[88]=-8.60103

f[89]=-8.60103

f[90]=-8.60103

f[91]=-8.60103

f[92]=-8.60103

f[93]=-8.60103

f[94]=-8.60103

f[95]=-8.60103

f[96]=-8.60103

f[97]=-8.60103

f[98]=-8.60103

f[99]=-8.60103

f[100]=-8.60103

f[101]=-8.60103

r[101]=1

x[101]=-5.69418

y[101]=1.23396

f(x,y)=-8.60103

Press any key to continue

Размещено на Allbest.ru

...

Подобные документы

  • Методика разработки программной модели числового метода поиска экстремума функции двух переменных, конструирование ввода исходных данных и вывода с сохранением. Исследование ограничений на функцию, обусловленные методом поиска и средствами моделирования.

    курсовая работа [195,4 K], добавлен 17.04.2010

  • Необходимые условия экстремума. Разработка машинного алгоритма и программы многомерной оптимизации для градиентного метода с использованием метода равномерного поиска. Проверка необходимых и достаточных условий экстремума для найденной точки минимума.

    курсовая работа [249,8 K], добавлен 25.09.2013

  • Выбор наиболее эффективного метода поиска экстремума для функции. Оценка погрешности определения точки минимума. Проверка унимодальности уравнения аналитическим методом и по графику. Сравнение алгоритмов по количеству обращений к функции и по точности.

    контрольная работа [909,0 K], добавлен 14.08.2019

  • Нахождение стационарной точки. Расчет безусловного экстремума функции методами прямого поиска. Графическое пояснение метода равномерного симплекса. Метод поиска Хука-Дживса. Метод сопряженных направлений Пауэлла. Разработка программного модуля расчетов.

    курсовая работа [1,4 M], добавлен 16.09.2012

  • Пример расчета экстремума функции методом прямого поиска с дискретным шагом. Результаты отладки программы на контрольных примерах. Составление инструкции по использованию программы. Обработка результатов исследований визуальными средствами Excel.

    курсовая работа [1,0 M], добавлен 20.05.2012

  • Ознакомление с методами решения оптимизационных задач. Алгоритм метода ломанных. Определение наименьшего значения целевой функции. Описание метода анализа математической модели. Расчет поиска минимума по методу ломаных. Листинг программы, интерфейс.

    курсовая работа [2,2 M], добавлен 06.12.2014

  • Исследование типовых примеров задач оптимизации. Реализация программы в среде MatLab для их решения. Изучение функций нелинейной оптимизации. Определение оптимума целевой функции одной или нескольких переменных. Поиск оптимальных настроек регулятора.

    лабораторная работа [188,8 K], добавлен 07.12.2016

  • Основа технологии использования программного комплекса LabVIEW, достоинства системы. Программирование, основанное на архитектуре потоков данных. Методы нахождения экстремума. Использование метода Гаусса-Зейделя для поиска максимума двумерной функции.

    контрольная работа [648,0 K], добавлен 18.03.2011

  • Создание программы для поиска минимума функции двух вещественных переменных в заданной области с помощью генетического алгоритма. Генетические алгоритмы и операторы. Создание начальной популяции. Размножение. Мутация и селекция. Тестирование программы.

    курсовая работа [131,6 K], добавлен 22.02.2015

  • Решение задачи на тему максимизации функций многих переменных. Описание метода дихотомии, его применение для решения нелинейных уравнений. Решение данной задачи с использованием метода покоординатного спуска. Составление алгоритмов, листинг программы.

    курсовая работа [138,5 K], добавлен 01.10.2009

  • Программная реализация приложения для вычисления заданных функций. Процедура поиска минимума функции. Применение методов Хука-Дживса и градиентного спуска для решения задачи. Исследование функции в окрестности базисной точки, определение ее координат.

    контрольная работа [767,1 K], добавлен 02.02.2014

  • Задача оптимизации с точки зрения математики как задача нахождения экстремума вещественной функции в некоторой области. Классификация и типы методов оптимизации, условия их практического использования. Создание программы, ее листинг, описание алгоритмов.

    курсовая работа [181,7 K], добавлен 22.06.2012

  • Решение нелинейного уравнения вида f(x)=0 с помощью программы Excel. Построение графика данной функции и ее табулирование. Расчет матрицы по исходным данным. Проведение кусочно-линейной интерполяции таблично заданной функции с помощью программы Mathcad.

    контрольная работа [1,8 M], добавлен 29.07.2013

  • Изучение аналитических и численных методов поиска одномерного и многомерного безусловного экстремума. Решение поставленной задачи с помощью Mathcad и Excel. Реализация стандартных алгоритмов безусловной оптимизации средствами языка программирования С++.

    курсовая работа [488,5 K], добавлен 21.10.2012

  • Составление схемы алгоритма и программы для построения графика временной функции, работающей как в машинном, так и в реальном времени. Пример вычисления степенного ряда с помощью схемы Горнера. Описание переменных программы, листинг, процедуры и функции.

    курсовая работа [67,6 K], добавлен 20.11.2012

  • Дифференциальные уравнения как уравнения, в которых неизвестными являются функции одного или нескольких переменных, причем в уравнения входят не только сами функции, но и их производные. Решение операторным методом, с помощью рядов, методом Эйлера.

    курсовая работа [301,4 K], добавлен 27.03.2011

  • Решение задачи по методу Адамса. Блок-схема функции main. Блок-схема функции Adams. Листинг программы. Блок-схема функции MMinor. Блок-схема функции MatrixMultiply. Блок-схема функции Determinant. Результат решения задачи на ЭВМ.

    курсовая работа [68,9 K], добавлен 16.04.2004

  • Постановка задачи нелинейного программирования. Критерии оптимальности в задачах с ограничениями. Задачи с ограничением в виде равенств. Метод исключения переменных. Интерпретация условий Куна-Таккера. Функции нескольких переменных. Методы прямого поиска.

    реферат [330,0 K], добавлен 29.09.2008

  • Исследование нечеткой модели управления. Создание нейронной сети, выполняющей различные функции. Исследование генетического алгоритма поиска экстремума целевой функции. Сравнительный анализ нечеткой логики и нейронной сети на примере печи кипящего слоя.

    лабораторная работа [2,3 M], добавлен 25.03.2014

  • Численные методы в задачах без ограничений. Схема методов спуска. Среда редактора Visual Basic. Использование объектов ActiveX в формах. Блок-схема алгоритма моделирования. Задачи оптимизирования детерменированных функций с единственной точкой экстремума.

    курсовая работа [129,5 K], добавлен 26.04.2010

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.