Az algoritmus megtalálni a maximális függvény
A legegyszerűbb probléma megtalálni a maximális függvény megoldása a következő algoritmus:
1. Állítsa a határokat a és b, amelyen belül van egy maximális funkciót.
2. Az [a, b] van osztva bizonyos számú lépést.
3. táblázatba foglalt függvény egy előre meghatározott intervallumban, és minden funkciót kiszámított érték összehasonlítjuk a maximális (adja meg az előzetes táblázatos).
4. A legnagyobb függvényérték található előre meghatározott időközönként egy bizonyos pályát és nyomtatott.
A folyamatábra a következő:
Ábra. 4. A blokk - diagram az algoritmus megtalálása a legnagyobb a függvény
Természetesen, a csökkenés a pitch változásának az érv maximális számítási pontossága növekszik.
Ön is használja a következő algoritmus:
1. Keresse meg a maximális értéket a bemutatott algoritmus szerint.
2. A további megfontolás, hogy válasszon az intervallum [xmax-dx, xmax + dx] és végre a maximális számítási lépés, például a DX / 10.
3. Hasonlítsa össze a két érték található.
max1 - maximális érték dx és MAX2 lépésben - maximális érték dx / 10 lépésekben. Ha | max2-Max1 | <=E (где Е – заданная степень точности вычисления), то закончить решение задачи и max2 вывести на печать, если нет, то вычисление продолжить дальше, повторяя п.2.
Ezt a problémát könnyebb megoldani eljárás alkalmazásával a megállapítás a maximális érték a funkciót.
A blokk - rendszer a probléma megoldása a következő:
Ábra. 5. A blokk - diagram az algoritmus megtalálása a legnagyobb a függvény
Módszerek optimalizálása egyváltozós függvényeket
egységes módszert keresés
Ez a módszer azon a tényen alapul, hogy az x változó van hozzárendelve az értéke x + # 8710; x lépésekben # 8710; X = const és számított értékek F (x). Ha F (x n + 1)> F (xn), egy x változó kap egy új növekmény. Miután F (xn + 1) kevesebb lesz, mint az F (x) a keresés leáll. Ha egy előre meghatározott alacsony hiba, ez a módszer nem gazdaságos a CPU időt.
Bitenkénti közelítő módszer
Ez a módszer egy változata egyenes kereső algoritmus és végrehajtása az alábbiak szerint:
1. kérés a kezdeti közelítését x = x # 8320; elhagyta a maximális F (x), és számítsuk ki az F (x # 8320;). Kérés D = H, ahol h = # 8710; x - a kezdeti keresési lépésre.
2. Feltételezzük, hogy G = F (xn), ahol az első F (xn) = f (x # 8320;), beállítjuk x = x + D és kiszámítjuk f (x n + 1) = f (x).
3. állapotának ellenőrzése F (x n # 8330; # 8321;)> G; Ha ez igaz, ugorjon a 2. lépésre, ha nem, akkor a 4. lépésre.
4. Feltételezzük, D = -D / 4. Állapotának ellenőrzése | D |> E / 4, ahol E - xn előre meghatározott hiba kiszámítása maximális. Ha ez teljesül, ugorjon a 2. lépésre, azaz maximális keresési egy másik irányba a pitch 4-szer kevesebb, mint korábban. Ha ez a feltétel teljesül, a számítási folyamat befejeződik.
kettősség módszer (osztás keresési intervallum [a, b] fél) valósítható meg a következő algoritmus:
1. Ellenőrizze a | b-a |<2E, где E – заданная погрешность вычисления xn. Если это условие выполняется, идём к п.6; если не выполняется, идём к п.2.
2. Osszuk a keresési intervallum [a, b] és kiszámítja a két fél abszcisszavonal szimmetrikusak pont
3. Annak érdekében, hogy ezeket az értékeket számítani x F (x # 8321;)> F (x # 8322;).
4. Ellenőrizze a F (x # 8321;)> F (x # 8322;). Ha igaz, úgy véljük, b = x # 8322; és maradt az 1. Ha nem elégedett, folytassa az 5. lépéssel ..
5. Feltételezzük egy = X # 8321; és maradt az 1.
6. nyomatok xn = (A + B) / 2 és kiszámítjuk f (xn).
A módszer elosztjuk a Fibonacci tanulmányok pont intervallum határozza minden új számítás (kettősség módszerrel kell végezni minden egyes lépését a két számítás). Az intervallum tanulmány lesz az előző számítás, és folytassák a keresést termel elegendő számítási szimmetrikusan áll rendelkezésre.
Tegyük fel, mivel a számítások mennyiségét (lépések) N. Úgy kell elvégezni úgy, hogy az intervallumot, amely optimális, minimális volt. Fibonacci számok ebben a módszerben használt meghatározása a következő:
Fibonacci módszer algoritmusa az alábbi lépéseket:
1) Változás skála kiindulási nyílás, amely az optimális. Mivel a fogadó egység 1 = X # 8320; / FN. vagy ha adott hosszúságú L, ami optimális, vannak eredeti hosszát intervallum X # 8320;. Ehhez osszuk X # 8320; 1, keresse meg a legközelebbi nagyobb számú Fibonacci az FN,
és ez határozza meg az N - számát szükséges számítások meghatározása intervallum.
2) ha az első két pontot, és az intervallum távolság X0 tanulmányok FN-2 végétől b.
3) Számítsa ki a célfüggvény ezeken a pontokon az szűkül a vizsgálat intervallumot. Let>. akkor az intervallum [. FN] ki van zárva a figyelmet.
4) Az új körű vizsgálatokat vannak elrendezve több mint két pontot, és. de egyikük már tudja az értékét a célfüggvény =.
5) lépéssel folytatódik 3, stb amíg el nem éri a kívánt intervallumot, amelyben az a változó értékét, amely maximalizálja a célfüggvényt.
Ábra. A 6. ábra a folyamat a szűkülő intervallum tanulmány:
Ábra. 6. A folyamat szűkül a vizsgálat intervallumot.
Utolsó N-edik számítás határozza meg az intervallum hossza L, amely egy szélsőérték a célfüggvény.
Aranymetszés keresés
Aranymetszés vezeti a szegmens AB felosztás két egyenlőtlen részre úgy, hogy ott van a következő kapcsolatban (ábra. 7).
Aranymetszés módszere lehetővé teszi, hogy csökkenjen a [a, b] minden alkalommal csak egy értéket számító F (x), inkább, mint két, mint a módszer kettősség.
Ezt a módszert a következő algoritmus:
1. Keresse meg a zúzás arány k = (√5-1) / 2 intervallum [a, b].
2. Find az abszcisszán X1 = a + (1-k) * (b-a) és kiszámítjuk f (x1).
3. Find az abszcisszán x2 = a + K * (b-a) és kiszámítjuk f (x2).
4. Ellenőrizze, hogy a | x2 -X1 | 5. Ellenőrizze a F (x1)