Handboek · hoofdstuk 2Optimaliseren
Het beste ontwerp vinden: waar de afgeleide nul is, op de rand, of numeriek
Ingenieurs zoeken zelden 'een' oplossing; ze zoeken de beste: de tank met het minste materiaal, de spanning met het grootste vermogen, de route met de laagste kosten. Waar een gladde functie een maximum of minimum heeft, is haar afgeleide nul. Je leert optimalisatieproblemen opstellen en exact oplossen, herkent wanneer het optimum op een grens ligt, zoekt numeriek als de formule niet oplosbaar is, en weegt doelen af die elkaar tegenwerken. Het Habitat-werk: de drinkwatertank van het station.

- Je kan stationaire punten van een functie bepalen en met een tekenschema of de tweede afgeleide beslissen of het een maximum, minimum of buigpunt is.
- Je kan het globale extremum op een gesloten interval vinden door stationaire punten, randen en knikken te vergelijken.
- Je kan een optimalisatieprobleem opstellen: variabelen met eenheden, een doelfunctie, randvoorwaarden en het domein.
- Je kan klassieke problemen oplossen en interpreteren: het blik met het minste materiaal, maximale vermogensoverdracht, de kortste of goedkoopste weg.
- Je kan uitleggen waarom een optimum vlak is en wat dat betekent voor ontwerpvrijheid en toleranties.
- Je kan numeriek optimaliseren met een rooster, bisectie op de afgeleide, de gulden snede en perturb and observe, en de methoden vergelijken.
- Je kan meerdere doelen afwegen met een gewogen som of een Pareto-front en een ontwerpkeuze onderbouwen.
- Je kan het idee van partiële afgeleiden en gradiëntafdaling toepassen op een probleem met twee variabelen.
Fermat en de luie lichtstraal
Al in de eerste eeuw liet Heron van Alexandrië zien dat een lichtstraal die op een spiegel weerkaatst, de kortste weg neemt tussen bron en oog. Vijftienhonderd jaar later ging de Franse jurist en amateurwiskundige Pierre de Fermat een stap verder. Rond 1636 beschreef hij in een tekst die via de Parijse monnik Marin Mersenne van hand tot hand ging, een methode om maxima en minima te vinden: vervang door , stel de twee uitdrukkingen 'bijna gelijk', deel door en laat daarna weg. Dat is, zonder het woord, de afgeleide gelijkstellen aan nul, dertig jaar voor Newton en Leibniz.
In 1662 gebruikte Fermat zijn methode voor licht dat van lucht naar water gaat. Hij nam aan dat licht niet de kortste weg neemt maar de snelste, en dat het in water trager gaat. De weg van de kortste tijd breekt dan af aan het oppervlak, en de knik volgt precies de brekingswet die Snellius en Descartes eerder uit metingen hadden gehaald. Voor het eerst werd een natuurwet geschreven als een optimum.
Dat idee kwam steeds terug: een zeepvlies neemt de kleinste oppervlakte aan, een ketting hangt met het laagste zwaartepunt, bijen bouwen zeshoekige cellen (dat zeshoeken de wand met de minste omtrek geven, werd pas in 1999 bewezen door Thomas Hales). Ingenieurs doen het bewust: minder materiaal, meer vermogen, lagere kosten. Maar de natuur heeft één doel per keer, een ontwerper vaak drie die elkaar tegenwerken.
Het brein van het station neemt voortdurend beslissingen: welke spanning haalt het meeste uit de panelen, wanneer laden, hoeveel lampen aan? Achter elk van die beslissingen zit een optimalisatie. En elk onderdeel dat je ontwerpt, van tank tot mast, is een afweging die je met cijfers wil kunnen verdedigen. Gradiëntafdaling, het werkpaard van de AI in hoofdstuk 43, begint hier.

Extrema en de horizontale raaklijn
| wat je al kan | wat nu komt |
|---|---|
| de top van een parabool, betekenisvol interpreteren (hoofdstuk 4 van Intermediate) | het maximum of minimum van elke afleidbare functie |
| een criteriatabel met gewichten (hoofdstuk 30 van Fundamental, 38 van Intermediate) | de gewogen som en het Pareto-front |
| het MPP van een zonnepaneel aflezen (hoofdstuk 20 van Intermediate) | het MPP berekenen, en een regelaar die het zoekt |
| afgeleiden, raaklijnen, numeriek differentiëren (hoofdstuk 1) | de afgeleide nul stellen, en numeriek zoeken als dat niet exact kan |
Een functie heeft in een lokaal maximum als voor alle in de buurt van ; een globaal maximum als dat geldt voor het hele domein. Minimum analoog. Het kernargument is kort: is afleidbaar in een lokaal maximum binnen het domein, dan is het differentiequotiënt niet positief voor en niet negatief voor . Beide limieten zijn , dus:
Waar zoek je dus? Op drie soorten plaatsen:
- Stationaire punten: .
- Randen van een gesloten domein: daar hoeft de afgeleide niet nul te zijn.
- Punten waar niet afleidbaar is: een knik, zoals in 0.
De figuur toont het allemaal voor op . In is de raaklijn horizontaal, maar de functie stijgt links én rechts: een buigpunt met horizontale raaklijn, geen extremum. Het globale maximum en minimum liggen op de randen, waar .
Maximum, minimum of geen van beide?
Tekenschema. De afgeleide vertelt waar stijgt () en daalt (). Gaat in een stationair punt van naar , dan is het een maximum; van naar een minimum; wisselt het teken niet, dan geen extremum. Voor is :
| min (rand) | geen extremum | lok. max | lok. min | max (rand) |
In is ook : de test faalt, het tekenschema beslist (geen extremum). In is : maximum. In is : minimum. In de figuur zie je dezelfde informatie op één tijdas: waar door nul gaat, heeft een horizontale raaklijn; waar door nul gaat (ook in en ), wisselt de bolling.
heeft in 0 een horizontale raaklijn en is er toch nergens extreem. Een stationair punt is een kandidaat, geen besluit. In de techniek komt het voor waar twee effecten elkaar net opheffen, bv. een motorkoppel dat even vlak blijft.
Het grootste proefveld
Tegen de zuidgevel van de klimaatmodule komt een rechthoekig proefveld voor buitenteelt. De gevel vormt één zijde; voor de drie andere zijden is er 12 m gaas. Welke afmetingen geven de grootste oppervlakte?
- drie zijden samen 12 m; de gevel is de vierde zijde
- afmetingen en oppervlakte van het grootste veld
- 1Variabelen: = de zijde loodrecht op de gevel (m), = de zijde evenwijdig met de gevel (m).
- 2Doelfunctie: (m²). Randvoorwaarde: , dus en . Domein: .
- 3Kandidaten: ; randen en geven .
- 4Aard: : maximum. , .
Een optimalisatieprobleem opstellen
Het moeilijkste aan optimaliseren is zelden het afleiden; het is het probleem juist opschrijven. Vijf stappen helpen:
- Variabelen: welke grootheden mag je kiezen? Geef ze een symbool en een eenheid, en maak een schets.
- Doelfunctie: welke ene grootheid wordt minimaal of maximaal? Schrijf ze in functie van de variabelen: materiaal, kosten, vermogen, tijd.
- Randvoorwaarden: een gelijkheid (het volume moet 500 L zijn) gebruik je om een variabele te elimineren; een ongelijkheid (past door de deur, niet hoger dan het plafond, positief) bepaalt het domein.
- Kandidaten: stationaire punten, randen van het domein en knikken. Vergelijk hun waarden.
- Controle: is het een maximum of minimum? Kloppen de eenheden en de orde van grootte? Hoe gevoelig is het resultaat voor de aannames?
Wil je 'weinig materiaal én weinig vloeroppervlak', dan heb je geen doelfunctie maar twee. Kies er één en maak van de andere een voorwaarde ('hoogstens 0,5 m² vloer'), of weeg ze (verder in dit hoofdstuk). Wie twee doelen tegelijk wil maximaliseren, krijgt geen antwoord maar een discussie.
Het blik met het minste materiaal
Een cilindrisch blik moet 330 mL bevatten. Welke straal en hoogte vragen het minste materiaal, als bodem, deksel en wand even dik zijn? Vergelijk met een echt blikje (ongeveer 6,6 cm breed).
- gelijke dikte van bodem, deksel en wand
- , en de oppervlakte bij het minimum
- het meerverbruik van een blikje van 6,6 cm breed
- 1Doelfunctie: (bodem, deksel, wand). Voorwaarde: , dus voor .
- 2, .
- 3. Merk op: uit volgt . De hoogte is gelijk aan de diameter.
- 4Aard: : minimum. .
- 5Blikje van 6,6 cm breed () met dezelfde inhoud: en , dus maar 1,5 % meer.
Een vlak optimum
Het echte blikje wijkt 12 % af van de optimale straal en kost toch maar 1,5 % meer materiaal. Dat is geen toeval. Rond een glad minimum is , dus volgens Taylor (hoofdstuk 1)
De eerste-ordeterm valt weg: een afwijking kost kwadratisch weinig. Schrijf je de straal relatief, , dan is voor elke cilinder met gelijke dikte . Een afwijking van 10 % kost ongeveer 1 %, een van 20 % ongeveer 4 %. Wie minder dan 5 % extra materiaal wil, mag de straal kiezen tussen 0,79 en 1,24 keer de optimale.
Dat is goed nieuws voor de ontwerper: in de buurt van het optimum is er ruimte voor andere doelen (past het door de deur, staat het stabiel, bestaat die maat in de handel) zonder veel te verliezen. Het omgekeerde geldt ook: een optimum dat je nauwkeurig 'raakt', levert weinig op als het vlak is. Rekenen tot op de millimeter is dan zinloos.
Een optimum op de rand (een actieve randvoorwaarde) heeft een helling die niet nul is: daar kost elke afwijking evenredig veel. En sommige grootheden reageren sterk, zoals het vermogen van een zonnepaneel voorbij het MPP (de kromme valt steil naar ).
Maximale vermogensoverdracht
Een bron met bronspanning en inwendige weerstand voedt een belasting . Welke krijgt het grootste vermogen, hoe groot is dat, en wat is dan het rendement? Is dat een goed idee voor de batterij van de module?
- ,
- ,
- bij het maximum, , rendement
- 1Doelfunctie: voor . In hoofdstuk 1 (opdracht 1.2) vond je .
- 2. Tekenschema: voor , voor : maximum.
- 3.
- 4Rendement: : de helft van het vermogen wordt warmte in de bron zelf.
- 5Met (tien keer ): bij .
Habitat: de drinkwatertank met het minste materiaal
Het station krijgt een drinkwatertank van 500 L: genoeg voor een week volledig verbruik door twee bewoners (ongeveer 70 L per dag voor drinken, koken en wassen) als de waterzuivering uitvalt, of voor een maand drinken en koken. De tank is een gesloten cilinder in HDPE (hoofdstuk 17 van Intermediate). Welke vorm vraagt het minste materiaal (a) als bodem, deksel en wand even dik zijn, (b) als de bodem, die het water draagt, anderhalve keer zo dik is? Ter vergelijking: een open bak.
- (b) materiaal (in eenheden wanddikte × oppervlakte)
- en in beide gevallen, en de oppervlakte in (a)
- 1(a) Zoals het blik: , en ; .
- 2Algemeen, met kosten (bodem), (deksel) en (wand) per m²: , dus geeft en .
- 3(b) , : , , dus en .
- 4Open bak (): , dus en : 21 % minder materiaal, maar voor drinkwater onaanvaardbaar (stof, algen, hoofdstuk 5 van Intermediate).
Randvoorwaarden: als het optimum op de rand ligt
De tank moet door een deur met 0,80 m vrije doorgang: met een centimeter speling aan elke kant is . En in de technische ruimte (2,6 m hoog) moet boven de tank ruimte blijven voor de vulopening en de leidingen: , of . Het toegelaten domein is dus .
Het vrije optimum () ligt buiten dat domein. Binnen het domein daalt overal, dus het beste toegelaten ontwerp ligt op de rand: , . De deurvoorwaarde is actief: ze bepaalt het ontwerp, en daar is . De prijs is klein, precies omdat het optimum vlak is: in plaats van , 0,9 % meer materiaal.
Een algemene les: los eerst het vrije probleem op, en kijk dan welke voorwaarden geschonden zijn. Die worden actief; vul ze in als gelijkheid en optimaliseer verder over wat overblijft. Bij meer variabelen wordt dat systematisch met de methode van Lagrange (hoger onderwijs): in het optimum wijst de gradiënt van de doelfunctie loodrecht op de grens.
Een volle tank weegt ongeveer 530 kg. Op een voetafdruk van 0,48 m² is dat ongeveer 11 kN/m², terwijl een woningvloer ontworpen wordt op een verdeelde belasting in de orde van 2 kN/m². De tank hoort op een eigen sokkel die de last naar de fundering brengt (hoofdstuk 10 van Intermediate en hoofdstuk 12). Een optimum dat de vloer laat doorbuigen, is geen optimum.
Meerdere doelen: gewogen som en Pareto-front
In een woonmodule van 24 m² is vloeroppervlak kostbaar. Een smallere tank neemt minder vloer in maar vraagt meer materiaal; een bredere tank (boven 0,86 m) vraagt meer van beide. Zet elke diameter uit als punt (vloeroppervlak, materiaal). Een ontwerp is gedomineerd als een ander ontwerp op beide doelen minstens even goed is en op één beter. De niet-gedomineerde ontwerpen vormen het Pareto-front: daar kan je alleen iets winnen door elders iets te verliezen.
De wiskunde kiest niet op het front; de ontwerper wel, met een van drie technieken:
- Gewogen som: minimaliseer (dimensieloos maken is nodig, anders tel je m² bij kilogram op). De gewichten zijn een waardeoordeel: zeg ze hardop.
- Eén doel, de rest als voorwaarde (-methode): minimaliseer het materiaal met . Dat is wat ingenieurs het vaakst doen, omdat een grens makkelijker te verdedigen is dan een gewicht.
- Kiezen op het front: toon de opdrachtgever de hele kromme en laat de afweging zichtbaar.
Voor de tank (tabel bij het volgende blad): tussen 0,54 en 0,78 m ligt elk ontwerp op het front. 0,78 m spaart het meeste materiaal, 0,70 m spaart 0,09 m² vloer voor 3,0 % meer materiaal en een hogere waterdruk.
Habitat: de tank doorrekenen
Het programma zet de doelen en voorwaarden naast elkaar voor zes diameters en zoekt met een rooster (stap 1 mm) de toegelaten diameter met het minste materiaal. Bij één variabele is een rooster snel genoeg en zeer robuust: het vindt ook een optimum op de rand, en je ziet meteen hoe vlak het is.
# tank.py - de drinkwatertank van 500 L: materiaal, vloeroppervlak en vloerdruk per diameterimport math V = 0.50 # m3D_DEUR, H_MAX = 0.78, 2.2 # randvoorwaarden: door de deur, en niet te hoog (m) def gegevens(d): r = d / 2 h = V / (math.pi * r * r) A = 2 * math.pi * r * r + 2 * math.pi * r * h # bodem + deksel + wand (m2) F = math.pi * r * r # vloeroppervlak (m2) p = 1000 * 9.81 * h / 1000 # waterdruk op de bodem (kPa) return h, A, F, p A_min = gegevens(2 * (V / (2 * math.pi)) ** (1 / 3))[1]print(" d (m) h (m) A (m2) extra F (m2) p (kPa) toegelaten")for d in (0.54, 0.60, 0.70, 0.78, 0.86, 1.00): h, A, F, p = gegevens(d) ok = d <= D_DEUR and h <= H_MAX print(" %.2f %.3f %.3f %4.1f%% %.3f %4.1f %s" % (d, h, A, (A / A_min - 1) * 100, F, p, "ja" if ok else "nee")) # rooster: de toegelaten diameter met het minste materiaal (stap 1 mm)beste = min((d / 1000 for d in range(500, 1201) if d / 1000 <= D_DEUR and gegevens(d / 1000)[0] <= H_MAX), key=lambda d: gegevens(d)[1])print("beste toegelaten diameter: %.3f m (h = %.3f m)" % (beste, gegevens(beste)[0]))Uitvoer:
d (m) h (m) A (m2) extra F (m2) p (kPa) toegelaten 0.54 2.183 4.162 19.3% 0.229 21.4 ja 0.60 1.768 3.899 11.8% 0.283 17.3 ja 0.70 1.299 3.627 4.0% 0.385 12.7 ja 0.78 1.046 3.520 0.9% 0.478 10.3 ja 0.86 0.861 3.487 0.0% 0.581 8.4 nee 1.00 0.637 3.571 2.4% 0.785 6.2 nee beste toegelaten diameter: 0.780 m (h = 1.046 m)
De kolom 'extra' toont het vlakke optimum: 0,70 tot 1,00 m blijft binnen 4 %. De vloerdruk van het water alleen gaat van 6 kPa (breed) tot ruim 20 kPa (smal); het gewicht van de tank en de sokkel komt erbij. Met een rooster van 701 punten is het antwoord tot op de millimeter bekend; nauwkeuriger is zinloos voor een tank die in standaardmaten verkocht wordt.
Habitat: de keuze van de tank
Kies een diameter voor de drinkwatertank en verdedig de keuze met de doelen (materiaal, vloer) en de voorwaarden (deur, hoogte, vloerbelasting). Gebruik een gewogen som met voor materiaal en voor vloer, met de waarden van het vrije optimum als referentie.
- ,
- toegelaten:
- de diameter met de kleinste
- een verantwoorde keuze
- 1. Afleiden (of een rooster) geeft het minimum van bij .
- 2Die diameter ligt binnen het toegelaten domein. Met (alleen materiaal) zou je op de deurgrens 0,78 m uitkomen; hoe zwaarder de vloer weegt, hoe smaller de tank.
- 3Controle vloerbelasting: bij drukt de volle tank ongeveer , bij ongeveer : in beide gevallen een eigen sokkel op de fundering.
- 4Keuze: , water plus een luchtruimte. Argumenten: minste materiaal binnen de voorwaarden, laagste druk op de sokkel, en een standaardmaat van die orde is in de handel. De gewogen som zou een smallere tank kiezen; dat verschil (een paar tienden van een vierkante meter vloer) is een beslissing voor de bewoners, niet voor de wiskunde.
Numeriek optimaliseren
Vaak kan je niet exact oplossen. Het vermogen van een zonnepaneel is met (in een eenvoudig diodemodel) . Dan is , en heeft geen oplossing in gewone functies. Voor een paneel van 350 Wp (, , ) zoek je numeriek:
- Rooster: reken uit in veel punten en neem het beste. Eenvoudig en robuust (ook bij meerdere toppen), maar duur bij veel variabelen.
- Bisectie op : links van het maximum en rechts. Halveer het interval en houd de helft met de tekenwissel. Na stappen is het interval keer zo klein.
- Gulden snede: zonder afgeleide. Kies twee proefpunten in . Is , dan kan het maximum niet rechts van liggen (bij een functie met één top): schrap dat stuk, anders het stuk links van . Leg je de proefpunten op de fractie , dan is één van de twee oude punten meteen een proefpunt van het nieuwe interval: één functiewaarde per stap, en het interval krimpt telkens met 0,618. (Uit die eis volgt .)
| methode | wat ze nodig heeft | interval per stap | stappen voor 41 V → 0,01 V |
|---|---|---|---|
| rooster (alle punten) | alleen | – | 4100 evaluaties |
| bisectie op | het teken van | × 0,5 | 13 |
| gulden snede | alleen , unimodaal | × 0,618 | 18 |
| Newton op (hoofdstuk 36) | en | fout wordt kwadratisch kleiner | enkele |
| perturb and observe | metingen van | vaste stap | volgt het maximum als het verschuift |
Het resultaat: het MPP ligt bij en , met . De gulden snede had er 18 stappen voor nodig om tot op 0,01 V te komen, bisectie 16 stappen tot op 0,001 V.
Bisectie op en de gulden snede vinden een maximum alleen als er in het interval precies één is. Een half beschaduwd paneel met bypassdiodes heeft er soms twee: dan vindt de methode misschien het kleinste. Een grof rooster vooraf lost dat op.
Het MPP berekenen, en volgen
Drie methoden op hetzelfde model. De afgeleide wordt numeriek berekend met een centrale differentie (hoofdstuk 1), zoals je doet als je geen formule voor hebt. De derde methode is die van een echte MPPT-regelaar: die kent geen model, maar meet. Hij verandert de spanning een beetje en kijkt of het vermogen stijgt; zo niet, dan keert hij om (perturb and observe).
# mpp.py - het punt van het grootste vermogen van een zonnepaneel, drie numerieke methodenimport math ISC, VOC, A = 10.9, 41.0, 2.44 # kortsluitstroom (A), openklemspanning (V), diodeparameter (V)I0 = ISC / (math.exp(VOC / A) - 1) # verzadigingsstroom: I(VOC) = 0 def P(u): # vermogen (W) bij spanning u (V) return u * (ISC - I0 * (math.exp(u / A) - 1)) def dP(u, h=1e-5): # afgeleide: centrale differentie (hoofdstuk 1) return (P(u + h) - P(u - h)) / (2 * h) # 1. bisectie op de afgeleide: dP > 0 links van het MPP, dP < 0 rechtsa, b, n = 0.0, VOC, 0while b - a > 0.001: m = (a + b) / 2 if dP(m) > 0: a = m else: b = m n += 1print("bisectie op P': U = %.3f V, P = %.2f W na %d stappen" % ((a + b) / 2, P((a + b) / 2), n)) # 2. gulden snede op P zelf (geen afgeleide nodig)g = (math.sqrt(5) - 1) / 2a, b, n = 0.0, VOC, 0x1, x2 = b - g * (b - a), a + g * (b - a)p1, p2 = P(x1), P(x2)while b - a > 0.01: if p1 > p2: b, x2, p2 = x2, x1, p1 x1 = b - g * (b - a) p1 = P(x1) else: a, x1, p1 = x1, x2, p2 x2 = a + g * (b - a) p2 = P(x2) n += 1print("gulden snede: U = %.3f V, P = %.2f W na %d stappen" % ((a + b) / 2, P((a + b) / 2), n)) # 3. perturb and observe, zoals een MPPT-regelaar: kleine stap, kijk of P stijgtu, stap, richting = 30.0, 0.5, +1vorig = P(u)spoor = []for k in range(14): u += richting * stap nu = P(u) if nu < vorig: # slechter: keer om richting = -richting vorig = nu spoor.append("%.1f" % u)print("perturb and observe:", " ".join(spoor))Uitvoer:
bisectie op P': U = 34.378 V, P = 349.89 W na 16 stappen gulden snede: U = 34.378 V, P = 349.89 W na 18 stappen perturb and observe: 30.5 31.0 31.5 32.0 32.5 33.0 33.5 34.0 34.5 35.0 34.5 34.0 34.5 35.0
Bisectie en gulden snede komen op hetzelfde punt uit. Perturb and observe klimt vanaf 30 V naar het MPP en blijft daarna heen en weer springen tussen drie spanningen rond de top: een regelaar die blijft zoeken, verliest een klein beetje, maar volgt het maximum wel als de zon of de temperatuur verandert. Een kleinere stap verkleint die schommeling maar maakt het volgen trager (opdracht 2.9).
Het werkpunt van een zonnepaneel
Stroom en vermogen van het paneel van 350 Wp bij standaardtestcondities (1000 W/m², cel op 25 °C), uit het diodemodel. De verticale lijn staat op het MPP.
- 1Kortsluitstroom
Bij U = 0 levert het paneel 10,9 A, maar geen vermogen. De stroom is evenredig met het zonlicht.
- 2De knie
Boven ongeveer 35 V gaan de diodes in de cellen geleiden en valt de stroom snel weg: de exponentiële term wint.
- 3Openklemspanning
Bij 41,0 V is de stroom nul: weer geen vermogen. Ze daalt als de cellen warm worden (hoofdstuk 20 van Intermediate).
- 4Stroombron
Links van de knie is de stroom bijna constant: P stijgt bijna lineair met U, langs de stippellijn Isc · U.
- 5Horizontale raaklijn
Het MPP: 349,9 W bij 34,4 V en 10,18 A. Hier is dP/dU = 0; de vulfactor P/(Voc · Isc) is 0,78.
- 6Steil voorbij het MPP
Rechts van het MPP valt het vermogen veel sneller dan links: een regelaar werkt liever een tikje links van het MPP.
Meer variabelen: de gradiënt
Een open bak in de vorm van een balk (lengte , breedte , hoogte ) moet 0,50 m³ water bevatten. Nu zijn er twee vrije variabelen: met is het materiaal
Een partiële afgeleide is een gewone afgeleide naar één variabele, met de andere vast: en . In een minimum zijn ze allebei nul. Uit beide volgt en : , , . Een open bak is dus twee keer zo breed als hoog.
De twee partiële afgeleiden samen vormen de gradiënt . Hij wijst in de richting waarin het snelst stijgt, en staat loodrecht op de niveaulijnen. Gradiëntafdaling zet daarom kleine stappen tegen de gradiënt in:
In de figuur vertrekt de zoektocht in met en volgt de steilste helling naar beneden, eerst snel, dan steeds trager omdat de gradiënt kleiner wordt. Een te grote schiet over het dal heen en divergeert. Het programma probeert vier stapgroottes:
def A(l, b, V=0.5): # open bak: bodem l*b en vier wanden, hoogte V/(l*b)
return l * b + 2 * V / b + 2 * V / l
def grad(l, b, V=0.5):
return b - 2 * V / l ** 2, l - 2 * V / b ** 2
for eta in (0.1, 0.3, 0.6, 0.7):
l, b = 0.45, 1.8
for k in range(1, 301):
gl, gb = grad(l, b)
l, b = l - eta * gl, b - eta * gb
if abs(gl) + abs(gb) < 1e-6 or not (0 < l < 10 and 0 < b < 10):
break
print("eta %.1f: na %3d stappen l = %.4f, b = %.4f" % (eta, k, l, b))eta 0.1: na 142 stappen l = 1.0000, b = 1.0000 eta 0.3: na 41 stappen l = 1.0000, b = 1.0000 eta 0.6: na 71 stappen l = 1.0000, b = 1.0000 eta 0.7: na 3 stappen l = 1.7820, b = 85.0149
Een neuraal netwerk (hoofdstuk 43) doet precies dit, met miljoenen variabelen in plaats van twee.
Optimaliseren: formules en werkwijze
Stappen: variabelen, doelfunctie, randvoorwaarden en domein, kandidaten (stationaire punten, randen, knikken), controle en gevoeligheid.
| symbool | betekenis | eenheid |
|---|---|---|
| kost of dikte van bodem, deksel, wand | per m² |
| symbool | betekenis | eenheid |
|---|---|---|
| inwendige weerstand van de bron | Ω |
| symbool | betekenis | eenheid |
|---|---|---|
| lengte van het zoekinterval na n stappen | eenheid van x |
| symbool | betekenis | eenheid |
|---|---|---|
| stapgrootte (learning rate) | – |
| methode | wat ze nodig heeft | interval per stap | stappen voor 41 V → 0,01 V |
|---|---|---|---|
| rooster (alle punten) | alleen | – | 4100 evaluaties |
| bisectie op | het teken van | × 0,5 | 13 |
| gulden snede | alleen , unimodaal | × 0,618 | 18 |
| Newton op (hoofdstuk 36) | en | fout wordt kwadratisch kleiner | enkele |
| perturb and observe | metingen van | vaste stap | volgt het maximum als het verschuift |
Waar optimaliseren vandaan komt en waar het heen gaat
Optimaliseren verbindt wiskunde (W) met ontwerpen (D): het maakt van 'een goed idee' een verdedigbare keuze. Het raakt energie (MPP, rendement), elektronica (aanpassing), constructies (materiaal, sterkte) en data en AI (een model trainen is een fout minimaliseren).
Programma van eisen en criteriatabel: de eerste vorm van doelen en randvoorwaarden.
De top van een parabool: het eerste optimum zonder afgeleide.
De I-U-kromme en het MPP, hier berekend en gevolgd.
Een keuzematrix met gewichten: de gewogen som in de praktijk.
De afgeleide en de numerieke differentie die hier nul gesteld of gebruikt worden.
Wanddikte en spanning: waarom grote tanks breed en laag zijn (opdracht 2.13).
De MPPT-lader van het zonnepark: perturb and observe in hardware.
Newton-Raphson en andere methoden om nulpunten en optima te vinden.
Kleinste kwadraten: de beste rechte is een optimum.
Gradiëntafdaling met miljoenen variabelen.
Trade-offstudies: meerdere doelen afwegen in een groot project.
In het kort
- Een lokaal extremum van een afleidbare functie binnen het domein ligt in een stationair punt (); kandidaten zijn ook de randen en de knikken.
- Tekenschema van of het teken van beslist: of is een maximum, of een minimum; zonder tekenwissel geen extremum.
- Opstellen: variabelen met eenheden, één doelfunctie, gelijkheden elimineren, ongelijkheden in het domein, dan kandidaten vergelijken en controleren.
- Klassiekers: de cilinder met het minste materiaal heeft (algemeen ); maximale vermogensoverdracht bij , met 50 % rendement.
- Een glad optimum is vlak: een afwijking kost kwadratisch weinig. Een actieve randvoorwaarde duwt het optimum naar de rand.
- Meerdere doelen: gewogen som, één doel met de rest als voorwaarde, of kiezen op het Pareto-front; de gewichten zijn een keuze, geen wiskunde.
- Numeriek: rooster, bisectie op , gulden snede (factor 0,618 per stap), perturb and observe; bij meer variabelen gradiëntafdaling.
Wat je nu kent
- stationair punt
- Punt waar de afgeleide nul is: de raaklijn is horizontaal. Kandidaat voor een extremum, maar het kan ook een buigpunt zijn.
- lokaal extremum
- Een maximum of minimum in vergelijking met de punten in de buurt; het globale extremum is het grootste of kleinste over het hele domein.
- doelfunctie
- De grootheid die je minimaal of maximaal wil maken, geschreven als functie van de ontwerpvariabelen.
- randvoorwaarde
- Een eis waaraan het ontwerp moet voldoen: een gelijkheid (bv. het volume) of een ongelijkheid (bv. past door de deur).
- actieve randvoorwaarde
- Een ongelijkheid die in het optimum precies gelijk wordt: het optimum ligt op de grens.
- vlak optimum
- Rond een glad extremum verandert de doelfunctie maar kwadratisch: een kleine afwijking kost bijna niets.
- Pareto-optimaal
- Een ontwerp dat je op geen enkel doel kan verbeteren zonder op een ander doel in te leveren; samen vormen ze het Pareto-front.
- gulden snede (zoeken)
- Numerieke methode die een maximum insluit in een interval dat elke stap met de factor 0,618 krimpt, met één nieuwe functiewaarde per stap.
- MPP
- Maximum power point: de spanning waarbij een zonnepaneel het grootste vermogen levert; een MPPT-regelaar zoekt en volgt dat punt.
- gradiënt
- De vector van de partiële afgeleiden; hij wijst in de richting waarin een functie van meer variabelen het snelst stijgt.