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

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ для ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΎΠ΄Π½ΠΎΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ Π΄ΠΈΡ…ΠΎΡ‚ΠΎΠΌΠΈΠΈ

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

Если f (x1) < f (xn), Ρ‚ΠΎ ΠΈΡΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π», для этого B = xn, xn = x1. ΠŸΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ ΠΊ ΡˆΠ°Π³Ρƒ 5. Π˜Π½Π°Ρ‡Π΅ ΠΊ ΡˆΠ°Π³Ρƒ 4. Если f (x1) < f (xn), Ρ‚ΠΎ ΠΈΡΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π», для этого B = xn, xn = x1. ΠŸΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ ΠΊ ΡˆΠ°Π³Ρƒ 5. Π˜Π½Π°Ρ‡Π΅ ΠΊ ΡˆΠ°Π³Ρƒ 4. Π’ΠΈΠ΄Π΅ΠΎΠ°Π΄Π°ΠΏΡ‚Π΅Ρ€ — ATI Radeon HD 4850 (512 Мб) ΠœΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€ ΠΏΠ΅Ρ€ΠΈΡ„Π΅Ρ€ΠΈΠΉΠ½ΠΎΠ³ΠΎ оборудования. Для выполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ трСбуСтся ΡΡ€Π°Π²Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ нСбольшой ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΠΊ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ. Double dihotomy… Π§ΠΈΡ‚Π°Ρ‚ΡŒ Π΅Ρ‰Ρ‘ >

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ для ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΎΠ΄Π½ΠΎΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ Π΄ΠΈΡ…ΠΎΡ‚ΠΎΠΌΠΈΠΈ (Ρ€Π΅Ρ„Π΅Ρ€Π°Ρ‚, курсовая, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Π°Ρ)

1. ОписаниС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

1.1 ΠžΠ±Ρ‰ΠΈΠ΅ свСдСния

1.2 Π€ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅

1.3 ОписаниС логичСской структуры

1.4 Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ тСхничСскиС срСдства

1.5 Π’Ρ‹Π·ΠΎΠ² ΠΈ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ°

1.6 Π’Ρ…ΠΎΠ΄Π½Ρ‹Π΅ ΠΈ Π²Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅

2. ОписаниС примСнСния

2.1 НазначСниС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

2.2 Условия примСнСния

2.3 ОписаниС Π·Π°Π΄Π°Ρ‡ΠΈ

2.4 Π’Ρ…ΠΎΠ΄Π½Ρ‹Π΅ ΠΈ Π²Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅

3. Руководство программиста

3.1 НазначСниС ΠΈ ΡƒΡΠ»ΠΎΠ²ΠΈΡ примСнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

3.2 Π₯арактСристики ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

3.3 ΠžΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ ΠΊ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅

3.4 Π’Ρ…ΠΎΠ΄Π½Ρ‹Π΅ ΠΈ Π²Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅

3.5 Π‘ΠΎΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅

4. ОписаниС ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½ΠΎΠ³ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°

5. Листинг ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ БиблиографичСский список

1. ОписаниС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

1.1 ΠžΠ±Ρ‰ΠΈΠ΅ свСдСния

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°: «ΠžΠΏΡ‚имизация Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΎΠ΄Π½ΠΎΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ Π΄ΠΈΡ…ΠΎΡ‚ΠΎΠΌΠΈΠΈ»

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ обСспСчСниС, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΠ΅ для функционирования ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹:

ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Π°Ρ срСда Windows 95/98/Me/2k/XP

Microsoft Visual Studio 2005

Π‘Ρ€Π΅Π΄Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ — Microsoft Visual Studio 2005

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° написана Π½Π° ΡΠ·Ρ‹ΠΊΠ΅ C++

1.2 Π€ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π° для поиска ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌΠ° ΠΈ ΠΌΠ°ΠΊΡΠΈΠΌΡƒΠΌΠ° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π½Π° Π·Π°Π΄Π°Π½Π½ΠΎΠΌ ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»Π΅. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π²ΠΈΠ΄Π° с ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½ΠΎΠΉ ΡΡ‚Π΅ΠΏΠ΅Π½ΡŒΡŽ Ρ…, Ρ€Π°Π²Π½ΠΎΠΉ 5.

1.3 ОписаниС логичСской структуры

Алгоритм:

ПолоТим, Ρ‡Ρ‚ΠΎ xn =. Π”Π»ΠΈΠ½Π° ΠΎΡ‚Ρ€Π΅Π·ΠΊΠ° L = (|B| - |A|). Вычислим f (xn).

x1 = A +, x2 = B —. ВычисляСм f (x1) ΠΈ f (x2).

Если f (x1) < f (xn), Ρ‚ΠΎ ΠΈΡΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π» [xn,B], для этого B = xn, xn = x1. ΠŸΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ ΠΊ ΡˆΠ°Π³Ρƒ 5. Π˜Π½Π°Ρ‡Π΅ ΠΊ ΡˆΠ°Π³Ρƒ 4.

Если f (x2) < f (xn), Ρ‚ΠΎ ΠΈΡΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π» [A,xn] для этого A = xn, xn = x2. ΠŸΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ ΠΊ ΡˆΠ°Π³Ρƒ 5. Π˜Π½Π°Ρ‡Π΅ ΠΈΡΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»Ρ‹ [A,x1] [x2,B], для этого A = x1, B = x2.

ВычисляСм L = B — A. Если L? Π΅, Ρ‚ΠΎ ΠΊΠΎΠ½Π΅Ρ† Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°. Π˜Π½Π°Ρ‡Π΅ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ ΠΊ ΡˆΠ°Π³Ρƒ 2.

ΠžΠΊΠΎΠ½Ρ‡Π°Π½ΠΈΠ΅ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² ΡΠ΅Π±Ρ x* = xm, f (x*) = f (xm)

ЛогичСская структура:

5 Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ:

1. main () — главная функция ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ Π·Π°Π΄Π°Ρ‡ΠΈ:

— Π”ΠΈΠ°Π»ΠΎΠ³ с ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ

— Π’Π²ΠΎΠ΄ коэффициСнтов, ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»Π° ΠΈ Ρ‚очности

— Π’Ρ‹Π²ΠΎΠ΄ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°

2. menu () — функция, Ρ‚ΠΈΠΏΠ° void. НазначСниС — тСкст Π³Π»Π°Π²Π½ΠΎΠ³ΠΎ мСню ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

3. out () — функция, Ρ‚ΠΈΠΏΠ° void. НазначСниС — Π²Ρ‹Π²ΠΎΠ΄ Π΄Π°Π½Π½Ρ‹Ρ… Π½Π° ΡΠΊΡ€Π°Π½.

4. dihotomy () — функция, Ρ‚ΠΈΠΏΠ° double. НазначСниС — Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°.

5. func () — функция, Ρ‚ΠΈΠΏΠ° double. НазначСниС — функция f (x).

Бвязь ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°ΠΌΠΈ:

ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Π°Ρ систСма Ѐайловая систСма

1.4 Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ тСхничСскиС срСдства

ΠŸΡ€ΠΈ написании ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ использовался ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€:

ΠŸΡ€ΠΎΡ†Π΅ΡΡΠΎΡ€ — Intel Core 2 Duo E8400, 4050 MHz (9×450)

ΠžΠ—Π£ — 4096Мб.

Π’ΠΈΠ΄Π΅ΠΎΠ°Π΄Π°ΠΏΡ‚Π΅Ρ€ — ATI Radeon HD 4850 (512 Мб) ΠœΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€ ΠΏΠ΅Ρ€ΠΈΡ„Π΅Ρ€ΠΈΠΉΠ½ΠΎΠ³ΠΎ оборудования.

ΠœΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹Π΅ трСбования:

ΠŸΡ€ΠΎΡ†Π΅ΡΡΠΎΡ€ Intel Pentium II.

НаличиС Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ 16MΠ± ΠžΠ—Π£.

НаличиС Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ 1Мб свободного дискового пространства.

SVGA — графичСский Π°Π΄Π°ΠΏΡ‚Π΅Ρ€.

ΠœΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€ ΠΏΠ΅Ρ€ΠΈΡ„Π΅Ρ€ΠΈΠΉΠ½ΠΎΠ³ΠΎ оборудования.

1.5 Π’Ρ‹Π·ΠΎΠ² ΠΈ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ°

Для Π½Π°Ρ‡Π°Π»Π° Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ» dichotomy. exe

1.6 Π’Ρ…ΠΎΠ΄Π½Ρ‹Π΅ ΠΈ Π²Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅

Π’Ρ…ΠΎΠ΄Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅:

1. ΠšΠΎΡΡ„Ρ„ΠΈΡ†ΠΈΠ΅Π½Ρ‚Ρ‹ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ (a0,Π°1,Π°2,a3,Π°4,Π°5) — Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ числа

2. Π˜Π½Ρ‚Π΅Ρ€Π²Π°Π» поиска — Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ числа

3. Π’ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ — ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ 0,1

Π’Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅:

Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ максимума ΠΈ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌΠ°.

2. ОписаниС примСнСния

2.1 НазначСниС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π° для поиска ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌΠ° ΠΈ ΠΌΠ°ΠΊΡΠΈΠΌΡƒΠΌΠ° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π½Π° Π·Π°Π΄Π°Π½Π½ΠΎΠΌ ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»Π΅. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π²ΠΈΠ΄Π° с ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½ΠΎΠΉ ΡΡ‚Π΅ΠΏΠ΅Π½ΡŒΡŽ Ρ…, Ρ€Π°Π²Π½ΠΎΠΉ 5.

2.2 Условия примСнСния

ΠœΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹Π΅ трСбования:

ΠŸΡ€ΠΎΡ†Π΅ΡΡΠΎΡ€ Intel Pentium II.

НаличиС Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ 16MΠ± ΠžΠ—Π£.

НаличиС Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ 1Мб свободного дискового пространства.

SVGA — графичСский Π°Π΄Π°ΠΏΡ‚Π΅Ρ€.

ΠœΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€ ΠΏΠ΅Ρ€ΠΈΡ„Π΅Ρ€ΠΈΠΉΠ½ΠΎΠ³ΠΎ оборудования.

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ обСспСчСниС, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΠ΅ для функционирования ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹:

ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Π°Ρ срСда Windows 95/98/Me/2k/XP

Microsoft Visual Studio 2005

2.3 ОписаниС Π·Π°Π΄Π°Ρ‡ΠΈ

Π—Π°Π΄Π°Ρ‡Π°:

Найти ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ ΠΈ ΠΌΠ°ΠΊΡΠΈΠΌΡƒΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π½Π° Π·Π°Π΄Π°Π½Π½ΠΎΠΌ ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»Π΅ для Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π²ΠΈΠ΄Π° с ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½ΠΎΠΉ ΡΡ‚Π΅ΠΏΠ΅Π½ΡŒΡŽ Ρ…, Ρ€Π°Π²Π½ΠΎΠΉ 5.

ΠœΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΡ‡Π΅ΡΠΊΠ°Ρ постановка ΠΈ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Π·Π°Π΄Π°Ρ‡ΠΈ:

Одним ΠΈΠ· ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ являСтся ΠΌΠ΅Ρ‚ΠΎΠ΄ Π΄ΠΈΡ…ΠΎΡ‚ΠΎΠΌΠΈΠΈ.

ПолоТим, Ρ‡Ρ‚ΠΎ xn =. Π”Π»ΠΈΠ½Π° ΠΎΡ‚Ρ€Π΅Π·ΠΊΠ° L = (|B| - |A|). Вычислим f (xn).

x1 = A +, x2 = B —. ВычисляСм f (x1) ΠΈ f (x2).

Если f (x1) < f (xn), Ρ‚ΠΎ ΠΈΡΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π» [xn,B], для этого B = xn, xn = x1. ΠŸΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ ΠΊ ΡˆΠ°Π³Ρƒ 5. Π˜Π½Π°Ρ‡Π΅ ΠΊ ΡˆΠ°Π³Ρƒ 4.

Если f (x2) < f (xn), Ρ‚ΠΎ ΠΈΡΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π» [A,xn] для этого A = xn, xn = x2. ΠŸΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ ΠΊ ΡˆΠ°Π³Ρƒ 5. Π˜Π½Π°Ρ‡Π΅ ΠΈΡΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»Ρ‹ [A,x1] [x2,B], для этого A = x1, B = x2.

ВычисляСм L = B — A. Если L? Π΅, Ρ‚ΠΎ ΠΊΠΎΠ½Π΅Ρ† Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°. Π˜Π½Π°Ρ‡Π΅ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ ΠΊ ΡˆΠ°Π³Ρƒ 2.

ΠžΠΊΠΎΠ½Ρ‡Π°Π½ΠΈΠ΅ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² ΡΠ΅Π±Ρ x* = xm, f (x*) = f (xm)

2.4 Π’Ρ…ΠΎΠ΄Π½Ρ‹Π΅ ΠΈ Π²Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅

Π’Ρ…ΠΎΠ΄Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅:

1. ΠšΠΎΡΡ„Ρ„ΠΈΡ†ΠΈΠ΅Π½Ρ‚Ρ‹ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ (a0,Π°1,Π°2,a3,Π°4,Π°5) — Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ числа

2. Π˜Π½Ρ‚Π΅Ρ€Π²Π°Π» поиска — Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ числа

3. Π’ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ — ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ 0,1

Π’Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅:

Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ максимума ΠΈ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌΠ°.

3. Руководство программиста

3.1 НазначСниС ΠΈ ΡƒΡΠ»ΠΎΠ²ΠΈΡ примСнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

НазначСниС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹:

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π° для поиска ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌΠ° ΠΈ ΠΌΠ°ΠΊΡΠΈΠΌΡƒΠΌΠ° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π½Π° Π·Π°Π΄Π°Π½Π½ΠΎΠΌ ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»Π΅. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π²ΠΈΠ΄Π° с ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½ΠΎΠΉ ΡΡ‚Π΅ΠΏΠ΅Π½ΡŒΡŽ Ρ…, Ρ€Π°Π²Π½ΠΎΠΉ 5.

ΠœΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹Π΅ трСбования:

ΠŸΡ€ΠΎΡ†Π΅ΡΡΠΎΡ€ Intel Pentium II.

НаличиС Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ 16MΠ± ΠžΠ—Π£.

НаличиС Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ 1Мб свободного дискового пространства.

SVGA — графичСский Π°Π΄Π°ΠΏΡ‚Π΅Ρ€.

ΠœΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€ ΠΏΠ΅Ρ€ΠΈΡ„Π΅Ρ€ΠΈΠΉΠ½ΠΎΠ³ΠΎ оборудования.

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ обСспСчСниС, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΠ΅ для функционирования ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹:

ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Π°Ρ срСда Windows 95/98/Me/2k/XP

Microsoft Visual Studio 2005

3.2 Π₯арактСристики ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

Для выполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ трСбуСтся ΡΡ€Π°Π²Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ нСбольшой ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΠΊ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ.

Π’ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ присутствуСт ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π²Π²Π΅Π΄Π΅Π½Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…, Ρ‡Ρ‚ΠΎ позволяСт ΠΏΡ€Π΅Π΄ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Π΅ ошибки ΠΈ ΠΎΠΏΠΎΠ²Π΅ΡΡ‚ΠΈΡ‚ΡŒ ΠΎΠ± ΡΡ‚ΠΎΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ

3.3 ΠžΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ ΠΊ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅

Для Π½Π°Ρ‡Π°Π»Π° Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ» dichotomy. exe

3.4 Π’Ρ…ΠΎΠ΄Π½Ρ‹Π΅ ΠΈ Π²Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅

Π’Ρ…ΠΎΠ΄Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅:

1. ΠšΠΎΡΡ„Ρ„ΠΈΡ†ΠΈΠ΅Π½Ρ‚Ρ‹ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ (a0,Π°1,Π°2,a3,Π°4,Π°5) — Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ числа

2. Π˜Π½Ρ‚Π΅Ρ€Π²Π°Π» поиска — Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ числа

3. Π’ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ — ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ 0,1

Π’Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅:

Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ максимума ΠΈ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌΠ°.

3.5 БообщСния

БообщСния, Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌΡ‹Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ:

(1) Π’Π²Π΅Π΄Π΅Π½ Π½Π΅Π²Π΅Ρ€Π½Ρ‹ΠΉ ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»!

ΠŸΡ€ΠΈΡ‡ΠΈΠ½Ρ‹ возникновСния:

— Π»Π΅Π²Π°Ρ Π³Ρ€Π°Π½ΠΈΡ†Π° большС ΠΏΡ€Π°Π²ΠΎΠΉ

— Π»Π΅Π²Π°Ρ Π³Ρ€Π°Π½ΠΈΡ†Π° Ρ€Π°Π²Π½Π° ΠΏΡ€Π°Π²ΠΎΠΉ

(2) Π’Π²Π΅Π΄Π΅Π½Π° нСвСрная Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ!

ΠŸΡ€ΠΈΡ‡ΠΈΠ½Ρ‹ возникновСния:

— Π’Π²Π΅Π΄Π΅Π½Π° нСвСрная Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ

4. ОписаниС ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½ΠΎΠ³ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°

Π’ ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½ΠΎΠ³ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° рассмотрим Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ с Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ f (x) = 2 + 3 — 2 + 4+ 8

Π˜Π½Ρ‚Π΅Ρ€Π²Π°Π» поиска: [-6; 7]

Π’ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ: 0,01

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½ΠΎΠ³ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° (Рис.1)

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΈΠΌ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΡŒ расчСтов:

ΠœΠΈΠ½ΠΈΠΌΡƒΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ (Рис.2)

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, графичСски ΠΏΡ€ΠΎΠ²Π΅Ρ€Π΅Π½Π° ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΡŒ вычислСний.

5. Листинг ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

#include «stdafx.h»

#include

#include

#include

#include

#include

//—————————————————————————————————;

void menu ();

void out (const char*, double);

double func (double, double, double, double, double, double, double);

double dihotomy (double, double, int, double, double, double, double, double, double, double);

//—————————————————————————————————;

void main ()

{

setlocale (LC_ALL, «rus»);

system («color 71»);

double A, B, t, a0, a1,a2,a3,a4,a5,mn, mx;

char NumberOfAction;

int resultCase=1;

while (resultCase≠0)

{

do

{

menu ();

NumberOfAction=getch ();

}

while (NumberOfAction≠'1' && NumberOfAction≠'2' && NumberOfAction≠'3' && NumberOfAction≠'4' && NumberOfAction≠'e');

switch (NumberOfAction)

{

//case '1' (Π²Π²ΠΎΠ΄ ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»Π°)

case '1':

system («cls»);

system («echo —————————————————————————————»);

printf («Π’Π²Π΅Π΄ΠΈΡ‚Π΅ ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π» поиска:»);

printf («nA:t»);scanf («%lf» ,&A);

printf («B:t»);scanf («%lf» ,&B);

if (A==B || A>=B)

{

printf («nΠ’Π²Π΅Π΄Π΅Π½ Π½Π΅Π²Π΅Ρ€Π½Ρ‹ΠΉ ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»! nn»);

system («pause»);

exit (1);

}

system («cls»);

break;

//case '2' (Π²Π²ΠΎΠ΄ коэффициэнтов)

case '2':

system («cls»);

system («echo —————————————————————————————»);

printf («Π’Π²Π΅Π΄ΠΈΡ‚Π΅ коэффициэнт ΠΏΡ€ΠΈ X5:t»);scanf («%lf» ,&a0);

printf («nΠ’Π²Π΅Π΄ΠΈΡ‚Π΅ коэффициэнт ΠΏΡ€ΠΈ X4:t»);scanf («%lf» ,&a1);

printf («nΠ’Π²Π΅Π΄ΠΈΡ‚Π΅ коэффициэнт ΠΏΡ€ΠΈ X3:t»);scanf («%lf» ,&a2);

printf («nΠ’Π²Π΅Π΄ΠΈΡ‚Π΅ коэффициэнт ΠΏΡ€ΠΈ X2:t»);scanf («%lf» ,&a3);

printf («nΠ’Π²Π΅Π΄ΠΈΡ‚Π΅ коэффициэнт ΠΏΡ€ΠΈ X: t»);scanf («%lf» ,&a4);

printf («nΠ’Π²Π΅Π΄ΠΈΡ‚Π΅ коэффициэнт C: tt»);scanf («%lf» ,&a5);

system («cls»);

break;

//case '3' (Π²Π²ΠΎΠ΄ точности)

case '3':

system («cls»);

system («echo —————————————————————————————»);

printf («Π’Π²Π΅Π΄ΠΈΡ‚Π΅ Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ: t»);scanf («%lf» ,&t);

if (t<0.1)

{

printf («nΠ’Π²Π΅Π΄Π΅Π½Π° нСвСрная Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ! nn»);

system («pause»);

exit (1);

}

mx=dihotomy (A, B,-1,a0,a1,a2,a3,a4,a5,t);

mn=dihotomy (A, B,1,a0,a1,a2,a3,a4,a5,t);

system («cls»);

break;

//case '4' (Π²Ρ‹Π²ΠΎΠ΄ ΠΎΡ‚Π²Π΅Ρ‚Π° Π½Π° ΡΠΊΡ€Π°Π½)

case '4':

system («cls»);

system («echo —————————————————————————————»);

printf («Π˜Π½Ρ‚Π΅Ρ€Π²Π°Π»:»);

out («t (%lg,», A);out («%lg)nn», B);

printf («Π’ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ:t»);

out («%lfnn», t);

printf («ΠžΡ‚Π²Π΅Ρ‚:nn»);

out («MAX (x)=t%lgn», func (mx, a0, a1,a2,a3,a4,a5));out («x=t%lgnn», mx);

out («MIN (x)=t%lgn», func (mn, a0, a1,a2,a3,a4,a5));out («x2=t%lg», mn);

getch ();

system («cls»);

break;

//case 'e' (exit — Π²Ρ‹Ρ…ΠΎΠ΄)

case 'e':

printf («nnДля Π²Ρ‹Ρ…ΠΎΠ΄Π° ΠΈΠ· ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ Π»ΡŽΠ±ΡƒΡŽ ΠΊΠ»Π°Π²ΠΈΡˆΡƒ…»);

getch ();

exit (1);

break;

}

}

}

//—————————————————————————————————;

void menu ()

{

system («echo —————————————————————————————»);

system («echo Кнопка 1 — Π’Π²ΠΎΠ΄ ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»Π°»);

system («echo Кнопка 2 — Π’Π²ΠΎΠ΄ коэффициэнтов»);

system («echo Кнопка 3 — Π’Π²ΠΎΠ΄ точности»);

system («echo Кнопка 4 — Π’Ρ‹Π²ΠΎΠ΄ ΠΎΡ‚Π²Π΅Ρ‚Π° Π½Π° ΡΠΊΡ€Π°Π½»);

system («echo —————————————————————————————»);

system («echo Кнопка e — Π’Ρ‹Ρ…ΠΎΠ΄»);

system («echo —————————————————————————————»);

}

//—————————————————————————————————;

void out (const char *format, double value)

{

printf (format, value);

}

//—————————————————————————————————;

double func (double x, double a0, double a1, double a2, double a3, double a4, double a5)//F (x)

{

return (a0*x*x*x*x*x + a1*x*x*x*x + a2*x*x*x + a3*x*x + a4*x + a5);

}

//—————————————————————————————————;

double dihotomy (double A, double B, int m, double a0, double a1, double a2, double a3, double a4, double a5, double t)//дихотомия

{

double L=abs (B-A);

double xn=(A+B)/2;

while (L>t)

{

double fn=m*func (xn, a0, a1,a2,a3,a4,a5);

double x1=A+L/4;

double x2=B-L/4;

double f1=m*func (x1,a0,a1,a2,a3,a4,a5);

double f2=m*func (x2,a0,a1,a2,a3,a4,a5);

if (f1

{

B=xn;

xn=x1;

L=B-A;

}

else if (f2

{

A=xn;

xn=x2;

L=B-A;

}

else if ((f1>=fn) && (f2>=fn))

{

A=x1;

B=x2;

L=B-A;

}

}

return xn;

}

БиблиографичСский список

ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° функция оптимизация листинг Π‘Π°Ρ…Π²Π°Π»ΠΎΠ² Н. Π‘., Π–ΠΈΠ΄ΠΊΠΎΠ² Н. П., КобСльков Π“. Π“. ЧислСнныС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹. — 8-Π΅ ΠΈΠ·Π΄. — Πœ.: Лаборатория Π‘Π°Π·ΠΎΠ²Ρ‹Ρ… Π—Π½Π°Π½ΠΈΠΉ, 2000.

Ананий Π’. Π›Π΅Π²ΠΈΡ‚ΠΈΠ½ Π“Π»Π°Π²Π° 11. ΠŸΡ€Π΅ΠΎΠ΄ΠΎΠ»Π΅Π½ΠΈΠ΅ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ: ΠœΠ΅Ρ‚ΠΎΠ΄ дСлСния ΠΏΠΎΠΏΠΎΠ»Π°ΠΌ. — Πœ.: «Π’ΠΈΠ»ΡŒΡΠΌΡ», 2006. — Π‘. 476−480.

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