скачать рефераты
  RSS    

Меню

Быстрый поиск

скачать рефераты

скачать рефератыКурсовая работа: Проектирование модели для составления оптимального рациона кормления скота

Увеличение ресурсов привели к рациону, состоящему из следующих продуктов: сено – 11, силос – 11.19, концентраты – 6.81 с недоиспользованным остатком в размере силоса – 4.81 и концентратов – 16.19. Стоимость рациона составила 89.44 копеек.

В ходе решения задачи было выявлено, что при проведенной замене оптимальная стоимость уменьшается от 90.62 до 89.44 копеек и при этом более целесообразно анализ проводить по выходу продукции (мясо, молоко, яйца и др.), так как с точки зрения экономики это выгоднее увеличение ресурсов питания с наименьшими материальными затратами.

Задача 5

Решая задачу 5 не будем применять каких-либо алгоритмов, а решим ее аналитическим путем.

Для начала исключим из задачи сено, то есть исходная задача принимает вид:

 

Задача 5.1

Заменим сено на силос (концентраты оставим постоянной величиной). Из задачи 2 норма выдачи концентратов =6,75 из этого следует,

Решение: ; при этом . Следовательно, если мы заменим сено силосом, то рацион будет состоять из силоса- 39,25 и концентратов – 6,75. Оптимальная стоимость рациона составит 112,25 копеек.

Задача 5.2

Заменим сено на концентраты (силос оставим постоянной величиной).Из задачи 2 норма выдачи силоса =9,25 из этого следует,

Решение: ; при этом . Следовательно, если мы заменим сено концентраты, то рацион будет состоять из силоса- 9,25 и концентратов – 40. Оптимальная стоимость рациона составит 218,5 копеек.

Так как , то замена сена на силос более выгодно, чем замена на концентраты.


ВЫВОДЫ

В результате выполненной работы было выявлено, что основой повышения продуктивности животных является полноценное кормление. Недостаток какого- либо вида питательных веществ в рационе отрицательно сказывается на развитии животных и ведет к снижению их продуктивности. Кроме этого, неполноценное кормление вызывает перерасход кормов. Поэтому кормовой рацион должен быть полностью сбалансирован по всем питательным веществам, необходимым для каждого вида.

Для составления экономико-математической модели по выбору оптимальных кормовых рационов необходимы данные:

наличие кормов по видам;

содержание питательных веществ в единице корма;

требуемое количество питательных веществ в рационе;

максимально и минимально возможные нормы скармливание отдельных видов кормов;

себестоимость кормов и цены добавок, которые могут быть приобретены на стороне.

Вся эта информация готовится на основе фактических данных, получаемых в хозяйстве и справочной литературе. Используются также данные лабораторных анализов.

Данная курсовая работа содержит ознакомительный теоретический материал и подробно расписанную задачу по составления оптимального рациона кормления скота. Задача содержит в себе пять подзадач для того, чтобы можно было проследить, как меняется рацион и оптимальная стоимость с теми или иными изменениями (ограниченность ресурсов продуктов на один рацион, замена одного продукта на другой, увеличение ресурсов питания и другое).

К курсовой работе прилагается программа, поставленная на решении данной задачи.


ЛИТЕРАТУРА:

1 Ананенков В.П. Математические методы планирования сельского хозяйства – Киев: Вища школа,1980.-430с

2 Деордица Ю.С., Нефедов Ю.М. Исследование операций в планировании и управлении: Учебное пособие.- Киев: Вища школа,1991-270с

3 Крушевский А.В., Швецов К.И. Математическое программирование и моделирование в экономике – Киев: Вища школа,1979.-456с

4 Крушевский А.В. Справочник по экономико-математическим моделям и методам. - Киев: Техника,1982.-208с

 5 Терехов Л.Л., Шарапов А.Д. и др. Математические методы и модели в планировании: учебное пособие для студентов вузов.- Киев: Вища школа. Головное изд-во, 1981.- 272с


ПРИЛОЖЕНИЕ А

обязательное

(текст программы, схема программы, описание программы, инструкция пользователю)

ТЕКСТ ПРОГРАММЫ

Блок1 ------------------------------------------------------

program simpl;

uses crt;

 const m1=30;

 n1=40;

 m2=30;

 type arm2m2=array[1..m2,1..m2] of real;

 arm2n1=array[1..m2,1..n1] of real;

 arm2=array[1..m2] of real;

 arn1=array[1..n1] of real;

 arm1=array[1..m1] of integer;

var a:arm2n1;

 b,x:arm2;

 c:arn1;

 w:arm1;

 m,n:integer;

 t:text;

 l,k,p,q,ll:integer;

 f:real;

 u:arm2m2;

Блок1 -------------------------------------------------------

Блок2 -------------------------------------------------------

 procedure vvod(var c:arn1; var b:arm2; var a:arm2n1; var m,n:integer);

 var i,j:integer;

 s:string;

Блок2 -------------------------------------------------------

Блок3 -------------------------------------------------------

 begin

 write('Введите имя файла с исходными данными '); readln(s);

 assign(t,s); reset(t);

 readln(t,m,n);

 for i:=1 to m do

 for j:=1 to n do a[i,j]:=0;

 for j:=1 to n do read(t,c[j]); readln(t);

 for i:=1 to m do

 begin

 for j:=1 to n do read(t,a[i,j]); readln(t);

 end;

 for i:=1 to m do read(t,b[i]); readln(t);

 close(t);

 end;

Блок3 -------------------------------------------------------

Блок4 -------------------------------------------------------

procedure wp(var w:arm1; var x:arm2; var u:arm2m2);

 var i,j:integer;

 r,s:real;

Блок4 -------------------------------------------------------

Блок5 -------------------------------------------------------

 begin

p:=m+2; q:=m+2; k:=m+1;

 for j:=1 to n do

 begin a[k,j]:=-c[j]; s:=0;

 for i:=1 to m do s:=s-a[i,j];

 a[p,j]:=s; w[j]:=0;

 end;

 s:=0;

 for i:=1 to m do

 begin

w[i]:=n+i; r:=b[i]; x[i]:=r; s:=s-r;

 end;

 x[k]:=0; x[p]:=s;

 for i:=1 to p do

 begin

for j:=1 to p do u[i,j]:=0; u[i,i]:=1;

 end;

 end;

Блок5 -------------------------------------------------------

Блок6 -------------------------------------------------------

procedure ms(var k,l:integer; var x:arm2);

 var j,i:integer;

 ex,stop:boolean;

 s,d:real;

 y:arm2;

Блок6 -------------------------------------------------------

Блок7 -------------------------------------------------------

 begin

 stop:=false;

 repeat

  if (x[p] >= 0) then q:=m+1;

  d:=0;

  for j:=1 to n do

 begin

s:=0;

 for i:=1 to p do s:=s+u[q,i]*a[i,j];

 if d > s then begin d:=s; k:=j end;

 end;

 if d >= 0 then

begin

stop:=true; f:=x[q];

 end

 else

 begin

  for i:=1 to q do

 begin

s:=0; for j:=1 to p do s:=s+u[i,j]*a[j,k]; y[i]:=s;

 end;

 ex:=true; d:=1e30;

 for i:=1 to m do

 if y[i] > 0.000001 then

 begin

 s:=x[i]/y[i]; if ex or (s < d) then

begin

 d:=s; l:=i; end;

 ex:=false;

 end;

 if ex then stop:=true

 else

 begin

w[l]:=k; s:=1/y[l];

 for i:=1 to q do

 for j:=1 to q do

 if i <> l then u[i,j]:=u[i,j]-u[l,j]*y[i]*s;

 for j:=1 to q do u[l,j]:=u[l,j]*s;

 for i:=1 to q do

 if i <> l then x[i]:=x[i]-d*y[i];

 x[l]:=d;

 for i:=1 to q do

 begin

write(t,x[i]:7:2,y[i]:7:2,w[i]:2);

 for j:=1 to q do write(t,u[i,j]:7:2);

 writeln(t);

 end;

 writeln(t,'---------------------------------------------');

 end;

 end

 until stop;

 end;

Блок7 -------------------------------------------------------

Блок8 -------------------------------------------------------

procedure vivod;

 var i:integer;

 f:real;

Блок8 -------------------------------------------------------

Блок9 -------------------------------------------------------

 begin

 writeln(t,Количество продуктов:');

 f:=0;

 for i:=1 to m do

 if c[w[i]] <> 0 then

 begin

writeln(t,w[i]:2,x[i]:10:2);

 f:=f+c[w[i]]*x[i];

 end;

 writeln(t,'Значение стоимости',f:16:2);

 end;

Блок9 -------------------------------------------------------

Блок10 -------------------------------------------------------

begin

 vvod(c,b,a,m,n);

 assign(t,'w_'); rewrite(t);

 wp(w,x,u); ms(k,l,x);

 vivod;

close(t);

end.

Блок10 ---------------------------------------------------------


 

ОПИСАНИЕ ПРОГРАММЫ

Блок1 – самый первый блок прграммы, в котором описываются константы, переменные, типы переменных, массивы которые в дальнейшем будут использоваться в программе.

Блок2 - описание переменных процедуры «Ввод»

Блок3 – текст процедуры «Ввод». В данном фрагменте программы происходит обращение к файлу и считывание с него исходных данных.

Блок4 - описание переменных процедуры «Вспомогательные построения - wp».

Блок5 - текст процедуры «wp», происходит построение вспомогательной модели для получения опорного плана исходной задачи.

Блок6 - описание переменных процедуры «Модифицированный симплекс – метод -ms».

Блок7 – текст процедуры «ms», выполняются основные шаги алгоритма модифицированного симплекс метода : выбор разрешающего элемента, построение обратной матрицы, пересчет опорного плана и оценочной строки. Данный фрагмент можно разбить на 2 этапа:

1 этап заключается в проверки плана на оптимальность

2 этап – выбор разрешающего столбца, разрешающей строки, вычисление значения целевой функции.

Блок8 - описание переменных процедуры «Вывод- vivod».

Блок9 – блок вывода результата

Блок10 основной блок данной программы, происходит ввод всех процедур.

РАСШИФРОВКА ПЕРЕМЕННЫХ ПРОГРАММЫ

- константы, определяют максимальную размерность основного массива

 - матрицы коэффициентов небазисных переменных размерности .

- вспомогательные массивы

- значение целевой функции

- параметры целевой функции

- свободные части системы ограничений

-переменные системы ограничений

- файл с исходными данными

- текст

- строки матрицы

- столбцы матрицы

- счетчики

ИНСТРУКЦИЯ ПОЛЬЗОВАТЕЛЮ

К курсовой работе прилагается дискета с программой на задачу приведенную выше в разделе 4.2. Даннная программа написана на языке Turbo Pascal 7.0 в среде операционной сиситемы Windows 98 на диске находится файл с расширением simplех.exe, 4 файла с исходными данными (w1,w2,w3,w4) и 4 файла с конечным результатом вычислений (w1_,w2_,w3_w4).

Для начала включите компьютер, вставте дискету в дисковод, откройте ее, перед вами появятся выше перечисленные файлы. Выберете файл simplех.exe и перед вами появится окно с изображением


После чего введите имя файла : w1 или w2 или w3 или w4 и нажмите Enter. Можете закрывать окно с программой, так как результат автоматически отправляется в файл: w1_ или w2_ или w3_ или w4_.

Елси пользователь решит внести изменения в текст программы, то ему необходимо выбрать D:\Pascal\Bp\Bin\Turbo после чего зайти в File\Open\Simplех, вам откроется текст программы в среде Turbo Pascal. После работы с программой вам необходимо ее сохранить и закрыть, но не всега легко удается закрыть программу, так как Turbo Pascal – язык программирования, который используестя средой MSDos и иногда после закрытия программы компьютер самостоятельно перезагружается.


ПРИЛОЖЕНИЕ Б

(входная информация)

Файл c исходными данными W1

3 6

 -3 -2 -5 0 0 0

 50 20 180 -1 0 0

 6 4 3 0 -1 0

 2 1 1 0 0 -1

 2000 120 40

Файл c исходными данными W2

6 9

 -3 -2 -5 0 0 0 0 0 0

 50 20 180 -1 0 0 0 0 0

 6 4 3 0 -1 0 0 0 0

 2 1 1 0 0 -1 0 0 0

 1 0 0 0 0 0 1 0 0

 0 1 0 0 0 0 0 1 0

 0 0 1 0 0 0 0 0 1

2000 120 40 12 20 16

Файл c исходными данными W3

9 12

 -3 -2 -5 0 0 0 0 0 0 0 0 0

 50 20 180 -1 0 0 0 0 0 0 0 0

 6 4 3 0 -1 0 0 0 0 0 0 0

 2 1 1 0 0 -1 0 0 0 0 0 0

 1 0 0 0 0 0 1 0 0 0 0 0

 0 1 0 0 0 0 0 1 0 0 0 0

 0 0 1 0 0 0 0 0 1 0 0 0

 1 0 0 0 0 0 0 0 0 1 0 0

 0 1 0 0 0 0 0 0 0 0 1 0

 0 0 1 0 0 0 0 0 0 0 0 1

2000 120 40 12 20 16 10 15 20

Файл c исходными данными W4

9 12

 -3 -2 -5 0 0 0 0 0 0 0 0 0

 50 20 180 -1 0 0 0 0 0 0 0 0

 6 4 3 0 -1 0 0 0 0 0 0 0

 2 1 1 0 0 -1 0 0 0 0 0 0

 1 0 0 0 0 0 1 0 0 0 0 0

 0 1 0 0 0 0 0 1 0 0 0 0

 0 0 1 0 0 0 0 0 1 0 0 0

 1 0 0 0 0 0 0 0 0 1 0 0

 0 1 0 0 0 0 0 0 0 0 1 0

 0 0 1 0 0 0 0 0 0 0 0 1

2000 120 40 12 20 16 11 16 23


ПРИЛОЖЕНИЕ В

(выходная информация)

Файл с результатом решения W1_

 11.11 180.00 0.01 0.00 0.00 0.00 0.00

 86.67 3.00 8 -0.02 1.00 0.00 0.00 0.00

 28.89 1.00 9 -0.01 0.00 1.00 0.00 0.00

 -55.56 5.00 0 -0.03 0.00 0.00 1.00 0.00

-115.56-184.00 0 1.02 0.00 0.00 0.00 1.00

---------------------------------------------

 6.45 0.28 3 0.01 0.00 -0.16 0.00 0.00

 0.00 5.17 8 0.00 1.00 -3.00 0.00 0.00

 16.77 1.72 1 -0.00 0.00 0.58 0.00 0.00

 -82.58 1.61 0 -0.02 0.00 -0.94 1.00 0.00

 -0.00 -6.89 0 1.00 0.00 4.00 0.00 1.00

---------------------------------------------

 6.45 0.16 3 0.01 -0.05 0.00 0.00 0.00

 0.00 3.00 6 0.00 0.33 -1.00 0.00 0.00

 16.77 -0.58 1 -0.00 0.19 0.00 0.00 0.00

 -82.58 0.94 0 -0.02 -0.31 0.00 1.00 0.00

 -0.00 -3.00 0 1.00 1.00 1.00 0.00 1.00

Страницы: 1, 2, 3, 4, 5, 6, 7, 8


Новости

Быстрый поиск

Группа вКонтакте: новости

Пока нет

Новости в Twitter и Facebook

  скачать рефераты              скачать рефераты

Новости

скачать рефераты

© 2010.