2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему
 
 Линейное программирование в SciLab
Сообщение13.08.2009, 10:41 


13/08/09
6
Для решения задачи линейного программирования в SciLab есть функция linpro. Однако при ее вызове (впрочем, это написано и в справке о ней) требуется quapro. Я скачал последнюю с сайта scilab. это exe-шник. Запустил, Все прошло успешно. Но на поведение linpro это никак не сказалось - она по-прежнему требует quapro. Видимо, этот toolbox надо как-то цеплять из самого scilab. Но как - не знаю.
Заранее благодарен за советы.

 Профиль  
                  
 
 Re: ЛП в SciLab? Как решить пример из Help-a
Сообщение15.08.2009, 08:36 


03/09/05
217
Bulgaria
У меня версия 5.1.1
Как указано в описании quapro 1.0 toolbox (windows 32 bits binary version):
1. Выполнил quapro-1.0-win32.exe и вопросное расширение инсталировалось в директорию
C:\Program Files\quapro-toolbox-1.0;
2. В основной т.наз. Console scilab-a вошел в команде File >> Execute, нашел директории
C:\Program Files\quapro-toolbox-1.0 с только что инсталированном расширении и там увидел,
выбрал и выполнил как указано "загрузчик" расширения loader.sce. В Consol-е пeрошли тексты:
Код:
Startup execution:
  loading initial environment
 
Start quapro toolbox   

Load macros   

Load gateways   

Load help   

Execution done. 
;
3. Теперь уже в Helpe scilab-a в самом конце наряду с прочими появилось расширение quapro. Там открыл
описание linpro. Из части его Examples скопировал "фирменный" примерчик прямо в Console и нажал Enter;
4. Получил решение
Код:
-->//Find x in R^6 such that:

-->//C1*x = b1  (3 equality constraints i.e me=3)

-->C1= [1,-1,1,0,3,1;
-->    -1,0,-3,-4,5,6;
-->     2,5,3,0,1,0];

-->b1=[1;2;3];

-->//C2*x <= b2  (2 inequality constraints)

-->C2=[0,1,0,1,2,-1;
-->    -1,0,2,1,1,0];

-->b2=[-1;2.5];

-->//with  x between ci and cs:

-->ci=[-1000;-10000;0;-1000;-1000;-1000];cs=[10000;100;1.5;100;100;1000];

-->//and minimize p'*x with

-->p=[1;2;3;4;5;6]
p  =

    1. 
    2. 
    3. 
    4. 
    5. 
    6. 

-->//No initial point is given: x0='v';

-->C=[C1;C2]; b=[b1;b2] ; me=3; x0='v';

-->[x,lagr,f]=linpro(p,C,b,ci,cs,me,x0)
f  =

  - 7706.4681 
lagr  =

    0.         
    0.         
  - 3.1914894 
  - 7.4893617 
    2.212766   
    0.         
  - 0.7659574 
  - 0.8723404 
  - 0.5531915 
    0.         
    0.         
x  =

    275.2766   
  - 129.51064 
    1.537D-14 
  -1000.       
    100.       
  - 703.78723 

-->// Lower bound constraints 3 and 4 are active and upper bound

-->// constraint 5 is active --> lagr(3:4) < 0 and lagr(5) > 0.

-->// Linear (equality) constraints 1 to 3 are active --> lagr(7:9) <> 0


5. Последный пункт можно сделать и не прямо из Console, а через Applications >> Editor.
Скопировать примерчик в редактор программ и выполнить его уже оттуда при помощью команды
Execute >> Load into SciLab. Тогда в Console более лаконическое:
Код:
->
  p  =

    1. 
    2. 
    3. 
    4. 
    5. 
    6. 
f  =

  - 7706.4681 
lagr  =

    0.         
    0.         
  - 3.1914894 
  - 7.4893617 
    2.212766   
    0.         
  - 0.7659574 
  - 0.8723404 
  - 0.5531915 
    0.         
    0.         
x  =

    275.2766   
  - 129.51064 
    1.537D-14 
  -1000.       
    100.       
  - 703.78723 


Все.

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 2 ] 

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group