Optimering
En del har
undrat om följande varning från fmincon:
Warning: Large-scale (trust region) method
does not currently solve
this type of problem, using medium-scale (line search) instead.
Den
är inget att bry sig om. fmincon
innehåller flera metoder och
varnar för en av dessa inte kan användas för detta
problem.
I denna lab kommer Du att använda en av Matlabs optimeringsrutiner för att räkna ut formen på en inhägnad, en hundgård säg. Själva beräkningsuppgiften är inte så realistisk, men de moment du kommer att utföra i labben är dock mycket realistiska. Optimering används ofta i tillämpningar. En fördel med uppgiften är också att den är lätt att förstå och eftersom man kan rita upp formen på stängslet kan man också avgöra om man har hittat en vettig lösning.
![]() |
Använd rutinen fmincon
för att bestämma stolparnas positioner. Se till att hela
stängslet
används (bivillkor!). Skriv ut den optimala arean och plotta
stolparnas positioner och stängsel som i plotten ovan. Det
räcker att du
ritar husväggen som en streckad linje. Låt husväggens
ändpunkter ha koordinaterna (0, -5) respektive (0, 5). Bifoga
Matlabkod. Ledning: optimeringsproblemet är inte alldeles enkelt, så för att rutinen skall hitta ett lokalt minimum får inte startapproximationen vara alltför dålig. Använd en kolonnvektor för variablerna (i alla uppgifterna). Använd inte en matris. |
![]() |
Vi har samma situation som ovan,
men stängslet utsträckning hindras av två
vägar som ligger väster om huset. Ekvationerna för de
delar av vägarna som ligger längst österut (högra
vägrenarna) är x + y + 20 = 0 respektive y - x - 40 = 0.
Stängslet måste ligga till höger (eller
på) dessa linjer. Skriv ut arean och plotta som ovan. Rita
även ut vägarna (bivillkoren). Bifoga Matlabkod. Ledning: man skulle kunna slå ihop de två vägarna till en väg (den sammansatta vägen ser ungefär ut som bokstaven V roterad 90 grader medurs), men motsvarande bivillkor blir dels ickelinjärt och dessutom introducerar man ett hörn (ingen derivata). Detta kan orsaka problem för en optimeringsrutin, så behandla vägarna som separata bivillkor. |
![]() |
En nackdel med lösningen
ovan är att avståndet mellan stolparna varierar. Det
gör att vissa stolpar utnyttjas dåligt (står för
tätt) och andra står för glest (stängselnätet
hänger ner). Så, utgå från föregående
uppgift, men lägg på bivillkor så att avståndet
mellan konsekutiva stolpar är lika, kalla detta avstånd L.
Avståndet från övre vänstra husknuten till
första stolpen skall också vara L liksom avståndet
mellan sista stolpen och den nedre vänstra husknuten. Skriv ut
arean och plotta som ovan. Bifoga Matlabkod. Ledning: man kan räkna ut L i förväg (L behöver inte räknas ut under optimeringens gång, med andra ord). Måste du ha kvar bivillkoret som ser till att hela stängslet används? |