Показать сообщение отдельно
Старый 18.12.2014, 11:49   #7 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Да... задачка-то оказалась поинтереснее, чем на первый взгляд.
Решал так.
1. Преобразуем неравенства к виду
Код:
x2 >= S/4 - S/G*x1
x2 <= S/2 + S/(2G)*x1
x2 >= -S + (2S)/G*x1
2. Находим максимальное значение х1, при котором все три неравенства совместимы.
3. В качестве х2 принимаем большее из значений правых частей первого и третьего неравенств при найденном х1.
Код:
Const
 S=1;
 G=11;
 dx=0.01;

Var
 x1,x2:Real;

Begin
 x1:=0;
 While ((S/2+S/2/G*x1)>=(S/4-S/G*x1)) and ((S/2+S/2/G*x1)>=(-S+S*2/G*x1)) do
  x1:=x1+dx;
 writeln('x1 = ',x1:0:3);
 if (S/4-S/G*x1)>(-S+S*2/G*x1) then
  x2:=(S/4-S/G*x1)
 else
  x2:=(-S+S*2/G*x1);
 writeln('x2 = ',x2:0:3);
 writeln(' Z = ',(S*x1+G*x2):0:3);
 Readln
End.
Vladimir_S вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070