Метод сопряженных направлений

Курсовой проект - Математика и статистика

Другие курсовые по предмету Математика и статистика

p;

Для вычисления ранга матрицы используется метод Rang_matrici.

int Rang_matrici(double [,]Matrica)

{(Matrica[1,0] != 0)(int i = 1; i < 2; i++)

{mnojitel = (Matrica[0, 0] / Matrica[i, 0]) * (-1);(int j = 0; j < 2; j++)

{[i, j] = Matrica[i,j] * mnojitel + Matrica[i-1, j];

}

}k;y = 0;(int i = 0; i < 2; i++)

{= 0;(int j = 0; j < 2; j++)

{(Matrica[i, j] == 0)++;

}(k == 2)++;

}rang = 2 - y;rang;

}

Запись полученного решения, хранящееся в объекте RichTextBox1, записывается в текстовый файл спомощью функции MenuFileSaveAs().

void MenuFileSaveAs()

0)">{.Filter = "Text files|*.txt";(saveFileDialog1.ShowDialog() == DialogResult.OK && saveFileDialog1.FileName.Length > 0)

{.SaveFile(saveFileDialog1.FileName, RichTextBoxStreamType.UnicodePlainText);

}

}

 

А так же контролируются вводимые данные в элементы управления Text-Box. Пользователь может вводить только цифры и запятую. Проверка осуществляется при нажатии любой клавиши.

void textX0_KeyPress(object sender, KeyPressEventArgs e)

57)).Handled=true;(e.KeyChar==44).Handled=false;">{(e.KeyChar != 8 && (e.KeyChar 57 )).Handled = true;(e.KeyChar == 44).Handled = false;

}

 

 

Контрольный пример. Решения задачи методом сопряженных направлений

 

Найти минимум функции методом сопряженных направлений Пауэлла.

 

10 x0 = (8;9)T, , ? = 0,1, y0 = x0 = (8;9)T

i=0, k=0;

0y1 = y0 +t0 d0 = (8;9)T + t0 (0;1)T = (8, 9 + t0);(8, 9 + t0) = 83 + (9 + t0)2 - 24 - 2(9 + t0) + 2 = t02 + 16t0 + 553;0 = -8; y1 = (8;1)T;

0Т.к. i < n-1 положим i=1 и перейдем к шагу 2;

1y2 = y1 + t1 d1 = (8;1)T + t1 (1;0)T = (8 + t1;1)T;(8 + t1;1) = t13 + 24t12 + 189t1;1 = -7; y2 = (1;1);

1i = n-1; y2 ? y0, i =2;

2 y3 = y2 + t2 d2 = (1;1)T + t2 (0;1)T = (1; 1+t2);2 = 0; y3 = (1;1)T;

2i = n = 2;3 ? y1;

0x1 = y3 = (1;1)T;

Т.к. || (1;1)T - (8;9)T || = 10,63 > ? положим = d2 = y3 - y1 = (-7;0)T,

= d2 = (0;1)T;

;

 

Новая система направлений линейно независима.

 

d0 = = (-7;0)T;1 = = (0;1)T;2 = = (-7;0)T;= 0, k = 1, y0 = x1 = (1;1)T;

3y1 = y0 +t0 d0 = (1;1)T + t0 (-7;0)T = (1 - 7t0 ;1);o = 0; y1 = (1;1);

3i < n-1 положим i=1 и перейдем к шагу 2;

24y2 = y1 + t1 d1 = (1;1)T + t1 (0;1)T = (1;1 + t1)T;1 = 0; y2 = (1;1);

34i = n-1; y2 = y0;

x* = y2 = (1;1)T.

 

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

 

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

 

Рисунок 4.1 - Результат нахождения минимума функции метод сопряженных направления программой

 

Рисунок 4.1 - Продолжение результата нахождения минимума функции методом сопряженных направлений

 

 

Заключение

 

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

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

Данный метод ориентирован на исследование квадратичных функций. Основная его идея заключается в том, что бы, приведя квадратичную функцию n переменных к виду суммы полных квадратов, был найден ее оптимум в результате n одномерных поисков по преобразованным координатным направлениям.

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

решение заданной функции методом сопряженных направлений;

вывод результата и ход решения в текстовый объект;

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

запись решения функции в текстовый файл.

сопряженный направление пауэлль квадратичный

 

Список использованной литературы

 

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

.Банди Б. Методы оптимизации вводный курс. М.: Радио и связь,1988.

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

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

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

 

 

 

Приложение А

 

Руководство пользователя

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

После запуска программного продукта приложение примет вид как показано на рисунке А.1.

 

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

 

Для решения задачи необходимо заполнить все текстовые поля.

При нажатии на кнопку Решить в текстовом объекте richTextBox будет выведено решение метода сопряженных направлений (рис. А.2).

 

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

 

Для сохранения решения задачи нужно нажать на кнопку Сохранить в файл, после чего откроется диалоговое окно (рис. А.3) для выбора места хранения файла и его (файла) названия. Решение примера будет сохранено в текстовый файл с разрешением *.txt.

 

Рисунок А.3 - Диалоговое окно сохранения файла.

 

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

 

Рисунок А.4 - Диалоговое окно Справка.

 

Приложение Б

 

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

using System;System.Collections.Generic;System.ComponentModel;System.Data;System.Drawing;System.Text;System.Windows.Forms;System.IO;System.Net;System.Net.Sockets;System.Runtime.Serialization;System.Runtime.Serialization.Formatters;System.Runtime.Serialization.Formatters.Binary;Метод_сопряженных_направлений

{partial class Form1 : Form

{[,] Matrica = new double[2, 2];[] x = new double[2];E;[] d1 = new double[2];[] d2 = new double[2];[] d0 = new double[2];i;k;n = 2;j;[] y = new double[2];[] y1 = new double[2];[] y0 = new double[2];[] x_st = new double[2];[] d1_n = new double[2];[] d2_n = new double[2];[] d0_n = new double[2];Form1()