Программная реализация графического метода решения задач нелинейного программирования для случая нелинейной целевой функции и линейных ограничений
Курсовой проект - Компьютеры, программирование
Другие курсовые по предмету Компьютеры, программирование
т. е. специалисту по моделированию систем средствами вычислительной техники. Особенно эффективно применение моделирования на ранних этапах проектирования автоматизированных систем, когда цена ошибочных решений наиболее значительна.
Современные вычислительные средства позволили существенно увеличить сложность используемых моделей при изучении систем, появилась возможность построения комбинированных, аналитико-имитационных моделей, учитывающих все многообразие факторов, имеющих место в реальных системах, т. е. использованию моделей, более адекватных исследуемым явлениям.
Во время выполнения курсового проекта была достигнута цель, а именно реализован графический метод решения задач нелинейного программирования для случая нелинейной целевой функции второго порядка и линейных ограничений в виде компьютерного приложения. Для выполнения цели были осуществлены все поставленные задачи.
Список литературы
1.Акулич И.Л. Математическое программирование в примерах и задачах / И.Л. Акулич - М.: Высшая школа, 1986. - 319 с.
.Балакирева И.А. Методические указания для выполнения курсового проекта по дисциплине Прикладная математика для студентов специальности Компьютерные системы и сети дневной и заочной форм обучения / И.А. Балакирева, А.В. Скатков- Севастополь: Изд-во СевНТУ, 2003. - 15 с.
.Бережная Е.В. Математические методы моделирование экономических систем / Е.В. Бережная, В.И. Бережной. - М.: Финансы и статистика 2008. - 232 с.
.Вентцель Е.С. Исследование операций. Задачи, принципы методология / Е.С. Вентцель -М.: Дрофа. 2006. - 206 с.
.Ермаков В.И. Общий курс высшей математики для экономистов / В.И. Ермаков.- М.: ИНФА, 2003 - 656 с.
.Зайченко Ю.П. Исследование операций / Ю.П. Зайченко, С.А. Шумилова - М.: Высшая школа, 1990. - 239 с.
.Зуховидский С.И. Линейное и выпуклое программирование / С.И. Зуховидский, Л.И.Авдеева - М.: Наука, 1964.
.Карасев А.Н. Математические методы в экономике / А.Н. Карасев, Н.Ш. Кремер, Т.Н. Савельева, М.: Дрофа, 1996. - 354 с.
.Карпелевич Ф.И. Элементы линейной алгебры и линейного программирования / Ф.И. Карпелевич, Л.Е.Садовский - М.: Наука, 1967. - 230 с.
.Кузнецов Ю.Н. Математическое программирование / Ю.Н. Кузнецов, В.И. Кузубов, А.Б. Волощенко - М.: Наука, 1980 г.
.Лященко И.Н. Линейное и нелинейное программирования / И.Н. Лященко, Е.А. Карагодова, Н.В. Черникова. -М.: Высшая школа, 1975.- 372 с.
.Партыкина Т.Л. Математические методы / Т.Л. Партыкина, И.И. Попов - М.: Форум, 2005. - 464 с.
.Скатков А.В. Методические указания по изучению дисциплины Прикладная математика, раздел Методы глобального поиска и одномерной минимизации / А.В. Скатков, И.А. Балакирева, Л.А. Литвинова - Севастополь: Изд-во СевГТУ, 2000. - 31с.
.Тах Х.А. Введение в исследование операций/ Х.А. Тах - М.: Издательский дом "Вильяме", 2005. - 912 с.
.Чеснокова О.В. Delphi 7. Алгоритмы и программы / О.В. Чеснокова - М.: Пресс, 2008. - 368 с.
ПРИЛОЖЕНИЕ
unit Comps;
, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,, StdCtrls, Buttons, ExtCtrls, Series, TeEngine, TeeProcs, Chart;
= class(TForm): TStaticText;: TLabel;: TEdit;: TEdit;: TStaticText;: TStaticText;: TStaticText;: TEdit;: TEdit;: TEdit;: TEdit;: TEdit;: TEdit;: TLabel;: TBitBtn;: TEdit;: TEdit;: TLabel;: TLabel;: TLabel;: TLabel;: TEdit;: TEdit;: TLabel;: TStaticText;: TBevel;: TBevel;: TEdit;: TEdit;: TEdit;: TEdit;: TLabel;: TLabel;: TLabel;: TLabel;: TLabel;: TLabel;: TLabel;: TChart;: TFastLineSeries;: TFastLineSeries;: TPointSeries;: TLabeledEdit;: TPointSeries;: TPointSeries;BitBtn1Click(Sender: TObject);calcMin();calcMax();
{ Private declarations }
{ Public declarations };
: TForm1;,k2,a11,a12,b1,a21,a22,b2:double;,Ox2,Lmin,Lmax,X,Y,E:double;
{$R *.dfm}
TForm1.BitBtn1Click(Sender: TObject);i,j:double;:boolean;:=strtofloat(editk1.Text); k2:=strtofloat(editk2.Text);:=strtofloat(edit11.Text); a12:=strtofloat(edit12.Text); b1:=strtofloat(editb1.Text);:=strtofloat(edit21.Text); a22:=strtofloat(edit22.Text); b2:=strtofloat(editb2.Text);:=strtofloat(labelededit1.Text);
//Очищаемграфики.Series[0].Clear();.Series[1].Clear();.Series[2].Clear();.Series[3].Clear();.Series[4].Clear();
=0 then Chart.Series[0].AddXY(i,j);:=i+1;(j30);
//точка О:=k1;:=k2;
editOx1.Text:=floattostr(Ox1);.Text:=floattostr(Ox2);.Series[2].AddXY(Ox1,Ox2);
//принадлежит ли О области допустимых значений
if ((Ox1*a11+Ox2*a12=0)).Caption:=Принадлежит;:=true;.Caption:=Непринадлежит;
oE:=false;;
//считаем координаты точки пересечения графиков (самая удобная точка)
X:=(b2*a12-b1*a22)/(a21*a12-a11*a22);:=(b1-a11*X)/a12;
//находим точки экстремума и считаем макс/мин целевой функции
if oE=true:=0;.Text:=floattostr(Lmin);.Text:=floattostr(Ox1);.Text:=floattostr(Ox2);
();if oE=false();();;
;
procedure TForm1.calcMin(); //находим точку минимума
var i,j,x1,x2:double;:=X; x2:=Y;:=0; j:=0;(a11*i+a12*j50;:=(x1-k1)*(x1-k1)+(x2-k2)*(x2-k2);.Text:=floattostr(Lmin);.Text:=floattostr(x1);.Text:=floattostr(x2);.Series[3].AddXY(x1,x2);;
=abs(Ox1-x1))or(abs(Ox2-j)>=abs(Ox2-x2))):=i;x2:=j;;:=j+E;j>50;:=0;:=i+E;i>50;:=(x1-k1)*(x1-k1)+(x2-k2)*(x2-k2);.Text:=floattostr(Lmax);.Text:=floattostr(x1);.Text:=floattostr(x2);.Series[4].AddXY(x1,x2);">TForm1.calcMax(); //находимточкумаксимумаi,j,x1,x2:double;:=X; x2:=Y;:=0; j:=0;(a11*i+a12*j50;:=(x1-k1)*(x1-k1)+(x2-k2)*(x2-k2);.Text:=floattostr(Lmax);.Text:=floattostr(x1);.Text:=floattostr(x2);.Series[4].AddXY(x1,x2);
end;
.