ΠΡΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² ΡΠ΅ΡΠ΅Π½ΠΈΡ Π»ΠΈΠ½Π΅ΠΉΠ½ΡΡ ΡΡΠ°Π²Π½Π΅Π½ΠΈΠΉ
Π‘ΡΠ°Π²Π½ΠΈΠΌ ΡΠ΅ΠΏΠ΅ΡΡ Π΄Π°Π½Π½ΡΠΉ ΠΌΠ΅ΡΠΎΠ΄ Ρ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ. Π ΠΠ Π½Π° ΠΎΡΠ΅ΡΠ΅Π΄Π½ΠΎΠΌ ΡΠ°Π³Π΅ Π²ΡΠ±ΠΈΡΠ°Π΅ΡΡΡ ΡΠ°ΠΌΡΠΉ ΠΊΠΎΡΠΎΡΠΊΠΈΠΉ ΠΏΡΡΡ, Π²Π΅Π΄ΡΡΠΈΠΉ Π² Π΄Π°Π½Π½ΡΡ ΡΠΎΡΠΊΡ; Π²ΡΠ΅ ΠΎΡΡΠ°Π»ΡΠ½ΡΠ΅ ΠΏΡΡΠΈ ΠΈΡΠΊΠ»ΡΡΠ°ΡΡΡΡ ΠΈΠ· Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅Π³ΠΎ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½ΠΈΡ. Π ΠΠΠ ΠΏΡΠΈ ΡΠ°Π·Π±ΠΈΠ΅Π½ΠΈΠΈ ΡΠ°ΠΊΠΆΠ΅ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅ΡΡΡ ΡΠ°ΠΌΡΠΉ ΠΊΠΎΡΠΎΡΠΊΠΈΠΉ ΠΏΡΡΡ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ (ij) ΠΈ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΎΡΡΠ°Π»ΡΠ½ΡΡ ΠΏΡΡΠ΅ΠΉ (). ΠΠΎ, Π² ΠΎΡΠ»ΠΈΡΠΈΠΈ ΠΎΡ ΠΠ, ΠΌΡ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ (ij) ΠΈΡΠΊΠ»ΡΡΠΈΡΡ ΠΈΠ· Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅Π³ΠΎ… Π§ΠΈΡΠ°ΡΡ Π΅ΡΡ >
ΠΡΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² ΡΠ΅ΡΠ΅Π½ΠΈΡ Π»ΠΈΠ½Π΅ΠΉΠ½ΡΡ ΡΡΠ°Π²Π½Π΅Π½ΠΈΠΉ (ΡΠ΅ΡΠ΅ΡΠ°Ρ, ΠΊΡΡΡΠΎΠ²Π°Ρ, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½ΡΡΠΎΠ»ΡΠ½Π°Ρ)
ΠΠ΅ΡΠΎΠ΄ Π²Π΅ΡΠ²Π΅ΠΉ ΠΈ Π³ΡΠ°Π½ΠΈΡ
ΠΠ΅ΡΠΎΠ΄ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΠΏΠΎΡΡΠ΄ΠΊΠ°
ΠΠ΅ΡΠΎΠ΄ Π²ΡΠΎΡΠΎΠ³ΠΎ ΠΏΠΎΡΡΠ΄ΠΊΠ°
ΠΠΏΡΠΈΠΌΠ°Π»ΡΠ½ΡΠΉ ΠΏΠΎΠΈΡΠΊ
ΠΠ°ΡΡΠΈΠ²Π½ΡΠΉ ΠΏΠΎΠΈΡΠΊ
ΠΌΠ΅ΡΠΎΠ΄ Π΄ΠΈΡ ΠΎΡΠΎΠΌΠΈΠΈ
ΠΠ΅ΡΠΎΠ΄ Π·ΠΎΠ»ΠΎΡΠΎΠ³ΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΡ
ΠΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅
ΠΠΈΠ½Π΅ΠΉΠ½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅. ΠΠ΅ΡΠΎΠ΄ ΠΠΎΡΠ΄Π°Π½Π°-ΠΠ°ΡΡΡΠ°.
ΠΠ΅ΡΠΎΠ΄ Π²Π΅ΡΠ²Π΅ΠΉ ΠΈ Π³ΡΠ°Π½ΠΈΡ
Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΡΠΈΠΌΠ΅ΡΠ° ΠΌΠ΅ΡΠΎΠ΄Π° Π²Π΅ΡΠ²Π΅ΠΉ ΠΈ Π³ΡΠ°Π½ΠΈΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ Π·Π°Π΄Π°ΡΡ ΠΊΠΎΠΌΠΌΠΈΠ²ΠΎΡΠΆΠ΅ΡΠ°.
ΠΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Π·Π°Π΄Π°ΡΠΈ.
ΠΠΌΠ΅Π΅ΡΡΡ N ΠΏΡΠ½ΠΊΡΠΎΠ², ΡΠ°ΡΡΡΠΎΡΠ½ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ ΠΊΠΎΡΠΎΡΡΠΌΠΈ ΠΈΠ·Π²Π΅ΡΡΠ½Ρ. ΠΠ΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ, Π½Π°ΡΠ°Π² Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΡ ΠΈΠ· ΠΏ. 1. ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ ΠΎΠ±ΠΎΠΉΡΠΈ Π²ΡΠ΅ ΠΎΡΡΠ°Π»ΡΠ½ΡΠ΅ ΠΏΠΎ ΡΠ°ΠΌΠΎΠΌΡ ΠΊΠΎΡΠΎΡΠΊΠΎΠΌΡ ΠΏΡΡΠΈ ΠΈ Π²Π΅ΡΠ½ΡΡΡΡΡ Π² ΠΏ. 1. Π£ΡΠ»ΠΎΠ²ΠΈΠ΅ Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ: Π² ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΏΡΠ½ΠΊΡ Π½Π°Π΄ΠΎ Π²ΠΎΠΉΡΠΈ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΡΠ°Π· ΠΈ ΠΎΠ΄ΠΈΠ½ ΡΠ°Π· ΠΈΠ· Π½Π΅Π³ΠΎ Π²ΡΠΉΡΠΈ. ΠΠ° ΡΠΈΡ. 1. ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ ΠΏΡΠΈΠΌΠ΅Ρ Π·Π°Π΄Π°ΡΠΈ Π΄Π»Ρ N = 5. ΠΠ° ΡΠ΅Π±ΡΠ°Ρ , ΡΠΎΠ΅Π΄ΠΈΠ½ΡΡΡΠΈΡ Π²Π΅ΡΡΠΈΠ½Ρ Π³ΡΠ°ΡΠ° (ΠΏΡΠ½ΠΊΡΡ), ΡΠΊΠ°Π·Π°Π½Ρ ΡΠ°ΡΡΡΠΎΡΠ½ΠΈΡ.
Π ΠΈΡ. 1.
Π£ΡΠ»ΠΎΠ²ΠΈΠ΅ Π΄Π΅Π»Π°Π΅Ρ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠΌ Π²ΡΠ±ΠΎΡ Π½Π° Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠΌ ΡΠ°Π³Π΅ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΠΉ ΠΎΠΏΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΈΠ· ΠΏΡΡΠ΅ΠΉ, ΠΏΡΠΈΠ²ΠΎΠ΄ΡΡΠΈΡ Π² Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΡΠΎΡΠΊΡ. Π Π΅ΡΠ΅Π½ΠΈΠ΅ Π·Π°Π΄Π°ΡΠΈ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ ΠΏΡΡΠΌΠΎΠ³ΠΎ ΠΏΠ΅ΡΠ΅Π±ΠΎΡΠ° Π²ΡΠ΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΡ (N-1)! Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π»ΠΈΡΡ Π΄Π»Ρ ΠΌΠ°Π»ΡΡ N, ΠΠ΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌ ΠΌΠ΅ΡΠΎΠ΄, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠΌΠ΅Π½ΡΡΠ°ΡΡ ΡΠΈΡΠ»ΠΎ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅ΠΌΡΡ Π²Π°ΡΠΈΠ°Π½ΡΠΎΠ². Π’Π°ΠΊΠΈΠΌ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΌΠ΅ΡΠΎΠ΄ Π²Π΅ΡΠ²Π΅ΠΉ ΠΈ Π³ΡΠ°Π½ΠΈΡ (ΠΠΠ’).
ΠΡΠ½ΠΎΠ²Π½ΠΎΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄Π° Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ ΡΡΡΠΎΡΡΡΡ Π½ΠΈΠΆΠ½ΠΈΠ΅ ΠΎΡΠ΅Π½ΠΊΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠ΅Π»ΠΈ (Π€Π¦), ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΠ΅ ΠΎΡΠ±ΡΠ°ΠΊΠΎΠ²Π°ΡΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Π²Π°ΡΠΈΠ°Π½ΡΠΎΠ², Π΄Π»Ρ ΠΊΠΎΡΠΎΡΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π€Π¦ Π·Π°Π²Π΅Π΄ΠΎΠΌΠΎ Ρ ΡΠΆΠ΅. ΠΠΎ ΠΌΠ΅ΡΠ΅ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½ΠΈΡ Π½ΠΎΠ²ΡΡ Π²Π°ΡΠΈΠ°Π½ΡΠΎΠ² Π³ΡΠ°Π½ΠΈΡΠ° ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ°Π΅ΡΡΡ Π²Π½ΠΈΠ· (Π² Π·Π°Π΄Π°ΡΠ΅ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ) Π΄ΠΎ ΡΠ΅Ρ ΠΏΠΎΡ, ΠΏΠΎΠΊΠ° ΡΠΈΡΠ»ΠΎ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ Π²Π°ΡΠΈΠ°Π½ΡΠΎΠ² Π½Π΅ ΡΠΌΠ΅Π½ΡΡΠ°Π΅ΡΡΡ Π½Π°ΡΡΠΎΠ»ΡΠΊΠΎ, ΡΡΠΎ Π²ΡΠ±ΠΎΡ Π»ΡΡΡΠ΅Π³ΠΎ ΠΈΠ· Π½ΠΈΡ Π±ΡΠ΄Π΅Ρ ΡΠ΄Π΅Π»Π°Π½ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΡΠΌ ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ΠΌ.
Π Π΅ΡΠ΅Π½ΠΈΠ΅ Π·Π°Π΄Π°ΡΠΈ.
ΠΠ°ΠΏΠΈΡΠ΅ΠΌ ΠΈΡΡ ΠΎΠ΄Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ Π² Π²ΠΈΠ΄Π΅ ΡΠ°Π±Π»ΠΈΡΡ C0 = (Cij). Π Π½Π΅ΠΉ i ΠΈ j — Π½ΠΎΠΌΠ΅ΡΠ° ΠΏΡΠ½ΠΊΡΠΎΠ², Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΡΠ°Π³Π΅ ΡΠΎΠ²Π΅ΡΡΠ°Π΅ΡΡΡ ΠΈΠ· i Π² j, Π΄Π»ΠΈΠ½Π° ΡΡΠΎΠ³ΠΎ ΡΠ°Π³Π° ΠΏΡΡΠΈ Cij, ΠΊΡΠ΅ΡΡΠΈΠΊΠ°ΠΌΠΈ ΠΎΡΠΌΠ΅ΡΠ΅Π½Ρ Π·Π°ΠΏΡΠ΅ΡΠ΅Π½Π½ΡΠ΅ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Ρ. ΠΡΡΡΡ Π‘i = min Cij. ΠΠ°ΠΉΠ΄Π΅ΠΌ Π‘i Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ i (Π² ΡΠ°Π±Π»ΠΈΡΠ΅ ΡΡΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΠΎΠ΄ΡΠ΅ΡΠΊΠ½ΡΡΡ), ΠΏΠΎΡΠ»Π΅ ΡΠ΅Π³ΠΎ ΡΠΎΠ²Π΅ΡΡΠΈΠΌ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΌΠ°ΡΡΠΈΡΡ Π‘0 ΠΊ C01 ΠΏΠΎ ΡΡΡΠΎΠΊΠ°ΠΌ, Π³Π΄Π΅ Cij1 Π²ΡΡΠΈΡΠ»ΡΡΡΡΡ ΠΏΠΎ ΡΠΎΡΠΌΡΠ»Π°ΠΌ Cij1 = Cij — Ci. ΠΠ±ΠΎΠ·Π½Π°ΡΠΈΠΌ d01 = Ci. ΠΈ Cj1 = min Cij. ΠΠ°ΠΉΠ΄Π΅ΠΌ Cj Π΄Π»Ρ Π²ΡΠ΅Ρ j ΠΈ Π²ΡΠΏΠΎΠ»Π½ΠΈΠΌ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ C01 ΠΏΠΎ ΡΡΠΎΠ»Π±ΡΠ°ΠΌ. Π ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Π²ΡΠ΅ Π‘j = 0, ΠΏΠΎΡΡΠΎΠΌΡ C02 = C01, ΠΊΠΎΠ½ΡΡΠ°Π½ΡΠ° ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ΠΈΡ ΠΏΠΎ ΡΡΠΎΠ»Π±ΡΠ°ΠΌ d02 = 0, d0 = d01 + d02 = 23.
ΠΠΎΠΆΠ½ΠΎ ΡΡΠ²Π΅ΡΠΆΠ΄Π°ΡΡ, ΡΡΠΎ Π·Π°Π΄Π°ΡΠ°ΠΌ Ρ ΠΌΠ°ΡΡΠΈΡΠ°ΠΌΠΈ C0 ΠΈ C01 ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ ΠΎΠ΄ΠΈΠ½ ΠΈ ΡΠΎΡ ΠΆΠ΅ ΠΎΠΏΡΠΈΠΌΠ°Π»ΡΠ½ΡΠΉ ΠΌΠ°ΡΡΡΡΡ. ΠΠ»ΠΈΠ½Π° Π»ΡΠ±ΠΎΠ³ΠΎ ΠΏΡΡΠΈ LS (C0) ΠΈ LS (C02) ΡΠ²ΡΠ·Π°Π½Ρ ΡΠΎΡΠΌΡΠ»ΠΎΠΉ LS (C0) = LS (C02) + d0. ΡΡΠΎ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΈΠ· ΡΡΠ»ΠΎΠ²ΠΈΡ. Π’ΠΎΠ³Π΄Π° Π»ΡΠ±ΠΎΠΉ ΠΏΡΡΡ ΠΏΠΎ ΠΌΠ°ΡΡΠΈΡΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΎ ΠΊΠ»Π΅ΡΠΊΠ°ΠΌ ΡΠ°Π±Π»ΠΈΡΡ, ΠΏΡΠΈΡΠ΅ΠΌ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡΡΡΠΎΠΊΠ΅ ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΡΡΠΎΠ»Π±ΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ±ΡΠ²Π°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΡΠ°Π·.
ΠΠ΅Π»ΠΈΡΠΈΠ½Ρ d0 ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π½ΠΈΠΆΠ½Π΅ΠΉ Π³ΡΠ°Π½ΠΈΡΡ ΠΏΡΠΈ ΠΎΡΠ΅Π½ΠΊΠ΅ Π²ΡΠ΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΡ ΠΏΡΡΠ΅ΠΉ.
Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΏΡΡΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π²ΠΊΠ»ΡΡΠ°Π΅Ρ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ ΠΈΠ· i Π² j. ΠΠ»Ρ Π½Π΅Π³ΠΎ LS ij = d0 + Cij. Π’Π°ΠΊΠΎΠΉ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ Π²ΡΠ΅Π³Π΄Π° Π΅ΡΡΡ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π² ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΉ ΠΌΠ°ΡΡΠΈΡΠ΅ Ρ ΠΎΡΡ Π±Ρ ΠΎΠ΄ΠΈΠ½ ΡΠ»Π΅ΠΌΠ΅Π½Ρ Π² ΡΡΡΠΎΠΊΠ΅ — Π½ΡΠ»Π΅Π²ΠΎΠΉ. ΠΡΠ±ΠΈΡΠ°Ρ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π½ΠΈΡ , ΠΌΡ Π²ΡΠ±ΠΈΡΠ°Π΅ΠΌ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠ°Π³Π° ΠΏΡΡΠΈ (ΡΠ°ΠΌΡΠΉ ΠΊΠΎΡΠΎΡΠΊΠΈΠΉ ΠΏΠ΅ΡΠ²ΡΠΉ ΡΠ°Π³). ΠΡΠΈ ΡΡΠΎΠΌ, ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ, ΠΌΡ Π½Π΅ Π·Π½Π°Π΅ΠΌ, ΠΊΠ°ΠΊ ΡΡΠΎ ΠΎΡΡΠ°Π·ΠΈΡΡΡ Π½Π° Π΄Π»ΠΈΠ½Π΅ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠ΅Π³ΠΎ ΠΏΡΡΠΈ. ΠΠ±ΠΎΠ·Π½Π°ΡΠΈΠΌ (ij) ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΏΡΡΠ΅ΠΉ, Π½Π΅ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΡ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΡΠΉ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ ΠΈΠ· i Π² j. ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΈΠ· i Π½Π°Π΄ΠΎ ΠΊΡΠ΄Π°-ΡΠΎ Π²ΡΠΉΡΠΈ, Π° Π² j ΠΎΡΠΊΡΠ΄Π°-ΡΠΎ ΠΏΡΠΈΠΉΡΠΈ, ΡΠΎ ΡΡΠΎΠΌΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Ρ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ ΠΎΡΠ΅Π½ΠΊΠ°:
LS (ij) = d0 + ij, Π³Π΄Π΅ ij =
Π’ΠΎΠ³Π΄Π° Π½ΠΈΠΆΠ½Π΅ΠΉ ΠΎΡΠ΅Π½ΠΊΠΎΠΉ Π΄Π»Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π° ΠΏΡΡΠ΅ΠΉ Π±ΡΠ΄Π΅Ρ 2 = d0 + ij. ΠΡ Π·Π°ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠΎΠ²Π°Π½Ρ Π² Π²ΡΠ±ΠΎΡΠ΅ ΡΠ°ΠΊΠΎΠ³ΠΎ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Π° ij, Π΄Π»Ρ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΡΡΠ° ΠΎΡΠ΅Π½ΠΊΠ° ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ°ΠΌΠΎΠΉ Π²ΡΡΠΎΠΊΠΎΠΉ. ΠΡΠΎΡ Π²ΡΠ±ΠΎΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ, ΠΎΡΡΡΠΊΠ°Π² ΡΡΠ΅Π΄ΠΈ Π½ΡΠ»Π΅Π²ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² i ΡΡΡΠΎΠΊΠΈ ΡΠ°ΠΊΠΎΠΉ, ΠΊΠΎΡΠΎΡΠΎΠΌΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ 2 = max ij. ΠΡΠ±ΠΎΡΠΎΠΌ ΠΏΠ°ΡΡ (ij) Π²ΡΠ΅ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΡ ΠΏΡΡΠ΅ΠΉ ΡΠ°Π·Π±ΠΈΠ²Π°Π΅ΡΡΡ Π½Π° Π΄Π²Π° ΠΏΠΎΠ΄ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π°. ΠΠ΄Π½ΠΎ ΠΈΠ· Π½ΠΈΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ (ij) (Π΅ΠΌΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ ΠΎΡΠ΅Π½ΠΊΠ° 1 = d0 + 1), Π΄ΡΡΠ³ΠΎΠ΅ (ij) (Π΅ΠΌΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ ΠΎΡΠ΅Π½ΠΊΠ° 2 = d0 + 2).
Π Π½Π°ΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΏΠ΅ΡΠ²ΡΠΌ ΡΠ°Π³ΠΎΠΌ ΠΏΡΡΠΈ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ ΠΈΠ· ΠΏ. 1. Π‘ij= 0 Π΄Π»Ρ i, j = 1,2. ΠΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Π²ΡΠ΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΡ ΠΏΡΡΠ΅ΠΉ ΡΠ°Π·Π±ΠΈΠ²Π°Π΅ΠΌ Π½Π° Π΄Π²Π°: ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΡ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ (12) ΠΈ Π½Π΅ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΡ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ (12). Π‘ΡΡΠΎΠΈΠΌ Π΄Π»Ρ Π½ΠΈΡ Π½ΠΈΠΆΠ½ΠΈΠ΅ ΠΎΡΠ΅Π½ΠΊΠΈ. 1 = d0 = 23. ΠΠ»Ρ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Π°, Π½Π΅ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠ΅Π³ΠΎ (12), ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ ΠΏΡΡΡ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Ρ (14) ΠΈ (32). ΠΠ° ΡΡΠΎΠΌ ΠΏΠ΅ΡΠ²Π°Ρ ΠΈΡΠ΅ΡΠ°ΡΠΈΡ Π²ΡΡΠΈΡΠ»ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ° Π·Π°ΠΊΠ°Π½ΡΠΈΠ²Π°Π΅ΡΡΡ. ΠΡΠΈ Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅ΠΌ Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠΈ Π·Π° ΠΏΠΎΠΈΡΠΊΠΎΠΌ ΠΎΠΏΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΡΠΈ Π±ΡΠ΄Π΅ΠΌ Π½Π°Π±Π»ΡΠ΄Π°ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π΄Π΅ΡΠ΅Π²Π° Π²Π°ΡΠΈΠ°Π½ΡΠΎΠ² (ΡΠΈΡ.2).
Π ΠΈΡ. 2.
Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΠ΅ΠΏΠ΅ΡΡ ΠΏΠ΅ΡΠ²ΠΎΠ΅ ΠΏΠΎΠ΄ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ. Π Π½Π΅ΠΌ ΡΠΆΠ΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ (12), ΠΏΠΎΡΡΠΎΠΌΡ Π² ΡΠ°Π±Π»ΠΈΡΠ΅ Π‘02 ΡΡΡΠΎΠΊΡ 1 ΠΈ ΡΡΠΎΠ»Π±Π΅Ρ 2 ΡΠ΄Π°Π»ΡΠ΅ΠΌ (Π²ΡΡΠ΅ΡΠΊΠΈΠ²Π°Π΅ΠΌ) ΠΈΠ· Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅Π³ΠΎ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½ΠΈΡ. Π‘02 ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ΅ΡΡΡ Π² Π‘1, Π° ΠΏΠΎΡΠ»Π΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ΠΈΡ — Π² Π‘12. Π Π²Π΅ΡΡ Π½Π΅ΠΌ Π»Π΅Π²ΠΎΠΌ ΡΠ³Π»Ρ ΡΠ°Π±Π»ΠΈΡΡ Π‘1 ΡΡΠ°Π²ΠΈΠΌ ΠΊΡΠ΅ΡΡΠΈΠΊ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ (21) Π² ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅ΠΌΠΎΠΌ ΠΏΠΎΠ΄ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π΅ (12) ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡΡ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠΌ.
Π’Π΅ΠΏΠ΅ΡΡ Π½Π°Π΄ Π½ΠΎΠ²ΠΎΠΉ ΡΠ°Π±Π»ΠΈΡΠ΅ΠΉ ΠΏΡΠΎΠ΄Π΅Π»ΡΠ²Π°Π΅ΠΌ ΡΠ΅ ΠΆΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ, ΡΡΠΎ ΠΈ Π½Π°Π΄ Π‘2. ΠΠ»Ρ Π‘12 ΠΊΠΎΠ½ΡΡΠ°Π½ΡΠ° ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ΠΈΡ 1 = 2. ΠΠ°Π»Π΅Π΅ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΏΠΎΠ΄ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π°, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠ΅ ΠΏΡΡΠΈ (23) ΠΈ (), ΠΈ ΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅ΠΌ ΠΈΡ ΠΎΡΠ΅Π½ΠΊΡ:
(23) 23 = 1 = (d0 + d1) + Ρ23 = 23 + 2 + 0 = 25.
() = 2 = (d0 + d1) + 23 = 25 + 5 = 30,
Π³Π΄Π΅ 23 = = C24 + C 43 = 3+2 = 5.
ΠΠΎΡΠ»Π΅ Π²ΡΡΠ΅ΡΠΊΠΈΠ²Π°Π½ΠΈΡ ΠΈΠ· ΡΠ°Π±Π»ΠΈΡΡ C12 ΡΡΡΠΎΠΊΠΈ i = 2 ΠΈ ΡΡΠΎΠ»Π±ΡΠ° j = 3 ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΡΡ ΠΌΠ°ΡΡΠΈΡΠ° Π‘2 ΡΠ°Π·ΠΌΠ΅ΡΠΎΠΌ 3×3. ΠΡΠ΅ΡΠ΅Π΄Π½ΠΎΠ΅ ΡΠ°Π·Π±ΠΈΠ΅Π½ΠΈΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΡ Π²Π°ΡΠΈΠ°Π½ΡΠΎΠ² ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ΅Π½ΠΈΡ Π½Π° ΠΏΠΎΠ΄ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π΅ (34) ΠΈ () Π΄Π°Π΅Ρ ΠΎΡΠ΅Π½ΠΊΠΈ 34 = 26 ΠΈ =27.
ΠΠΎΡΠ»Π΅ ΠΎΡΠ΅ΡΠ΅Π΄Π½ΠΎΠ³ΠΎ ΡΠΎΠΊΡΠ°ΡΠ΅Π½ΠΈΡ ΠΌΠ°ΡΡΠΈΡΡ ΡΠ°Π±Π»ΠΈΡΠ° ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΡΠ°Π·ΠΌΠ΅Ρ 2×2 ΠΈ ΠΎΠ΄Π½ΠΎΠ·Π½Π°ΡΠ½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΠΏΡΡΡ: Π½Π°ΡΠ°Π»ΡΠ½Π°Ρ ΡΠΎΡΠΊΠ° 4, ΠΊΠΎΠ½Π΅ΡΠ½Π°Ρ — 1, ΠΏΡΡΡ (451). ΠΠ½ ΠΈΠΌΠ΅Π΅Ρ Π΄Π»ΠΈΠ½Ρ 6. ΠΠΎ Π΄Π΅ΡΠ΅Π²Ρ Π²Π°ΡΠΈΠ°Π½ΡΠΎΠ² ΠΌΡ ΠΏΡΠΎΡΠ»ΠΈ ΠΏΡΡΡ Π΄ΠΎ Π²Π΅ΡΡΠΈΠ½Ρ. ΠΠ»ΠΈΠ½Π½ΡΠΉ ΠΏΡΡΡ (123 451) ΠΈΠΌΠ΅Π΅Ρ Π΄Π»ΠΈΠ½Ρ 32. ΠΠ½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ () ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΠΉ ΠΏΡΡΡ (3541) Π΄Π»ΠΈΠ½ΠΎΠΉ 2. ΠΡΡΡ (123 541) ΠΈΠΌΠ΅Π΅Ρ Π΄Π»ΠΈΠ½Ρ 27, Π΅Π³ΠΎ Π΄Π»ΠΈΠ½Π° ΠΌΠ΅Π½ΡΡΠ΅, ΡΠ΅ΠΌ Ρ ΠΏΡΡΠΈ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠ΅Π³ΠΎ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ (34). Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π½ΠΈΠΆΠ½Π΅ΠΉ Π³ΡΠ°Π½ΠΈΡΡ ΡΠ΅ΠΏΠ΅ΡΡ ΡΠ»Π΅Π΄ΡΠ΅Ρ Π²ΡΠ±ΠΈΡΠ°ΡΡ 27. ΠΡΠ±ΠΎΠ΅ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ, ΠΈΠΌΠ΅ΡΡΠ΅Π΅ ΠΎΡΠ΅Π½ΠΊΡ Π±ΠΎΠ»ΡΡΠ΅ 27, ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΎΡΠ±ΡΠΎΡΠΈΡΡ. ΠΡΠ»ΠΈ ΠΆΠ΅ ΠΎΡΠ΅Π½ΠΊΠ° ΠΌΠ΅Π½ΡΡΠ΅ 27, ΡΠΎ ΡΠ°ΠΊΠΎΠΉ ΠΏΡΡΡ ΠΏΠΎΠ΄Π»Π΅ΠΆΠΈΡ ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ. ΠΡΠ»ΠΈ, ΠΏΡΠΎΠΉΠ΄Ρ ΠΏΠΎ Π½ΠΎΠ²ΠΎΠΌΡ ΠΏΡΡΠΈ, ΠΏΠΎΠ»ΡΡΠΈΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π΄Π»ΠΈΠ½Ρ ΠΌΠ΅Π½ΡΡΠ΅ 27, ΡΠΎ ΡΡΠΎ Π½ΠΎΠ²ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠ»Π΅Π΄ΡΠ΅Ρ Π²Π·ΡΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π½ΠΎΠ²ΠΎΠΉ ΠΎΡΠ΅Π½ΠΊΠΈ. ΠΡΠ°ΠΊ, ΠΌΡ ΠΏΡΠΎΡΠ»ΠΈ ΠΏΠΎ Π΄Π΅ΡΠ΅Π²Ρ Π²Π°ΡΠΈΠ°Π½ΡΠΎΠ² Π΄ΠΎ Π²Π΅ΡΡΠΈΠ½Ρ ΠΈ Π΄Π»ΠΈΠ½Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΡ ΠΏΡΡΠ΅ΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ Π΄Π»Ρ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΠΎΡΠ΅Π½ΠΊΠΈ Π²Π°ΡΠΈΠ°Π½ΡΠΎΠ².
ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΡΡ ΡΠ΅ΠΏΠ΅ΡΡ ΠΏΠΎ Π΄Π΅ΡΠ΅Π²Ρ Π²Π²Π΅ΡΡ Π΄ΠΎ Π±Π»ΠΈΠΆΠ°ΠΉΡΠ΅Π³ΠΎ ΡΠ·Π»Π° (12). ΠΠ΅ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½Π½Π°Ρ Π²Π΅ΡΠ²Ρ Π΄Π΅ΡΠ΅Π²Π° () ΠΈΠΌΠ΅Π΅Ρ Π½ΠΈΠΆΠ½ΡΡ ΠΎΡΠ΅Π½ΠΊΡ 30, ΡΡΠΎ Ρ ΡΠΆΠ΅ Π΄ΠΎΡΡΠΈΠ³Π½ΡΡΠΎΠ³ΠΎ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ°. ΠΠ½Π°ΡΠΈΡ, ΡΡΡ Π²Π΅ΡΠ²Ρ ΠΌΠΎΠΆΠ½ΠΎ Π΄Π°Π»Π΅Π΅ Π½Π΅ ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΡ. ΠΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΈΠΌ ΠΊ Π²Π΅ΡΠ²ΠΈ (). ΠΡΠ΅Π½ΠΊΠ° Π΄Π»Ρ ΡΡΠΎΠΉ Π²Π΅ΡΠ²ΠΈ Π½ΠΈΠΆΠ΅ 27, ΠΏΠΎΡΡΠΎΠΌΡ Π΄Π°Π½Π½ΠΎΠ΅ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅ΡΡ.
Π ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ ΠΏΡΠΈΠ΄Π΅ΠΌ ΠΊ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ, ΡΡΠΎ ΠΎΠΏΡΠΈΠΌΠ°Π»ΡΠ½ΡΠΉ ΠΏΡΡΡ (123 541).
Π‘ΡΠ°Π²Π½ΠΈΠΌ ΡΠ΅ΠΏΠ΅ΡΡ Π΄Π°Π½Π½ΡΠΉ ΠΌΠ΅ΡΠΎΠ΄ Ρ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ. Π ΠΠ Π½Π° ΠΎΡΠ΅ΡΠ΅Π΄Π½ΠΎΠΌ ΡΠ°Π³Π΅ Π²ΡΠ±ΠΈΡΠ°Π΅ΡΡΡ ΡΠ°ΠΌΡΠΉ ΠΊΠΎΡΠΎΡΠΊΠΈΠΉ ΠΏΡΡΡ, Π²Π΅Π΄ΡΡΠΈΠΉ Π² Π΄Π°Π½Π½ΡΡ ΡΠΎΡΠΊΡ; Π²ΡΠ΅ ΠΎΡΡΠ°Π»ΡΠ½ΡΠ΅ ΠΏΡΡΠΈ ΠΈΡΠΊΠ»ΡΡΠ°ΡΡΡΡ ΠΈΠ· Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅Π³ΠΎ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½ΠΈΡ. Π ΠΠΠ ΠΏΡΠΈ ΡΠ°Π·Π±ΠΈΠ΅Π½ΠΈΠΈ ΡΠ°ΠΊΠΆΠ΅ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅ΡΡΡ ΡΠ°ΠΌΡΠΉ ΠΊΠΎΡΠΎΡΠΊΠΈΠΉ ΠΏΡΡΡ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ (ij) ΠΈ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΎΡΡΠ°Π»ΡΠ½ΡΡ ΠΏΡΡΠ΅ΠΉ (). ΠΠΎ, Π² ΠΎΡΠ»ΠΈΡΠΈΠΈ ΠΎΡ ΠΠ, ΠΌΡ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ (ij) ΠΈΡΠΊΠ»ΡΡΠΈΡΡ ΠΈΠ· Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅Π³ΠΎ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½ΠΈΡ. Π ΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ°Π·Π±ΠΈΠ΅Π½ΠΈΡ, Π΄Π²ΠΈΠ³Π°ΡΡΡ ΠΎΡ ΠΊΠΎΡΠ½Ρ ΠΊ ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· Π²Π΅ΡΡΠΈΠ½, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°ΠΏΠΎΠΌΠ½ΠΈΡΡ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΈΠ· ΡΠ·Π»ΠΎΠ² ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π΄Π»Ρ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠ΅Π³ΠΎ Π°Π½Π°Π»ΠΈΠ·Π° ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΡ ΠΏΡΡΠ΅ΠΉ ΠΏΡΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ΅ ΠΎΡ Π²Π΅ΡΡΠΈΠ½Ρ ΠΊ ΠΊΠΎΡΠ½Ρ Π΄Π΅ΡΠ΅Π²Π°. Π‘Π»Π΅Π΄ΡΠ΅Ρ ΠΎΡΠΌΠ΅ΡΠΈΡΡ, ΡΡΠΎ ΠΠΠ Π²Π΅ΡΡΠΌΠ° ΡΠΊΠΎΠ½ΠΎΠΌΠΈΡΠ΅Π½ Ρ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ ΡΡΠ΅Π±ΡΠ΅ΠΌΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ. ΠΡΠ»ΠΈ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π·Π°Π΄Π°ΡΠΈ ΠΌΠ΅ΡΠΎΠ΄ Π²Π΅ΡΠ²Π΅ΠΉ ΠΈ Π³ΡΠ°Π½ΠΈΡ ΠΏΡΠ΅ΡΠ²Π°ΡΡ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΠΎ ΠΈΡΡΠ΅ΡΠ΅Π½ΠΈΠΈ ΠΎΡΠ²Π΅Π΄Π΅Π½Π½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ), ΡΠΎ Ρ ΠΎΡΡ ΠΎΠΏΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π½Π΅ Π±ΡΠ΄Π΅Ρ Π΄ΠΎΡΡΠΈΠ³Π½ΡΡΠΎ, Π² ΠΏΠ°ΠΌΡΡΠΈ Π±ΡΠ΄Π΅Ρ Ρ ΡΠ°Π½ΠΈΡΡΡΡ ΠΎΠ΄Π½ΠΎ ΠΈΠ· Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΡ ΡΠ΅ΡΠ΅Π½ΠΈΠΉ. Π Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π½Π° ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΌ ΡΠ°Π³Π΅ Π²ΡΡΠΈΡΠ»ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ° (ΠΎΠ½ΠΎ ΠΆΠ΅ ΠΈ ΠΎΠΏΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ΅).
ΠΠ· ΠΈΠ·Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΡΠ΄Π΅Π»Π°ΡΡ Π²ΡΠ²ΠΎΠ΄, ΡΡΠΎ ΠΠΠ — Π²Π΅ΡΡΠΌΠ° ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΡΠΉ ΠΌΠ΅ΡΠΎΠ΄, Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΅ΡΠ°ΡΡ ΡΠ°Π·Π½ΠΎΠΎΠ±ΡΠ°Π·Π½ΡΠ΅ Π·Π°Π΄Π°ΡΠΈ Ρ Π°Π΄Π΄ΠΈΡΠΈΠ²Π½ΠΎΠΉ ΡΠ΅Π»Π΅Π²ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ.
ΠΠΈΡΡΠΈΠ½Π³ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ
var
Way:TVector;
LengthOfWay:real;
HightLimitWasSeted:boolean;
function Addiction (var Matrix: Tarray;SizeOfMatrix:integer):real;
var
MinInRow, MinInCol: real;
i, j: integer;
d1,d2,d:real;
function MinElInRow (NumRow:integer):real;
var
i:integer;
min:real;
index:integer;
begin
index:=0;min:=1e38;
for i:=1 to SizeOfMatrix do
if (Matrix[NumRow, i]
min:=Matrix[NumRow, i]; index:=i
end;
if index=0 then raise Error;
MinElInRow:=min
end;
function MinElInCol (NumCol:integer):real;
var
i:integer;
min:real;
index:integer;
begin
index:=0;min:=1e38;
for i:=1 to SizeOfMatrix do
if (Matrix[i, NumCol]
min:=Matrix[i, NumCol]; index:=i
end;
if index=0 then raise Error;
MinElInCol:=min
end;
begin
d1:=0;
for i:=1 to SizeOfMatrix do
begin
MinInRow:=MinElInRow (i);
d1:=d1+MinInRow;
for j:=1 to SizeOfMatrix do
Matrix[i, j]: =Matrix[i, j]-MinInRow;
end;
d2:=0;
for i:=1 to SizeOfMatrix do
begin
MinInCol:=MinElInCol (i);
d2:=d2+MinInCol;
for j:=1 to SizeOfMatrix do
Matrix[j, i]: =Matrix[j, i]-MinInCol;
end;
d:=d1+d2;
Addiction:=d
end;
procedure FindBestWay (var matrix: TArray;SizeOfMatrix:integer;basis:integer;LowLimit:real);
var
LessMatrix:Tarray;
LowLimit1,LowLimit2:real;
i:integer;
d:real;
NextPoint:integer;
SpareDistance:real;
Row, Column: integer;
min1,min2,min:extended;
procedure Print;
var
i, j: integer;
number:integer;
s:string;
begin
for i:=1 to SizeOfMatrix do
begin
for j:=1 to SizeOfMatrix do
begin
if Matrix[i, j]>Maxint then s:=' X '
else Str (Round (Matrix[i, j]):3,s);
Text:=Text+s+' '
end;
Text:=Text+#13+#10
end;
Text:=Text+#13+#10
end;
procedure FindNextPoint (var BestPointAfterBasis: integer;var SpareDistance: real);
var
min1,min2:real;
i:integer;
RowOfBasis, BestColumn: integer;
begin
for i:=1 to SizeOfMatrix do
if Round (Matrix[i, 0])=basis then
begin
RowOfBasis:=i;
break
end;
for i:=1 to SizeOfMatrix do
if Matrix[RowOfBasis, i]=0 then
begin
BestColumn:=i;
BestPointAfterBasis:=Round (Matrix[0,i]);
break
end;
min1:=1e38;
for i:=1 to SizeOfMatrix do
if (i<>BestColumn) and (Matrix[RowOfBasis, i]
min1:=Matrix[RowOfBasis, i];
min2:=1e38;
for i:=1 to SizeOfMatrix do
if (i<>RowOfBasis) and (Matrix[i, BestColumn]
min2:=Matrix[i, BestColumn];
SpareDistance:=min1+min2;
end;
procedure FormLessMatrix (From, T0: integer);
var
i, j: integer;
ii, jj: integer;
RowOfFrom, ColumnOfTo, Row: integer;
begin
for i:=1 to SizeOfMatrix do
if Round (Matrix[i, 0])=From then
begin
RowOfFrom:=i;
break
end;
for i:=1 to SizeOfMatrix do
if Round (Matrix[0,i])=T0 then
begin
ColumnOfTo:=i;
break
end;
for i:=0 to SizeOfMatrix-1 do
for j:=0 to SizeOfMatrix-1 do
begin
if i>=RowOfFrom then ii:=i+1
else ii:=i;
if j>=ColumnOfTo then jj:=j+1
else jj:=j;
LessMatrix[i, j]: =Matrix[ii, jj]
end;
for i:=1 to SizeOfMatrix-1 do
if Round (LessMatrix[i, 0])=T0 then
begin
Row:=i;
break
end;
if Row<=SizeOfMatrix-1 then LessMatrix[Row, 1]: =1e38
end;
begin
Print;
if SizeOfMatrix=2 then
begin
min1:=Matrix[1,2]+Matrix[2,1];
min2:=Matrix[1,1]+Matrix[2,2];
if min1
else min:=min2;
LengthOfWay:=LowLimit+min;
if LengthOfBestway>LengthOfWay then
begin
inc (Way.CountOfPoints);
Way.Points[Way.CountOfPoints]: =Round (Matrix[0,2]);
LengthOfBestWay:=LengthOfWay;
BestWay:=Way;
dec (Way.CountOfPoints);
end;
if not (HightLimitWasSeted) then
begin
HightLimitWasSeted:=true;
HightLimit:=LengthOfWay
end;
end
else if SizeOfMatrix>2 then
begin
inc (Way.CountOfPoints);
repeat
FindNextPoint (NextPoint, SpareDistance);
Way.Points[Way.CountOfPoints]: =NextPoint;
FormLessMatrix (Basis, NextPoint);
d:=Addiction (LessMatrix, SizeOfMatrix-1);
LowLimit1:=d+LowLimit;
LowLimit2:=LowLimit+SpareDistance;
FindBestway (LessMatrix, SizeOfMatrix-1,NextPoint, LowLimit1);
if LengthOfBestWay>=LowLimit2 then
begin
for i:=1 to SizeOfMatrix do
if Round (Matrix[i, 0])=Basis then
begin
Row:=i;
break
end;
for i:=1 to SizeOfMatrix do
if Round (Matrix[0,i])=NextPoint then
begin
Column:=i;
break
end;
Matrix[Row, Column]: =1e38;
Addiction (Matrix, SizeOfMatrix);
LowLimit:=LowLimit2
end
until LengthOfBestWay<=LowLimit2;
dec (Way.CountOfPoints);
end
else raise Error
end;
begin
LengthOfBestWay:=1e38;
Way.CountOfPoints:=1;
Way.Points[1]: =1;
Text:='';
d0:=Addiction (MatrixOfLinking, n);
HightLimitWasSeted:=false;
FindBestWay (MatrixOfLinking, n,1,d0)
end;
end.
ΠΠ΅ΡΠΎΠ΄ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΠΏΠΎΡΡΠ΄ΠΊΠ°
Π ΡΡΠΎΠΌ ΠΌΠ΅ΡΠΎΠ΄Π΅ Xk+1=Xk-hkf (Xk). ΠΡΠ΅ΡΠ΅Π΄Π½Π°Ρ ΡΠΎΡΠΊΠ° Π²ΡΠ±ΠΈΡΠ°Π΅ΡΡΡ Π² Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠΈ ΡΠΊΠΎΡΠ΅ΠΉΡΠ΅Π³ΠΎ ΡΠ±ΡΠ²Π°Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΈ. Π¨Π°Π³ hk Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²ΡΠ±ΠΈΡΠ°ΡΡΡΡ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΌΠ°Π»ΡΠΌ, ΡΡΠΎΠ± Π²ΡΠΏΠΎΠ»Π½ΡΠ»ΠΎΡΡ f (Xk+1)< f (Xk)(ΡΠΈΡ 3).
Π ΠΈΡ. 3 Π ΠΈΡ.4
ΠΠ΅Π»ΠΈΡΠΈΠ½Π° ΡΠ°Π³Π° Π΄ΠΎΠ»ΠΆΠ½Π° ΡΠΌΠ΅Π½ΡΡΠ°ΡΡΡΡ ΠΏΠΎ ΠΌΠ΅ΡΠ΅ ΠΏΡΠΈΠ±Π»ΠΈΠΆΠ΅Π½ΠΈΡ ΠΊ X0. ΡΠΎΠ³Π΄Π° Ρ Π½Π°Ρ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π΄ΡΠΎΠ±Π»Π΅Π½ΠΈΠ΅ ΡΠ°Π³Π°. Π¨Π°Π³ hk Π²ΡΠ±ΠΈΡΠ°ΡΡ ΡΠ°ΠΊ, ΡΡΠΎΠ± Π²ΡΠΏΠΎΠ»Π½ΡΠ»ΠΎΡΡ Π½Π΅ΡΠ°Π²Π΅Π½ΡΡΠ²ΠΎ
f (Xk+1) — f (Xk)? — Π΅ hk// f (Xk)//2
Π³Π΄Π΅ 0 < Π΅ < 1 — ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΠΎ Π²ΡΠ±ΡΠ°Π½Π½Π°Ρ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΠ°.
ΠΠ° ΠΎΡΠ΅ΡΠ΅Π΄Π½ΠΎΠΌ ΡΠ°Π³Π΅ ΠΏΡΠΎΡΠ΅ΡΡΠ° ΠΏΡΠΎΠ²Π΅ΡΡΠ΅ΡΡΡ Π½Π΅ΡΠ°Π²Π΅Π½ΡΡΠ²ΠΎ. ΠΡΠ»ΠΈ ΠΎΠ½ΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΎ — ΡΠ°Π³ ΡΠΎΡ ΡΠ°Π½ΡΠ΅ΡΡΡ, Π΅ΡΠ»ΠΈ Π½Π΅Ρ — ΡΠ°Π³ ΡΠΌΠ΅Π½ΡΡΠ°Π΅ΡΡΡ ΡΠ°ΠΊ, ΡΡΠΎΠ±Ρ Π²ΡΠΏΠΎΠ»Π½ΠΈΠ»ΠΎΡΡ Π½Π΅ΡΠ°Π²Π΅Π½ΡΡΠ²ΠΎ. ΠΠ΅ΠΎΠΌΠ΅ΡΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΈΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π° Π½Π° ΡΠΈΡ. 4. ΡΡΠ°Π΅ΠΊΡΠΎΡΠΈΡ Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΡ Π°ΠΏΠΏΡΠΎΠΊΡΠΈΠΌΠΈΡΡΠ΅Ρ Π»ΠΎΠΌΠ°Π½ΠΎΠΉ Π»ΠΈΠ½ΠΈΠ΅ΠΉ Π³ΡΠ°Π΄ΠΈΠ΅Π½ΡΠ½ΡΡ ΠΊΡΠΈΠ²ΡΡ, ΠΏΡΠΎΡ ΠΎΠ΄ΡΡΡΡ ΡΠ΅ΡΠ΅Π· ΡΠΎΡΠΊΠΈ X0 ΠΈ X0. ΠΡΠ»ΠΈ Π²ΡΠ±ΡΠ°Π½Π° ΠΏΠΎΡΡΠΎΡΠ½Π½Π°Ρ Π²Π΅Π»ΠΈΡΠΈΠ½Π° ΡΠ°Π³Π°, ΡΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΈΡΠ΅ΡΠ°ΡΠΈΠΉ, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ, ΠΌΠΎΠΆΠ΅Ρ ΠΎΠΊΠ°Π·Π°ΡΡΡΡ ΠΎΡΠ΅Π½Ρ Π±ΠΎΠ»ΡΡΠΈΠΌ.
Π Π°Π·Π½ΠΎΠ²ΠΈΠ΄Π½ΠΎΡΡΡΡ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΌΠ΅ΡΠΎΠ΄ ΠΏΠΎΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠ½ΠΎΠ³ΠΎ ΡΠΏΡΡΠΊΠ° (ΡΠΈΡ.5). ΠΠ²ΠΈΠΆΠ΅Π½ΠΈΠ΅ ΠΊ X0 ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΠΎ ΠΎΡΡΠ΅Π·ΠΊΠ°ΠΌ ΠΏΡΡΠΌΡΡ , ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΡΠΌ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠ½ΡΠΌ ΠΎΡΡΠΌ.
ΠΡΠ°Π΄ΠΈΠ΅Π½ΡΠ½ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΎΡΠ΅Π½Ρ ΠΏΡΠΎΡΡΡ Π² ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΈ ΠΏΠΎΡΡΠΎΠΌΡ ΡΠ°ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π½Π° ΠΏΡΠ°ΠΊΡΠΈΠΊΠ΅. ΠΠΎ ΠΏΡΠΈ ΡΠ»ΠΎΠΆΠ½ΠΎΠΉ ΡΡΡΡΠΊΡΡΡΠ΅ f (Xk) ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡΡ ΠΏΠ»ΠΎΡ ΠΎ ΡΡ ΠΎΠ΄ΠΈΡΡΡ. ΠΠΎΡΡΠΎΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ Π²ΡΠΎΡΡΠ΅ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΡΠ΅ f (Xk).
Π ΠΈΡ.5
ΠΠ΅ΡΠΎΠ΄ Π²ΡΠΎΡΠΎΠ³ΠΎ ΠΏΠΎΡΡΠ΄ΠΊΠ°
Π ΠΈΡ.6
ΠΠ΅ΡΠΎΠ΄Ρ Π²ΡΠΎΡΠΎΠ³ΠΎ ΠΏΠΎΡΡΠ΄ΠΊΠ° ΡΠ²Π»ΡΡΡΡΡ ΠΎΠ±ΠΎΠ±ΡΠ΅Π½Π½ΡΠΌ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ ΠΡΡΡΠΎΠ½Π°. ΠΠ° ΡΠΈΡ. 6 ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π° Π³Π΅ΠΎΠΌΠ΅ΡΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΈΡ ΠΎΡΡΡΠΊΠ°Π½ΠΈΡ ΠΊΠΎΡΠ½Ρ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ (X)=0 ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ ΠΊΠ°ΡΠ°ΡΠ΅Π»ΡΠ½ΡΡ . Π Π°Π·Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ (X) Π² ΠΎΠΊΡΠ΅ΡΡΠ½ΠΎΡΡΠΈ Xk Π΄Π°Π΅Ρ
(X) = (Xk) + (Xk)(X — Xk) + 0(| X — Xk |)
ΠΡΠ±ΡΠ°ΡΡΠ²Π°Ρ ΠΌΠ°Π»ΡΠ΅ Π²ΡΡΡΠ΅Π³ΠΎ ΠΏΠΎΡΡΠ΄ΠΊΠ° ΠΈ ΠΏΠΎΠ»ΠΎΠ³Π°Ρ, ΡΡΠΎ (X)=0,ΠΏΠΎΠ»ΡΡΠΈΠΌ
X = Xk+1 = Xk — (Xk) / (Xk).
ΠΡΡΡΡ ΡΠ΅ΠΏΠ΅ΡΡ (X) — ΡΡΠ½ΠΊΡΠΈΡ n-ΠΌΠ΅ΡΠ½ΠΎΠ³ΠΎ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°. Π Π°Π·Π»ΠΎΠΆΠΈΠΌ Π΅Π΅ Π² ΡΡΠ΄ Π’Π΅ΠΉΠ»ΠΎΡΠ°, ΠΎΡΠ±ΡΠΎΡΠΈΠ² ΠΌΠ°Π»ΡΠ΅ Π²ΡΡΡΠ΅Π³ΠΎ ΠΏΠΎΡΡΠ΄ΠΊΠ°
(Xk) + (Xk)(X — Xk)., ΠΎΡΠΊΡΠ΄Π° Xk+1 = Xk — (Xk) / (Xk).
Π’Π΅ΠΏΠ΅ΡΡ ΡΡΠΈΡΠ°Π΅ΠΌ (X)Π³ΡΠ°Π΄ΠΈΠ΅Π½ΡΠΎΠΌ f (X), Ρ. Π΅. = f. ΠΡΠΈΡΠ°Π²Π½ΠΈΠ²Π°Ρ f=0, Π½Π°Ρ ΠΎΠ΄ΠΈΠΌ ΡΡΠ°ΡΠΈΠΎΠ½Π°ΡΠ½ΡΠ΅ ΡΠΎΡΠΊΠΈ f (X). Π€ΠΎΡΠΌΡΠ»Π° Π΄Π»Ρ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°Ρ ΡΡΠΈΡ ΡΠΎΡΠ΅ΠΊ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ΅ΡΡΡ ΠΊ Π²ΠΈΠ΄Ρ:
Xk+1 = Xk — f (Xk) / f (Xk).
ΠΠ΅Π΄ΠΎΡΡΠ°ΡΠΊΠΈ ΠΌΠ΅ΡΠΎΠ΄Π° ΠΡΡΡΠΎΠ½Π° Π·Π°ΠΊΠ»ΡΡΠ°ΡΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΡΠ°Π³Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π²ΡΡΠΈΡΠ»ΡΡΡ f, ΠΈ ΠΎΠ½Π° Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΡΡ ΠΏΠΎΠ»ΠΎΠΆΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π°, ΠΈΠ½Π°ΡΠ΅ ΠΏΡΠΎΡΠ΅ΡΡ ΠΌΠΎΠΆΠ΅Ρ ΡΠ°ΡΡ ΠΎΠ΄ΠΈΡΡΡ.
ΠΠ΅ΡΠΎΠ΄ Π²Π΅ΡΡΠΌΠ° ΡΡΡΠ΅ΠΊΡΠΈΠ²Π΅Π½, Π½ΠΎ Π΅Π³ΠΎ Π»ΡΡΡΠ΅ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ, ΠΊΠΎΠ³Π΄Π° ΠΊ X0 ΠΏΠΎΠ΄ΠΎΡΠ»ΠΈ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π±Π»ΠΈΠ·ΠΊΠΎ, ΠΏΡΠΈΡΠ΅ΠΌ Π² ΡΠ°ΠΉΠΎΠ½Π΅ X0 ΡΡΠ½ΠΊΡΠΈΡ ΡΠΈΠ»ΡΠ½ΠΎ Π²ΡΠΏΡΠΊΠ»Π°.
ΠΠΈΡΡΠΈΠ½Π³ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΏΠΎ ΠΌΠ΅ΡΠΎΠ΄Π°ΠΌ 1Π³ΠΎ ΠΈ 2Π³ΠΎ ΠΏΠΎΡΡΠ΄ΠΊΠΎΠ²
function f (x:real):real;
begin
// result:=sin (x);
result:=(x-3)*(x-3)*(x-3)*(x-3);
end;
function df (x:real):real;
begin
// result:=cos (x);
result:=4*(x-3)*(x-3)*(x-3);
end;
function ddf (x:real):real;
begin
//result:=-sin (x);
result:=12*(x-3)*(x-3);
end;
procedure TForm1. Button1Click (Sender: TObject);
var e, h, xk, xk1, d:real;
i:integer;
begin
e:=StrToFloat (Edit3.Text);
xk1:=StrToFloat (Edit1.Text);
h:=StrToFloat (Edit4.Text);
Memo1.Clear;
Memo1.Text:='ΠΠΎΠΈΡΠΊ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ f''(x)'#13#10#13#10;
i:=0;
repeat
xk:=xk1;
repeat
xk1:=xk-h*df (xk);
if df (xk)*df (xk1)>0 then h:=h*2;
if f (xk)
until (df (xk)*df (xk1)<=0) and (abs (f (xk))>=abs (f (xk1)));
Memo1.Lines.Add (Format ('X (%d)= %4.4f f (%1:4.4f) = %2:4.4f f''(%1:4.4f)=%3:4.4f h=%4:4.4f',[i, xk, f (xk), df (xk), h]));
Inc (i);
until (abs (xk1-xk)
Memo1.Lines.Add (Format (#13#10'ΠΠ°ΠΉΠ΄Π΅Π½ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ f (%4.4f)=%4.4f Ρ ΠΏΠΎΠ³ΡΠ΅ΡΠ½ΠΎΡΡΡΡ e=%4.4f',[xk, f (xk), e]));
end;
procedure TForm1. Button2Click (Sender: TObject);
var e, h, xk, xk1, d:real;
i:integer;
begin
e:=StrToFloat (Edit3.Text);
xk1:=StrToFloat (Edit1.Text);
h:=StrToFloat (Edit4.Text);
Memo1.Clear;
Memo1.Text:='ΠΠΎΠΈΡΠΊ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ f''(x)'#13#10#13#10;
i:=0;
repeat
xk:=xk1;
repeat
xk1:=xk-h*df (xk)/ddf (xk);
if df (xk)*df (xk1)>0 then h:=h*2;
if f (xk)
until (df (xk)*df (xk1)<=0) and (f (xk)>=f (xk1));
Memo1.Lines.Add (Format ('X (%d)= %4.4f f (%1:4.4f) = %2:4.4f f''(%1:4.4f)=%3:4.4f h=%4:4.4f',[i, xk, f (xk), df (xk), h]));
Inc (i);
until (abs (xk1-xk)
Memo1.Lines.Add (Format (#13#10'ΠΠ°ΠΉΠ΄Π΅Π½ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ f (%4.4f)=%4.4f Ρ ΠΏΠΎΠ³ΡΠ΅ΡΠ½ΠΎΡΡΡΡ e=%4.4f',[xk, f (xk), e]));
end;
end.
ΠΠΏΡΠΈΠΌΠ°Π»ΡΠ½ΡΠΉ ΠΏΠΎΠΈΡΠΊ
ΡΡΠ½ΠΊΡΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π·Π°Π΄Π°ΡΠ°
Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΊΠ»Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π°Π·ΡΠ²Π°ΡΡΡΡ ΡΠ½ΠΈΠΌΠΎΠ΄Π°Π»ΡΠ½ΡΠΌΠΈ. ΠΠΏΡΠ΅Π΄Π΅Π»ΠΈΠΌ ΡΠ½ΠΈΠΌΠΎΠ΄Π°Π»ΡΠ½ΡΡ ΡΡΠ½ΠΊΡΠΈΡ y = f (X) ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
1. f (X) Π·Π°Π΄Π°Π½Π° Π½Π° ΠΎΡΡΠ΅Π·ΠΊΠ΅ [a, b]. 2. ΠΏΡΡΡΡ X1 ΠΈ X2 Π΅ [a, b], ΠΏΡΠΈΡΠ΅ΠΌ X1 < X2 ΠΏΡΡΡΡ X0 — ΡΠΎΡΠΊΠ°, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ f (X) Π΄ΠΎΡΡΠΈΠ³Π°Π΅Ρ ΠΌΠΈΠ½ΠΈΠΌΡΠΌΠ° (ΠΌΠ°ΠΊΡΠΈΠΌΡΠΌΠ°); ΡΠΎΠ³Π΄Π° ΠΈΠ· X1 > X0 ΡΠ»Π΅Π΄ΡΠ΅Ρ f (X2) > f (X1), Π° ΠΈΠ· X2 < X0 ΡΠ»Π΅Π΄ΡΠ΅Ρ f (X1) > f (X2).
ΠΡΠΈΠΌΠ΅ΡΡ ΡΠ½ΠΈΠΌΠΎΠ΄Π°Π»ΡΠ½ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Ρ Π½Π° ΡΠΈΡ. 7. ΠΠ°ΠΌΠ΅ΡΠΈΠΌ, ΡΡΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΡΠ½ΠΈΠΌΠΎΠ΄Π°Π»ΡΠ½ΠΎΡΡΠΈ ΠΈΡΠΊΠ»ΡΡΠ°Π΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΡΠ°ΡΡΠΊΠΎΠ² f (X) Ρ ΠΏΠΎΡΡΠΎΡΠ½Π½ΡΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ
ΡΠΈΡ. 7
ΠΌΠΈΠ½ΠΈΠΌΡΠΌ f (X) ΠΌΠΎΠΆΠ΅Ρ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π²ΠΎ Π²Π½ΡΡΡΠ΅Π½Π½Π΅ΠΉ ΡΠΎΡΠΊΠ΅ [a, b] ΠΈΠ»ΠΈ Π½Π° Π³ΡΠ°Π½ΠΈΡΠ΅. ΠΠ΅ΡΠ²ΠΎΠ½Π°ΡΠ°Π»ΡΠ½ΠΎ ΠΎ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ X0 Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎ, ΠΊΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΡΡΠΎ, X0 Π΅ [a, b]. [a, b] ΠΌΠΎΠΆΠ½ΠΎ Π½Π°Π·Π²Π°ΡΡ ΠΎΡΡΠ΅Π·ΠΊΠΎΠΌ Π½Π΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΡΡΠΈ.
ΠΡΠ±ΠΎΡ Xi ΠΈ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΠ΅ F (Xi) Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ ΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠΎΠΌ. ΠΠΎ Π²ΡΠ΅Ρ ΡΠ»ΡΡΠ°ΡΡ ΠΏΠΎΡΠ»Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π·Π°Π΄Π°Π½Π½ΡΡ ΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠΎΠ² ΠΎΡΡΠ΅Π·ΠΎΠΊ Π½Π΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΡΡΠΈ ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ ΡΠΆΠ΅. ΠΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΠ΅ ΠΏΠΎΠ²ΡΠΎΡΠ΅Π½ΠΈΠ΅ ΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠΎΠ² ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ Π΄ΠΎΡΡΠΈΠ³Π½ΡΡΡ Π²Π΅Π»ΠΈΡΠΈΠ½Ρ ΠΎΡΡΠ΅Π·ΠΊΠ° Π½Π΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΡΡΠΈ ΠΌΠ΅Π½ΡΡΠ΅ΠΉ, ΡΠ΅ΠΌ Π»ΡΠ±ΠΎΠ΅ Π½Π°ΠΏΠ΅ΡΠ΅Π΄ Π·Π°Π΄Π°Π½Π½ΠΎΠ΅ Π΅ > 0. ΠΏΡΠ°Π²ΠΈΠ»ΠΎ Π²ΡΠ±ΠΎΡΠ° Xi Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ ΡΡΡΠ°ΡΠ΅Π³ΠΈΠ΅ΠΉ. ΠΠΏΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠΉ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ ΡΡΡΠ°ΡΠ΅Π³ΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ X0 (Ρ ΡΠΎΡΠ½ΠΎΡΡΡΡ Π΄ΠΎ Π΅) Π·Π° ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ ΡΠ°Π³ΠΎΠ² (ΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠΎΠ²).
ΠΠ±ΠΎΠ·Π½Π°ΡΠΈΠΌ Π΄Π»ΠΈΠ½Ρ ΠΎΡΡΠ΅Π·ΠΊΠ° Π½Π΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΡΡΠΈ Ln (X1, X2,.. ., Xn), Π³Π΄Π΅ n — ΡΠΈΡΠ»ΠΎ ΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠΎΠ²;
f (Xk) = min f (Xi), 1? i? n,
Π³Π΄Π΅ K — Π½ΠΎΠΌΠ΅Ρ ΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠ°, ΠΊΠΎΡΠΎΡΠΎΠΌΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ f (Xi). Π’ΠΎΠ³Π΄Π° ΠΏΠΎΠ»ΡΡΠΈΠΌ:
X2 — X1, k=1;
Ln (X1, X2,.. ., Xn, ΠΊ) = Xk+1 — Xk-1, 1? k? n;
Xn — Xn-1, k=n.
Π’.ΠΎ., Ln Π·Π°Π²ΠΈΡΠΈΡ ΠΊΠ°ΠΊ ΠΎΡ Π²ΡΠ±ΠΎΡΠ° ΡΠΏΠΎΡΠΎΠ±Π° ΡΠ°Π·Π±ΠΈΠ΅Π½ΠΈΡ [a, b], ΡΠ°ΠΊ ΠΈ ΠΎΡ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ f (X).
ΠΠ°ΡΡΠΈΠ²Π½ΡΠΉ ΠΏΠΎΠΈΡΠΊ
Π ΠΏΠ°ΡΡΠΈΠ²Π½ΠΎΠΌ ΠΏΠΎΠΈΡΠΊΠ΅ Π²ΡΠ΅ ΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΡ ΠΏΡΠΎΠ²ΠΎΠ΄ΡΡΡΡ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ. ΠΠ΅Π· ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ ΠΎΠ±ΡΠ½ΠΎΡΡΠΈ ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ X1 = a = 0; Xn = b = 1;
Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ n = 4; 0 < X2 < X3 < 1
Π’ΠΎΠ³Π΄Π° Ln = max { X2 — 0, X3 — 0, 1 — X2, 1 — X3}= max { X3, 1 — X2}
1? k? 4
Ln = min max { X3, 1 — X2}
0 < X2 < X3 < 1 k= 2,3
Π’Π°ΠΊ ΠΊΠ°ΠΊ X2 < X3, ΡΠΎ ΠΎΠΏΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠΉ ΡΡΡΠ°ΡΠ΅Π³ΠΈΠ΅ΠΉ Π±ΡΠ΄Π΅Ρ X2 = Π - Π /2, X3 = Π + Π /2, Π° ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅Π΅ Ln = Π + Π /2 (ΡΠΈΡ. 8,Π°).
ΠΠΎΠ΄ Π > 0 ΠΏΠΎΠ½ΠΈΠΌΠ°ΡΡ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π΄Π΅Π»Π°Π΅Ρ 2 ΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠ° X2 ΠΈ X3 ΡΠ°Π·Π»ΠΈΡΠ½ΡΠΌΠΈ.
ΠΡΠΈ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½ΠΈΠΈ n = 5 ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ (ΡΠΈΡ 8, Π±), ΡΡΠΎ Ln ΡΠ»ΡΡΡΠΈΠ»ΠΎΡΡ Π½Π° Π /2, ΡΡΠΎ Π·Π°ΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΎΡΠΊΠ°Π·Π°ΡΡΡΡ ΠΎΡ Π½Π΅ΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΡΠΈΡΠ»Π° ΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠΎΠ².
ΠΡΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΠΎΠΌ ΡΠ΅ΡΠ½ΠΎΠΌ n Π½Π°ΠΈΠ»ΡΡΡΠ°Ρ ΡΡΡΠ°ΡΠ΅Π³ΠΈΡ ΡΠΎΡΡΠ°Π²Π»ΡΠ΅ΡΡΡ ΠΏΠ°ΡΠ°ΠΌΠΈ Π — ΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠΎΠ² (Xi ΡΠ°Π·Π½Π΅ΡΠ΅Π½Ρ Π½Π° ΡΠ°ΡΡΡΠΎΡΠ½ΠΈΠ΅ Π).
Π ΠΎΠ±ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ Ln? 2/n + Π /2.
ΡΠΈΡ.8
ΠΌΠ΅ΡΠΎΠ΄ Π΄ΠΈΡ ΠΎΡΠΎΠΌΠΈΠΈ
Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΠΎΡΠ΅Π²ΠΈΠ΄Π½Π°Ρ ΡΠ΅ΠΎΡΠ΅ΠΌΠ°: «ΠΡΠ»ΠΈ Π½Π΅ΠΏΡΠ΅ΡΡΠ²Π½Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ Π½Π° ΠΊΠΎΠ½ΡΠ°Ρ Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»Π° ΠΈΠΌΠ΅Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠ°Π·Π½ΡΡ Π·Π½Π°ΠΊΠΎΠ², ΡΠΎ Π²Π½ΡΡΡΠΈ ΡΡΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»Π° Ρ Π½Π΅Π΅ Π΅ΡΡΡ ΠΊΠΎΡΠ΅Π½Ρ (ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡΠΌ, ΠΎΠ΄ΠΈΠ½, Π½ΠΎ ΠΌ.Π±. ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ)». ΠΠΎΡ Π½Π° Π±Π°Π·Π΅ ΡΡΠΎΠΉ ΡΠ΅ΠΎΡΠ΅ΠΌΡ ΠΈ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΎ ΡΠΈΡΠ»Π΅Π½Π½ΠΎΠ΅ Π½Π°Ρ ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΏΡΠΈΠ±Π»ΠΈΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΊΠΎΡΠ½Ρ ΡΡΠ½ΠΊΡΠΈΠΈ. ΠΠ±ΠΎΠ±ΡΠ΅Π½Π½ΠΎ ΡΡΠΎΡ ΠΌΠ΅ΡΠΎΠ΄ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ «Π΄ΠΈΡ ΠΎΡΠΎΠΌΠΈΠ΅ΠΉ», Ρ. Π΅. «Π΄Π΅Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΎΡΡΠ΅Π·ΠΊΠ° Π½Π° Π΄Π²Π΅ ΡΠ°ΡΡΠΈ». ΠΠ±ΠΎΠ±ΡΠ΅Π½Π½ΡΠΉ Π°Π»Π³ΠΎΡΠΈΡΠΌ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠ°ΠΊ:
Π·Π°Π΄Π°ΡΡ Π½Π°ΡΠ°Π»ΡΠ½ΡΠΉ ΠΈΠ½ΡΠ΅ΡΠ²Π°Π» [a;b];
ΡΠ±Π΅Π΄ΠΈΡΡΡΡ, ΡΡΠΎ Π½Π° ΠΊΠΎΠ½ΡΠ°Ρ ΡΡΠ½ΠΊΡΠΈΡ ΠΈΠΌΠ΅Π΅Ρ ΡΠ°Π·Π½ΡΠΉ Π·Π½Π°ΠΊ
< 0.;
ΠΠ°ΡΠ°Π»ΡΠ½ΠΎΠ΅ ΠΏΡΠΈΠ±Π»ΠΈΠΆΠ΅Π½ΠΈΠ΅
x0 = .
ΠΏΠΎΠ²ΡΠΎΡΡΡΡ Π²ΡΠ±ΡΠ°ΡΡ Π²Π½ΡΡΡΠΈ ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»Π° ΡΠΎΡΠΊΡ X;
ΡΡΠ°Π²Π½ΠΈΡΡ Π·Π½Π°ΠΊ ΡΡΠ½ΠΊΡΠΈΠΈ Π² ΡΠΎΡΠΊΠ΅ X ΡΠΎ Π·Π½Π°ΠΊΠΎΠΌ ΡΡΠ½ΠΊΡΠΈΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΈΠ· ΠΊΠΎΠ½ΡΠΎΠ²;
Π΅ΡΠ»ΠΈ ΡΠΎΠ²ΠΏΠ°Π΄Π°Π΅Ρ, ΡΠΎ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΡΠΈΡΡ ΡΡΠΎΡ ΠΊΠΎΠ½Π΅Ρ ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»Π° Π² ΡΠΎΡΠΊΡ X,
ΠΈΠ½Π°ΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΡΠΈΡΡ Π² ΡΠΎΡΠΊΡ X Π΄ΡΡΠ³ΠΎΠΉ ΠΊΠΎΠ½Π΅Ρ ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»Π°;
ΠΠΎΡΠ»Π΅ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΡΠ΅ΡΠ°ΡΠΈΠΈ ΠΎΡΡΠ΅Π·ΠΎΠΊ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠΉ ΠΊΠΎΡΠ΅Π½Ρ ΡΠΌΠ΅Π½ΡΡΠ°Π΅ΡΡΡ Π²Π΄Π²ΠΎΠ΅;
ΠΏΠΎΠΊΠ° Π½Π΅ Π±ΡΠ΄Π΅Ρ Π΄ΠΎΡΡΠΈΠ³Π½ΡΡΠ° Π½ΡΠΆΠ½Π°Ρ ΡΠΎΡΠ½ΠΎΡΡΡ.
" ΠΡΠΆΠ½Π°Ρ ΡΠΎΡΠ½ΠΎΡΡΡ" ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ ΡΡΠ»ΠΎΠ²ΠΈΡΠΌΠΈ Π·Π°Π΄Π°ΡΠΈ. ΠΠ½ΠΎΠ³Π΄Π° ΡΡΠ΅Π±ΡΠ΅ΡΡΡ, ΡΡΠΎΠ±Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ Π±ΡΠ»ΠΎ ΠΌΠ΅Π½ΡΡΠ΅ Π½Π΅ΠΊΠΎΠΉ Π½Π°ΠΏΠ΅ΡΠ΅Π΄ Π·Π°Π΄Π°Π½Π½ΠΎΠΉ Π²Π΅Π»ΠΈΡΠΈΠ½Ρ, Π½ΠΎ ΡΡΠΎ ΡΠ΅Π΄ΠΊΠΎ — ΡΠ°ΡΠ΅ Π²ΡΠ΅Π³ΠΎ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΡΠ½Ρ Ρ ΠΎΡΠΊΠ»ΠΎΠ½Π΅Π½ΠΈΠ΅ΠΌ ΠΎΡ ΠΈΡΡΠΈΠ½Π½ΠΎΠ³ΠΎ Π² Π·Π°Π΄Π°Π½Π½ΡΡ ΠΏΡΠ΅Π΄Π΅Π»Π°Ρ . ΠΡΡΡΠ΅ Π²ΡΠ΅Π³ΠΎ, Π΅ΡΠ»ΠΈ ΠΌΠΎΠΆΠ½ΠΎ Ρ ΡΠ²Π΅ΡΠ΅Π½Π½ΠΎΡΡΡΡ Π³Π°ΡΠ°Π½ΡΠΈΡΠΎΠ²Π°ΡΡ ΠΈΠ½ΡΠ΅ΡΠ²Π°Π», Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ ΠΊΠΎΡΠ΅Π½Ρ.
ΠΠ΅ΡΠΎΠ΄ Π²ΡΠ±ΠΎΡΠ° ΡΠΎΡΠΊΠΈ Π΄Π΅Π»Π΅Π½ΠΈΡ — ΠΊΠ»ΡΡΠ΅Π²ΠΎΠΉ Π΄Π»Ρ ΡΠΊΠΎΡΠΎΡΡΠΈ ΡΠ°Π±ΠΎΡΡ ΠΌΠ΅ΡΠΎΠ΄Π°. Π₯ΠΎΡΠΎΡΠΎ, Π΅ΡΠ»ΠΈ ΡΡΠ½ΠΊΡΠΈΡ, ΡΠ΅ΠΉ ΠΊΠΎΡΠ΅Π½Ρ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ, ΠΏΡΠΎΡΡΠ° ΠΈ Π±ΡΡΡΡΠΎ Π²ΡΡΠΈΡΠ»ΡΠ΅ΡΡΡ; Π½ΠΎ Π²Π½ΡΡΡΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΈ ΠΌΠ°ΡΡΠΈΡΠ½ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ, ΠΈ ΡΠΈΡΠ»Π΅Π½Π½ΠΎΠ΅ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅, ΠΈ Π²ΡΠ΅ ΡΡΠΎ ΡΠ³ΠΎΠ΄Π½ΠΎ; ΡΠ°ΠΊ ΡΡΠΎ Π³Π»Π°Π²Π½ΡΠΌ ΠΊΡΠΈΡΠ΅ΡΠΈΠ΅ΠΌ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·Π°ΡΠΈΡ ΡΠΈΡΠ»Π° Π΄Π΅Π»Π΅Π½ΠΈΠΉ (Π΅ΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎ, Π±Π΅Π· ΡΡ ΡΠ΄ΡΠ΅Π½ΠΈΡ ΡΠΎΡΠ½ΠΎΡΡΠΈ ΠΌΠ΅ΡΠΎΠ΄Π°).
ΠΠ΅ΡΠΎΠ΄ Π΄Π΅Π»Π΅Π½ΠΈΡ ΠΏΠΎΠΏΠΎΠ»Π°ΠΌ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΈΡΠΊΠ»ΡΡΠ°ΡΡ Π² ΡΠΎΡΠ½ΠΎΡΡΠΈ ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Ρ ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»Π° Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΡΠ΅ΡΠ°ΡΠΈΠΈ. ΠΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΠΌΠ΅ΡΠΎΠ΄Π° ΡΡΠΈΡΠ°Π΅ΡΡΡ, ΡΡΠΎ ΡΡΠ½ΠΊΡΠΈΡ Π½Π΅ΠΏΡΠ΅ΡΡΠ²Π½Π° ΠΈ ΠΈΠΌΠ΅Π΅Ρ Π½Π° ΠΊΠΎΠ½ΡΠ°Ρ ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»Π° ΡΠ°Π·Π½ΡΠΉ Π·Π½Π°ΠΊ. ΠΠΎΡΠ»Π΅ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΈ Π² ΡΠ΅ΡΠ΅Π΄ΠΈΠ½Π΅ ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»Π° ΠΎΠ΄Π½Π° ΡΠ°ΡΡΡ ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»Π° ΠΎΡΠ±ΡΠ°ΡΡΠ²Π°Π΅ΡΡΡ ΡΠ°ΠΊ, ΡΡΠΎΠ±Ρ ΡΡΠ½ΠΊΡΠΈΡ ΠΈΠΌΠ΅Π»Π° ΡΠ°Π·Π½ΡΠΉ Π·Π½Π°ΠΊ Π½Π° ΠΊΠΎΠ½ΡΠ°Ρ ΠΎΡΡΠ°Π²ΡΠ΅ΠΉΡΡ ΡΠ°ΡΡΠΈ. ΠΠ½Π΅ΡΡΠΈΠΎΠ½Π½ΡΠΉ ΠΏΡΠΎΡΠ΅ΡΡ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅ΡΡΡ Π΄ΠΎ ΡΠ΅Ρ ΠΏΠΎΡ, ΠΏΠΎΠΊΠ° Π΄Π»ΠΈΠ½Π° ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΎΡΡΠ΅Π·ΠΊΠ° Π½Π΅ ΡΡΠ°Π½Π΅Ρ ΠΌΠ΅Π½ΡΡΠ΅ Π·Π°Π΄Π°Π½Π½ΠΎΠΉ Π²Π΅Π»ΠΈΡΠΈΠ½Ρ. ΠΠ° ΠΏΡΠΈΠ±Π»ΠΈΠΆΠ΅Π½Π½ΠΎΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅ΡΡΡ ΡΡΠ΅Π΄Π½ΡΡ ΡΠΎΡΠΊΠ° ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π³ΠΎ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΊΠ°.
ΠΠ΅ΡΠΎΠ΄ Π·ΠΎΠ»ΠΎΡΠΎΠ³ΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΡ
ΠΠ΅ΡΠΎΠ΄ Π·ΠΎΠ»ΠΎΡΠΎΠ³ΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΈΡΠΊΠ»ΡΡΠ°ΡΡ ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»Ρ, Π²ΡΡΠΈΡΠ»ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄Π½ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΡΠ΅ΡΠ°ΡΠΈΠΈ. Π ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ Π΄Π²ΡΡ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½Π½ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ ΠΈΠ½ΡΠ΅ΡΠ²Π°Π», ΠΊΠΎΡΠΎΡΡΠΉ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π² Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅ΠΌ. ΠΡΠΎΡ ΠΈΠ½ΡΠ΅ΡΠ²Π°Π» Π±ΡΠ΄Π΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ ΠΎΠ΄Π½Ρ ΠΈΠ· ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΡ ΡΠΎΡΠ΅ΠΊ ΠΈ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΡΠΎΡΠΊΡ, ΠΏΠΎΠΌΠ΅ΡΠ°Π΅ΠΌΡΡ ΡΠΈΠΌΠΌΠ΅ΡΡΠΈΡΠ½ΠΎ Π΅ΠΉ. Π’ΠΎΡΠΊΠ° Π΄Π΅Π»ΠΈΡ ΠΈΠ½ΡΠ΅ΡΠ²Π°Π» Π½Π° Π΄Π²Π΅ ΡΠ°ΡΡΠΈ ΡΠ°ΠΊ, ΡΡΠΎ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅ ΡΠ΅Π»ΠΎΠ³ΠΎ ΠΊ Π±ΠΎΠ»ΡΡΠ΅ΠΉ ΡΠ°ΡΡΠΈ ΡΠ°Π²Π½ΠΎ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΡ Π±ΠΎΠ»ΡΡΠ΅ΠΉ ΡΠ°ΡΡΠΈ ΠΊ ΠΌΠ΅Π½ΡΡΠ΅ΠΉ, Ρ. Π΅. ΡΠ°Π²Π½ΠΎ ΡΠ°ΠΊ Π½Π°Π·ΡΠ²Π°Π΅ΠΌΠΎΠΌΡ «Π·ΠΎΠ»ΠΎΡΠΎΠΌΡ ΡΠ΅ΡΠ΅Π½ΠΈΡ».
ΠΠΎΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ ΡΠΎΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅ΠΌ
Lj-1 = Lj + Lj+1.
ΠΡΠ΄Π΅ΠΌ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ ΠΏΠΎΡΡΠΎΡΠ½Π½ΡΠΌΠΈ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΡ Π΄Π»ΠΈΠ½ ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»ΠΎΠ²
Lj-1 / Lj = Lj / Lj+1 = Ρ.
ΠΡΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ ΠΈΠΌΠ΅Π΅Ρ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΠΉ ΠΏΠΎΠ»ΠΎΠΆΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ΠΊΠΎΡΠ΅Π½Ρ Ρ = (1+51/2) / 2= 1.618 (ΡΠΈΡ.9). ΠΏΠ΅ΡΠ²ΡΠ΅ 2 ΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠ° Π ΠΈΡ.9
Π½Π°Ρ ΠΎΠ΄ΡΡΡΡ Π½Π° ΡΠ°ΡΡΡΠΎΡΠ½ΠΈΠΈ 0.618 ΠΎΡ ΠΊΠΎΠ½ΡΠΎΠ² ΠΎΡΡΠ΅Π·ΠΊΠ°. ΠΠΎ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ°ΠΌ ΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠΎΠ² ΡΠΎΡ ΡΠ°Π½ΡΠ΅ΡΡΡ 1 ΠΈΠ· ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»ΠΎΠ², ΠΈ Π²ΡΠ΅ ΠΏΠΎΠ²ΡΠΎΡΡΠ΅ΡΡΡ. ΠΠΎΡΠ»Π΅ n ΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠΎΠ²
Ln = 1/ Ρn-1.
ΠΠΎΠΈΡΠΊ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠ΅ΡΠΎΠ΄Π° Π·ΠΎΠ»ΠΎΡΠΎΠ³ΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΡΠ²Π»ΡΠ΅ΡΡΡ Π°ΡΠΈΠΌΠΏΡΠΎΡΠΈΡΠ΅ΡΠΊΠΈ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΡΠΌ ΡΠΏΠΎΡΠΎΠ±ΠΎΠΌ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΌΠΈΠ½ΠΈΠΌΠ°ΠΊΡΠ½ΠΎΠΉ ΡΡΡΠ°ΡΠ΅Π³ΠΈΠΈ ΠΏΠΎΠΈΡΠΊΠ°, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΡΡΠ΅Π±ΡΠ΅Ρ Π½Π°ΠΈΠΌΠ΅Π½ΡΡΠ΅Π³ΠΎ ΡΠΈΡΠ»Π° ΠΎΡΠ΅Π½ΠΊΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΈ Π΄Π»Ρ Π΄ΠΎΡΡΠΈΠΆΠ΅Π½ΠΈΡ Π·Π°Π΄Π°Π½Π½ΠΎΠΉ ΡΠΎΡΠ½ΠΎΡΡΠΈ ΠΏΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Ρ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΠΌΠ΅ΡΠΎΠ΄Π°ΠΌΠΈ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»ΠΎΠ².
ΠΠΈΡΡΠΈΠ½Π³ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΏΠΎ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΏΠ°ΡΡΠΈΠ²Π½ΠΎΠ³ΠΎ ΠΏΠΎΠΈΡΠΊΠ°, ΠΌΠ΅ΡΠΎΠ΄Ρ Π΄ΠΈΡ ΠΎΡΠΎΠΌΠΈΠΈ, ΠΌΠ΅ΡΠΎΠ΄Ρ «Π·ΠΎΠ»ΠΎΡΠΎΠ³ΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΡ», ΠΎΠΏΡΠΈΠΌΠ°Π»ΡΠ½ΡΠΉ ΠΏΠΎΠΈΡΠΊΡ
function TMyForm. F (x:real):real;
begin
Result:=(2*x-2)*(2*x-2)+2
end;
function TMyForm. PasPoisk (XMax, XMin, Eps, D: Real):string;
var
N: word;
i: word;
Index: word;
temp: real;
x: array[word] of real;
begin
n:=trunc ((2*(XMax-XMin))/Epsilon);
if (frac ((2*(XMax-XMin))/Epsilon)<>0) then inc (N);
if odd (N) then inc (N);
x[1]: =XMin;
x[N]:=XMax;
temp:=XMin;
for i:=1 to (N div 2 — 1) do
begin
temp:=temp+(XMax-XMin)/(N/2);
x[2*i]: =temp-D;
x[2*i+1]:=temp+D
end;
Index:=1;
for i:=2 to N do
if (f (x[Index])>f (x[i])) then Index:=i;
for i:=1 to N do chGraph. Series[0]. AddXY (x[i], f (x[i]),'', clBlue);
chGraph.Series[1].AddXY (x[Index], f (x[Index]),'', clRed);
Result:=FloatToStr (x[Index])+'; ΠΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΈΡΠ΅ΡΠ°ΡΠΈΠΉ = '+IntToStr (N)+'.'
end;
function TMyForm. Dihotomy (XMax, XMin, Eps, D: Real):string;
var
N: word;
x: array [1.4] of real;
begin
x[1]: =XMin;
x[4]:=XMax;
N:=2;
chGraph.Series[0].AddXY (x[1], f (x[1]),'', clAqua);
chGraph.Series[0].AddXY (x[4], f (x[4]),'', clAqua);
while ((abs (x[4]-x[1])/2)>Eps) do
begin
x[2]: =((x[4]-x[1])/2)-D;
x[3]:=((x[4]-x[1])/2)+D;
inc (N, 2);
chGraph.Series[0].AddXY (x[2], f (x[2]),'', clAqua);
chGraph.Series[0].AddXY (x[2], f (x[3]),'', clAqua);
if (f (x[3])>f (x[2])) then x[4]: =x[3]
else x[1]: =x[2]
end;
chGraph.Series[1].AddXY ((x[1]+x[4])/2,f ((x[1]+x[4])/2),'', clRed);
Result:=FloatToStr ((x[1]+x[4])/2)+'; ΠΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΈΡΠ΅ΡΠ°ΡΠΈΠΉ = '+IntToStr (N)
end;
function TMyForm. GoldSection (XMax, XMin, Eps, D: Real):string;
const Tau=0.618;
var
i: byte;
N: word;
x: array[1.4] of Real;
y: array[1.4] of Real;
begin
x[1]: =XMin;
x[4]:=XMax;
x[2]:=XMax-Tau*(XMax-XMin);
x[3]:=XMin+Tau*(XMax-XMin);
for i:=1 to 4 do y[i]: =f (x[i]);
for i:=1 to 4 do chGraph. Series[0]. AddXY (x[i], f (x[i]),'', clRed);
N:=4;
while (abs (x[4]-x[1])/2)>Eps do
if y[3]>y[2] then
begin
x[4]: =x[3]; y[4]: =y[3];
x[3]:=x[2]; y[3]: =y[2];
x[2]:=x[4]-Tau*(x[4]-x[1]);
y[2]:=f (x[2]);
chGraph.Series[0].AddXY (x[2], y[2],'', clRed);
inc (N)
end
else
begin
x[1]:=x[2]; y[1]: =y[2];
x[2]:=x[3]; y[2]: =y[3];
x[3]:=x[1]-Tau*(x[4]-x[1]);
y[3]:=f (x[3]);
chGraph.Series[0].AddXY (x[3], y[3],'', clRed);
inc (N)
end;
chGraph.Series[1].AddXY ((x[1]+x[4])/2,f ((x[1]+x[4])/2),'', clBlue);
Result:=FloatToStr ((x[4]+x[1])/2)+'; ΠΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΈΡΠ΅ΡΠ°ΡΠΈΠΉ = '+IntToStr (N)
end;
function TMyForm. OptPoisk (XMax, XMin, Eps, D: Real):string;
var fb: array[byte] of word;
x: array[1.4] of real;
L: array[byte] of real;
i: byte;
N: word;
begin
x[1]: =XMin;
fb[0]:=1;
x[4]:=XMax;
fb[1]:=1;
N:=1;
while (fb[N]<((XMax-XMin)/Eps)) do
begin
inc (N);
fb[N]: =fb[N-1]+fb[N-2]
end;
L[N]:=((XMax-XMin)-fb[N-2]*D)/fb[N];
for i:=1 to N-1 do
L[i]: =fb[N-i+1]*L[N]-fb[N-i-1]*D;
for i:=1 to N do
begin
x[2]: =x[4]-L[i];
x[3]:=x[1]+L[i];
chGraph.Series[0].AddXY (x[2], f (x[2]),'', clBlue);
chGraph.Series[0].AddXY (x[3], f (x[3]),'', clBlue);
if f (x[3])>f (x[2]) then
begin
x[4]: =x[3];
x[3]:=x[2]
end
else
begin
x[1]:=x[2];
x[2]:=x[3]
end;
end;
chGraph.Series[1].AddXY ((x[1]+x[4])/2,f ((x[1]+x[4])/2),'', clRed);
Result:=FloatToStr ((x[4]+x[1])/2)+'; ΠΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΈΡΠ΅ΡΠ°ΡΠΈΠΉ = '+IntToStr (N)
end;
procedure TMyForm. ExitClick (Sender: TObject);
begin
close
end;
procedure TMyForm. btExecClick (Sender: TObject);
begin
try
XMin:=StrToFloat (edMin.Text);
XMax:=StrToFloat (edMax.Text);
Epsilon:=StrToFloat (edEps.Text);
delta:=0.25*Epsilon
except
ShowMessage ('ΠΠ°Π½Π½ΡΠ΅ Π½Π΅ΠΊΠΎΡΡΠ΅ΠΊΡΠ½Ρ');
end;
edMin.Enabled:=False;
edMax.Enabled:=False;
edEps.Enabled:=False;
btExec.Enabled:=False;
rbM1.Enabled:=False;
rbM2.Enabled:=False;
rbM3.Enabled:=False;
rbM4.Enabled:=False;
MyForm.Width:=500;
MyForm.Height:=310;
chGraph.Show;
pnAnswer.Show;
if rbM1. Checked=true then lbX. Caption:=lbX.Caption+(PasPoisk (XMax, XMin, Epsilon, Delta));
if rbM2. Checked=true then lbX. Caption:=lbX.Caption+(Dihotomy (XMax, XMin, Epsilon, Delta));
if rbM3. Checked=true then lbX. Caption:=lbX.Caption+(GoldSection (XMax, XMin, Epsilon, Delta));
if rbM4. Checked=true then lbX. Caption:=lbX.Caption+(OptPoisk (XMax, XMin, Epsilon, Delta));
end;
end.
ΠΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅
ΠΠ΅ΡΠΎΠ΄ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ — ΡΠΈΡΠΎΠΊΠΎ ΠΈΠ·Π²Π΅ΡΡΠ½ΡΠΉ ΠΈ ΠΌΠΎΡΠ½ΡΠΉ ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΌΠ΅ΡΠΎΠ΄ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΡΠ΅ΠΎΡΠΈΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ.
Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌΡΡ ΡΠΈΡΡΠ΅ΠΌΡ, ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΊΠΎΡΠΎΡΠΎΠΉ Π² ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΠ·ΡΠ΅ΡΡΡ n-ΠΌΠ΅ΡΠ½ΡΠΌ Π²Π΅ΠΊΡΠΎΡΠΎΠΌ x Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°ΠΌΠΈ x1, …, xn. ΠΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅ΠΌ, ΡΡΠΎ Π²ΡΠ΅ΠΌΡ t ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΡΡΡ Π΄ΠΈΡΠΊΡΠ΅ΡΠ½ΠΎ ΠΈ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΡΠ΅Π»ΠΎΡΠΈΡΠ»Π΅Π½Π½ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ 0, 1, … Π’Π°ΠΊ, Π΄Π»Ρ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ² Π² ΡΠΊΠΎΠ½ΠΎΠΌΠΈΠΊΠ΅ ΠΈ ΡΠΊΠΎΠ»ΠΎΠ³ΠΈΠΈ Π΄ΠΈΡΠΊΡΠ΅ΡΠ½ΡΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΡΠΌ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΌΠΎΠ³ΡΡ ΠΎΡΠ²Π΅ΡΠ°ΡΡ Π΄Π½ΠΈ, ΠΌΠ΅ΡΡΡΡ ΠΈΠ»ΠΈ Π³ΠΎΠ΄Ρ, Π° Π΄Π»Ρ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ² Π² ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΡΡ ΡΡΡΡΠΎΠΉΡΡΠ²Π°Ρ ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»Ρ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠΎΡΠ΅Π΄Π½ΠΈΠΌΠΈ Π΄ΠΈΡΠΊΡΠ΅ΡΠ½ΡΠΌΠΈ ΠΌΠΎΠΌΠ΅Π½ΡΠ°ΠΌΠΈ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΡΠ°Π²Π½Ρ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΡΡΠ°Π±Π°ΡΡΠ²Π°Π½ΠΈΡ ΡΡΡΡΠΎΠΉΡΡΠ²Π°. ΠΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅ΠΌ, ΡΡΠΎ Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΡΠ°Π³Π΅ Π½Π° ΡΠΈΡΡΠ΅ΠΌΡ ΠΎΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ ΡΠΏΡΠ°Π²Π»ΡΡΡΠ΅Π΅ Π²ΠΎΠ·Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ m-ΠΌΠ΅ΡΠ½ΠΎΠ³ΠΎ Π²Π΅ΠΊΡΠΎΡΠ° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ u Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°ΠΌΠΈ u1, …, um. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π² ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ t ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΠ·ΡΠ΅ΡΡΡ Π²Π΅ΠΊΡΠΎΡΠΎΠΌ x (t), Π° ΡΠΏΡΠ°Π²Π»ΡΡΡΠ΅Π΅ Π²ΠΎΠ·Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ — Π²Π΅ΠΊΡΠΎΡΠΎΠΌ u (t). ΠΠ° Π²ΡΠ±ΠΎΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΎΠ±ΡΡΠ½ΠΎ Π±ΡΠ²Π°ΡΡ Π½Π°Π»ΠΎΠΆΠ΅Π½Ρ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π² Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΎΠ±ΡΠ΅ΠΉ ΡΠΎΡΠΌΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΡΡ Π² Π²ΠΈΠ΄Π΅
u (t) k U, t = 0, 1, …
ΠΠ΄Π΅ΡΡ U — Π·Π°Π΄Π°Π½Π½ΠΎΠ΅ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Π² n-ΠΌΠ΅ΡΠ½ΠΎΠΌ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π΅.
ΠΠΎΠ΄ Π²Π»ΠΈΡΠ½ΠΈΠ΅ΠΌ Π²ΡΠ±ΡΠ°Π½Π½ΠΎΠ³ΠΎ Π² ΠΌΠΎΠΌΠ΅Π½Ρ t ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ (ΠΏΡΠΈΠ½ΡΡΠΎΠ³ΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΡ) ΡΠΈΡΡΠ΅ΠΌΠ° ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΈΡ Π² ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π² Π½ΠΎΠ²ΠΎΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅. ΠΡΠΎΡ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΠΈΡΠ°ΡΡ ΡΠΎΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅ΠΌ
x (t + 1) = f (x (t), u (t)), t = 0, 1, …
ΠΠ΄Π΅ΡΡ f (x, u) — n-ΠΌΠ΅ΡΠ½Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ ΠΎΡ n-ΠΌΠ΅ΡΠ½ΠΎΠ³ΠΎ Π²Π΅ΠΊΡΠΎΡΠ° x ΠΈ m-ΠΌΠ΅ΡΠ½ΠΎΠ³ΠΎ Π²Π΅ΠΊΡΠΎΡΠ° u, Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΠ·ΡΡΡΠ°Ρ Π΄ΠΈΠ½Π°ΠΌΠΈΠΊΡ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅ΠΌΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ. ΠΡΠ° ΡΡΠ½ΠΊΡΠΈΡ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅ΡΡΡ ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎΠΉ (Π·Π°Π΄Π°Π½Π½ΠΎΠΉ) ΠΈ ΠΎΡΠ²Π΅ΡΠ°Π΅Ρ ΠΏΡΠΈΠ½ΡΡΠΎΠΉ ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅ΠΌΠΎΠ³ΠΎ ΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ°.
ΠΠ°Π΄Π°Π΄ΠΈΠΌ Π΅ΡΠ΅ Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ
x (0) = x0,
Π³Π΄Π΅ x0 — Π·Π°Π΄Π°Π½Π½ΡΠΉ n-ΠΌΠ΅ΡΠ½ΡΠΉ Π²Π΅ΠΊΡΠΎΡ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΌΠ½ΠΎΠ³ΠΎΡΠ°Π³ΠΎΠ²ΡΠΉ ΠΏΡΠΎΡΠ΅ΡΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΎΠΏΠΈΡΡΠ²Π°Π΅ΡΡΡ ΡΠΎΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΡΠΌΠΈ (1)-(3). ΠΡΠΎΡΠ΅Π΄ΡΡΠ° ΡΠ°ΡΡΠ΅ΡΠ° ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ° ΡΠ²ΠΎΠ΄ΠΈΡΡΡ ΠΊ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌΡ. ΠΡΡΡΡ Π² Π½Π΅ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ t ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ x (t) ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎ. Π’ΠΎΠ³Π΄Π° Π΄Π»Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ x (t + 1) Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ Π΄Π²Π΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ:
1) Π²ΡΠ±ΡΠ°ΡΡ Π΄ΠΎΠΏΡΡΡΠΈΠΌΠΎΠ΅ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ u (t), ΡΠ΄ΠΎΠ²Π»Π΅ΡΠ²ΠΎΡΡΡΡΠ΅Π΅ ΡΡΠ»ΠΎΠ²ΠΈΡ (1);
2) ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ x (t + 1) Π² ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΡΠΎΠ³Π»Π°ΡΠ½ΠΎ (2). Π’Π°ΠΊ ΠΊΠ°ΠΊ Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ Π·Π°Π΄Π°Π½ΠΎ, ΡΠΎ ΠΎΠΏΠΈΡΠ°Π½Π½ΡΡ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ Π΄Π»Ρ Π²ΡΠ΅Ρ t = 0, 1, … ΠΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΉ x (0), x (1), … ΡΠ°ΡΡΠΎ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ ΡΡΠ°Π΅ΠΊΡΠΎΡΠΈΠ΅ΠΉ ΡΠΈΡΡΠ΅ΠΌΡ.
ΠΠ°ΠΌΠ΅ΡΠΈΠΌ, ΡΡΠΎ Π²ΡΠ±ΠΎΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΡΠ°Π³Π΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ». ΠΡΠΎΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ» ΠΈΡΡΠ΅Π·Π°Π΅Ρ, Π΅ΡΠ»ΠΈ Π·Π°Π΄Π°ΡΡ ΡΠ΅Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π² Π²ΠΈΠ΄Π΅ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ (ΠΈΠ»ΠΈ ΠΌΠ°ΠΊΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ) Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΊΡΠΈΡΠ΅ΡΠΈΡ ΠΎΠΏΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΡΡΠΈ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΠΌΡ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΠΌ ΠΊ ΠΏΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠ΅ Π·Π°Π΄Π°ΡΠΈ ΠΎΠΏΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ.
ΠΠ°Π΄Π°ΡΠ° ΠΎΠΏΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΡΡΡΡ Π·Π°Π΄Π°Π½ Π½Π΅ΠΊΠΎΡΠΎΡΡΠΉ ΠΊΡΠΈΡΠ΅ΡΠΈΠΉ ΠΊΠ°ΡΠ΅ΡΡΠ²Π° ΠΏΡΠΎΡΠ΅ΡΡΠ° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ (ΠΊΡΠΈΡΠ΅ΡΠΈΠΉ ΠΎΠΏΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΡΡΠΈ) Π²ΠΈΠ΄Π° ΠΠ΄Π΅ΡΡ R (x, u) ΠΈ F (x) — Π·Π°Π΄Π°Π½Π½ΡΠ΅ ΡΠΊΠ°Π»ΡΡΠ½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠ²ΠΎΠΈΡ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ², N — ΠΌΠΎΠΌΠ΅Π½Ρ ΠΎΠΊΠΎΠ½ΡΠ°Π½ΠΈΡ ΠΏΡΠΎΡΠ΅ΡΡΠ°, N > 0. ΠΡΠΈ ΡΡΠΎΠΌ ΡΡΠ½ΠΊΡΠΈΡ R ΠΌΠΎΠΆΠ΅Ρ ΠΎΡΡΠ°ΠΆΠ°ΡΡ ΡΠ°ΡΡ ΠΎΠ΄ ΡΡΠ΅Π΄ΡΡΠ² ΠΈΠ»ΠΈ ΡΠ½Π΅ΡΠ³ΠΈΠΈ Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΡΠ°Π³Π΅ ΠΏΡΠΎΡΠ΅ΡΡΠ°, Π° ΡΡΠ½ΠΊΡΠΈΡ F — Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΠ·ΠΎΠ²Π°ΡΡ ΠΎΡΠ΅Π½ΠΊΡ ΠΊΠΎΠ½Π΅ΡΠ½ΠΎΠ³ΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΡΠΈΡΡΠ΅ΠΌΡ ΠΈΠ»ΠΈ ΡΠΎΡΠ½ΠΎΡΡΡ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ΠΈΡ Π² Π·Π°Π΄Π°Π½Π½ΠΎΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅.
ΠΠ°Π΄Π°ΡΠ° ΠΎΠΏΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠΎΡΠΌΡΠ»ΠΈΡΡΠ΅ΡΡΡ ΠΊΠ°ΠΊ Π·Π°Π΄Π°ΡΠ° ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ Π΄ΠΎΠΏΡΡΡΠΈΠΌΡΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠΉ u (0), u (1), …, u (N — 1), ΡΠ΄ΠΎΠ²Π»Π΅ΡΠ²ΠΎΡΡΡΡΠΈΡ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡΠΌ (1), ΠΈ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅ΠΉ ΡΡΠ°Π΅ΠΊΡΠΎΡΠΈΠΈ, ΡΠΎ Π΅ΡΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ x (0), x (1), …, x (N), ΠΊΠΎΡΠΎΡΡΠ΅ Π² ΡΠΎΠ²ΠΎΠΊΡΠΏΠ½ΠΎΡΡΠΈ Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΊΡΠΈΡΠ΅ΡΠΈΡ (4) Π΄Π»Ρ ΠΏΡΠΎΡΠ΅ΡΡΠ° (2), (3).
ΠΠΈΠ½ΠΈΠΌΠΈΠ·Π°ΡΠΈΡ ΠΊΡΠΈΡΠ΅ΡΠΈΡ (4) ΠΎΠ±ΡΡΠ½ΠΎ ΠΎΡΠ²Π΅ΡΠ°Π΅Ρ Π²ΡΠ±ΠΎΡΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ, ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°ΡΡΠ΅Π³ΠΎ Π½Π°ΠΈΠΌΠ΅Π½ΡΡΠΈΠ΅ Π·Π°ΡΡΠ°ΡΡ ΡΡΠ΅Π΄ΡΡΠ², ΡΠ΅ΡΡΡΡΠΎΠ², ΡΠ½Π΅ΡΠ³ΠΈΠΈ, Π½Π°ΠΈΠΌΠ΅Π½ΡΡΠ΅Π΅ ΠΎΡΠΊΠ»ΠΎΠ½Π΅Π½ΠΈΠ΅ ΠΎΡ Π·Π°Π΄Π°Π½Π½ΠΎΠΉ ΡΠ΅Π»ΠΈ ΠΈΠ»ΠΈ Π·Π°Π΄Π°Π½Π½ΠΎΠΉ ΡΡΠ°Π΅ΠΊΡΠΎΡΠΈΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠ°. ΠΠ°ΡΡΠ΄Ρ Ρ ΡΡΠΈΠΌ ΡΠ°ΡΡΠΎ ΡΡΠ°Π²ΠΈΡΡΡ ΡΠ°ΠΊΠΆΠ΅ Π·Π°Π΄Π°ΡΠ° ΠΎ ΠΌΠ°ΠΊΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ ΠΊΡΠΈΡΠ΅ΡΠΈΡ Π²ΠΈΠ΄Π° (4), Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΠΎ ΠΌΠ°ΠΊΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ Π΄ΠΎΡ ΠΎΠ΄Π° ΠΈΠ»ΠΈ ΠΎΠ±ΡΠ΅ΠΌΠ° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²Π°. ΠΠ΄Π½Π°ΠΊΠΎ Π½Π΅ΡΡΡΠ΄Π½ΠΎ Π²ΠΈΠ΄Π΅ΡΡ, ΡΡΠΎ ΠΌΠ°ΠΊΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ ΠΊΡΠΈΡΠ΅ΡΠΈΡ J ΡΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½ΡΠ½Π° ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ ΠΊΡΠΈΡΠ΅ΡΠΈΡ (- J). ΠΠΎΡΡΠΎΠΌΡ ΠΏΡΠΎΡΡΠ°Ρ Π·Π°ΠΌΠ΅Π½Π° Π·Π½Π°ΠΊΠ° Ρ ΡΡΠ½ΠΊΡΠΈΠΉ R ΠΈ F Π² (4) ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ Π·Π°Π΄Π°ΡΡ ΠΎ ΠΌΠ°ΠΊΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ ΠΊΡΠΈΡΠ΅ΡΠΈΡ ΠΊ Π·Π°Π΄Π°ΡΠ΅ ΠΎ Π΅Π³ΠΎ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ. ΠΠ°Π»Π΅Π΅ Π²ΡΡΠ΄Ρ Π΄Π»Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΡΡΠΈ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅ΠΌ Π·Π°Π΄Π°ΡΡ ΠΎ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ ΠΊΡΠΈΡΠ΅ΡΠΈΡ (4).
ΠΠΈΡΡΠΈΠ½Π³ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ
type
ElType = string[3];
TVector = array of ElType;
const FORBIDDEN: ElType = 'x';
var
Form1: TForm1;
D: Array of TVector; // ΠΠ°ΡΡΠΈΡΠ° Π²Π΅ΡΠΎΠ² ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΎΠ²
P: Array of TVector; // ΠΠ°ΡΡΠΈΡΠ° ΡΠ·Π»ΠΎΠ²
implementation
{$R *.dfm}
procedure TForm1. Button2Click (Sender: TObject);
var
i, j: integer;
_Width, _Height: Integer;
Weight1, Weight2: integer;
X, Y: Integer;
S: string;
begin
_Width := 5;
_Height := 4;
SetLength (D, _Width);
for i := Low (D) to High (D) do
SetLength (D[i], 2 * _Height — 1);
D[0,0] := '4'; D[1,0] := '5'; D[2,0] := '3';
D[0,1] := '5'; D[1,1] := '4'; D[2,1] := '6';
D[0,2] := '4'; D[1,2] := '5'; D[2,2] := '5';
D[0,3] := '4'; D[1,3] := '5'; D[2,3] := '6';
D[0,4] := '6'; D[1,4] := '5'; D[2,4] := '5';
D[0,5] := '7'; D[1,5] := '5'; D[2,5] := '7';
D[0,6] := '6'; D[1,6] := '8'; D[2,6] := '7';
D[3,0] := '5'; D[4,0] := FORBIDDEN;
D[3,1] := '6'; D[4,1] := '7';
D[3,2] := '5'; D[4,2] := FORBIDDEN;
D[3,3] := '6'; D[4,3] := '8';
D[3,4] := '7'; D[4,4] := FORBIDDEN;
D[3,5] := '8'; D[4,5] := '9';
D[3,6] := '7'; D[4,6] := FORBIDDEN;
SetLength (P, _Width);
for i := Low (P) to High (P) do
SetLength (P[i], _Height);
for i := Low (P) to High (P) do
for j := Low (P[i]) to High (P[i]) do begin
if (i=0) and (j=0) then begin
P[i, j] := '0';
Continue;
end;
if (i=0) then begin
P[i, j] := IntToStr (StrToInt (P[i, j-1]) + StrToInt (D[i, 2*j-1]));
Continue;
end;
if (j=0) then begin
P[i, j] := IntToStr (StrToInt (P[i-1,j]) + StrToInt (D[i-1,2*j]));
Continue;
end;
Weight1 := StrToInt (P[i, j-1]) + StrToInt (D[i, 2*j-1]);
Weight2 := StrToInt (P[i-1,j]) + StrToInt (D[i-1,2*j]);
if Weight1
P[i, j] := IntToStr (Weight1);
D[i-1,2*j] := FORBIDDEN;
end
else
begin
P[i, j] := IntToStr (Weight2);
D[i, 2*j-1] := FORBIDDEN;
end;
end;
for i := Low (P) to High (P) do begin
S := '';
for j := Low (P[i]) to High (P[i]) do
S := S + P[i, j] + #9;
Memo1.Lines.Add (S);
end;
X := _Width;
Y := _Height;
S := '(' + IntToStr (X) + ';' + IntToStr (Y) + ')';
while (X<>1) and (Y<>1) do begin
if D[X-1−1,2*Y-1−1]<>FORBIDDEN then X := X — 1
else Y := Y — 1;
S := '(' + IntToStr (X) + ';' + IntToStr (Y) + ') -> ' + S;
end;
S := '(1;1) -> ' + S;
ShowMessage (S);
end;
end.
ΠΠΈΠ½Π΅ΠΉΠ½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅. ΠΠ΅ΡΠΎΠ΄ ΠΠΆΠΎΡΠ΄Π°Π½Π°-ΠΠ°ΡΡΡΠ°
ΠΠ΅ΡΠΎΠ΄Ρ Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ — ΡΠΈΡΠ»Π΅Π½Π½ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΎΠ½Π½ΡΡ Π·Π°Π΄Π°Ρ, cΠ²ΠΎΠ΄ΡΡΠΈΡ ΡΡ ΠΊ ΡΠΎΡΠΌΠ°Π»ΡΠ½ΡΠΌ ΠΌΠΎΠ΄Π΅Π»ΡΠΌ Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ.
ΠΠ°ΠΊ ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎ, Π»ΡΠ±Π°Ρ Π·Π°Π΄Π°ΡΠ° Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π° ΠΊ ΠΊΠ°Π½ΠΎΠ½ΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎΠΉ ΡΠ΅Π»Π΅Π²ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ Ρ Π»ΠΈΠ½Π΅ΠΉΠ½ΡΠΌΠΈ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡΠΌΠΈ ΡΠΈΠΏΠ° ΡΠ°Π²Π΅Π½ΡΡΠ². ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΠΈΡΠ»ΠΎ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Π² Π·Π°Π΄Π°ΡΠ΅ Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π±ΠΎΠ»ΡΡΠ΅ ΡΠΈΡΠ»Π° ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠΉ (n > m), ΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅, ΠΏΡΠΈΡΠ°Π²Π½ΡΠ² Π½ΡΠ»Ρ (n — m) ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ , Π½Π°Π·ΡΠ²Π°Π΅ΠΌΡΡ ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΡΠΌΠΈ. ΠΡΡΠ°Π²ΡΠΈΠ΅ΡΡ m ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ , Π½Π°Π·ΡΠ²Π°Π΅ΠΌΡΡ Π±Π°Π·ΠΈΡΠ½ΡΠΌΠΈ, ΠΌΠΎΠΆΠ½ΠΎ Π»Π΅Π³ΠΊΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΠΈΠ· ΡΠΈΡΡΠ΅ΠΌΡ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠΉ-ΡΠ°Π²Π΅Π½ΡΡΠ² ΠΎΠ±ΡΡΠ½ΡΠΌΠΈ ΠΌΠ΅ΡΠΎΠ΄Π°ΠΌΠΈ Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎΠΉ Π°Π»Π³Π΅Π±ΡΡ. ΠΡΠ»ΠΈ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ, ΡΠΎ ΠΎΠ½ΠΎ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ Π±Π°Π·ΠΈΡΠ½ΡΠΌ. ΠΡΠ»ΠΈ Π±Π°Π·ΠΈΡΠ½ΠΎΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π΄ΠΎΠΏΡΡΡΠΈΠΌΠΎ, ΡΠΎ ΠΎΠ½ΠΎ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ Π±Π°Π·ΠΈΡΠ½ΡΠΌ Π΄ΠΎΠΏΡΡΡΠΈΠΌΡΠΌ. ΠΠ΅ΠΎΠΌΠ΅ΡΡΠΈΡΠ΅ΡΠΊΠΈ, Π±Π°Π·ΠΈΡΠ½ΡΠ΅ Π΄ΠΎΠΏΡΡΡΠΈΠΌΡΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡ Π²Π΅ΡΡΠΈΠ½Π°ΠΌ (ΠΊΡΠ°ΠΉΠ½ΠΈΠΌ ΡΠΎΡΠΊΠ°ΠΌ) Π²ΡΠΏΡΠΊΠ»ΠΎΠ³ΠΎ ΠΌΠ½ΠΎΠ³ΠΎΠ³ΡΠ°Π½Π½ΠΈΠΊΠ°, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΠ²Π°Π΅Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Π΄ΠΎΠΏΡΡΡΠΈΠΌΡΡ ΡΠ΅ΡΠ΅Π½ΠΈΠΉ. ΠΡΠ»ΠΈ Π·Π°Π΄Π°ΡΠ° Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈΠΌΠ΅Π΅Ρ ΠΎΠΏΡΠΈΠΌΠ°Π»ΡΠ½ΡΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΡ, ΡΠΎ ΠΏΠΎ ΠΊΡΠ°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅ΡΠ΅ ΠΎΠ΄Π½ΠΎ ΠΈΠ· Π½ΠΈΡ ΡΠ²Π»ΡΠ΅ΡΡΡ Π±Π°Π·ΠΈΡΠ½ΡΠΌ.
ΠΠ΅ΡΠΎΠ΄ ΠΠΎΡΠ΄Π°Π½Π°-ΠΠ°ΡΡΡΠ° (Jordan) ΠΏΠΎΡΡΠΈ Π½ΠΈΡΠ΅ΠΌ Π½Π΅ ΠΎΡΠ»ΠΈΡΠ°Π΅ΡΡΡ ΠΎΡ ΠΊΠ»Π°ΡΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π° ΠΠ°ΡΡΡΠ°, ΡΠΎΠ»ΡΠΊΠΎ ΠΌΠ°ΡΡΠΈΡΠ° ΡΠΈΡΡΠ΅ΠΌΡ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡΡΡ Π½Π΅ ΠΊ ΡΡΠ΅ΡΠ³ΠΎΠ»ΡΠ½ΠΎΠΌΡ, Π° ΠΊ Π΄ΠΈΠ°Π³ΠΎΠ½Π°Π»ΡΠ½ΠΎΠΌΡ Π΅Π΄ΠΈΠ½ΠΈΡΠ½ΠΎΠΌΡ Π²ΠΈΠ΄Ρ. ΠΡΠ»ΠΈ ΠΎΡΠ²Π»Π΅ΡΡΡΡ ΠΎΡ ΠΏΠ΅ΡΠ΅ΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΡΡΡΠΎΠΊ ΠΈ ΡΡΠΎΠ»Π±ΡΠΎΠ² Π΄Π»Ρ Π²ΡΠ±ΠΎΡΠ° Π½Π°ΠΈΠ²ΡΠ³ΠΎΠ΄Π½Π΅ΠΉΡΠ΅Π³ΠΎ Π²Π΅Π΄ΡΡΠ΅Π³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°, ΡΠΎ ΠΏΡΠΎΡΠ΅ΡΡ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠ°ΠΊ. ΠΡΡΡΡ Π½Π°ΠΌ Π΄Π°Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ° n Π»ΠΈΠ½Π΅ΠΉΠ½ΡΡ ΡΡΠ°Π²Π½Π΅Π½ΠΈΠΉ Ρ ΡΠ°ΠΊΠΈΠΌ ΠΆΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎΠΌ Π½Π΅ΠΈΠ·Π²Π΅ΡΡΠ½ΡΡ . ΠΡΠ΅Π΄ΡΡΠ°Π²ΠΈΠΌ ΠΊΠΎΡΡΡΠΈΡΠΈΠ΅Π½ΡΡ ΡΡΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ ΠΈ ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΡΠ΅ ΡΠ»Π΅Π½Ρ Π² Π²ΠΈΠ΄Π΅ ΡΠ°ΡΡΠΈΡΠ΅Π½Π½ΠΎΠΉ ΠΌΠ°ΡΡΠΈΡΡ A ΡΠ°Π·ΠΌΠ΅ΡΠΎΠΌ n*(n+1). ΠΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΌΠ°ΡΡΠΈΡΡ Π±ΡΠ΄Π΅ΠΌ ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ°ΡΡ a[i, j]. ΠΡΠΏΠΎΠ»Π½ΠΈΠΌ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ:
Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ i ΠΎΡ 1 Π΄ΠΎ n: .
| Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ k ΠΎΡ n+1 Π΄ΠΎ 1 Ρ ΡΠ°Π³ΠΎΠΌ (-1): .
| | a[i, k] <- a[i, k]/a[i, i] .
| Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ j ΠΎΡ 1 Π΄ΠΎ n, Π½Π΅ ΡΠ°Π²Π½ΠΎΠ³ΠΎ i: .
| | Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ k ΠΎΡ n+1 Π΄ΠΎ i Ρ ΡΠ°Π³ΠΎΠΌ (-1): .
| | | a[j, k] <- a[j, k] - a[j, i]*a[i, k] .
ΠΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ ΡΡΠΎΠ»Π±Π΅Ρ ΠΌΠ°ΡΡΠΈΡΡ A Π΄Π°ΡΡ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π·Π°Π΄Π°ΡΠΈ. ΠΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Ρ ΠΊΠ»Π°ΡΡΠΈΡΠ΅ΡΠΊΠΈΠΌ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ ΠΠ°ΡΡΡΠ° Π·Π΄Π΅ΡΡ ΠΎΡΡΡΡΡΡΠ²ΡΠ΅Ρ ΠΎΠ±ΡΠ°ΡΠ½ΡΠΉ Ρ ΠΎΠ΄, Π½ΠΎ ΠΎΠ±ΡΠ΅Π΅ ΡΠΈΡΠ»ΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ Π±ΠΎΠ»ΡΡΠ΅ (Ρ ΠΎΡΡ ΠΏΠΎΡΡΠ΄ΠΎΠΊ ΠΏΠΎ n ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡΠΉ — n3).
ΠΡΠΎΠ±Π΅Π½Π½ΠΎ ΡΠ΄ΠΎΠ±Π΅Π½ ΠΌΠ΅ΡΠΎΠ΄ ΠΠΎΡΠ΄Π°Π½Π°-ΠΠ°ΡΡΡΠ° Π΄Π»Ρ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΡ ΠΌΠ°ΡΡΠΈΡΡ. ΠΡΠ»ΠΈ ΠΌΠ°ΡΡΠΈΡΡ ΡΠΈΡΡΠ΅ΠΌΡ ΡΠ°ΡΡΠΈΡΠΈΡΡ Π½Π΅ ΡΡΠΎΠ»Π±ΡΠΎΠΌ ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΡΡ ΡΠ»Π΅Π½ΠΎΠ², Π° Π΅Π΄ΠΈΠ½ΠΈΡΠ½ΠΎΠΉ ΠΌΠ°ΡΡΠΈΡΠ΅ΠΉ ΡΠΎΠ³ΠΎ ΠΆΠ΅ ΠΏΠΎΡΡΠ΄ΠΊΠ°, ΡΠΎ ΠΏΠΎΡΠ»Π΅ ΠΎΠΏΠΈΡΠ°Π½Π½ΠΎΠΉ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ Π½Π° Π΅Π΅ ΠΌΠ΅ΡΡΠ΅ ΠΏΠΎΠ»ΡΡΠΈΡΡΡ ΠΌΠ°ΡΡΠΈΡΠ°, ΠΎΠ±ΡΠ°ΡΠ½Π°Ρ Π·Π°Π΄Π°Π½Π½ΠΎΠΉ.
ΠΠΈΡΡΠΈΠ½Π³ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ
function Divide (var V: Vector; D: real): boolean;
var
I: Integer;
begin
Result := true;
for I := Low (V) to High (V) do
if (V[I]=0) and (D=0) then V[I] := 0 else
if D<>0 then
V[I] := V[I] / D
else Result := false;
end;
procedure Multiply (var V: Vector; K: real);
var
I: Integer;
begin
for I := Low (V) to High (V) do
V[I] := V[I] * K;
end;
procedure Subtract (var V1, V2: Vector);
var
I: Integer;
begin
for I := Low (V1) to High (V1) do
V1[I] := V1[I] - V2[I];
end;
procedure TForm1. Button2Click (Sender: TObject);
var
M: Matrix;
i, j: integer;
k: real;
Report: TStringList;
begin
SetLength (M, StringGrid1. RowCount-1);
for I := Low (M) to High (M) do
SetLength (M[I], StringGrid1. ColCount-1);
for I := Low (M) to High (M) do
for J := Low (M[I]) to High (M[I]) do
M[I, J] := StrToInt (StringGrid1.Cells[J+1,I+1]);
Report := TStringList. Create;
Report.Add ('
');Report.Add ('
ΠΠ·Π±Π°Π²Π»ΡΠ΅ΠΌΡΡ ΠΎΡ ΠΊΠΎΡΡΡΠΈΡΠΈΠ΅Π½ΡΠΎΠ² ΠΏΠ΅ΡΠ΅Π΄ x' + IntToStr (I+1) + ':');
if M[i, i]<>1 then
if not Divide (M[I], M[I, I]) then begin // ΠΡΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΡΠ΅ΠΊΡΡΠ΅ΠΉ ΡΡΡΠΎΠΊΠΈ
MessageBox (Handle, 'ΠΠ΅Π»Π΅Π½ΠΈΠ΅ Π½Π° Π½ΠΎΠ»Ρ: …', 'ΠΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅', MB_OK + MB_ICONWARNING);
Report.Free;
Exit;
end;
for j := Low (M) to High (M) do begin
if I=j then Continue;
k := 1;
if M[I, I]<>M[J, I] then begin
k := M[J, I];
if not Divide (M[J], k) then begin
MessageBox (Handle, 'ΠΠ΅Π»Π΅Π½ΠΈΠ΅ Π½Π° Π½ΠΎΠ»Ρ: …', 'ΠΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅', MB_OK + MB_ICONWARNING);
Report.Free;
Exit;
end;
end;
Subtract (M[j], M[I]);
if (k<>1) and (I>j) then Multiply (M[j], k);
end;
MatrixToHTML (Report, M);
end;
Report.SaveToFile (ExtractFilePath (Application.ExeName) + 'result.html');
Report.Free;
MessageBox (Handle, PChar ('Π‘ΠΎΠ·Π΄Π°Π½ ΡΠ°ΠΉΠ» ΠΎΡΡΠ΅ΡΠ°: ' + ExtractFilePath (Application.ExeName) + 'result.html'),
'Π Π΅ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΎ', MB_OK + MB_ICONINFORMATION);
WebBrowser1.Navigate (ExtractFilePath (Application.ExeName) + 'result.html');
end;
procedure TForm1. Button1Click (Sender: TObject);
var
N: Integer;
begin
N := StrToInt (LabeledEdit1.Text);
StringGrid1.RowCount := N+1;
StringGrid1.ColCount := N + 2;
end;
end.
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
Π ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π΄Π°Π½Π½ΠΎΠΉ ΠΊΡΡΡΠΎΠ²ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ Π±ΡΠ»ΠΈ ΠΈΠ·ΡΡΠ΅Π½Ρ ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ Π°Π»Π³ΠΎΡΠΈΡΠΌΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ ΠΈ ΠΏΠΎ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ°ΠΌ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ ΠΏΡΠΎΠ°Π½Π°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Ρ ΠΈΠ·ΡΡΠ΅Π½Π½ΡΠ΅ Π² ΡΡΠΎΠΌ ΡΠ΅ΠΌΠ΅ΡΡΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ ΡΠ΅ΡΠ΅Π½ΠΈΡ Π·Π°Π΄Π°Ρ Π½Π° Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠ΅, Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎΠ΅ ΠΈ Π½Π΅Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅.
Π ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠ°Π±ΠΎΡΡ Π±ΡΠ»ΠΈ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ Π°Π»Π³ΠΎΡΠΈΡΠΌΡ:
— ΠΠ΅ΡΠΎΠ΄ Π²Π΅ΡΠ²Π΅ΠΉ ΠΈ Π³ΡΠ°Π½ΠΈΡ Π½Π° ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Π·Π°Π΄Π°ΡΠΈ ΠΎ ΠΊΠΎΠΌΠΌΠΈΠ²ΠΎΡΠΆΠΎΡΠ΅;
— ΠΠΎΠΈΡΠΊΠΈ 1-ΠΎΠ³ΠΎ ΠΈ 2-ΠΎΠ³ΠΎ ΠΏΠΎΡΡΠ΄ΠΊΠ°;
— ΠΠΈΠ½Π΅ΠΉΠ½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΡΠΈΠΌΠΏΠ»Π΅ΠΊΡΠ½ΠΎΠ³ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π°.
1. ΠΠ°Π»ΠΊΠΈΠ½ Π. Π. ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ Π² ΠΏΡΠΈΠΌΠ΅ΡΠ°Ρ ΠΈ Π·Π°Π΄Π°ΡΠ°Ρ : Π£ΡΠ΅Π±. ΠΠΎΡΠΎΠ±ΠΈΠ΅. — ΠΠ»Π°Π΄ΠΈΠΌΠΈΡ: ΠΠΠ, 1989. — 96 Ρ.
2. ΠΠΈΡΠΊΠΎΠ² Π. Π€. ΠΌΠΎΠ΄Π΅Π»ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²Π΅Π½Π½ΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ² Ρ Π΄ΠΈΡΠΊΡΠ΅ΡΠ½ΡΠΌ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΎΠΌ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ: Π£ΡΠ΅Π±. ΠΠΎΡΠΎΠ±ΠΈΠ΅. — ΠΠ»Π°Π΄ΠΈΠΌΠΈΡ: ΠΠΠ, 1984. — 84 Ρ.
3. Π§Π΅ΡΠ½ΠΎΡΡΡΠΊΠΎ Π€. Π., ΠΠ°Π½ΠΈΡΡΠΊ Π. Π. ΠΠ°ΡΠΈΠ°ΡΠΈΠΎΠ½Π½ΡΠ΅ Π·Π°Π΄Π°ΡΠΈ ΠΌΠ΅Ρ Π°Π½ΠΈΠΊΠΈ ΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ: Π§ΠΈΡΠ»Π΅Π½Π½ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ. Π.: ΠΠ°ΡΠΊΠ°, 1973. 238 Ρ.
4. Internet.
ΠΠ°Π½Π½Π°Ρ Π‘ΠΠΠ£:');
MatrixToHTML (Report, M);
for I := Low (M) to High (M) do begin
Report.Add ('