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

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

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

> 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];

cnts1 := [x2+2x3 ≀ 1, 2x1-4x2+6x3 ≀ 3, -x1+3x2+4x3 ≀ 12]

> sol1 := maximize(z,cnts1,NONNEGATIVE);

ΠŸΡ€ΠΈ использовании Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ minimize ΠΈ maximize Π½Π°Π΄ΠΎ Π½Π΅ Π·Π°Π±Ρ‹Π²Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ это ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ β€” Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹Π΅ ΠΏΠΎ названию Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π΅ΡΡ‚ΡŒ Π² ядрС ΠΈ ΠΎΠ½ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‚ ΠΈΠ½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ вычислСний. Для Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π° ΠΊ исходному ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π½Π°Π΄ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ restart.

6.5.4. ΠŸΡ€ΠΎΡ‡ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚Π° simplex

Ѐункция basis(C) Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ базис для систСмы Π»ΠΈΠ½Π΅ΠΉΠ½Ρ‹Ρ… ΡƒΡ€Π°Π²Π½Π΅Π½ΠΈΠΉ Π‘. НапримСр:

> basis([Ρ… = 2*z+w, z = 2*y-w]);

[x, z]

Ѐункция convexhull(ps) Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π²Ρ‹ΠΏΡƒΠΊΠ»ΡƒΡŽ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΡƒ мноТСства Ρ‚ΠΎΡ‡Π΅ΠΊ ps. НапримСр:

> convexhull({[0,0], [1,1], [2,-1], [1,1/3],[1,1/2]));

[[0, 0], [2, -1], [1, 1]]

Для опрСдСлСния констант для систСмы Π»ΠΈΠ½Π΅ΠΉΠ½Ρ‹Ρ… ΡƒΡ€Π°Π²Π½Π΅Π½ΠΈΠΉ ΠΈΠ»ΠΈ нСравСнств слуТит функция cterm(C):

> cterm([2*Ρ…+y<=6,7*y-z-3=4]);

[6, 7]

Ѐункция define zero(C) Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ блиТайшСС Π½Π΅Π½ΡƒΠ»Π΅Π²ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, зависящСС ΠΎΡ‚ установки ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Digits:

> define_zero();

.1000000000 10-7

> Digits:=40;

Digits := 40

> define_zero();

.1000000000000000000000000000000000000000 10-37

> define_zero(1*10^(-10));

.1000000000000000000000000000000000000000 10-9

Ѐункция display(C) ΠΈΠΌΠ΅Π΅Ρ‚ Π΅Ρ‰Π΅ ΠΈ Ρ„ΠΎΡ€ΠΌΡƒ display(C,[x, Ρƒ, z]). Она Π·Π°Π΄Π°Π΅Ρ‚ Π²Ρ‹Π²ΠΎΠ΄ Π»ΠΈΠ½Π΅ΠΉΠ½Ρ‹Ρ… ΡƒΡ€Π°Π²Π½Π΅Π½ΠΈΠΉ ΠΈ нСравСнств Π² ΠΌΠ°Ρ‚Ρ€ΠΈΡ‡Π½ΠΎΠΉ Ρ„ΠΎΡ€ΠΌΠ΅:

> display({2*x+5*y-z<= 0, 2*w-4*y-z<=2});

Ѐункция dual(f, Π‘, Ρƒ) ΠΈΠΌΠ΅Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹: f β€” Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎΠ΅ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, Π‘ β€” мноТСство нСравСнств ΠΈ Ρƒ β€” имя. Π­Ρ‚Π° функция Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ сопряТСнноС с f Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅:

> dual(Ρ…-y,{2*Ρ…+3*y<=5,3*Ρ…+6*y<=15}, z);

15z1+5z2, {1 ≀ 3z1+2z2, -1 ≀ 6z1+3z2}

Ѐункция feasible ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π·Π°Π΄Π°Π½Π° Π² Ρ‚Ρ€Π΅Ρ… Ρ„ΠΎΡ€ΠΌΠ°Ρ…:

feasible(Π‘)

feasible(Π‘,vartype)

feasible(Π‘,vartype,'NewC','Transform')

Π—Π΄Π΅ΡΡŒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ vartype ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ значСния NONNEGATIVE ΠΈΠ»ΠΈ UNRESTRICTED. Π­Ρ‚Π° функция опрСдСляСт систСму ΠΊΠ°ΠΊ ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²ΠΈΠΌΡƒΡŽ ΠΈΠ»ΠΈ Π½Π΅Ρ‚:

> feasible({2*Ρ…+3*y<=5, 3*Ρ…+6*y<=15), NONNEGATIVE);

true

> feasible({2*Ρ…+3*y<=5, 3*Ρ…+6*y<=-15}, NONNEGATIVE);

false

Если функция Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ логичСскоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ true, Ρ‚ΠΎ заданная систСма осущСствима, Π° Ссли false β€” нСосущСствима, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Π½ΠΈ ΠΏΡ€ΠΈ ΠΊΠ°ΠΊΠΈΡ… значСниях ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Π½Π΅ способна ΡƒΠ΄ΠΎΠ²Π»Π΅Ρ‚Π²ΠΎΡ€ΠΈΡ‚ΡŒ записанным нСравСнствам ΠΈ равСнствам.

Ѐункция pivot(C, Ρ…, eqn) конструируСт Π½ΠΎΠ²ΡƒΡŽ систСму с Π·Π°Π΄Π°Π½Π½Ρ‹ΠΌ Π³Π»Π°Π²Π½Ρ‹ΠΌ элСмСнтом:

> pivot({_SL1=5-4*x-3*y,_SL2=4-3*x-4*y),Ρ…,[_SL1=5-4*x-3*y]);

Ѐункция pivoteqn(C, var) Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ подсистСму для Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ диагонального элСмСнта Π‘:

> pivoteqn((_SL1 = 5-3*Ρ…-2*y, _SL2 = 4-2*Ρ…-2*y}, Ρ…);

[_SL1 = 5 - 3Ρ… - 2y]

Ѐункция pivotvar(f, List) ΠΈΠ»ΠΈ pivotvar(f) Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ список ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΡ… ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ коэффициСнты Π² Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ для Ρ†Π΅Π»Π΅Π²ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ:

> pivotvar(x1-2*x2+3*x3-x4);

x1

> pivotvar(x1+2*Ρ…3-3*Ρ…4, [x4,x3,x1]);

x3

Ѐункция ratio(C, Ρ…) Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ список ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠΉ, Π·Π°Π΄Π°ΡŽΡ‰ΠΈΡ… Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ТСсткиС ограничСния:

> ratio([SL1=10-3*x-2*y, SL2=8-2*x-4*y], x);

Ѐункция setup ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Ρ‚Ρ€ΠΈ Ρ„ΠΎΡ€ΠΌΡ‹:

setup(Π‘)

setup(Π‘, NONNEGATIVE)

setup(Π‘, NONNEGATIVE, 't')

Она обСспСчиваСт конструированиС мноТСства ΡƒΡ€Π°Π²Π½Π΅Π½ΠΈΠΉ с ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ Π² Π»Π΅Π²ΠΎΠΉ части:

> setup({2*Ρ…+3*y<=5,3*Ρ…+5*y=15));

ПослСдняя функция β€” standartize(C) β€” ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ список ΡƒΡ€Π°Π²Π½Π΅Π½ΠΈΠΉ (нСравСнств) Π² нСравСнства Ρ‚ΠΈΠΏΠ° «мСньшС ΠΈΠ»ΠΈ Ρ€Π°Π²Π½ΠΎΒ»:

> standardize({2*Ρ…+3*Ρƒ<=5,3*Ρ…+5*Ρƒ=15});

{2 Ρ… + 3 y ≀ 5, 3Ρ… + 5Ρƒ ≀ 15, -3Ρ… -5y ≀ -15}

6.6. Новый ΠΏΠ°ΠΊΠ΅Ρ‚ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ Optimization Π² Maple 9.5

Π’ систСму Maple 9.5 Π±Ρ‹Π» Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ Π½ΠΎΠ²Ρ‹ΠΉ ΠΏΠ°ΠΊΠ΅Ρ‚ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ Optimization, основанный Π½Π° Π½ΠΎΠ²Π΅ΠΉΡˆΠΈΡ… сущСствСнно ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½Π½Ρ‹Ρ… Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°Ρ… ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ. Π‘ Π΅Π³ΠΎ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π΅ΡˆΠ°Ρ‚ΡŒ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π·Π°Π΄Π°Ρ‡ΠΈ Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎΠ³ΠΎ, Π½ΠΎ ΠΈ ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚ΠΈΡ‡Π½ΠΎΠ³ΠΎ ΠΈ Π½Π΅Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΉ с ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½Π½ΠΎΠΉ ΡΡ‚Π΅ΠΏΠ΅Π½ΡŒΡŽ Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ.

6.6.1. Доступ ΠΊ ΠΏΠ°ΠΊΠ΅Ρ‚Ρƒ Optimization ΠΈ Π΅Π³ΠΎ Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅

ΠŸΠ°ΠΊΠ΅Ρ‚ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ Optimization вызываСтся ΠΊΠ°ΠΊ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ:

> with(Optimization);

[ImportМPS, Interactive, LPSolve, LSSolve, Maximize, Minimize, NLPSolve, QPSolve]

Warning, the name changecoords has been redefined

Для получСния справки ΠΏΠΎ ΠΏΠ°ΠΊΠ΅Ρ‚Ρƒ Π½Π°Π΄ΠΎ ΠΈΡΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

> help(Optimization);

ΠŸΠ°ΠΊΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΏΡ€ΠΈ вычислСниях Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹ Π³Ρ€ΡƒΠΏΠΏΡ‹ NAG, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚ΡΡ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ эффСктивными ΠΏΡ€ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ числСнных ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² вычислСний, Π² частности Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‰ΠΈΡ… Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ. ΠŸΠ°ΠΊΠ΅Ρ‚ Π²Π²ΠΎΠ΄ΠΈΡ‚ 8 Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ. Π”Π²Π΅ ΠΈΠ· Π½ΠΈΡ… это ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ вычислСния максимума Maximize ΠΈ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌΠ° Minimize. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΏΠ°ΠΊΠ΅Ρ‚ ΠΈΠΌΠ΅Π΅Ρ‚ 4 Ρ€Π΅ΡˆΠ°Ρ‚Π΅Π»Ρ ΡƒΡ€Π°Π²Π½Π΅Π½ΠΈΠΉ с Π·Π°Π΄Π°Π½Π½Ρ‹ΠΌΠΈ ограничСниями, Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‰ΠΈΡ… ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹:

β€’ LPSolve β€” Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅;

β€’ LSSolve β€” ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½Π½Π°Ρ рСализация ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π½Π°ΠΈΠΌΠ΅Π½ΡŒΡˆΠΈΡ… ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚ΠΎΠ²;

β€’ QPSolve β€” ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚ΠΈΡ‡Π½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅;

β€’ NLPSolve β€” Π½Π΅Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅.

Ѐункция ImportMPC обСспСчиваСт Π²Π²ΠΎΠ΄ Π΄Π°Π½Π½Ρ‹Ρ… для ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈΠ· Ρ„Π°ΠΉΠ»Π°, Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Interactive позволяСт Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΌ Maplet-ΠΎΠΊΠ½ΠΎΠΌ для ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ.

Π‘ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠΌ Optimization ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ΡŒΡΡ ΠΏΠΎ Π΅Π³ΠΎ справкС. Π’ Π΅Π΅ Ρ€Π°Π·Π΄Π΅Π»Π΅ Examples Π΅ΡΡ‚ΡŒ довольно ΠΎΠ±ΡˆΠΈΡ€Π½Ρ‹ΠΉ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ с ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°ΠΌΠΈ примСнСния ΠΏΠ°ΠΊΠ΅Ρ‚Π° β€” Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ ΠΊ Ρ‚Π΅ΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄Π°ΡŽΡ‚ΡΡ ΠΊ функциям ΠΏΠ°ΠΊΠ΅Ρ‚Π° Π² справкС. Начало этого Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° прСдставлСно Π½Π° рис. 6.3. Π’ Π½Π΅ΠΌ прСдставлСны основныС Π·Π°Π΄Π°Ρ‡ΠΈ, Ρ€Π΅ΡˆΠ°Π΅ΠΌΡ‹Π΅ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠΌ Optimization β€” Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎΠ΅, ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚ΠΈΡ‡Π½ΠΎΠ΅ ΠΈ Π½Π΅Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΡ€ΠΈΠ±Π»ΠΈΠΆΠ΅Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… зависимостСй ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ Π½Π°ΠΈΠΌΠ΅Π½ΡŒΡˆΠΈΡ… ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚ΠΎΠ² (нСлинСйная рСгрСссия).

Рис. 6.3. Начало Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° с ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°ΠΌΠΈ примСнСния ΠΏΠ°ΠΊΠ΅Ρ‚Π° Optimization

6.6.2. Π Π°Π±ΠΎΡ‚Π° с функциями Minimize ΠΈ Maximize

Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ Minimize ΠΈ Maximize слуТат для поиска ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌΠΎΠ² ΠΈ максимумов матСматичСских Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ с ΡƒΡ‡Π΅Ρ‚ΠΎΠΌ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ самыми соврСмСнными числСнными ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌΠΈ. Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π·Π°ΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ΡΡ Π² Π²ΠΈΠ΄Π΅:

Minimize(obj [, constr, bd, opts])

Minimize(opfobj [, ineqcon, eqcon, opfbd, opts])

Maximize(obj [, constr, bd, opts])

Maximize(opfobj [, ineqcon, eqcon, opfbd, opts])

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅:

β€’ obj β€” алгСбраичСский ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, цСлСвая функция;

β€’ constr β€” список с ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°ΡŽΡ‰ΠΈΠΌΠΈ условиями;

β€’ bd β€” ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π²ΠΈΠ΄Π° name=range, Π·Π°Π΄Π°ΡŽΡ‰Π°Ρ Π³Ρ€Π°Π½ΠΈΡ†Ρ‹ для ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…;

β€’ opts β€” равСнство ΠΈΠ»ΠΈ равСнства Π²ΠΈΠ΄Π° option=value, Π³Π΄Π΅ option ΠΎΠ΄Π½Π° ΠΈΠ· ΠΎΠΏΡ†ΠΈΠΈ feasibilitytolerance, infinitebound, initialpoint, iterationlimit ΠΈΠ»ΠΈ optimalitytolerance, спСцифицированных Π² ΠΊΠΎΠΌΠ°Π½Π΄Π΅ Minimize ΠΈΠ»ΠΈ Maximize.

β€’ opfobj β€” ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π°, цСлСвая функция;

β€’ ineqcon β€” мноТСство ΠΈΠ»ΠΈ список ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€ с ограничСниями Ρ‚ΠΈΠΏΠ° нСравСнств;

β€’ eqcon β€” мноТСство ΠΈΠ»ΠΈ список ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€ с ограничСниями Ρ‚ΠΈΠΏΠ° равСнств;

β€’ opfbd β€” ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΏΡ€Π΅Π΄Π΅Π»ΠΎΠ²; Π³Ρ€Π°Π½ΠΈΡ†Ρ‹ для всСх ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…; ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ примСнСния этих Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ прСдставлСны Π½ΠΈΠΆΠ΅:

> Maximize(sin(Ρ…)/Ρ…);

[1., [Ρ…=2.93847411867272567 10-11]]

> Minimize(Ρ…^2+Ρƒ^2);

[0., [Ρ…=0., Ρƒ=0.]]

> Minimize(sin(Ρ…)/Ρ…, initialpoint={x=5});

[-0.217233628211221636 , [Ρ…=4.49340945792364720 ]]

> Maximize(sin(x*y*z));

[1., [x=1.16244735150962364, z=1.16244735150962364, y=1.16244735150962364]]

> Minimize(2*Ρ…+3*y, {3*Ρ…-y<=9, Ρ…+y>=2}, assume=nonnegative);

[4., [Ρ…=2., y=0.]]

Из этих ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² Π²ΠΈΠ΄Π½ΠΎ, Ρ‡Ρ‚ΠΎ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ вычислСний ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ΡΡ Π² Π²ΠΈΠ΄Π΅ чисСл с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ с Ρ‚Π°ΠΊ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΠΎΠΉ Π΄Π²ΠΎΠΉΠ½ΠΎΠΉ Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒΡŽ (ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Π΅Π΅ Π±Ρ‹Π»ΠΎ Π±Ρ‹ ΡΠΊΠ°Π·Π°Ρ‚ΡŒ с Π΄Π²ΠΎΠΉΠ½ΠΎΠΉ Π΄Π»ΠΈΠ½ΠΎΠΉ ΠΈΠ»ΠΈ Ρ€Π°Π·Ρ€ΡΠ΄Π½ΠΎΡΡ‚ΡŒΡŽ). ΠŸΡ€ΠΈ вычислСниях ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹ Π³Ρ€ΡƒΠΏΠΏΡ‹ NAG ΠΈ Ρ€Π΅ΡˆΠ°Ρ‚Π΅Π»ΠΈ, описанныС Π½ΠΈΠΆΠ΅.

6.6.3. Π›ΠΈΠ½Π΅ΠΉΠ½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ β€” LPSolve

Для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π·Π°Π΄Π°Ρ‡ Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎΠ³ΠΎ программирования Π² ΠΏΠ°ΠΊΠ΅Ρ‚Π΅ Optimization Π²Π²Π΅Π΄Π΅Π½Π° функция:

LPSolve(obj [, constr, bd, opts])

Она ΠΈΠΌΠ΅Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹:

β€’ obj β€” алгСбраичСскоС Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ, цСлСвая функция;

β€’ constr β€” мноТСство ΠΈΠ»ΠΈ список Π»ΠΈΠ½Π΅ΠΉΠ½Ρ‹Ρ… ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ;

β€’ bd β€” ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π²ΠΈΠ΄Π° name=range, Π·Π°Π΄Π°ΡŽΡ‰Π°Ρ Π³Ρ€Π°Π½ΠΈΡ†Ρ‹ ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ»ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΡ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…;

β€’ opts β€” равСнство ΠΈΠ»ΠΈ равСнства Π² Ρ„ΠΎΡ€ΠΌΠ΅ option=value, Π³Π΄Π΅ option ΠΎΠ΄Π½Π° ΠΈΠ· ΠΎΠΏΡ†ΠΈΠΉ assume, feasibilitytolerance, infinitebound, initialpoint, iterationlimit ΠΈΠ»ΠΈ maximize, спСциализированных для ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ LPSolve.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Π½Π° Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Π·Π°Π΄Π°Ρ‡ΠΈ Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎΠ³ΠΎ программирования Π΄Π°Π½ Π½Π° рис. 6.4. Π—Π΄Π΅ΡΡŒ оптимизируСтся цСлСвая функция -3x-2Ρƒ, которая Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎ зависит ΠΎΡ‚ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Ρ… ΠΈ Ρƒ. Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ интСрСсна Ρ‚Π΅Ρ…Π½ΠΈΠΊΠ° графичСской Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ.

Рис. 6.4. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π·Π°Π΄Π°Ρ‡ΠΈ Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎΠ³ΠΎ программирования


Π­Ρ‚Π° функция ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°Π΄Π°Π²Π°Ρ‚ΡŒΡΡ Ρ‚Π°ΠΊΠΆΠ΅ Π² ΠΌΠ°Ρ‚Ρ€ΠΈΡ‡Π½ΠΎΠΉ Ρ„ΠΎΡ€ΠΌΠ΅:

LPSolve(c [, lc, bd, opts])

Π—Π΄Π΅ΡΡŒ с Π²Π΅ΠΊΡ‚ΠΎΡ€, Π·Π°Π΄Π°ΡŽΡ‰ΠΈΠΉ Ρ†Π΅Π»Π΅Π²ΡƒΡŽ функция, ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ Π±Ρ‹Π»ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Ρ‹ Π²Ρ‹ΡˆΠ΅. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ примСнСния Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ LPSolve Π² ΠΌΠ°Ρ‚Ρ€ΠΈΡ‡Π½ΠΎΠΌ Π²ΠΈΠ΄Π΅ прСдставлСн Π½ΠΈΠΆΠ΅: