Метод многомерной нелинейной оптимизации – метод наискорейшего спуска

Методы нахождения минимума функций градиентным методом наискорейшего спуска. Моделирование метода и нахождение минимума функции двух переменных с помощью ЭВМ. Алгоритм программы, отражение в ней этапов метода на языке программирования Borland Delphi 7.

Рубрика Математика
Вид лабораторная работа
Язык русский
Дата добавления 26.04.2014
Размер файла 533,9 K

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

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

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

Радиотехнический факультет

ОТЧЕТ

по лабораторной работе:

"Метод многомерной нелинейной оптимизации - метод наискорейшего спуска"

Самара 2013

Задание

1 Изучить особенности метода многомерной нелинейной оптимизации - метод наискорейшего спуска;

2 Разработка математической модели и алгоритма для выбранного метода;

3 По составленному алгоритму написать демонстрационный вариант программы, отражающий основные этапы выбранного метода на языке программирования Borland Delphi 7.

Реферат

Пояснительная записка __ с, 6 рисунков, 3 источника, 1 приложение.

МЕТОД НАИСКОРЕЙШЕГО СПУСКА, МИНИМУМ ФУНКЦИИ, ГРАДИЕНТНЫЕ МЕТОДЫ, НЕЛИНЕЙНЫЕ ФУНКЦИИ.

Цель работы - изучение методов нахождения минимума функций градиентным методом наискорейшего спуска, моделирование метода и нахождение минимума функции двух переменных с помощью ЭВМ.

Часто, при исследовании функций сигналов РЭА возникает потребность нахождения экстремума этой функции. Такие задачи относятся к нелинейному программированию. Одними из наиболее реализуемых методов решения этих задач являются градиентные методы, в частности, метод наискорейшего спуска

Содержание

  • 1. Теоретические основы метода
  • 2. Алгоритм программы
  • 3. Листинг программы
  • 4. Контрольный пример
  • Заключение
  • Список использованных источников

1. Теоретические основы метода

В этом методе из некоторой начальной точки движение осуществляется вдоль направления градиента до тех пор, пока производная по этому направлению не будет равна нулю. Далее из этой точки определяем новый градиент и т.д. Отличие здесь в том, что длина шага из точки Xk определяется из условия, чтобы обеспечить [2]:

Эту вспомогательную задачу одномерной оптимизации можно решать на основе рассмотренных методов прямого поиска (дихотомии и т.д.)

Наискорейший и покоординатный методы называют методами с длинным шагом. Кроме этого существуют методы, использующие вторую производную для определения длины шага, например, метод Ньютона [2]:

Xk+1=Xk+ [F (Xk)] - 1g (Xk)

где [F (Xk)] - 1 - обратная матрица вторых производных в точке Xk.

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

.

Задаемся исходной точкой (x0; y0).

1. Сначала найдём частные производные по x и y:

.

нелинейная оптимизация наискорейший спуск

2. Если обе производные в точке (x0; y0) равны нулю, то задача решена, и минимум функции находится в этой точке. В противном случае необходимо определить координаты новой точки (x1; y1):

,

.

3. Теперь полученные значения принимаем за исходные (x1=x0; y1=y0) и возвращаемся к пункту 2.

Шаг t находится из условия минимума функции: . То есть необходимо найти такое значение t, при котором функция имеет минимум. В нашем случае:

;

Минимум этой функции находится из равенства первой ее производной по t к нулю:

Отсюда находим t:

.

Для некоторых нелинейных функций этот процесс не позволяет найти такие значения x и y, при которых производная равнялась бы нулю. Поэтому для обеспечения конечности числа итераций в этом случае вводим точность Е, тогда вычисления прекращаются либо когда производная в точке становится равной нулю (в этом случае значение Е задается равным нулю), либо когда |xk-1 - xk| будет меньше наперед заданной точности Е.

2. Алгоритм программы

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

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

unit Unit1;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls, ExtCtrls;

type

TForm1 = class (TForm)

LabeledEdit1: TLabeledEdit;

LabeledEdit2: TLabeledEdit;

LabeledEdit3: TLabeledEdit;

LabeledEdit4: TLabeledEdit;

Button1: TButton;

Label1: TLabel;

Label2: TLabel;

LabeledEdit5: TLabeledEdit;

LabeledEdit6: TLabeledEdit;

Label3: TLabel;

Label4: TLabel;

Label5: TLabel;

Label6: TLabel;

LabeledEdit7: TLabeledEdit;

Label8: TLabel;

procedure Button1Click (Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

A, B, C, D, E: real;

x: array [0.100] of real;

y: array [0.100] of real;

dx: array [0.100] of real;

dy: array [0.100] of real;

t: array [0.100] of real;

i: integer;

implementation

{$R *. dfm}

procedure TForm1. Button1Click (Sender: TObject);

label l1;

begin

if (LabeledEdit1. Text='') or (LabeledEdit2. Text='') or (LabeledEdit3. Text='') or (LabeledEdit4. Text='') or (LabeledEdit5. Text='') or (LabeledEdit6. Text='') or (LabeledEdit7. Text='') then

Label2. Caption: ='Заполните все поля! '

else

begin

Label2. Caption: ='';

A: =strtofloat (LabeledEdit1. Text);

B: =strtofloat (LabeledEdit2. Text);

C: =strtofloat (LabeledEdit3. Text);

D: =strtofloat (LabeledEdit4. Text);

E: = strtofloat (LabeledEdit7. Text);

x [0]: =strtofloat (LabeledEdit5. Text);

y [0]: =strtofloat (LabeledEdit6. Text);

i: =0;

dx [i]: =A+2*C*x [i];

dy [i]: =B+2*D*y [i];

While ( (dx [i] <>0) and (dy [i] <>0)) {or ( (dx [i] >E) or (dx [i] < (0-E))) and ( (dy [i] >E) or (dy [i] < (0-E))) }do

begin t [i]: = ( ( (A+2*C*x [i]) *dx [i]) + ( (B+2*D*y [i]) *dy [i])) / ( (2*C*sqr (dx [i])) + (2*D*sqr (dy [i])));

x [i+1]: =x [i] - t [i] *dx [i];

y [i+1]: =y [i] - t [i] *dy [i];

if ( ( (x [i+1] - x [i]) <=E) and ( (x [i+1] - x [i]) >= (0-E))) and ( ( (y [i+1] - y [i]) <=E) and ( (y [i+1] - y [i]) >= (0-E))) then

goto l1 else

dx [i+1]: =A+2*C*x [i+1];

dy [i+1]: =B+2*D*y [i+1];

i: =i+1;

end;

l1: begin

Label5. Caption: ='xmin = '+floattostr (x [i]);

Label6. Caption: ='ymin = '+floattostr (y [i]);

Label4. Caption: ='Минимум функции F (x,y) ='+floattostr (A) +'x+'+floattostr (B) +'y+'+floattostr (C) +' (x) ^2+'+floattostr (D) +' (y) ^2 с заданной точностью равен: ';

end;

end;

end;

end.

4. Контрольный пример

Рисунок 1 - Начальное окно программы

Рисунок 2 - Задание параметров в программу

Рисунок 3 - Результат расчетов по выбранному методу

Заключение

В ходе данной работы был изучен метод многомерной нелинейной оптимизации - метод наискорейшего спуска, разработан алгоритм решения поставленной задачи, написана и отлажена программа в среде программирования Borland Delphi 7.0. [3]. С помощью данной программы можно решать задачу по нахождению точек минимума функции двух переменных, с заданной точностью расчётов.

Список использованных источников

1 СТО СГАУ 02068410-004 - 2007. Стандарт организации. Общие требования к учебным текстовым документам [Текст] - Самара: СГАУ, 2007. - 30с.

2 Матюнин, С.А. Методы Гаусса-Зейделя и наискорейшего спуска [Текст] /: методические указания для выполнения лабораторных работ/С.А. Матюнин, Б.В. Скворцов. - Самара: СГАУ, 1996. - 19с.

3 Баженова, И.Ю. Delphi 7. Самоучитель программиста [Текст] /И.Ю. Баженова. - М.: КУДИЦ - Образ, 2003. - 448с.

4 Фленов, М.В. Библия Delphi [Текст] / М.В. Фленов. - СПБ.: БХВ-Петербург, 2011. - 686с.

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


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

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

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

  • Сущность и характеристика метода покоординатного спуска (метод Гаусса-Зейделя). Геометрическая интерпретация метода покоординатного спуска для целевой функции z=(x,y). Блок-схема и алгоритм для написания программы для оптимизации методом Хука-Дживса.

    контрольная работа [878,3 K], добавлен 26.12.2012

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

    курсовая работа [95,1 K], добавлен 12.10.2009

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

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

  • Численные методы поиска безусловного экстремума. Задачи безусловной минимизации. Расчет минимума функции методом покоординатного спуска. Решение задач линейного программирования графическим и симплексным методом. Работа с программой MathCAD.

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

  • Изучение методов одномерной оптимизации и сравнение эффективности их применения для конкретных целевых функций. Нахождение минимума функции 1/|x-3|3 методами перебора, поразрядного поиска, дихотомии, золотого сечения, средней точки, хорд и Ньютона.

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

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

    презентация [112,6 K], добавлен 17.09.2013

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

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

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

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

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

    реферат [70,2 K], добавлен 05.09.2010

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