Страница: 9/10
{пишем ответ:}
{1. Рисуем целевую ф-ю в нужном месте}
c:=MainF.x*XResult+MainF.y*YResult;
MoveTo(MinX+1,MinY-Round(C/MainF.y*MASHT)-1);
SetColor(Red);{рисуем целевую линию на экр. красным}
LineTo(MinX+Round(C/MainF.x*MASHT)+1,MinY-1);
SetLineStyle(1,0,NormWidth);
SetColor(Yellow);
{2. Считаем max(f)}
Str(MainF.x*XResult+MainF.y*YResult:2:1,STmp);
Result:='max(f)='+Stmp;
{3. Рисуем значение на оси X}
Line(MinX+Round(XResult)*MASHT,MinY-Round(YResult)*MASHT,MinX+Round(XResult)*MASHT,MinY+3);
Str(XResult:2:1,STmp);
OutTextXY(MinX+Round(XResult)*MASHT,MinY+4,STmp);
Result:=Result+' при x='+Stmp;
{4. Рисуем значение на оси Y}
Line(MinX+Round(XResult)*MASHT,MinY-Round(YResult)*MASHT,MinX-3,MinY-Round(YResult)*MASHT);
Str(YResult:2:1,STmp);
OutTextXY(MinX-30,MinY-Round(YResult)*MASHT,STmp);
Result:=Result+' y='+Stmp;
SetColor(White);
SetLineStyle(0,0,NormWidth);
OutTextXY(300,230,Result);{Выводим строку ответа}
end
else
OutTextXY(7,3,'Вычисления не закончены!!!');
{Завешение программы}
Bar(0,0,GetMaxX,MaxY-1);
SetColor(White);
OutTextXY(7,3,'Нажмите любую клавишу для выхода');
ReadKey;
End;
BEGIN
i:=0;{Начальное значение кол-ва неравенств}
Gd:=Detect;
InitGraph(Gd, Gm, 'C:BPBGI'); { Путь к BGI драйверам }
if GraphResult <> grOk then Halt(1);
ShowXOY;
EnterNerav;
EnterMainF;
GetResult;
CloseGraph;
END.
Заключение
Программа решения задач линейного программирования графическим способом на IBM PC была написана на языке Borland Pascal 7.1. В ней, для удобства, рассматривается случай когда количество переменных равно двум т. е. решение задачи можно разместить на плоскости. С помощью этой программы можно наглядно продемонстрировать метод графического решения задач.
Вообще, с помощью графического метода может быть решена задача линейного программирования, система ограничений которой содержит n неизвестных и m линейно независимых уравнений, если N и M связаны соотношением N – M = 2.
Действительно, пусть поставлена задача линейного программирования.
Найти максимальное значение линейной функции
Z = С1х1+С2х2+ . +СNxN при ограничениях
a11x1 + a22x2 + . + a1NХN = b1
a21x1 + a22x2 + . + a2NХN = b2
. . . . . . . . . . . . . . .
aМ1x1 + aМ2x2 + . + aМNХN = bМ
xj ≥ 0 (j = 1, 2, ., N)
где все уравнения линейно независимы и выполняется cоотношение N - M = 2.
Используя метод Жордана-Гаусса, производим M исключений, в результате которых базисными неизвестными оказались, например, M первых неизвестных х1, х2, ., хM, а свободными - два последних: хМ+1, и хN, т. е. система ограничений приняла вид:
x1 + a1,М+1xМ+1 + a1NХN = b1
x2 + a2,М+1xМ+1 + a2NХN = b2
. . . . . . . . . . . .
xМ + aМ, М+1x2 + aМNХN = bМ
xj ≥ 0 (j = 1, 2, ., N)
С помощью уравнений преобразованной системы выражаем линейную функцию только через свободные неизвестные и, учитывая, что все базисные неизвестные - неотрицательные: хj ≥ 0 (j = 1, 2, ., M), отбрасываем их, переходя к системе ограничений, выраженных в виде неравенств.
Литература
1. Абрамов Л.М., Капустин В.Ф. Математическое программирование. Л., Изд-Ленингр. ун-та, 1976. - 184 с.
2. Акулич И.Л. Математическое программирование в примерах и задачах: Учеб. пособие - 2-е изд., испр. и доп. - М.: Высш. шк. ,1993 - 336 с.
3. Ашманов С.А.Линейное программирование. - М.: Наука, 1981.
4. Баканов М.И., Шеремет А.Д. Теория экономического анализа: Учебник. -4-е изд., доп. и перераб. - М.: Финансы и статистика, 2000. - 416 с.
5. Баканов М.И., Шеремет А.Д.Экономический анализ: ситуации, тесты, примеры, задачи, выбор оптимальных решений, финансовое прогнозирование: Учеб. пособие. - М.: Финансы и статистика, 1999. -656 с.
6. Банди Б. Основы линейного программирования: Пер. с англ. - М.: Радио и связь, 1989. -176 с.
7. Габасов Р., Кириллова Ф.М. Методы линейного программирования. Ч.1. Общие задачи, Минск, Изд-во БГУ им. В.И. Ленина, 1977. - 176 с.
8. Габасов Р., Кириллова Ф.М. Методы линейного программирования. Ч.2. Транспортные задачи, Минск, Изд-во БГУ им. В.И. Ленина, 1977. - 240 с.
Реферат опубликован: 3/01/2008