Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«Maple 9.5/10 Π² ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ΅, Ρ„ΠΈΠ·ΠΈΠΊΠ΅ ΠΈ ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠΈΒ». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 77

Автор Π’Π»Π°Π΄ΠΈΠΌΠΈΡ€ Π”ΡŒΡΠΊΠΎΠ½ΠΎΠ²

6.4. Π˜Π½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡ Maple с MATLAB

6.4.1. ΠšΡ€Π°Ρ‚ΠΊΠΈΠ΅ свСдСния ΠΎ MATLAB

НСсмотря Π½Π° ΠΎΠ±ΡˆΠΈΡ€Π½Ρ‹Π΅ срСдства Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎΠΉ Π°Π»Π³Π΅Π±Ρ€Ρ‹ (Π΄Π° ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π΄Ρ€ΡƒΠ³ΠΈΠ΅), ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠ΅ΡΡ Ρƒ систСмы Maple, Π΅ΡΡ‚ΡŒ систСмы ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½ΠΎΠΉ ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠΈ, Ρ€Π΅ΡˆΠ°ΡŽΡ‰ΠΈΠ΅ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ классы Π·Π°Π΄Π°Ρ‡ Π±ΠΎΠ»Π΅Π΅ эффСктивно, ΠΈ ΠΏΡ€Π΅ΠΆΠ΄Π΅ всСго быстрСС. Π’ области Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎΠΉ Π°Π»Π³Π΅Π±Ρ€Ρ‹ ΠΊ Ρ‚Π°ΠΊΠΈΠΌ систСмам, бСзусловно, относится систСма MATLAB [10, 28–34), созданная ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠ΅ΠΉ MathWorks, Inc. Π•Π΅ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ происходит ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΎΡ‚ слов MATrix LABoratory β€” матричная лаборатория.

MATLAB содСрТит Π² своСм ядрС ΠΌΠ½ΠΎΠ³ΠΈΠ΅ сотни ΠΌΠ°Ρ‚Ρ€ΠΈΡ‡Π½Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΈ являСтся ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· Π»ΡƒΡ‡ΡˆΠΈΡ… ΠΌΠ°Ρ‚Ρ€ΠΈΡ‡Π½Ρ‹Ρ… систСм для ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ΠΎΠ². Она Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅Ρ‚ самыС соврСмСнныС Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹ ΠΌΠ°Ρ‚Ρ€ΠΈΡ‡Π½Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ, кстати, ΠΈ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹ NAG. Однако Π³Π»Π°Π²Π½ΠΎΠ΅ достоинство MATLAB β€” Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ мноТСства Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² ΠΊΠ°ΠΊ ΠΏΠΎ классичСским Ρ€Π°Π·Π΄Π΅Π»Π°ΠΌ ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠΈ, Ρ‚Π°ΠΊ ΠΈ ΠΏΠΎ самым новСйшим, Ρ‚Π°ΠΊΠΈΠΌ ΠΊΠ°ΠΊ нСчСткая Π»ΠΎΠ³ΠΈΠΊΠ°, Π½Π΅ΠΉΡ€ΠΎΠ½Π½Ρ‹Π΅ сСти, идСнтификация систСм, ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° сигналов ΠΈ Π΄Ρ€. Π—Π½Π°ΠΌΠ΅Π½ΠΈΡ‚Ρ‹ΠΌ стал ΠΏΠ°ΠΊΠ΅Ρ‚ модСлирования систСм ΠΈ устройств Simulink, Π²ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌΡ‹ΠΉ Π² ΠΏΠ°ΠΊΠ΅Ρ‚ поставки систСмы MATLAB. ПослСднСй вСрсиСй систСмы являСтся MATLAB 7 SP2.

Π’ Ρ‚ΠΎ ΠΆΠ΅ врСмя нСльзя Π½Π΅ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ MATLAB β€” ΠΎΠ΄Π½Π° ΠΈΠ· самых Π³Ρ€ΠΎΠΌΠΎΠ·Π΄ΠΊΠΈΡ… матСматичСских систСм. Π˜Π½ΡΡ‚Π°Π»Π»ΡΡ†ΠΈΡ Π΅Π΅ ΠΏΠΎΠ»Π½ΠΎΠΉ вСрсии Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ ΠΎΠΊΠΎΠ»ΠΎ 2 Π“Π±Π°ΠΉΡ‚ дискового пространства. НСсмотря Π½Π° это, интСграция Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… матСматичСских систСм с Π΄Π°Π½Π½ΠΎΠΉ систСмой, ΠΏΠΎΡ…ΠΎΠΆΠ΅, становится своСобразной ΠΌΠΎΠ΄ΠΎΠΉ. Вакая Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ прСдусмотрСна ΠΈ Π² систСмС Maple с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΠ°ΠΊΠ΅Ρ‚Π° Matlab.

6.4.2. Π—Π°Π³Ρ€ΡƒΠ·ΠΊΠ° ΠΏΠ°ΠΊΠ΅Ρ‚Π° Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ Matlab

Для Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚Π° Matlab ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π°

> with(Matlab);

[chol, closelink, defined, det, dimensions, eig, evalM, fft, getvar, inv, lu, ode45, openlink, qr, setvar, size, square, transpose ]

ИспользованиС этой ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π²Π΅Π΄Π΅Ρ‚ ΠΊ автоматичСскому запуску систСмы MATLAB ΠΈ ΡƒΡΡ‚Π°Π½ΠΎΠ²Π»Π΅Π½ΠΈΡŽ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎΠΉ связи ΠΌΠ΅ΠΆΠ΄Ρƒ систСмами Maple ΠΈ MATLAB β€” рис. 6.2. ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ такая связь установлСна для послСднСй Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ MATLAB 7.04.365 SP2.

Рис. 6.2. УстановлСниС связи ΠΌΠ΅ΠΆΠ΄Ρƒ систСмами Maple ΠΈ MATLAB


Как Π½Π΅Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Π΄Π°Π½Π½Ρ‹ΠΉ ΠΏΠ°ΠΊΠ΅Ρ‚ Π΄Π°Π΅Ρ‚ доступ всСго ΠΊ 18 функциям систСмы MATLAB (ΠΈΠ· ΠΌΠ½ΠΎΠ³ΠΈΡ… сотСн, ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΡ…ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² ядрС послСднСй систСмы). Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Π΅ΡΡ‚ΡŒ всС основания ΠΏΠΎΠ»Π°Π³Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ возмоТности MATLAB Π² ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ с систСмой Maple ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΠΏΠΎΠΊΠ° ΠΎΡ‡Π΅Π½ΡŒ слабо ΠΈ носят Ρ€ΡƒΠ΄ΠΈΠΌΠ΅Π½Ρ‚Π°Ρ€Π½Ρ‹ΠΉ Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€. Π‘Ρ‚ΠΎΠΈΡ‚ Π»ΠΈ Ρ€Π°Π΄ΠΈ этих Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΈΠΌΠ΅Ρ‚ΡŒ Π½Π° ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅ ΠΎΠ³Ρ€ΠΎΠΌΠ½ΡƒΡŽ систСму MATLAB, ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Ρ€Π΅ΡˆΠ°Ρ‚ΡŒ сами. Если ΠΎΡ‚Π²Π΅Ρ‚ ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ, Ρ‚ΠΎ, скорСС всСго, ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Ρ€Π΅ΡˆΠ°Π΅Ρ‚ Ρ‚ΠΎΡ‚ класс Π·Π°Π΄Π°Ρ‡, для ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π»ΡƒΡ‡ΡˆΠ΅ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ MATLAB ΠΈ Π½Π°Π΄ΠΎ Π·Π°Π΄ΡƒΠΌΠ°Ρ‚ΡŒΡΡ ΡƒΠΆΠ΅ Π½Π°Π΄ Ρ‚Π΅ΠΌ, Π½ΡƒΠΆΠ½Π° Π»ΠΈ Π² этом случаС БКМ Maple.

6.4.3. Π’ΠΈΠΏΠΎΠ²Ρ‹Π΅ ΠΌΠ°Ρ‚Ρ€ΠΈΡ‡Π½Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚Π° Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ Matlab

Π‘ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΏΠ°ΠΊΠ΅Ρ‚Π° Matlab (Π½Π΅ ΠΏΡƒΡ‚Π°ΠΉΡ‚Π΅ с систСмой MATLAB, имя ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π½Π°Π΄ΠΎ Π·Π°ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ прописными Π±ΡƒΠΊΠ²Π°ΠΌΠΈ) Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‚ самыС ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Π΅ ΠΌΠ°Ρ‚Ρ€ΠΈΡ‡Π½Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, Ρ‡Ρ‚ΠΎ ΠΈ ΠΈΠ»Π»ΡŽΡΡ‚Ρ€ΠΈΡ€ΡƒΡŽΡ‚ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹Π΅ Π½ΠΈΠΆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ (Ρ„Π°ΠΉΠ» matlabi).

Π—Π°Π΄Π°Π΄ΠΈΠΌ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ М Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ Maple:

> maplematrix_a:=array(1..3,1.-3, [[6,4,2], [7,8,1], [3,7,3]]);

НиТС Π΄Π°Π½Ρ‹ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ транспонирования ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹, Π΅Π΅ инвСртирования, вычислСния Π΄Π΅Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π½Ρ‚Π° ΠΈ собствСнных Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹:

> Matlab[transpose](maplematrix_Π°);

> Matlab[inv](maplematrix_a);

> Matlab[det](maplematrix_a);

80.

> Matlab[eig](maplematrix_a);

МоТно ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ, являСтся Π»ΠΈ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π° ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½ΠΎΠΉ:

> Matlab[square](maplematrix_a);

true

Π° Ρ‚Π°ΠΊΠΆΠ΅ Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹:

> Matlab[dimensions](maplematrix_a);

[3,3]

МоТно Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ, являСтся Π»ΠΈ данная ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π° ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π΅ΠΉ систСмы MATLAB:

> Matlab[defined]("maplematrix_a");

false

Π—Π΄Π΅ΡΡŒ Π½Π°Π΄ΠΎ ΠΈΠΌΠ΅Ρ‚ΡŒ Π² Π²ΠΈΠ΄Ρƒ, Ρ‡Ρ‚ΠΎ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ ΠΌΠ°Ρ‚Ρ€ΠΈΡ† Π² систСмах Maple ΠΈ MATLAB Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹. Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΠΌ LU-ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹:

> Matlab[lu](maplematrix_a,output='L');

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Π²ΠΈΠ΄Π½ΠΎ, Ρ‡Ρ‚ΠΎ Maple Π² Π΄Π°Π½Π½ΠΎΠΌ случаС Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅Ρ‚ Ρ‚ΠΈΠΏΠΎΠ²Ρ‹Π΅ ΠΌΠ°Ρ‚Ρ€ΠΈΡ‡Π½Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, Π½ΠΎ срСдствами систСмы MATLAB. Π—Π°Π³Ρ€ΡƒΠ·ΠΊΠ° послСднСй происходит автоматичСски ΠΏΡ€ΠΈ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ΅ ΠΏΠ°ΠΊΠ΅Ρ‚Π° MATLAB. Если систСма MATLAB Π½Π΅ установлСна Π½Π° вашСм ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅, Ρ‚ΠΎ доступ ΠΊ функциям ΠΏΠ°ΠΊΠ΅Ρ‚Π° Matlab Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ, a Maple ΠΏΡ€ΠΈ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ΅ использования Π΄Π°Π½Π½Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π΄Π°Π²Π°Ρ‚ΡŒ сообщСния ΠΎΠ± ΠΎΡˆΠΈΠ±ΠΊΠ°Ρ….

6.5. ЛинСйная оптимизация ΠΈ Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅

6.5.1. ΠŸΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΊΠ° Π·Π°Π΄Π°Ρ‡ΠΈ Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎΠ³ΠΎ программирования

Π’ ΠΎΠ±Ρ‰Π΅ΠΌ случаС Π·Π°Π΄Π°Ρ‡Π° Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎΠ³ΠΎ программирования ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ сформулирована ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ: Π½Π°ΠΉΡ‚ΠΈ максимум ΠΈΠ»ΠΈ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ Ρ†Π΅Π»Π΅Π²ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ

ΠΏΡ€ΠΈ ограничСниях

Для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π·Π°Π΄Π°Ρ‡ Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎΠ³ΠΎ программирования Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½ΠΎ большоС количСство Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ². ΠŸΡ€ΠΈ Π°Π½Π°Π»ΠΈΠ·Π΅ ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ с двумя ΠΈΠ»ΠΈ трСмя ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ графичСскиС построСния Π½Π° плоскости ΠΈΠ»ΠΈ Π² пространствС. Π‘Ρ€Π΅Π΄ΠΈ ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ распространСн симплСксный ΠΌΠ΅Ρ‚ΠΎΠ΄. БимплСкс β€” это ΠΌΠ½ΠΎΠ³ΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊ, ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°Π΅ΠΌΡ‹ΠΉ Π² пространствС Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ постСпСнно ΡΡƒΠΆΠ°ΡΡΡŒ ΠΎΠ½ ΠΌΠΎΠ³ ΠΎΡ…Π²Π°Ρ‚ΠΈΡ‚ΡŒ Ρ‚ΠΎΡ‡ΠΊΡƒ искомого Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ, ΠΎΡ‚Π²Π΅Ρ‡Π°ΡŽΡ‰ΡƒΡŽ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡŽ Π·Π°Π΄Π°Ρ‡ΠΈ с Π·Π°Π΄Π°Π½Π½ΠΎΠΉ ΠΏΠΎΠ³Ρ€Π΅ΡˆΠ½ΠΎΡΡ‚ΡŒΡŽ.

ΠŸΡ€ΠΈ этом ΠΌΠ΅Ρ‚ΠΎΠ΄Π΅ задаСтся Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΈΠ±Π»ΠΈΠΆΠ΅Π½ΠΈΠ΅, ΡƒΠ΄ΠΎΠ²Π»Π΅Ρ‚Π²ΠΎΡ€ΡΡŽΡ‰Π΅Π΅ всСм ограничСниям Π·Π°Π΄Π°Ρ‡ΠΈ, Π½ΠΎ Π½Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½ΠΎΠ΅. ΠžΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π° достигаСтся ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΠ΅ΠΌ исходного Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π° Π·Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ число шагов (ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΉ). НаправлСниС ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° ΠΎΡ‚ ΠΎΠ΄Π½ΠΎΠΉ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ ΠΊ Π΄Ρ€ΡƒΠ³ΠΎΠΉ выбираСтся Π½Π° основС критСрия ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Ρ†Π΅Π»Π΅Π²ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π·Π°Π΄Π°Ρ‡ΠΈ.

Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ симплСкс-ΠΌΠ΅Ρ‚ΠΎΠ΄ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ β€” Π³Ρ€ΠΎΠΌΠΎΠ·Π΄ΠΊΠΎ ΠΈ слоТно. БистСмы ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½ΠΎΠΉ ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠΈ ΠΈΠΌΠ΅ΡŽΡ‚ срСдства Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π·Π°Π΄Π°Ρ‡ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ, Π² Ρ‚ΠΎΠΌ числС ΠΈ симплСкс-ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ. Рассмотрим ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ нСсколько Ρ‚ΠΈΠΏΠΈΡ‡Π½Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡ Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎΠ³ΠΎ программирования с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ‚Π°ΠΊΠΈΡ… срСдств систСмы Maple 9.5.

6.5.2. ΠžΠ±Π·ΠΎΡ€ срСдств ΠΏΠ°ΠΊΠ΅Ρ‚Π° simplex

Π’ ΠΏΠ°ΠΊΠ΅Ρ‚Π΅ simplex систСмы Maple имССтся нСбольшой, Π½ΠΎ достаточно ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠΉ для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π·Π°Π΄Π°Ρ‡ Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎΠΉ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈ программирования:

> with(simplex);

Warning, the protected names maximize and minimize have been redefined

and unprotected

[basis, convexhull, cterm, define_zero, display, duial, feasible, maximize, minimize, pivot, pivoteqn, pivotvar, ratio, setup, standardize]

ΠŸΡ€ΠΈΠ²Π΅Π΄Π΅ΠΌ ΠΊΡ€Π°Ρ‚ΠΊΠΎΠ΅ Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ этих Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ:

β€’ basis Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ списка основных ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… для мноТСства Π»ΠΈΠ½Π΅ΠΉΠ½Ρ‹Ρ… ΡƒΡ€Π°Π²Π½Π΅Π½ΠΈΠΉ;

β€’ convexhull β€” вычислСниС Π²Ρ‹ΠΏΡƒΠΊΠ»ΠΎΠΉ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ для Π½Π°Π±ΠΎΡ€Π° Ρ‚ΠΎΡ‡Π΅ΠΊ;

β€’ cterm β€” Π·Π°Π΄Π°Π½ΠΈΠ΅ констант для систСмы ΡƒΡ€Π°Π²Π½Π΅Π½ΠΈΠΉ ΠΈΠ»ΠΈ нСравСнств;

β€’ define_zero β€” ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ наимСньшСго значСния, ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅ΠΌΠΎΠ³ΠΎ Π·Π° ноль (ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ увязано со Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ систСмной ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Digits);

β€’ display β€” Π²Ρ‹Π²ΠΎΠ΄ систСмы ΡƒΡ€Π°Π²Π½Π΅Π½ΠΈΠΉ ΠΈΠ»ΠΈ нСравСнств Π² ΠΌΠ°Ρ‚Ρ€ΠΈΡ‡Π½ΠΎΠΉ Ρ„ΠΎΡ€ΠΌΠ΅;

β€’ dual β€” Π²Ρ‹Π΄Π°Ρ‡Π° сопряТСнных Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ;

β€’ equality β€” ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ для Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ convert, ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰Π°Ρ Π½Π° ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½Ρ‚Π½ΠΎΡΡ‚ΡŒ;

β€’ feasible β€” выяснСниС возмоТности Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π·Π°Π΄Π°Π½Π½ΠΎΠΉ Π·Π°Π΄Π°Ρ‡ΠΈ:

β€’ maximize β€” вычислСниС максимума Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ;

β€’ minimize β€” вычислСниС ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌΠ° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ;

β€’ pivot β€” созданиС Π½ΠΎΠ²ΠΎΠΉ систСмы ΡƒΡ€Π°Π²Π½Π΅Π½ΠΈΠΉ с Π·Π°Π΄Π°Π½Π½Ρ‹ΠΌ Π³Π»Π°Π²Π½Ρ‹ΠΌ элСмСнтом;

β€’ pivoteqn β€” Π²Ρ‹Π΄Π°Ρ‡Π° подсистСмы ΡƒΡ€Π°Π²Π½Π΅Π½ΠΈΠΉ для Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ Π³Π»Π°Π²Π½ΠΎΠ³ΠΎ элСмСнта;

β€’ pivotvar β€” Π²Ρ‹Π΄Π°Ρ‡Π° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… с ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ коэффициСнтами Π² Ρ†Π΅Π»Π΅Π²ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ;

β€’ ratio β€” Π²Ρ‹Π΄Π°Ρ‡Π° ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠΉ для опрСдСлСния Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ТСсткого ограничСния;

β€’ setup β€” Π·Π°Π΄Π°Π½ΠΈΠ΅ систСмы Π»ΠΈΠ½Π΅ΠΉΠ½Ρ‹Ρ… ΡƒΡ€Π°Π²Π½Π΅Π½ΠΈΠΉ;

β€’ standardize β€” ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π·Π°Π΄Π°Π½Π½ΠΎΠΉ систСмы ΡƒΡ€Π°Π²Π½Π΅Π½ΠΈΠΉ ΠΈΠ»ΠΈ нСравСнств ΠΊ стандартной Ρ„ΠΎΡ€ΠΌΠ΅ нСравСнств Ρ‚ΠΈΠΏΠ° «мСньшС ΠΈΠ»ΠΈ Ρ€Π°Π²Π½ΠΎΒ».

6.5.3. ΠŸΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ maximize ΠΈ minimize

Π“Π»Π°Π²Π½Ρ‹ΠΌΠΈ ΠΈΠ· этих Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΡΠ²Π»ΡΡŽΡ‚ΡΡ maximize ΠΈ minimize, ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠ΅ Π·Π°Π΄Π°Ρ‡Ρƒ симплСкс-ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ. Они Π·Π°ΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ΡΡ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… Ρ„ΠΎΡ€ΠΌΠ°Ρ…:

maximize(f, Π‘)

minimize(f, Π‘)

minimize(f , Π‘, vartype)

maximize(f , C, vartype)

maximize(f , C, vartype, 'NewC', 'transform')

minimize(f , C, vartype, 'NewC', 'transform')

Π—Π΄Π΅ΡΡŒ f β€” Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎΠ΅ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, Π‘ β€” мноТСство ΠΈΠ»ΠΈ список условий, vartype β€” Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π·Π°Π΄Π°Π²Π°Π΅ΠΌΡ‹ΠΉ Ρ‚ΠΈΠΏ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… NONNEGATIVE ΠΈΠ»ΠΈ UNRESTRICTED, NewC ΠΈ transform β€” ΠΈΠΌΠ΅Π½Π° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΏΡ€ΠΈΡΠ²Π°ΠΈΠ²Π°ΡŽΡ‚ΡΡ соотвСтствСнно ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½ΠΎΠ΅ описаниС ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ прСобразования. НиТС Π΄Π°Π½Ρ‹ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ примСнСния этих Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ (Ρ„Π°ΠΉΠ» simplex):

> restart:with(simplex):

Warning, the protected names maximize and minimize have been redefined and unprotected

> minimize(x+y, {4*x+3*y <= 5, 3*x+4*y <= 4}, NONNEGATIVE);

{y=0, x=0}

> minimize(x-y, {4*x+2*y <= 10, 3*x+4*y <= 16}, NONNEGATIVE, 'NC', 'vt');

{y=4, x=0}

> NC;vt;

> maximize(x+y, {4*x+2*y <= 10, 3*x+4*y <= 16}, NONNEGATIVE);

> maximize(x+y, {3*x+2*y <= 5, 2*x+4*y <=4});

> z := 2*x1 - x2 + 3*x3;

z := 2x1 - x2 + 3x3

> cnts1 := [x2+2*x3 <= 1, 2*x1-4*x2+6*x3 <= 3, -x1+3*x2+4*x3 <= 12];