Форум программистов, компьютерный форум, киберфорум
Matlab
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/8: Рейтинг темы: голосов - 8, средняя оценка - 4.50
0 / 0 / 0
Регистрация: 15.12.2019
Сообщений: 5

Решение задачи Линейного программирования в Matlab

15.12.2019, 17:07. Показов 1738. Ответов 5

Студворк — интернет-сервис помощи студентам
Доброго времени суток !
Помоги пожалуйста понять чего мне не хватает в моем решении задачи в Матлабе.
Есть математическая модель одобренная преподавателем. Затем решил задачу в Excel и далее в Матлабе и результаты в них сошлись. Позже выяснил что забыл в Excel учитывать один параметр - расход бумаги. Экселевское решение переделал, а вот в матлабе не пойму куда что добавить. Помогите пожалуйста!

Текст задачи и математическая модель во вложении 35.docx
Решение в эксель во вложении 35.xlsx

Текст программы в MatLab:
Matlab M
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
clc
clear all
% Правые части ограничений
a=[50;80;40;73]; % запас бумаги
b=[6;6;6;6]; % тираж
% Бинарные коэффициенты в ограничениях
R=[8    3   4   8;
   2    4   4   5;
   4    7   2   8;
   9    7   3   8];
f=reshape(R',1,[]); % транспонируем всю матрицу в 1 строку
E=eye(4); % возвращает 4-на-4 единичную матрицу с единицами 
          % на главной диагонали и нулями в других местах
Ae=repelem(E,1,4);
Be=repmat(E,1,4); %Создаем матрицу 1-на-4 наполненную 
                  % значениями переменной E
[x,s]=linprog(f,Ae,a,Be,b,zeros(1,16));
X=(reshape(x,4,4))' % матрица печати книг
s % затраты на печать
В Матлабе получается не проверяется возможность при печати истратить бумаги больше запаса, с учетом нормы расхода бумаги на единицу напечатанной книги.
Вложения
Тип файла: xlsx 35.xlsx (16.5 Кб, 12 просмотров)
Тип файла: docx 35.docx (24.7 Кб, 16 просмотров)
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
15.12.2019, 17:07
Ответы с готовыми решениями:

Решение задачи линейного программирования
1.1 . Решить задачу линейного программирования f(x) = 4x1 + x2 → inf, x1 + x2 > 2, x1 – x2 > 1, x1 > 0, x2 > 0. 1.2. Решить...

Задача линейного программирования в среде MatLab
Доброго времени суток! Друзья, помогите пожалуйста с решением данной задачи. Пробовала решить ее симплекс-методом,но безуспешно. Дали...

Задачи линейного программирования (2)
Предположим для определенности, что необходимо составить самый дешевый рацион питания цыплят, содержащий необходимое количество...

5
Модератор
 Аватар для Centurio
1765 / 1610 / 541
Регистрация: 13.09.2015
Сообщений: 5,629
16.12.2019, 03:10
ymsssg, код не вы составляли? Ограничения по запасу бумаги у вас в векторе а прописаны. В коде они не совпадают с теми, что у вас в Excel прописаны. Также не совпадает первая строка матрицы R.
0
0 / 0 / 0
Регистрация: 15.12.2019
Сообщений: 5
16.12.2019, 03:49  [ТС]
Centurio, код составлял я. То что первая строка матрицы не совпадает с вариантом в Экселе я проглядел, спасибо что подметили, получается я не тот файл загрузил. Вернее старый его вариант когда ограничение расхода бумаги не сравнивались с запасом с учетом нормы расхода бумаги на одну книгу. Вложил теперь правильный экселевский файл с исправлением о котором писал в первом посте. Столбец Ограничения по расходу бумаги в нем считается с учетом нормы расхода бумаги на книгу которую мы печатаем. Вот именно это исправление не знаю как реализовать в Матлабе.
Вложения
Тип файла: xlsx 35-с расходом бумаги.xlsx (14.6 Кб, 5 просмотров)
0
0 / 0 / 0
Регистрация: 15.12.2019
Сообщений: 5
16.12.2019, 12:03  [ТС]
Правильно ли будет сделать так?
Matlab M
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
clc
clear all
R=[8 3 4 8;
   2 4 4 5;
   4 7 2 8;
   9 7 3 8];
f=reshape(R',1,[]);
A=[8 10 7  8 0  0  0 0 0 0   0 0 0 0  0 0;
   0  0  0 0 8 10  7 8 0 0   0 0 0 0  0 0;
   0  0  0 0 0   0  0 0 8 10 7 8 0 0  0 0;
   0  0  0 0 0   0  0 0 0 0   0 0 8 10 7 8];
b=[50 80 40 73];
Ae=[1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0;
    0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0;
    0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0;
    0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1];
be=[6 6 6 6];
lb=ones(size(A))*0;
[x,s]=linprog(f,A,b,Ae,be,lb);
x
X=(reshape(x,4,4))' % матрица печати книг
s % затраты на печать
Даже вот так:
Matlab M
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
clc
clear all
intcon=[1:16];
R=[8 3 4 8;
   2 4 4 5;
   4 7 2 8;
   9 7 3 8];
f=reshape(R',1,[]);
A=[8 10 7 8 0  0 0 0 0  0 0 0 0  0 0 0;
   0  0 0 0 8 10 7 8 0  0 0 0 0  0 0 0;
   0  0 0 0 0  0 0 0 8 10 7 8 0  0 0 0;
   0  0 0 0 0  0 0 0 0  0 0 0 8 10 7 8];
b=[60 80 40 73];
Ae=[1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0;
    0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0;
    0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0;
    0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1];
be=[6 6 6 6];
lb=zeros(1,16);
[x,s]=intlinprog(f,intcon,A,b,Ae,be,lb);
X=(reshape(x,4,4))' % матрица печати книг
s % затраты на печать
0
Модератор
 Аватар для Centurio
1765 / 1610 / 541
Регистрация: 13.09.2015
Сообщений: 5,629
17.12.2019, 04:30
ymsssg, уж зачем потеть, вводя вручную громоздкие матрицы?
Matlab M
1
2
3
v=[8 10 7 8];
A=blkdiag(v,v,v,v);
Ae=repmat(eye(4),1,4);
1
0 / 0 / 0
Регистрация: 15.12.2019
Сообщений: 5
17.12.2019, 06:30  [ТС]
Centurio, огромное Вам спасибо за науку!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
17.12.2019, 06:30
Помогаю со студенческими работами здесь

Графический способ решения задачи линейного программирования
на рисунке показано как оно должно выглядеть. Нужно написать код!

Решение задач линейного программирования. Симплекс метод
5x1 + x2→ min, x1 + 7x2 ≥ 7, 7x1 + x2 ≥ 7, –2x1 + x2 ≤ 6, 2x1 + 5x2 ≥ 10, 5x1 + 2x2 ≥ 10, x1 ≤ 6, x2 ≤ 7, x1,x2 ≥ 0. ...

Решение задачи линейного программирования
Помогите пожалуйста. Нужно решить задачу двумя способами: геометрическим и аналитическим в программе MathCad. В моей версии...

Решение задачи линейного программирования
Здравствуйте. Помогите пожалуйста Как решить ЗЛП в МАТКАД ПРАЙМ 2.0 Задана целевая функция L=9x1+2x2 --> max Условия: ...

Решение задачи линейного программирования
Решить любую задачу линейного программирования в Mathcad заранее спасибо Пробовал сам разобраться, но ничего не получается, а через...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru