Метод наилучшей пробы

 

Приднестровский государственный университет им. Т.Г. Шевченко

Инженерно-технический институт

Кафедра информационных технологий и автоматизированного

управления производственными процессами











КУРСОВАЯ РАБОТА

по дисциплине «Математическое программирование»

тема: «МЕТОД НАИЛУЧШЕЙ ПРОБЫ»




Работу выполнил:

студент группы ИТ09Др62ИВ1

А.Е. Гусев

Руководитель:

Доцент, к.т.н.

Т.Д. Бордя



Тирасполь, 2012


СОДЕРЖАНИЕ


ВВЕДЕНИЕ

. МЕТОДЫ СЛУЧАЙНОГО ПОИСКА

.1 Методы наилучшей пробы

.2 Адаптивный метод случайного поиска

. ОПИСАНИЕ АЛГОРИТМА

.1 Входные данные

.2 Блок-схема алгоритма метода Наилучшей пробы

. ОПИСАНИЕ ПРОГРАММНОЙ ЧАСТИ

.1 Выбор среды программирования

.2 Входные и выходные данные

.3 Описание программы

. КОНТРОЛЬНЫЙ ПРИМЕР

.1 Результаты работы программы

ЗАКЛЮЧЕНИЕ

СПИСОК ИСПОЛЬЗУЕМОЙ ЛИТЕРАТУРЫ

ПРИЛОЖЕНИЕ А - Руководство пользователя

ПРИЛОЖЕНИЕ Б - Листинг программы



ВВЕДЕНИЕ


Оптимизация как раздел математики существует достаточно давно. Оптимизация - это выбор, т.е. то, чем постоянно приходиться заниматься в повседневной жизни. Термином оптимизация в литературе обозначает процесс или последовательность операций, позволяющих получить уточненное решение. Хотя конечной целью оптимизации является отыскание наилучшего или оптимального решения, обычно приходится довольствоваться улучшением известных решений, а не доведением их до совершенства. Поэтому под оптимизацией понимают скорее стремление к совершенству, которое, возможно, и не будет достигнуто.

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

Цель данной курсовой работы:

проанализировать и обработать теоретические и экспериментальные данные по теме Метод наилучшей пробы;

анализ собранной информации;

сравнительный анализ с другими методами;

разработка программы, реализующая данный метод.



1. МЕТОДЫ СЛУЧАЙНОГО ПОИСКА


Метод случайного поиска является прямым развитием метода проб и ошибок, когда решение ищется случайно, и при удаче принимается, а при неудаче отвергается с тем, чтобы немедленно снова обратиться к случайности как к источнику возможностей. Такое случайное поведение разумно поведение разумно опирается на уверенность, что случайность содержит в себе все возможности, в том числе и искомое решение во всех его вариантах.

Метод случайного поиска, называемый так же методом Монте-Карло, основан на том, что при одном и том же числе испытаний вероятность получения решения, близкого к оптимальному, при случайном поиске больше, чем при последовательном переборе через равные интервалы изменения отдельных параметров.

Идея метода случайного поиска состоит в следующем. Пусть задача минимизации решается для некоторой ограниченной области параметров. Если это возможно, то эта область соответствующим преобразованием координат переводится в единичный гиперкуб. Если такое преобразование неосуществимо, то производится замена координат таким образом, чтобы область поиска лежала внутри единичного гиперкуба. В этом случае эффективность поиска будет сильно зависеть от соотношения объемов единичного гиперкуба и области поиска в нем.

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


1.1 Метод наилучшей пробы


Задается начальная точка х°. Каждая последующая точка находится по формуле:


xk+l = хк + tk ? к (1.1)


где tk > 0 - величина шага; ?к - случайный вектор единичной длины, определяющий направление поиска; k - номер итерации. На текущей итерации при помощи генерирования случайных векторов ?* получается M точек ух,...,ум, лежащих на гиперсфере радиуса tk с центром в точке хк в соответствии с рисунком 1.1 Среди полученных точек выбирается точка ут, в которой значение функции наименьшее. Если в выбранной точке значение функции меньше, чем в центре, то дальнейший поиск продолжается из этой точки. Иначе поиск продолжается из старого центра, но с меньшим шагом до тех пор, пока он не станет меньше заранее заданной величины R.


Рисунок 1.1 - Гиперсфера полученная в результате применения данного метода


1.2 Адаптивный метод случайного поиска


Вначале задается начальная точка х°. Каждая последующая точка находится по формуле:


xk+l = хк + tk ? к (1.2)

где tk > 0 - величина шага; ?к - случайный вектор единичной длины, определяющий направление поиска; k - номер итерации. На текущей итерации при помощи генерирования случайных векторов ?к получаются точки, лежащие на гиперсфере радиуса tk с центром в точке хк в соответствии с рисунком 1.2.


Рисунок 1.2 - Гиперсфера полученная в результате применения данного метода


Если значение функции в полученной точке не меньше, чем в центре, шаг считается неудачным, происходит возврат в текущий центр и поиск продолжается. Если число неудачных шагов из текущей точки достигает некоторого числа М, дальнейший поиск продолжается из той же точки, но с меньшим шагом до тех пор, пока он не станет меньше заранее заданной величины R. Если при этом значение функции снова меньше, чем в центре, направление считается удачным и дальнейший поиск продолжается из этой. Если же значение функции стало не меньше, чем в центре, направление считается неудачным и поиск продолжается из старого центра.



2. ОПИСАНИЕ АЛГОРИТМА


Шаг 1. Задать начальную точку , коэффициент сжатия , M - число испытаний на текущей итерации, =1 - начальную величину шага, R - минимальную величину шага, N - максимальное число итерации. Положить k = 0, j = 1.

Шаг 2. Получить М реализаций случайного вектора , j =1,…,M , где - случайная величина, равномерно распределенная на интервале [-1,1].

Шаг 3. Вычислить , j = 1,…,M.

Шаг 4. Найти из условия

Проверить выполнение условий:

а) если , шаг удачный. Положить и проверить условие окончания. Если , положить и перейти к шагу 2. Если , поиск завершить

б) если , шаг неудачный и перейти к шагу 5.

Шаг 5. Проверить условие окончания:

если , процесс закончить:

если , положить и перейти к шагу 2.


2.1 Входные данные


Задать начальную точку , коэффициент сжатия , M = 3 - число испытаний на текущей итерации, =1 - начальную величину шага, R = 0.8 - минимальную величину шага, N = 10 - максимальное число итерации. Положить k = 0, j = 1.



2.2 Блок схема алгоритма метода Наилучшей пробы











нет



Да









Рисунок 2.1 - Блок схема алгоритма метода Наилучшей пробы



3. ОПИСАНИЕ ПРОГРАММНОЙ ЧАСТИ


3.1 Выбор среды программирования

поиск проба программирование C#

Для разработки приложения используется интегрированная среда разработки Visual Studio 2005, язык C#.

Создателем языка является сотрудник Microsoft Андреас Хейлсберг. Он стал известным в мире программистов задолго до того, как пришел в Microsoft.

С# является полностью объектно-ориентированным языком, где даже типы, встроенные в язык, представлены классами.

C# является мощным объектным языком с возможностями наследования и универсализации.

C# является наследником языков С/С++, сохраняя лучшие черты этих популярных языков программирования. Общий с этими языками синтаксис, знакомые операторы языка облегчают переход программистов от C++ к С#.

Одна из причин разработки нового языка - это создание компонентно-ориентированного языка для новой платформы .NET. Другие языки были созданы до появления платформы .NET, а язык C# создавался специально под эту платформу.


3.2 Входные и выходные данные


При загрузки программы пользователю необходимо ввести данные в объекты textbox:

коэффициент сжатия ? записывается в переменную B. Данное значение не должно выходить за пределы [0,1]. В случаи неправильности ввода значения, будет показано сообщение об ошибке;

начальная величина шага записывается в переменную t;

минимальная величина шага R записывается в переменную R;

максимальное число итераций N записывается в переменную N.

double B = Convert.ToDouble(textBox1.Text);R = Convert.ToDouble(textBox4.Text);t = Convert.ToDouble(textBox3.TextN = Convert.ToInt32(textBox5.Text);

Также в алгоритме содержится массив, в котором хранятся начальные координаты точки. В переменной kol хранится количество итераций.[] x = { 1, 2 };

int kol=0;

Выходными значениями будут элементы массива x, в котором хранятся результаты вычислений алгоритма, и значение переменной Fx. В данном случае в переменной Fx содержится значение функции в точке x*.("Поиск завершен\nх*=(" + Math.Round(x[0],3) + ";" + Math.Round(x[1],3) + ")\nF(x*)=" + Fy + "\nВсего итераций:" + kol);


3.3 Описание программы


Рассмотрим фрагмент кода программы, реализующая метод наилучшей пробы.

В функции Func имеется описание алгоритма принимающий два значения типа double. После чего происходят вычисления и значения подставляются в исходную функцию: . Далее передается значение, возвращаемое в качестве результата функции.

public double Func(double x1, double x2)

{4 * Math.Pow((x1 - 5), 2) + Math.Pow((x2 - 6), 2);

}

Вывод текстовой информации в объекте richTextBox осуществляется при помощи функции AText. Invoke - выполняет указанный делегат в том потоке, которому принадлежит базовый дескриптор окна элемента управления.

public void AText(string s)

{.Invoke(new MethodInvoker(delegate

{

richTextBox1.Text += s + "\n";

}));

}

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

private void Start_Click(object sender, EventArgs e)

{S = Convert.ToDouble(textBox1.Text);(S <= 0 || S >= 1)

{.Show("Коэффициент сжатия должен быть в приделах: 0<B<1", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);

}(textBox1.Text == "" || textBox3.Text == "" || textBox4.Text == "" || textBox5.Text == "")

{.Show("Заполните поля!!!", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);

}

В случаи верности вводимых данных пользователем открывается поток potok и вызывается процедура Solving().

else

{= new Thread(new ThreadStart(delegate { Solving(); }));.Start();.Enabled = false;

}

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



4. КОНТРОЛЬНЫЙ ПРИМЕР


Задать начальную точку , коэффициент сжатия , M = 3 - число испытаний на текущей итерации, =1 - начальную величину шага, R = 0.8 - минимальную величину шага, N = 10 - максимальное число итерации. Положить k = 0, j = 1.

Итерация 1(0)


Итерация 2(0)

Итерация 3(0)

Итерация 4(0)


Шаг удачный

перейти к шагу 2.

Итерация 2(1)

Итерация 3(1)

Итерация 4(1)

Шаг неудачный перейти к шагу 5

Итерация 5(0)

Перейти к шагу 2

Итерация 2(2)

Итерация 3(2)

Итерация 4(2)

Шаг удачный

перейти к шагу 2.

Итерация 2(3)

Итерация 3(3)

Итерация 4(3)

Шаг удачный

перейти к шагу 2.

Итерация 2(4)

Итерация 3(4)

Итерация 4(4)

Шаг удачный

перейти к шагу 2.

Итерация 2(5)

Итерация 3(5)

Итерация 4(5)

Шаг удачный

перейти к шагу 2.

Итерация 2(6)

Итерация 3(6)

Итерация 4(6)

Шаг удачный

перейти к шагу 2.

Итерация 2(7)

Итерация 3(7)

Итерация 4(7)

Шаг удачный

перейти к шагу 2.

Итерация 2(8)

Итерация 3(8)

Итерация 4(8)

Шаг удачный

перейти к шагу 2.

Итерация 2(9)

Итерация 3(9)

Итерация 4(9)

Шаг удачный

перейти к шагу 2.

Итерация 2(10)

Итерация 3(10)

Итерация 4(10)

Шаг удачный


Поиск завершен F(x*)=0,154

Всего итераций:10.


4.1 Результаты работы программы


Дана функция , требуется решиться методом Наилучшей пробы.

Результат:

=(1;2)=0,618=3=0,8=10


Положить k=0, j=1

)

Случайные вектора равны:


Вектор 1=(0,843;0,374)

Вектор 2=(0,239;0,954)

Вектор 3=(-0,159;-0,402)


)

=(1,91407963398224;2,40553473678453)=(1,24301408746329;2,9700227591631)=(0,632201543899193;1,07009446948098)(y1)=51,012(y2)=65,641(y3)=100,615

)

(y)=51,012< f(x)=80 Шаг удачный


Проверяем условие окончания:

< N


)

Случайные вектора равны:


Вектор 1=(0,168;-0,727)

Вектор 2=(-0,478;-0,214)

Вектор 3=(-0,361;0,112)


)

=(2,13923276919031;1,43121134811628)=(1,00137380066825;1,99691748086571)=(0,958989675300652;2,70185073504585)(y1)=53,61(y2)=79,981(y3)=76,197

)f(y)=53,61>= f(x)=51,012Шаг неудачный


Проверяем условие окончания

> R


)

Случайные вектора равны:


Вектор 1=(0,674;0,551)

Вектор 2=(-0,824;-0,193)

Вектор 3=(-0,08;0,917)


)

=(2,3925433489388;2,7966823731956)=(1,31236448061059;2,26459902731763)=(1,8603687032674;3,02119628010338)(y1)=37,457(y2)=68,348(y3)=48,302


)

(y)=37,457< f(x)=51,012 Шаг удачный


Проверяем условие окончания:

< N


)

Случайные вектора равны:


Вектор 1=(0,05;0,171)

Вектор 2=(0,251;-0,447)

Вектор 3=(-0,812;0,102)


3)

=(2,56598291444603;3,38984568723033)=(2,69512406997668;2,25782347955443)=(1,77936220453972;2,87370759084179)(y1)=30,511(y2)=35,254(y3)=51,264


)

(y)=30,511< f(x)=37,457 Шаг удачный


Проверяем условие окончания:

< N


)

Случайные вектора равны:


Вектор 1=(0,507;0,537)

Вектор 2=(-0,587;0,461)

Вектор 3=(0,911;0,018)


)

=(2,99024253690995;3,83920942936667)=(2,07995199875453;3,77154969427255)=(3,18386231658711;3,40205406180612)(y1)=20,826(y2)=39,073(y3)=19,943


)

(y)=19,943< f(x)=30,511 Шаг удачный


Проверяем условие окончания:

< N


)

Случайные вектора равны:


Вектор 1=(-0,07;-0,971)

Вектор 2=(0,507;0,537)

Вектор 3=(0,909;0,022)


)

=(3,13942562874768;2,78565372049062)=(3,60812193905102;3,85141780394245)=(3,80168139710641;3,41700677882638)(y1)=24,179(y2)=12,366(y3)=12,416


)

(y)=12,366< f(x)=19,943 Шаг удачный

Проверяем условие окончания:

< N


)

Случайные вектора равны:


Вектор 1=(-0,593;0,741)

Вектор 2=(0,888;0,011)

Вектор 3=(-0,333;-0,296)


)

=(3,22198099450301;4,3339311933355)=(4,22607452927095;3,85907262206455)=(3,14622298010452;3,44084095154556)(y1)=15,421(y2)=6,979(y3)=20,295


)

(y)=6,979< f(x)=12,366 Шаг удачный


Проверяем условие окончания:

< N


)

Случайные вектора равны:

Вектор 1=(0,374;0,451)

Вектор 2=(-0,899;-0,129)

Вектор 3=(-0,12;0,921)


)

=(4,62056609668037;4,33478304158767)=(3,61434029772258;3,77129318283236)=(4,14622825185625;4,47189280122236)(y1)=3,349(y2)=12,647(y3)=5,251


)

(y)=3,349< f(x)=6,979 Шаг удачный


Проверяем условие окончания:

< N


)

Случайные вектора равны:


Вектор 1=(0,1;0,999)

Вектор 2=(0,932;0,459)

Вектор 3=(-0,519;-0,204)


)


y1=(4,68212033952824;4,94970992763789)=(5,17497767685909;4,60782479620358)=(4,04540209301062;4,10870701702384)(y1)=1,507(y2)=2,061(y3)=7,222


)

(y)=1,507< f(x)=3,349 Шаг удачный


Проверяем условие окончания:

< N


)

Случайные вектора равны:


Вектор 1=(-0,235;-0,331)

Вектор 2=(0,722;0,999)

Вектор 3=(0,989;0,07)


)

=(4,32435671526554;4,44579605686788)=(5,04411823661013;5,45059067443126)=(5,2985781633938;4,99334192730482)(y1)=4,242(y2)=0,31(y3)=1,37

)

(y)=0,31< f(x)=1,507 Шаг удачный


Проверяем условие окончания:

< N


)

Случайные вектора равны:


Вектор 1=(0,843;0,374)

Вектор 2=(0,239;0,954)

Вектор 3=(-0,159;-0,402)


)

=(5,60901945041116;5,7012111417641)=(5,19430094266245;6,05006473959406)=(4,81681879073984;4,87590905657051)(y1)=1,573(y2)=0,154(y3)=1,398


)

(y)=0,154< f(x)=0,31 Шаг удачный


Проверяем условие окончания:


k = N


Поиск завершен


х*=(5,19430094266245;6,05006473959406)(x*)=0,154


Всего итераций:10



ЗАКЛЮЧЕНИЕ


В данной курсовой работе были рассмотрены различные методы адаптивного поиска, такие как:

метод наилучшей пробы;

адаптивный метод случайного поиска.

Были указаны основные достоинства и недостатки методов случайного поиска, а также алгоритм решения данного класса задач. Был проведен сравнительный анализ с другими методами, предназначенными для решения данного класса задач.

В программном продукте реализованы следующие функции:

решение заданной функции методом наилучшей пробы;

проверка правильности вводимых значений;

вывод результата в объекте;

вывод ошибок, при условии, что вводимые данные не соответствуют необходимым правилам ввода.



СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ


)Акулич И.Л. Математическое программирование в примерах и задачах: Учеб. пособие. - М.: Высш. шк., 1986.

2)Белецкая С.Ю. Решение задач математического программирования: Учеб. пособие. - Воронеж, 2001.

3)Карманов В.Г. Математическое программирование. - М.: Наука, 1975.

4)Методы оптимизации в примерах и задачах: Учеб. пособ. А.В.Пантелеев, Т.А.Летова - 2-е изд., исправл. - M.:Высш. Шк., 2005. - 544с.



ПРИЛОЖЕНИЕ А


При запуске программы, для реализации решения Метода наилучшей пробы откроется окно, как представлено на рисунке А.1.


Рисунок А.1 - Главное окно программы


Если пользователь не введет ни одного значения, то появится ошибка, как показано на рисунке А.2.


Рисунок А.2 - Ошибка


Также если пользователь введет не все значения, то появится сообщение об ошибке, как показано на рисунке А.3.

Рисунок А.3 - Ошибка пустого поля


В случаи ввода коэффициента сжатия B<0 либо B>1, то появится сообщение об ошибки, как показано на рисунке А.4.


Рисунок А.4 - Ошибка ввода значения


При нажатии кнопки Решить функцию в окне richTextBox будет выведено решение Метода наилучшей пробы рисунок А.5.


Рисунок А.5 - Пример работы программы


Если необходимо очистить главные поля для ввода, а так же поле с решением данного алгоритма, можно воспользоваться кнопкой Очистить главные поля показанное на рисунке А.6, панели главного меню во вкладке Меню.


Рисунок А.6 - Пункт меню программы Очистить главные поля


Для просмотра алгоритма Метода наилучшей пробы необходимо нажать Справка и в открывшейся вкладке выбрать Алгоритм. На экране появится новое окно с алгоритмом метода.


Рисунок А.7 - Окно Алгоритм

Для просмотра информации об авторе, достаточно нажать Справка и в открывшейся вкладке выбрать Об авторе.


Рисунок А.8 - Окно Об авторе


Для выхода из программы необходимо нажать кнопку Меню и в появившейся вкладке выбрать Выход.



ПРИЛОЖЕНИЕ Б


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

void Start_Click(object sender, EventArgs e)

{(textBox1.Text == "" && textBox3.Text == "" && textBox4.Text == "" && textBox5.Text == "")

{.Show("Введите данные!!!", "Ошибка", MessageBoxButtons.OK, MessageBoxI con.Error);

}S = Convert.ToDouble(textBox1.Text);(S <= 0 || S >= 1)

{.Show("Коэффициент сжатия должен быть в приделах: 0<B<1", "Ошибка", Message BoxButtons.OK, MessageBoxIcon.Error);

}(textBox1.Text == "" || textBox3.Text == "" || textBox4.Text == "" || textBox5.Text == "")

{.Show("Не все поля были заполнены!!!", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);

}

{= new Thread(new ThreadStart(delegate { Algoritm(); }));.Start();

}

}void Algoritm()

{B = Convert.ToDouble(textBox1.Text);R = Convert.ToDouble(textBox4.Text);t = Convert.ToDouble(textBox3.Text);M = 3;N = Convert.ToInt32(textBox5.Text);kol = 0;j = 1;[] x = { 1, 2 };[] y1 = new double[2];[] y2 = new double[2];[] y3 = new double[2];[] ym = new double[2];X=0;Y1=0;Y2=0;Y3=0;Ym=0;kor1 = 0;kor2 = 0;kor3 = 0;("x0=(" + x[0] + ";" + x[1] + ")");("B=" + B);("M=" + M);("R=" + R);("N=" + N);("Положить k=0, j=1");[] v1 = new double[2];[] v2 = new double[2];[] v3 = new double[2];n = 0;:(n == 10)

{[0] = -0.111;[1] = -0.388;[0] = 0.227;[1] = 0.931;[0] = 0.929;[1] = 0.17;= 0;

}(n == 9)

{[0] = -0.235;[1] = -0.331;[0] = 0.722;[1] = 0.999;[0] = 0.989;[1] = 0.07;++;

}(n == 8)

{[0] = 0.1;[1] = 0.999;[0] = 0.932;[1] = 0.459;[0] = -0.519;[1] = -0.204;++;

}(n == 7)

{[0] = 0.374;[1] = 0.451;[0] = -0.899;[1] = -0.129;[0] = -0.12;[1] = 0.921;++;

}(n == 6)

{[0] = -0.593;[1] = 0.741;[0] = 0.888;[1] = 0.011;[0] = -0.333;[1] = -0.296;++;

}(n == 5)

{[0] = -0.07;[1] = -0.971;[0] = 0.507;[1] = 0.537;[0] = 0.909;[1] = 0.022;++;

}(n == 4)

{[0] = 0.507;[1] = 0.537;[0] = -0.587;[1] = 0.461;[0] = 0.911;[1] = 0.018;++;

}(n == 3)

{[0] = 0.05;[1] = 0.171;[0] = 0.251;[1] = -0.447;[0] = -0.812;[1] = 0.102;++;

}(n == 2)

{[0] = 0.674;[1] = 0.551;[0] = -0.824;[1] = -0.193;[0] = -0.08;[1] = 0.917;++;

}( n == 1 )

{[0] = 0.168;[1] = -0.727;[0] = -0.478;[1] = -0.214;[0] = -0.361;[1] = 0.112;++;

}(n == 0)

{[0] = 0.843;[1] = 0.374;2[0] = 0.239;

v2[1] = 0.954;

v3[0] = -0.159;

v3[1] = -0.402;

n++;

}

AText("2)\nСлучайные вектора равны:");

kor1 = Math.Sqrt((Math.Pow(v1[0], 2) + Math.Pow(v1[1], 2)));//Вычесление длинны вектора

y1[0] = x[0] + t * (v1[0] / kor1);[1] = x[1] + t * (v1[1] / kor1);("Вектор 1=(" + v1[0] + ";" + v1[1] + ")");= Math.Sqrt((Math.Pow(v2[0], 2) + Math.Pow(v2[1], 2)));//Вычесление длинны вектора[0] = x[0] + t * (v2[0] / kor2);[1] = x[1] + t * (v2[1] / kor2);("Вектор 2=(" + v2[0] + ";" + v2[1] + ")");= Math.Sqrt((Math.Pow(v3[0], 2) + Math.Pow(v3[1], 2)));//Вычесление длинны вектора[0] = x[0] + t * (v3[0] / kor3);[1] = x[1] + t * (v3[1] / kor3);("Вектор 3=(" + v3[0] + ";" + v3[1] + ")");("3)\ny1=(" + y1[0] + ";" + y1[1] + ")");("y2=(" + y2[0] + ";" + y2[1] + ")");("y3=(" + y3[0] + ";" + y3[1] + ")");= Math.Round(Func(x[0], x[1]), 3);= Math.Round(Func(y1[0], y1[1]), 3);= Math.Round(Func(y2[0], y2[1]), 3);= Math.Round(Func(y3[0], y3[1]), 3);("f(y1)=" + Y1);("f(y2)=" + Y2);("f(y3)=" + Y3);(Y1 < Y2 && Y1 < Y3)

{= Y1;.CopyTo(ym, 0);

}(Y2 < Y1 && Y2 < Y3)

{= Y2;.CopyTo(ym, 0);

}(Y3 < Y2 && Y3 < Y1)

{= Y3;.CopyTo(ym, 0);

}(Ym < X)

{("4)\nf(y)=" + Ym + "< f(x)=" + X + " Шаг удачный");.CopyTo(x, 0);//xk+1=ym++;("Проверяем условие окончания:");

if (kol < N)

{("k < N");= 1;P;

}

{("k = N");("Поиск завершен\nх*=(" + x[0] + ";" + x[1] + ")\nF(x*)=" + Ym + "\nВсего итераций:" + kol);.Abort();

}

}

{("5)f(y)=" + Ym + ">= f(x)=" + X +"Шаг неудачный \nПроверяем условие окончания");(t <= R)

{("t <= R");("Поиск завершен\nх*=(" + x[0] + ";" + x[1] + ")\nF(x*)=" + Ym + "\nВсего итераций:" + kol);

potok.Abort();

}

{("t > R");= B * t;= 1;P;

}

}

}

//Выходvoid Exit_Click(object sender, EventArgs e)

{

//th.Abort();.Exit();

}void очиститьПоляToolStripMenuItem_Click(object sender, EventArgs e)

{.Clear();.Text = "";.Text = "";.Text = "";.Text = "";

}void выходToolStripMenuItem_Click(object sender, EventArgs e)

{.Close();

}void алгоритмToolStripMenuItem_Click(object sender, EventArgs e)

{s = new Form2();.Show();

}void обАвтореToolStripMenuItem_Click(object sender, EventArgs e)

{a = new Form3();.Show();

}


Приднестровский государственный университет им. Т.Г. Шевченко Инженерно-технический институт Кафедра информационных технологий и автоматизированного уп

Больше работ по теме:

КОНТАКТНЫЙ EMAIL: [email protected]

Скачать реферат © 2017 | Пользовательское соглашение

Скачать      Реферат

ПРОФЕССИОНАЛЬНАЯ ПОМОЩЬ СТУДЕНТАМ