F=6 = 2xi-3x2 (3;0) (0;-2) f= О IIZiчерез точку (0; 0)
Нашли направления убывания Z. Двигая в этом направлении прямую Z параллельно самой себе доходим до крайней точки на ОДР.
В точке D функция Z достигает своего минимума.
Fmaxв точке D (XI *; Х2*)
Найдём координаты этой точки.
Точка D образована пересечением первого и третьего ограничений. Решим совместно систему.
Подставим координаты точки D в выражение целевой функции, получаем её значение min.
Таким образом, найдено решение задачи. Ответ: XI* =2; X2* = 4 Fтin= - 8
Расчёты проводили в Delphi:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, StdCtrls, Grids, Menus, ComCtrls;
type
TForm1 = class(TForm)
StringGrid1: TStringGrid;
Edit1: TEdit;
Button1: TButton;
Image1: TImage;
Button2: TButton;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
StringGrid2: TStringGrid;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
Button3: TButton;
MainMenu1: TMainMenu;
gfgf1: TMenuItem;
Edit5: TEdit;
Edit6: TEdit;
Button7: TButton;
Label10: TLabel;
Label11: TLabel;
Label13: TLabel;
Label14: TLabel;
Label15: TLabel;
Label16: TLabel;
Button8: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button7Click(Sender: TObject);
procedure Button8Click(Sender: TObject);
procedure gfgf1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
uses Unit2;
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var aaaa:integer;
begin
aaaa:=strtoint(edit1.text);
stringgrid1.RowCount:=aaaa;
end;
procedure TForm1.Button2Click(Sender: TObject);
var i,j,xtoc,ytoc:integer;
strok:string;
bs: TBrushStyle;//
a,b,c,xa,xy,y1,y2,y111,y222:real;
okrx,okry,okrxx,okryy,xx,yy,x1,x2,s,ss:integer;
x0,y0:integer;
dx,dy:integer;
h,w:integer;
x,y:integer;
lx,ly:real;
dlx,dly:real;
cross:integer;
dcross:integer;
begin
form2.stringgrid1.rowcount:=form1.StringGrid1.rowcount;
form1.image1.Canvas.Pen.Color:= clBlack;
form1.image1.Canvas.brush.Color:= clwhite;
form1.image1.Canvas.brush.style:= bssolid;
image1.Canvas.Rectangle(0,0,777,697);
x0:=150; y0:=450;
dx:=45; dy:=45;
dcross:=1;
dlx:=1.0;
dly:=1.0;
h:=400; w:=400;
with form1.image1.Canvas do begin
cross:=dcross;
MoveTo(x0,y0); LineTo(x0,y0-h);
MoveTo(x0,y0); LineTo(x0-h,y0);
MoveTo(x0,y0); LineTo(x0+w, y0);
MoveTo(x0,y0); LineTo(x0, y0+h);
x:=x0+dx;
lx:=dlx;
TextOut(x0+h+10,y0+5,'X');
TextOut(x0-15,y0-h-15,'Y');
repeat
MoveTo(x,y0-3);LineTo(x,y0+3);
cross:=cross-1;
if cross = 0 then
begin
TextOut(x-8,y0+5,FloatToStr(lx));
cross:=dcross ; end;
Pen.Style:=psDot;
MoveTo(x,y0-3);LineTo(x,y0-h);
Pen.Style:=psSolid;
lx:=lx+dlx;
x:=x+dx;
until (x>x0+w);
y:=y0-dy;
ly:=dly;
repeat
MoveTo(x0-3,y);LineTo(x0+3,y);
TextOut(x0-20,y,FloatToStr(ly));
Pen.Style:=psDot;
MoveTo(x0+3,y); LineTo(x0+w,y);
Pen.Style:=psSolid;
y:=y-dy;
ly:=ly+dly; until (y<y0-h);
end;
s:=stringgrid1.rowCount-1;
for i:=0 to s do begin
form2.stringgrid1.cells[0,i]:=form1.StringGrid1.cells[0,i];
form2.stringgrid1.cells[1,i]:=form1.StringGrid1.cells[1,i];
form2.stringgrid1.cells[2,i]:=form1.StringGrid1.cells[2,i];
a:=strtofloat(stringgrid1.Cells[0,i]);
b:=strtofloat(stringgrid1.Cells[1,i]);
c:=strtofloat(stringgrid1.Cells[2,i]);
strok:=stringgrid1.Cells[3,i];
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.