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)