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

Найти ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ n ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ Π“ΠΎΠ»ΡŒΠ΄Ρ„Π°Ρ€Π±Π°

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

Π¨ Π•ΡΠ»ΠΈ ΠΆΠ΅ функция гладкая, Ρ‚. Π΅. ΠΈΠΌΠ΅Π΅Ρ‚ Π½Π΅ΠΏΡ€Π΅Ρ€Ρ‹Π²Π½Ρ‹Π΅ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½Ρ‹Π΅, Ρ‚ΠΎ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ эффСктивным сСбя Π·Π°Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΠΎΠ²Π°Π»ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π“ΠΎΠ»ΡŒΠ΄Ρ„Π°Ρ€Π±Π° ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π”Π€ΠŸ (ΠΎΠ½ΠΈ Π² 2βˆ’6 Ρ€Π°Π· эффСктивнСС ΠΏΠΎ Π±Ρ‹ΡΡ‚Ρ€ΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΠΈΡŽ Ρ‡Π΅ΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π ΠΎΠ·Π΅Π½Π±Ρ€ΠΎΠΊΠ°). Π›ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹: сходятся ΠΊ ΠΊΠ°ΠΊΠΎΠΌΡƒ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ Π»ΠΎΠΊΠ°Π»ΡŒΠ½ΠΎΠΌΡƒ экстрСмуму Ρ†Π΅Π»Π΅Π²ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. Π’ ΡΠ»ΡƒΡ‡Π°Π΅ ΡƒΠ½ΠΈΠΌΠΎΠ΄Π°Π»ΡŒΠ½ΠΎΠΉ Ρ†Π΅Π»Π΅Π²ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, этот экстрСмум СдинствСнСн, ΠΈ Π±ΡƒΠ΄Π΅Ρ‚ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹ΠΌ максимумом / ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌΠΎΠΌ… Π§ΠΈΡ‚Π°Ρ‚ΡŒ Π΅Ρ‰Ρ‘ >

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

ΠŸΠžΠ―Π‘ΠΠ˜Π’Π•Π›Π¬ΠΠΠ― Π—ΠΠŸΠ˜Π‘ΠšΠ ΠΊ ΠΊΡƒΡ€ΡΠΎΠ²ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Π΅ Π½Π° Ρ‚Π΅ΠΌΡƒ

«ΠΠ°ΠΉΡ‚ΠΈ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ n ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ Π“ΠΎΠ»ΡŒΠ΄Ρ„Π°Ρ€Π±Π°»

Π‘ Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠΈ Π·Π°Π΄Π°Ρ‡Π΅ΠΉ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ называСтся Π·Π°Π΄Π°Ρ‡Π° нахоТдСния экстрСмума вСщСствСнной Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ области. Π§Π΅ΠΌ большС ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΌΡ‹ Π·Π½Π°Π΅ΠΌ, Ρ‚Π΅ΠΌ Π±ΠΎΠ»Π΅Π΅ эффСктивно ΠΈ Π±Ρ‹ΡΡ‚Ρ€ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΡΡ‚ΠΈΡ‡ΡŒ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌΠ°, Ссли ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠ΅ΠΉ. ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΊΠ»Π°ΡΡΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΡŽΡ‚ Π² ΡΠΎΠΎΡ‚вСтствии с Π·Π°Π΄Π°Ρ‡Π°ΠΌΠΈ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ:

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

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

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

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

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

ΠœΠ΅Ρ‚ΠΎΠ΄ Π“ΠΎΠ»ΡŒΠ΄Ρ„Π°Ρ€Π±Π° Π±Ρ‹Π» Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½ Π² 1970 Π³ΠΎΠ΄Ρƒ, Π½ΠΎ Π΄ΠΎ ΡΠΈΡ… ΠΏΠΎΡ€ являСтся вСсьма эффСктивным ΠΈ ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½Ρ‹ΠΌ. Поиск состоит ΠΈΠ· ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ шагов ΠΈΡΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ поиска Π²ΠΎΠΊΡ€ΡƒΠ³ базисной Ρ‚ΠΎΡ‡ΠΊΠΈ, Π·Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π² ΡΠ»ΡƒΡ‡Π°Π΅ успСха слСдуСт поиск ΠΏΠΎ ΠΎΠ±Ρ€Π°Π·Ρ†Ρƒ. Он ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΠ΅Ρ‚ся для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π·Π°Π΄Π°Ρ‡ΠΈ минимизирования Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π±Π΅Π· ΡƒΡ‡Ρ‘Ρ‚Π° ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ.

ОписаниС Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ² Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ поставлСнной Π·Π°Π΄Π°Ρ‡ΠΈ

Π’ Ρ€Π°ΡΡΠΌΠΎΡ‚Ρ€Π΅Π½Π½ΠΎΠΌ Π½ΠΈΠΆΠ΅ классС ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² с ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΎΠΉ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° идСя Π°Π΄Π°ΠΏΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ управлСния.

Π˜Π½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡ ΠΎ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΡ… итСрациях накапливаСтся Π² ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π΅ Н, которая ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ накоплСния ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ постСпСнно прСвращаСтся Π² ΠΎΠ±Ρ€Π°Ρ‚Π½ΡƒΡŽ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ ГСссС ΠŸΡ€ΠΈ этом ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π° Π²Ρ‚ΠΎΡ€Ρ‹Ρ… ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½Ρ‹Ρ… Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΌ шагС Π½Π΅ ΠΏΠ΅Ρ€Π΅ΡΡ‡ΠΈΡ‚ываСтся.

ΠœΠ΅Ρ‚ΠΎΠ΄ Π“ΠΎΠ»ΡŒΠ΄Ρ„Π°Ρ€Π±Π° Он Π±ΠΎΠ»Π΅Π΅ устойчив ΠΊ ΠΎΡˆΠΈΠ±ΠΊΠ°ΠΌ вычислСний, Ρ‡Π΅ΠΌ Π”Π€ΠŸ

ОписаниС тСстовой Π·Π°Π΄Π°Ρ‡ΠΈ ΠΈ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

Рассмотрим Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Π·Π°Π΄Π°Ρ‡ΠΈ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ Π΄Π°Π½Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

Π§Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Π½Π°ΡˆΡƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΠΎΡΡ‚ΡƒΠΏΠΈΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

1. ΠœΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ввСсти значСния Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ (x[0]+2x[1])2Π² Unit1. Π­Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ Ρ‚Π°ΠΊ, ΠΊΠ°ΠΊ прСдставлСно Π½Π° Ρ€ΠΈΡΡƒΠ½ΠΊΠ΅ 1.

Рис. 1.

2. И Π΄Π»Ρ Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΎΡ‚Π²Π΅Ρ‚, ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π½Π°ΠΆΠ°Ρ‚ΡŒ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ «Π’вСсти». Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ появится Π³Ρ€Π°Ρ„ΠΈΠΊ, это ΠΈ Π±ΡƒΠ΄Π΅Ρ‚ наш ΠΎΡ‚Π²Π΅Ρ‚ (Рис. 2.)

Рис. 2.

ΠžΡ‚Π²Π΅Ρ‚: ΠœΠΈΠ½ΠΈΠΌΡƒΠΌ x=(0,0057 -0,0029)

f (x)=0,0000

Π“Ρ€Π°Π΄ΠΈΠ΅Π½Ρ‚ (0,0000 0,0000)

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

Π¨ Π‘Ρ€Π΅Π΄ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² Π½ΡƒΠ»Π΅Π²ΠΎΠ³ΠΎ порядка наибольшСй ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒΡŽ ΠΎΠ±Π»Π°Π΄Π°ΡŽΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π ΠΎΠ·Π΅Π½Π±Ρ€ΠΎΠΊΠ° ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΠ΅Π»Π΄Π΅Ρ€Π°ΠœΠΈΠ΄Π°

Π¨ Π•ΡΠ»ΠΈ ΠΆΠ΅ функция гладкая, Ρ‚. Π΅. ΠΈΠΌΠ΅Π΅Ρ‚ Π½Π΅ΠΏΡ€Π΅Ρ€Ρ‹Π²Π½Ρ‹Π΅ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½Ρ‹Π΅, Ρ‚ΠΎ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ эффСктивным сСбя Π·Π°Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΠΎΠ²Π°Π»ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π“ΠΎΠ»ΡŒΠ΄Ρ„Π°Ρ€Π±Π° ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π”Π€ΠŸ (ΠΎΠ½ΠΈ Π² 2−6 Ρ€Π°Π· эффСктивнСС ΠΏΠΎ Π±Ρ‹ΡΡ‚Ρ€ΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΠΈΡŽ Ρ‡Π΅ΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π ΠΎΠ·Π΅Π½Π±Ρ€ΠΎΠΊΠ°).

Π¨ ΠΠ° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ зависит ΠΎΡ‚ Π²ΠΈΠ΄Π° ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΡƒΠ΅ΠΌΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. ОсобСнно Ссли количСство ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Ρ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… большС 4−5 Π½ΡƒΠΆΠ½ΠΎ ΠΈΠΌΠ΅Ρ‚ΡŒ Π² Π·Π°ΠΏΠ°ΡΠ΅ нСсколько Ρ€Π°Π·Π½ΠΎΠΎΠ±Ρ€Π°Π·Π½Ρ‹Ρ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ², Π° ΠΏΡ€ΠΎΡ†Π΅ΡΡ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ.

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

2. ΠšΠ°Π»ΠΈΡ‚ΠΊΠΈΠ½ Н. Н. ЧислСнныС ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹. — Πœ.:Наука, 1978. 512 с.

3. Π€Π»Π΅Π½ΠΎΠ² М. Π•. Библия Delphi. — 2-eΠΈΠ·Π΄., ΠΏΠ΅Ρ€Π΅Ρ€Π°Π±. ΠΈ Π΄ΠΎΠΏ. — Π‘Пб.:Π‘Π₯Π’-ΠŸΠ΅Ρ‚Π΅Ρ€Π±ΡƒΡ€Π³, 2008.-800 с.

4. ΠœΠΎΡ‰Π½Ρ‹Π΅ ΠΏΡ€ΠΈΠ±ΠΎΡ€Ρ‹ Π‘Π’Π§ с Π΄ΠΈΡΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΌ взаимодСйствиСм (тСория ΠΈ ΠΎΠΏΡ‚имизация)

ВСкст ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

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

TForm1 = class (TForm)

Memo1: TMemo;

Button1: TButton;

Chart1: TChart;

Series1: TLineSeries;

procedure Button1Click (Sender: TObject);

private

{Private declarations}

public

{Public declarations}

end;

var

Form1:TForm;

leftmin, leftmax, bottommin, bottommax: integer;

funcno:integer;

implementation

{$R *.dfm}

functionfunc (x:TMas1):real;

begin

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

end;

procedure TForm1. Button1Click (Sender: TObject);

vari, j: integer;

x, g: TMas1;

myHmat:TMas2;

eps:single;

ss:TUnit2;

begin

memo1. Lines. Clear;

with Chart1 do begin

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:=0.1;

SetLength (x, 2);

SetLength (g, 2);

SetLength (myHmat, 2,2);

// НАЧАЛЬНЫЕ ΠŸΠ•Π Π•ΠœΠ•ΠΠΠ«Π•

x[0]: =3;

x[1]:=6;

ss:=TUnit2. Create (x, 2, eps, func, Chart1); // (массив с ΠΏΠ΅Ρ€ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ, количСство ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ, функция, TChart Π³Ρ€Π°Ρ„ΠΈΠΊ)

ss.minimizationGoldfarb; // минимизация

x:=ss.x1;

g:=ss.g1;

myHmat:=ss. Hmat;

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

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

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

end;

end.

unit Unit2;

interface

usesDialogs, Chart;

type

TMas2 = array of array of real;

TMas1 = array of real;

fun=function (x:TMas1):real;

TUnit2 = 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;

function Grad (x:TMas1):TMas1;

functionMakeOneMatrix (hm: TMas2): TMas2;

functionNullMatrix (hm:TMas2):TMas2;

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

procedureminimizationGoldfarb;

end;

implementation

function TUnit2. 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;

function TUnit2. 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;

function TUnit2. 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 TUnit2. 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;

constructor TUnit2. Create;

var i: integer;

begin

eps:=meps;

func:=mfunc;

num:=enum;

chart:=mchart;

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;

procedure TUnit2. 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];

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

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];

//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;

function TUnit2. 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;

end.

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

оптимизация экстрСмум ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ

Π”ΠΠ¦Π˜ΠšΠ›

i=0 tonum-1

НЕВ

Π’ΠΎΠ·Π²Ρ€Π°Ρ‚ Ρ†ΠΈΠΊΠ»Π°

НСт ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π°

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