ΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² написании студСнчСских Ρ€Π°Π±ΠΎΡ‚
АнтистрСссовый сСрвис

НахоТдСния ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌΠ° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ n ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…. 
ΠœΠ΅Ρ‚ΠΎΠ΄ Π“ΠΎΠ»ΡŒΠ΄Ρ„Π°Ρ€Π±Π°

ΠšΡƒΡ€ΡΠΎΠ²Π°ΡΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠΈΠ£Π·Π½Π°Ρ‚ΡŒ ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒΠΌΠΎΠ΅ΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹

ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ с ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΎΠΉ ΠΈΠΌΠ΅ΡŽΡ‚ прСвосходство ΠΏΡ€ΠΈ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΈ Π·Π°Π΄Π°Ρ‡ с Ρ„ункциями ΠΎΠ±Ρ‰Π΅Π³ΠΎ Π²ΠΈΠ΄Π°. На ΡΡ‚ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ вычислСний Π½Π° Π­Π’Πœ ΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ большСС влияниС, Ρ‡Π΅ΠΌ Π½Π° ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ сопряТённых Π³Ρ€Π°Π΄ΠΈΠ΅Π½Ρ‚ΠΎΠ². Π’ Ρ‡Π°ΡΡ‚ности данная ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ для тСстовых Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ быстрСС, Ρ‡Π΅ΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ спуска ΠΏΠΎ Π³Ρ€Π°Π΄ΠΈΠ΅Π½Ρ‚Ρƒ ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ Гаусса-ЗСйдСля.На самом Π΄Π΅Π»Π΅ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ зависит ΠΎΡ‚ Π²ΠΈΠ΄Π° ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΡƒΠ΅ΠΌΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ… Π§ΠΈΡ‚Π°Ρ‚ΡŒ Π΅Ρ‰Ρ‘ >

НахоТдСния ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌΠ° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ n ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…. ΠœΠ΅Ρ‚ΠΎΠ΄ Π“ΠΎΠ»ΡŒΠ΄Ρ„Π°Ρ€Π±Π° (Ρ€Π΅Ρ„Π΅Ρ€Π°Ρ‚, курсовая, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Π°Ρ)

ΠœΠ˜ΠΠ˜Π‘Π’Π•Π Π‘Π’Π’Πž ΠžΠ‘Π ΠΠ—ΠžΠ’ΠΠΠ˜Π― Π Π•Π‘ΠŸΠ£Π‘Π›Π˜ΠšΠ˜ БЕЛАРУБЬ Π£Π§Π Π•Π–Π”Π•ΠΠ˜Π• ΠžΠ‘Π ΠΠ—ΠžΠ’ΠΠΠ˜Π― Π‘Π•Π›ΠžΠ Π£Π‘Π‘ΠšΠ˜Π™ Π“ΠžΠ‘Π£Π”ΠΠ Π‘Π’Π’Π•ΠΠΠ«Π™ Π£ΠΠ˜Π’Π•Π Π‘Π˜Π’Π•Π’ ИНЀОРМАВИКИ И Π ΠΠ”Π˜ΠžΠ­Π›Π•ΠšΠ’РОНИКИ Π€Π°ΠΊΡƒΠ»ΡŒΡ‚Π΅Ρ‚ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ ΠΈ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΡ ΠšΠ°Ρ„Π΅Π΄Ρ€Π° Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ Дисциплина: ΠžΡΠ½ΠΎΠ²Ρ‹ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ ΠŸΠžΠ―Π‘ΠΠ˜Π’Π•Π›Π¬ΠΠΠ― Π—ΠΠŸΠ˜Π‘ΠšΠ ΠΊ ΠΊΡƒΡ€ΡΠΎΠ²ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Π΅ Π½Π° Ρ‚Π΅ΠΌΡƒ

«ΠΠ°Ρ…оТдСния ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌΠ° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ n ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…. ΠœΠ΅Ρ‚ΠΎΠ΄ Π“ΠΎΠ»ΡŒΠ΄Ρ„Π°Ρ€Π±Π°»

Π‘Ρ‚ΡƒΠ΄Π΅Π½Ρ‚: Π³Ρ€.120 603 Нарчук А. Π‘.

Π ΡƒΠΊΠΎΠ²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒ: Π΄. Ρ„-ΠΌ.Π½., профСссор Π‘ΠΈΠ½ΠΈΡ†Ρ‹Π½ А.К.

Минск, 2012

Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅ Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅.

ОписаниС Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° ΠΈ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π·Π°Π΄Π°Ρ‡ΠΈ ОписаниС тСстовой Π·Π°Π΄Π°Ρ‡ΠΈ ΠΈ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π›ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΡƒΡ€Π° ВСкст ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅

Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅

Π—Π°Π΄Π°Ρ‡Π΅ΠΉ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ Π² ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ΅, ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ΅ ΠΈ ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ называСтся Π·Π°Π΄Π°Ρ‡Π° нахоТдСния экстрСмума (ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌΠ° ΠΈΠ»ΠΈ максимума) Ρ†Π΅Π»Π΅Π²ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ области ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠΌΠ΅Ρ€Π½ΠΎΠ³ΠΎ Π²Π΅ΠΊΡ‚ΠΎΡ€Π½ΠΎΠ³ΠΎ пространства, ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½ΠΎΠΉ Π½Π°Π±ΠΎΡ€ΠΎΠΌ Π»ΠΈΠ½Π΅ΠΉΠ½Ρ‹Ρ… ΠΈ Π½Π΅Π»ΠΈΠ½Π΅ΠΉΠ½Ρ‹Ρ… равСнств ΠΈ Π½Π΅Ρ€Π°Π²Π΅Π½ΡΡ‚Π².

ΠœΠΈΠ½ΠΈΠΌΡƒΠΌΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π²ΠΈΠ΄ΠΎΠ² экстрСмума, наимСньшСС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π½Π° Π·Π°Π΄Π°Π½Π½ΠΎΠΌ ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»Π΅.

ΠŸΡƒΡΡ‚ΡŒ Π² ΠΏΡ€ΠΎΡΡ‚ранствС Π·Π°Π΄Π°Π½Π° функция Говорят, Ρ‡Ρ‚ΠΎ ΠΈΠΌΠ΅Π΅Ρ‚ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ Π² Ρ‚ΠΎΡ‡ΠΊΠ΅, Ссли сущСствуСт Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Π°ΡΠΎΠΊΡ€Π΅ΡΡ‚Π½ΠΎΡΡ‚ΡŒ Ρ‚ΠΎΡ‡ΠΊΠΈ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ выполняСтся:

Π‘ΡƒΠ΄Π΅ΠΌ ΠΏΠΎΠ»Π°Π³Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ нСпрСрывная Π΄Π²Π°ΠΆΠ΄Ρ‹ диффСрСнцируСмая функция.

Π›ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ:

ΠšΠ»Π°ΡΡΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΊΠ»Π°ΡΡΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΡŽΡ‚ Π² ΡΠΎΠΎΡ‚вСтствии с Π·Π°Π΄Π°Ρ‡Π°ΠΌΠΈ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ:

Π›ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹: сходятся ΠΊ ΠΊΠ°ΠΊΠΎΠΌΡƒ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ Π»ΠΎΠΊΠ°Π»ΡŒΠ½ΠΎΠΌΡƒ экстрСмуму Ρ†Π΅Π»Π΅Π²ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. Π’ ΡΠ»ΡƒΡ‡Π°Π΅ ΡƒΠ½ΠΈΠΌΠΎΠ΄Π°Π»ΡŒΠ½ΠΎΠΉ Ρ†Π΅Π»Π΅Π²ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, этот экстрСмум СдинствСнСн, ΠΈ Π±ΡƒΠ΄Π΅Ρ‚ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹ΠΌ максимумом/ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌΠΎΠΌ.

Π“Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹: ΠΈΠΌΠ΅ΡŽΡ‚ Π΄Π΅Π»ΠΎ с ΠΌΠ½ΠΎΠ³ΠΎΡΠΊΡΡ‚Ρ€Π΅ΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ Ρ†Π΅Π»Π΅Π²Ρ‹ΠΌΠΈ функциями. ΠŸΡ€ΠΈ глобальном поискС основной Π·Π°Π΄Π°Ρ‡Π΅ΠΉ являСтся выявлСниС Ρ‚Π΅Π½Π΄Π΅Π½Ρ†ΠΈΠΉ глобального повСдСния Ρ†Π΅Π»Π΅Π²ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ.

По ΠΊΡ€ΠΈΡ‚Π΅Ρ€ΠΈΡŽ размСрности допустимого мноТСства, ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ дСлят Π½Π° ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΎΠ΄Π½ΠΎΠΌΠ΅Ρ€Π½ΠΎΠΉ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½ΠΎΠΉ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ.

По Π²ΠΈΠ΄Ρƒ Ρ†Π΅Π»Π΅Π²ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ Π΄ΠΎΠΏΡƒΡΡ‚ΠΈΠΌΠΎΠ³ΠΎ мноТСства, Π·Π°Π΄Π°Ρ‡ΠΈ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΈΡ… Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚ΡŒ Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ классы:

1) Π—Π°Π΄Π°Ρ‡ΠΈ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… цСлСвая функция ΠΈ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΡ ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π»ΠΈΠ½Π΅ΠΉΠ½Ρ‹ΠΌΠΈ функциями, Ρ€Π°Π·Ρ€Π΅ΡˆΠ°ΡŽΡ‚ΡΡ Ρ‚Π°ΠΊ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹ΠΌΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌΠΈΠ»ΠΈΠ½Π΅ΠΉΠ½ΠΎΠ³ΠΎ программирования.

2) Π’ ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС ΠΈΠΌΠ΅ΡŽΡ‚ Π΄Π΅Π»ΠΎ с Π·Π°Π΄Π°Ρ‡Π΅ΠΉ Π½Π΅Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎΠ³ΠΎ программирования ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹. Π’ ΡΠ²ΠΎΡŽ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ ΠΈΠ· Π½ΠΈΡ… Π²Ρ‹Π΄Π΅Π»ΡΡŽΡ‚ Π΄Π²Π΅ частныС Π·Π°Π΄Π°Ρ‡ΠΈ:

1. Ссли ΠΈ — Π²Ρ‹ΠΏΡƒΠΊΠ»Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Ρ‚ΠΎ Ρ‚Π°ΠΊΡƒΡŽ Π·Π°Π΄Π°Ρ‡Ρƒ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ Π·Π°Π΄Π°Ρ‡Π΅ΠΉ Π²Ρ‹ΠΏΡƒΠΊΠ»ΠΎΠ³ΠΎ программирования;

2. Ссли, Ρ‚ΠΎ ΠΈΠΌΠ΅ΡŽΡ‚ Π΄Π΅Π»ΠΎ с Π·Π°Π΄Π°Ρ‡Π΅ΠΉ цСлочислСнного (дискрСтного) программирования.

ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠΈ всС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ n ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… основаны Π½Π° ΠΌΠ½ΠΎΠ³ΠΎΠΊΡ€Π°Ρ‚Π½ΠΎΠΌ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π΅Π½ΠΈΠΈ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… Π΄Π²ΡƒΡ… дСйствий:

1. Π²Ρ‹Π±ΠΎΡ€ Π² ΠΎΠ±Π»Π°ΡΡ‚ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ направлСния спуска;

2.

спуск ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌΡƒ вдоль Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠ³ΠΎ направлСния.

Если — Π΅Π΄ΠΈΠ½ΠΈΡ‡Π½Ρ‹ΠΉ Π²Π΅ΠΊΡ‚ΠΎΡ€ Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠ³ΠΎ направлСния Π² Ρ‚ΠΎΡ‡ΠΊΠ΅, Ρ‚ΠΎ ΡƒΡ€Π°Π²Π½Π΅Π½ΠΈΠ΅ прямой, проходящСй Ρ‡Π΅Ρ€Π΅Π· эту Ρ‚ΠΎΡ‡ΠΊΡƒ Π² Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠΈ, записываСтся Π² Π²ΠΈΠ΄Π΅:

Π³Π΄Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ z, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ Ρ‚ΠΎΡ‡ΠΊΠ°ΠΌ Π½Π° ΠΏΡ€ΡΠΌΠΎΠΉ (ΠΌΠΎΠ΄ΡƒΠ»ΡŒ z Π΅ΡΡ‚ΡŒ расстояниС ΠΎΡ‚ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Ρ‚ΠΎΡ‡ΠΊΠΈ Π΄ΠΎ).

ЗначСния Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ вдоль этой прямой ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ ΠΎΠ΄Π½ΠΎΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ :

ИзмСняя z Π΄Π²ΠΈΠ³Π°Π΅ΠΌΡΡ вдоль этой прямой, Π½Π°Ρ…ΠΎΠ΄ΠΈΠΌ Ρ‚ΠΎΡ‡ΠΊΡƒ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ функция ΠΈΠΌΠ΅Π΅Ρ‚ мСньшСС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, Ρ‡Π΅ΠΌ Π² Ρ‚ΠΎΡ‡ΠΊΠ΅ ΠžΠ±Ρ‹Ρ‡Π½ΠΎ Π½Π°Ρ…ΠΎΠ΄ΠΈΠΌ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΎΠ΄Π½ΠΎΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ:

ВсС ΠΌΠ½ΠΎΠ³ΠΎΠΎΠ±Ρ€Π°Π·ΠΈΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ n ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… опрСдСляСтся мноТСством способов Π²Ρ‹Π±ΠΎΡ€Π° Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠΉ ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² спуска Π² Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠΌ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠΈ.

ΠšΠ»Π°ΡΡΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½ΠΎΠΉ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ

1. ΠœΠ•Π’ΠžΠ”Π« ΠΠ£Π›Π•Π’ΠžΠ“Πž ΠŸΠžΠ Π―Π”ΠšΠ — ΠΏΡ€ΠΈ Π²Ρ‹Π±ΠΎΡ€Π΅ направлСния спуска Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ вычислСния Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ (ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹:Гаусса-ЗСйдСля, ΠŸΠ°ΡƒΡΠ»Π»Π°, Π”Π‘Πš, Π ΠΎΠ·Π΅Π½Π±Ρ€ΠΎΠΊΠ°, Π₯ΡƒΠΊΠ°-ДТивса, НСлдСра-Мида).

2. ΠœΠ•Π’ΠžΠ”Π« ΠŸΠ•Π Π’ΠžΠ“Πž ΠŸΠžΠ Π―Π”ΠšΠ — Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ вычислСния (Ρ‚ΠΎΡ‡Π½ΠΎΠ³ΠΎ ΠΈΠ»ΠΈ ΠΏΡ€ΠΈΠ±Π»ΠΈΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ) Π³Ρ€Π°Π΄ΠΈΠ΅Π½Ρ‚Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ (ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹: Π³Ρ€Π°Π΄ΠΈΠ΅Π½Ρ‚Π½Ρ‹ΠΉ, сопряТСнных Π³Ρ€Π°Π΄ΠΈΠ΅Π½Ρ‚ΠΎΠ², Π”Π°Π²ΠΈΠ΄ΠΎΠ½Π°-Π€Π»Π΅Ρ‚Ρ‡Π΅Ρ€Π°-ΠŸΠ°ΡƒΡΠ»Π»Π° (Π”Π€ΠŸ), Π€Π»Π΅Ρ‚Ρ‡Π΅Ρ€Π°-Ривса ΠΈΠ΄Ρ€.).

3. ΠœΠ•Π’ΠžΠ”Π« Π’Π’ΠžΠ ΠžΠ“Πž ΠŸΠžΠ Π―Π”ΠšΠ — Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ вычислСния ΠΊΠ°ΠΊ Π³Ρ€Π°Π΄ΠΈΠ΅Π½Ρ‚Π°, Ρ‚Π°ΠΊ ΠΈ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ Π²Ρ‚ΠΎΡ€Ρ‹Ρ… ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½Ρ‹Ρ… (ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹: ΠΡŒΡŽΡ‚ΠΎΠ½Π°, ΠΡŒΡŽΡ‚ΠΎΠ½Π°-Рафсона).

4. ΠœΠ•Π’ΠžΠ”Π« Π‘ ΠŸΠ•Π Π•ΠœΠ•ΠΠΠžΠ™ ΠœΠ•Π’Π Π˜ΠšΠžΠ™ — Π·Π°Π½ΠΈΠΌΠ°ΡŽΡ‚ ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½ΠΎΠ΅ мСсто ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌΠΈ 1-Π³ΠΎ ΠΈ 2-Π³ΠΎ порядка.

ОписаниС Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° ΠΈ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Π·Π°Π΄Π°Ρ‡ΠΈ ΠœΠ΅Ρ‚ΠΎΠ΄Π°ΠΌΠΈ с ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΎΠΉ называСтся ΡˆΠΈΡ€ΠΎΠΊΠΈΠΉ класс эффСктивных Π³Ρ€Π°Π΄ΠΈΠ΅Π½Ρ‚Π½Ρ‹Ρ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ², Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΎΡ‡Π΅Ρ€Π΅Π΄Π½ΠΎΠ³ΠΎ спуска вычисляСтся ΠΏΠΎ Ρ„ΠΎΡ€ΠΌΡƒΠ»Π΅:

Н — ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ опрСдСлСнная симмСтричная ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π°.

— ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚ΠΈΡ€ΡƒΡŽΡ‰Π°Ρ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π°, рассчитываСмая ΠΏΠΎ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°ΠΌ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΡ… спусков Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ ΡΡ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ:

ΠŸΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ вычислСний

1. На 1-ΠΌ шагС слСдуСт ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚ΡŒ Н0=Π•

2. Π”Π΅Π»Π°Π΅ΠΌ ΠΎΡ‡Π΅Ρ€Π΅Π΄Π½ΠΎΠΉ ΠΎΠ΄Π½ΠΎΠΌΠ΅Ρ€Π½Ρ‹ΠΉ спуск Π² Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠΈ

3. ДСлаСтся пСрСсчСт ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚ΠΈΡ€ΡƒΡŽΡ‰Π΅ΠΉ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹

4. Если, Ρ‚ΠΎ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ся вычислСниС Π½ΠΎΠ²ΠΎΠ³ΠΎ направлСния спуска Нk+1=Нk+Аk+1;

ΠžΠ±Ρ‰Π°Ρ схСма Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° Π’ 1979 Π³. Гринсдадт Π”ΠΆ. ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠΈΠ» ΠΎΠ±Ρ‰Π΅Π΅ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, Π·Π°Π΄Π°ΡŽΡ‰Π΅Π΅ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΠΈ ΠΎΡ‚ Π²Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌΠΎΠΉ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½ΠΎΠΉ симмСтричной ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρ‹ М ΡΠ΅ΠΌΠ΅ΠΉΡΡ‚Π²ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² с ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΎΠΉ Π’ ΠΏΠΎΡΠ»Π΅Π΄ΡΡ‚Π²ΠΈΠΈ исходя ΠΈΠ· Π½Π΅Π³ΠΎ Π±Ρ‹Π»ΠΈ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½Ρ‹ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ с ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΎΠΉ, Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ эффСктивным Π·Π°Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΠΎΠ²Π°Π» сСбя ΠΌΠ΅Ρ‚ΠΎΠ΄ Π“ΠΎΠ»ΡŒΠ΄Ρ„Π°Ρ€Π±Π° ΠœΠ΅Ρ‚ΠΎΠ΄ Π“ΠΎΠ»ΡŒΠ΄Ρ„Π°Ρ€Π±Π°:

ОписаниС тСстовой Π·Π°Π΄Π°Ρ‡ΠΈ ΠΈ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Данная ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° выполняСт ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ n ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ Π“ΠΎΠ»ΡŒΠ΄Ρ„Π°Ρ€Π±Π°. ВСстовая Π·Π°Π΄Π°Ρ‡Π° Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² ΡΠ΅Π±Ρ поиск ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌΠ° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ:

1. func1:=sqr (x[0]+2*x[1]);

2. func2:=10*sqr (x[0])+sqr (x[1]);

3. func3:=2*sqr (x[0])+4*sqr (x[1])+8*sqr (x[2])+2*x[0]*x[1]-x[2]*x[2]+2*x[2]+6*x[0]-7*x[2];

Π’ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ вводятся ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹Π΅ условия:

1. Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ Ρ‚ΠΎΡ‡ΠΊΠΈ (x).

2. эпсСлСнт.

Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, количСство Π·Π°Ρ…ΠΎΠ΄ΠΎΠ² Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΈ ΠΏΡ€ΠΎΠΈΡΡ…ΠΎΠ΄ΠΈΡ‚ прорисовка Π³Ρ€Π°Ρ„ΠΈΠΊΠ° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ.

1. func1:=sqr (x[0]+2*x[1]);

2. func2:=10*sqr (x[0])+sqr (x[1]);

3. func3:=2*sqr (x[0])+4*sqr (x[1])+8*sqr (x[2])+2*x[0]*x[1]-x[2]*x[2]+2*x[2]+6*x[0]-7*x[2];

оптимизация ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ функция ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΉ

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ с ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΎΠΉ ΠΈΠΌΠ΅ΡŽΡ‚ прСвосходство ΠΏΡ€ΠΈ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΈ Π·Π°Π΄Π°Ρ‡ с Ρ„ункциями ΠΎΠ±Ρ‰Π΅Π³ΠΎ Π²ΠΈΠ΄Π°. На ΡΡ‚ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ вычислСний Π½Π° Π­Π’Πœ ΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ большСС влияниС, Ρ‡Π΅ΠΌ Π½Π° ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ сопряТённых Π³Ρ€Π°Π΄ΠΈΠ΅Π½Ρ‚ΠΎΠ². Π’ Ρ‡Π°ΡΡ‚ности данная ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ для тСстовых Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ быстрСС, Ρ‡Π΅ΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ спуска ΠΏΠΎ Π³Ρ€Π°Π΄ΠΈΠ΅Π½Ρ‚Ρƒ ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ Гаусса-ЗСйдСля.На самом Π΄Π΅Π»Π΅ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ зависит ΠΎΡ‚ Π²ΠΈΠ΄Π° ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΡƒΠ΅ΠΌΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. ОсобСнно Ссли количСство ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Ρ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… большС 4−5 Π½ΡƒΠΆΠ½ΠΎ ΠΈΠΌΠ΅Ρ‚ΡŒ Π² Π·Π°ΠΏΠ°ΡΠ΅ нСсколько Ρ€Π°Π·Π½ΠΎΠΎΠ±Ρ€Π°Π·Π½Ρ‹Ρ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ², Π° ΠΏΡ€ΠΎΡ†Π΅ΡΡ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ.

Β· ΠšΠΎΠ½ΡΠΏΠ΅ΠΊΡ‚ Π»Π΅ΠΊΡ†ΠΈΠΉ Π΄. Ρ„-ΠΌ.Π½., профСссор Π‘ΠΈΠ½ΠΈΡ†Ρ‹Π½ А.К.

Β· http://www.wikipedia.org/

Β· Колосов Π‘. Π’. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π² ΡΡ€Π΅Π΄Π΅Delphi: Π£Ρ‡Π΅Π±. пособиС. — ΠœΠ½.: Π‘Π“Π£Π˜Π 

ВСкстпрограммы

unit Unit1;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls, ExtCtrls, TeeProcs, TeEngine, Chart, Series, ArrowCha, Math,

ComCtrls, Unit2, Grids;

type

toSend = function (x:TMas1):real;

TForm1 = class (TForm)

Memo1: TMemo;

Button1: TButton;

Chart1: TChart;

Series1: TLineSeries;

StringGrid1: TStringGrid;

Edit1: TEdit;

Label1: TLabel;

RadioButton1: TRadioButton;

RadioButton2: TRadioButton;

RadioButton3: TRadioButton;

procedure Button1Click (Sender: TObject);

procedureFormCreate (Sender: TObject);

procedure RadioButton1Click (Sender: TObject);

procedure RadioButton2Click (Sender: TObject);

procedurerefreshUpperGrid ();

procedure RadioButton3Click (Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1:TForm;

leftmin, leftmax, bottommin, bottommax: integer;

NumOfParameters: integer;

x, toset: TMas1;

fToSend:toSend;

funcno:integer;

implementation

{$R *.dfm}

function func1(x:TMas1):real;

begin

func1:=sqr (x[0]+2*x[1]);

end;

function func2(x:TMas1):real;

begin

func2:=10*sqr (x[0])+sqr (x[1]);

end;

function func3(x:TMas1):real;

begin

func3:=2*sqr (x[0])+4*sqr (x[1])+8*sqr (x[2])+2*x[0]*x[1]-x[2]*x[2]+2*x[2]+6*x[0]-7*x[2];

end;

procedure TForm1. Button1Click (Sender: TObject);

vari, j: integer;

g:TMas1;

eps:single;

minimize:TMinimization;

begin

memo1.Lines.Clear;

withChart1 dobegin

LeftAxis.Automatic:=false;

LeftAxis.Minimum:=-5;

LeftAxis.Maximum:=5;

BottomAxis.Automatic:=false;

BottomAxis.Minimum:=-5;

BottomAxis.Maximum:=5;

AnimatedZoom:=True;

SeriesList[0]. Clear;

end;

eps:=StrToFloat (Edit1.Text);

SetLength (g, 2);

memo1.Lines.Add ('ΠΠ°Ρ‡Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅:');

SetLength (toset, NumOfParameters);

for i:=0 to NumOfParameters-1 do

toset[i]: =StrToFloat (StringGrid1.Cells[i, 1]);

for i:=0 to NumOfParameters-1 do

memo1.Lines.Add ('x'+IntToStr (i)+'='+FloatToStr (toset[i]));

minimize:=TMinimization.Create (toset, 2, eps, fToSend, Chart1);

minimize.minimizationGoldfarb;

x:=minimize.GetFinalPoint;

g:=minimize.GetFinalGradient;

memo1.Lines.Add ('ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌΠΏΡ€ΠΈ x=('+floattostrf (x[0], fffixed, 4,4)+' '+floattostrf (x[1], fffixed, 4,4)+')');

memo1.Lines.Add ('f (x)='+floattostrf (func1(x), fffixed, 4,4));

memo1.Lines.Add ('Π³Ρ€Π°Π΄ΠΈΠ΅Π½Ρ‚ ('+floattostrf (g[0], fffixed, 4,4)+' '+floattostrf (g[1], fffixed, 4,4)+')');

minimize.Free;

end;

procedure TForm1. FormCreate (Sender: TObject);

var

i:integer;

begin

StringGrid1.RowCount:=2;

RadioButton1.Checked:=True;

RadioButton1Click (Sender);

end;

procedure TForm1. RadioButton1Click (Sender: TObject);

var

i:integer;

begin

fToSend:=func1;

NumOfParameters:=2;

SetLength (x, 2);

x[0]: =3;

x[1]:=6;

refreshUpperGrid;

end;

procedure TForm1. RadioButton2Click (Sender: TObject);

var

i:integer;

begin

fToSend:= func2;

NumOfParameters:=2;

SetLength (x, 2);

x[0]: =5;

x[1]:=7;

refreshUpperGrid;

end;

procedure TForm1. RadioButton3Click (Sender: TObject);

begin

fToSend:= func3;

NumOfParameters:=3;

SetLength (x, 3);

x[0]: =0.2;

x[1]:=0.2;

x[2]:=0.5;

refreshUpperGrid;

end;

procedure TForm1. refreshUpperGrid;

var

i:integer;

begin

StringGrid1.ColCount:=NumOfParameters;

Chart1.SeriesList[0]. Clear;

memo1.Clear;

for i:=0 to NumOfParameters-1 do

StringGrid1.Cells[i, 0]: ='x'+IntToStr (i);

for i:=0 to NumOfParameters-1 do

StringGrid1.Cells[i, 1]: =FloatToStr (x[i]);

end;

end.

unit Unit2;

interface

usesDialogs, Chart;

type

TMas2 = array of array of real;

TMas1 = array of real;

fun=function (x:TMas1):real;

TMinimization = class (TObject)

dk, v, u, g1, g0,Hu, x0, x1: TMas1;

n, num, i: integer;

Amat, Hmat, vuTH, HuvT, vvT: TMas2;

zm, eps, uTHu, uTv, uuT, h: real;

func:fun;

chart:TChart;

constructor Create (x:TMas1;enum:integer;meps:single;mfunc:fun;mchart:TChart);

function F1(x:real):real;

functionGrad (x:TMas1):TMas1;

functionMakeOneMatrix (hm: TMas2): TMas2;

functionNullMatrix (hm:TMas2):TMas2;

functionmp2(x0: real;h, e: real): real;// функциявыполняСтпоискминимума

functionGetFinalPoint (): TMas1;

functionGetFinalGradient (): TMas1;

procedureminimizationGoldfarb;

end;

implementation

function TMinimization. F1(x:real):real;

var

tmp:TMas1;

i:integer;

begin

SetLength (tmp, num);

for i:=0 to num-1 do

tmp[i]: =x0[i]+x*dk[i];

F1:=func (tmp);

end;

functionTMinimization.GetFinalPoint (): TMas1;

begin

GetFinalPoint:=x1;

end;

functionTMinimization.MakeOneMatrix (hm: TMas2): TMas2;

var

i, j: integer;

begin

for i:=0 to num-1 do

for j:=0 to num-1 do

if i=j then

hm[i][j]: =1

else

hm[i][j]:=0;

result:=hm;

end;

functionTMinimization.Grad (x:TMas1):TMas1;

var i: integer;

tmp, grad: TMas1;

begin

SetLength (tmp, num);

SetLength (grad, num);

for i:=0 to num-1 do

tmp[i]: =x[i];

for i:=0 to num-1 do begin

tmp[i]: =tmp[i]+h;

grad[i]:=func (tmp);

tmp[i]:=tmp[i]-2*h;

grad[i]:=(grad[i]-func (tmp))/(2*h);

end;

result:=grad;

end;

function TMinimization. mp2(x0: real;h, e: real): real;

var

comput: boolean;

x1,x2,x3,y1,y2,y3,z1,z2,p, q, zm: real;

begin

x1:=x0-h;

x2:=x0;

x3:=x0+h;

y1:=F1(x1);

y2:=F1(x2);

y3:=F1(x3);

comput:=False;

if (y1-(2*y2)+y3)>0 then

begin

whilecomput=False do begin

z1:=x1-x3;

z2:=x2-x3;

p:=((((y1-y3)*z2)-((y2-y3)*z1)))/((z1*z2*(z1-z2)));

q:=(((y1-y3)*sqr (z2))-((y2-y3)*sqr (z1)))/(z1*z2*(z2-z1));

zm:=-q/(2*p);

x1:=x2;

x2:=x3;

y1:=y2;

y2:=y3;

x3:=x3+zm;

y3:=F1(x3);

if abs (zm)

begin

result:=x3+zm;

comput:=True;

end;

end;

end;

end;

constructorTMinimization.Create;

var i: integer;

begin

eps:=meps;

func:=mfunc;

num:=enum;

chart:=mchart;

// функция SetLength устанавливаСт Ρ€Π°Π·ΠΌΠ΅Ρ€ динамичСского массива

SetLength (g1,num);

SetLength (g0,num);

SetLength (dk, num);

SetLength (v, num);

SetLength (u, num);

SetLength (x1,num);

SetLength (x0,num);

SetLength (Hu, num);

SetLength (Amat, num, num);

SetLength (Hmat, num, num);

SetLength (vuTH, num, num);

SetLength (HuvT, num, num);

SetLength (vvT, num, num);

h:=0.1;

for i:=0 to num-1 do

x0[i]: =x[i];

end;

procedureTMinimization.minimizationGoldfarb;

vari, j: integer;

cond1,cond2:real;

begin

g0:=Grad (x0);

for i:=0 to num-1 do

dk[i]: =-g0[i];

Hmat:=MakeOneMatrix (Hmat);

Amat:=NullMatrix (Amat);

chart.SeriesList[0].AddXY (x0[0], x0[1]);

zm:=0;

n:=0;

repeat

inc (n);

zm:=mp2(1,0.5,0.1);

for i:=0 to num-1 do

x1[i]: =x0[i]+zm*dk[i];

for i:=0 to num-1 do

v[i]: =zm*dk[i];

for i:=0 to num-1 do

x0[i]: =x1[i];

g1:=Grad (x1);

for i:=0 to num-1 do

u[i]: =g1[i]-g0[i];

for i:=0 to num-1 do

g0[i]: =g1[i];

chart.SeriesList[0].AddXY (g1[0], g1[1]);

//uTv=vTu

uTv:=0;

for i:=0 to num-1 do

uTv:=uTv+v[i]*u[i];

vuTH[0][0]:=v[0]*u[0]*Hmat[0][0]+v[0]*u[1]*Hmat[1][0];

vuTH[0][1]:=v[0]*u[0]*Hmat[0][1]+v[0]*u[1]*Hmat[1][1];

vuTH[1][0]:=v[1]*u[0]*Hmat[0][0]+v[1]*u[1]*Hmat[1][0];

vuTH[1][1]:=v[1]*u[0]*Hmat[0][1]+v[1]*u[1]*Hmat[1][1];

for i:=0 to num-1 do

for j:=0 to num-1 do

Amat[i][j]: =0;

for i:=0 to num-1 do

for j:=0 to num-1 do

vuTH[i][j]: =-vuTH[i][j];

// vvT

for i:=0 to num-1 do

for j:=0 to num-1 do

vvT[i][j]: =v[i]*v[j];

for i:=0 to num-1 do

for j:=0 to num-1 do

Hu[i]: =Hu[i]+Hmat[i][j]*u[j];

//HuvT

for i:=0 to num-1 do

for j:=0 to num-1 do

HuvT[i][j]: =Hu[i]*v[j];

uTHu:=(Hmat[0][0]*u[0]+Hmat[0][1]*u[1])*u[0]+(Hmat[1][0]*u[0]+Hmat[1][1]*u[1])*u[1];

uTHu:=1+uTHu/uTv;

for i:=0 to num-1 do

for j:=0 to num-1 do

vvT[i][j]: =vvT[i][j]*uTHu;

for i:=0 to num-1 do

for j:=0 to num-1 do

Amat[i][j]: =vuTH[i][j]+HuvT[i][j]+vvT[i][j];

for i:=0 to num-1 do

for j:=0 to num-1 do

Amat[i][j]: =Amat[i][j]/uTv;

for i:=0 to num-1 do

for j:=0 to num-1 do

Hmat[i][j]: =Hmat[i][j]+Amat[i][j];

for i:=0 to num-1 do

dk[i]: =0;

for i:=0 to num-1 do

for j:=0 to num-1 do

dk[i]: =dk[i]+Hmat[i][j]*g1[j];

for i:=0 to num-1 do

dk[i]: =-dk[i];

cond1:=0;

cond2:=0;

for i:=0 to num-1 do

cond1:=cond1+sqr (v[i]);

for i:=0 to num-1 do

cond2:=cond2+sqr (g1[i]);

cond1:=abs (sqrt (cond1));

cond2:=abs (sqrt (cond2));

until (cond1+cond2)

end;

functionTMinimization.NullMatrix (hm: TMas2): TMas2;

vari, j: integer;

begin

for i:=0 to num-1 do

for j:=0 to num-1 do

hm[i][j]: =0;

result:=hm;

end;

functionTMinimization.GetFinalGradient: TMas1;

begin

GetFinalGradient:=g1;

end;

end.

Π‘Π»ΠΎΠΊ-схСма Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°

ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ вСсь тСкст
Π—Π°ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Ρ„ΠΎΡ€ΠΌΡƒ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Ρ€Π°Π±ΠΎΡ‚ΠΎΠΉ