Метод сопряженных направлений
Курсовой проект - Математика и статистика
Другие курсовые по предмету Математика и статистика
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()