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

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° для вычислСния ΠΊΠΎΡ€Π½Π΅ΠΉ Π½Π΅Π»ΠΈΠ½Π΅ΠΉΠ½Ρ‹Ρ… ΡƒΡ€Π°Π²Π½Π΅Π½ΠΈΠΉ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ

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

ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ этап рСализуСтся Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ способами. ΠŸΡ€ΠΈΠ±Π»ΠΈΠΆΠ΅Π½Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ корня ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ извСстно, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΈΠ· Ρ„изичСского смысла Π·Π°Π΄Π°Ρ‡ΠΈ. ΠŸΡ€ΠΈ Π²Ρ‹Π΄Π΅Π»Π΅Π½ΠΈΠΈ области, Π² ΠΏΡ€Π΅Π΄Π΅Π»Π°Ρ… ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ находятся вСщСствСнныС ΠΊΠΎΡ€Π½ΠΈ уравнСния, ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±ΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΡΡ‚Π²ΠΎΠΌ. Если Π½Π° ΠΊΠΎΠ½Ρ†Π°Ρ… Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΎΡ‚Ρ€Π΅Π·ΠΊΠ° Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π½Π΅ΠΏΡ€Π΅Ρ€Ρ‹Π²Π½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ f (x) ΠΈΠΌΠ΅Π΅Ρ‚ Ρ€Π°Π·Π½Ρ‹Π΅ Π·Π½Π°ΠΊΠΈ, Ρ‚ΠΎ Π½Π° ΡΡ‚ΠΎΠΌ ΠΎΡ‚Ρ€Π΅Π·ΠΊΠ΅ ΡƒΡ€Π°Π²Π½Π΅Π½ΠΈΠ΅ f (x) = 0 ΠΈΠΌΠ΅Π΅Ρ‚… Π§ΠΈΡ‚Π°Ρ‚ΡŒ Π΅Ρ‰Ρ‘ >

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

1. Анализ Π·Π°Π΄Π°Ρ‡ΠΈ

1.1 ИсслСдованиС ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚Π½ΠΎΠΉ области

Π’ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅ Π½Π°ΡƒΡ‡Π½Ρ‹Ρ… ΠΈ ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€Π½Ρ‹Ρ… расчСтов часто Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΡƒΡ€Π°Π²Π½Π΅Π½ΠΈΠΉ Π²ΠΈΠ΄Π° f (x) = 0. Если функция прСдставляСт ΠΌΠ½ΠΎΠ³ΠΎΡ‡Π»Π΅Π½, Ρ‚ΠΎ Π΄Π°Π½Π½ΠΎΠ΅ ΡƒΡ€Π°Π²Π½Π΅Π½ΠΈΠ΅ называСтся алгСбраичСским. Если находится ΠΏΠΎΠ΄ Π·Π½Π°ΠΊΠΎΠΌ транстСндСнтной Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ (ΠΏΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΉ, логарифмичСской, тригономСтричСской ΠΈ Ρ‚. ΠΏ.), ΡƒΡ€Π°Π²Π½Π΅Π½ΠΈΠ΅ называСтся транстСндСнтным. Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ…, ΠΏΡ€ΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ выполняСтся условиС f (x) = 0, называСтся ΠΊΠΎΡ€Π½Π΅ΠΌ уравнСния.

Π’ ΠΎΠ±Ρ‰Π΅ΠΌ случаС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ f (x) = 0 Π½Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ аналитичСских Ρ„ΠΎΡ€ΠΌΡƒΠ» для своих ΠΊΠΎΡ€Π½Π΅ΠΉ. Однако Ρ‚ΠΎΡ‡Π½ΠΎΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ уравнСния Π½Π΅ ΡΠ²Π»ΡΠ΅Ρ‚ся Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ΠΌ. Π”Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ, Π²ΡΡ‚Ρ€Π΅Ρ‡Π°ΡŽΡ‰ΠΈΠ΅ΡΡ Π½Π° ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅ уравнСния часто содСрТат коэффициСнты, Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Ρ‹ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΈΠΌΠ΅ΡŽΡ‚ ΠΏΡ€ΠΈΠ±Π»ΠΈΠΆΠ΅Π½Π½Ρ‹Π΅ значСния. Π’ ΡΠΈΠ»Ρƒ этого Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Ρ‹ числСнныС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΡƒΡ€Π°Π²Π½Π΅Π½ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ ΠΏΡ€ΠΈΠ±Π»ΠΈΠΆΠ΅Π½Π½Ρ‹Π΅ значСния ΠΊΠΎΡ€Π½Π΅ΠΉ с Π·Π°Π΄Π°Π½Π½ΠΎΠΉ ΡΡ‚Π΅ΠΏΠ΅Π½ΡŒΡŽ точности.

ΠŸΡ€ΠΎΡ†Π΅ΡΡ отыскания корня уравнСния состоит ΠΈΠ· Π΄Π²ΡƒΡ… этапов:

1) Π½Π°Ρ…ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΈΠ±Π»ΠΈΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ значСния корня;

2) ΡƒΡ‚ΠΎΡ‡Π½Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΈΠ±Π»ΠΈΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ значСния Π΄ΠΎ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π·Π°Π΄Π°Π½Π½ΠΎΠΉ стСпСни точности.

ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ этап рСализуСтся Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ способами. ΠŸΡ€ΠΈΠ±Π»ΠΈΠΆΠ΅Π½Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ корня ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ извСстно, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΈΠ· Ρ„изичСского смысла Π·Π°Π΄Π°Ρ‡ΠΈ. ΠŸΡ€ΠΈ Π²Ρ‹Π΄Π΅Π»Π΅Π½ΠΈΠΈ области, Π² ΠΏΡ€Π΅Π΄Π΅Π»Π°Ρ… ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ находятся вСщСствСнныС ΠΊΠΎΡ€Π½ΠΈ уравнСния, ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±ΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΡΡ‚Π²ΠΎΠΌ. Если Π½Π° ΠΊΠΎΠ½Ρ†Π°Ρ… Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΎΡ‚Ρ€Π΅Π·ΠΊΠ° Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π½Π΅ΠΏΡ€Π΅Ρ€Ρ‹Π²Π½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ f (x) ΠΈΠΌΠ΅Π΅Ρ‚ Ρ€Π°Π·Π½Ρ‹Π΅ Π·Π½Π°ΠΊΠΈ, Ρ‚ΠΎ Π½Π° ΡΡ‚ΠΎΠΌ ΠΎΡ‚Ρ€Π΅Π·ΠΊΠ΅ ΡƒΡ€Π°Π²Π½Π΅Π½ΠΈΠ΅ f (x) = 0 ΠΈΠΌΠ΅Π΅Ρ‚ хотя Π±Ρ‹ ΠΎΠ΄ΠΈΠ½ ΠΊΠΎΡ€Π΅Π½ΡŒ.

Π’ ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€Π½ΠΎΠΉ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅ распространСн графичСский способ опрСдСлСния ΠΏΡ€ΠΈΠ±Π»ΠΈΠΆΠ΅Π½Π½Ρ‹Ρ… ΠΊΠΎΡ€Π½Π΅ΠΉ. Π’ ΡΡ‚ΠΎΠΌ случаС строится Π³Ρ€Π°Ρ„ΠΈΠΊ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ y = f (x), абсциссы Ρ‚ΠΎΡ‡Π΅ΠΊ пСрСсСчСния ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ с ΠΎΡΡŒΡŽ Ox Π΄Π°Π΄ΡƒΡ‚ ΠΏΡ€ΠΈΠ±Π»ΠΈΠΆΠ΅Π½Π½Ρ‹Π΅ значСния ΠΊΠΎΡ€Π½Π΅ΠΉ. Иногда удаСтся ΠΏΠΎΠ΄ΠΎΠ±Ρ€Π°Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ простоС ΡƒΡ€Π°Π²Π½Π΅Π½ΠΈΠ΅, ΠΊΠΎΡ€Π½ΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ находятся Π²Π±Π»ΠΈΠ·ΠΈ ΠΊΠΎΡ€Π½Π΅ΠΉ исходного уравнСния. БущСствуСт Ρ‚Π°ΠΊΠΆΠ΅ ряд ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… аналитичСских ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² ΠΏΡ€ΠΈΠ±Π»ΠΈΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ нахоТдСния ΠΊΠΎΡ€Π½Π΅ΠΉ ΠΌΠ½ΠΎΠ³ΠΎΡ‡Π»Π΅Π½ΠΎΠ².

НайдСнныС ΠΏΡ€ΠΈΠ±Π»ΠΈΠΆΠ΅Π½Π½Ρ‹Π΅ значСния ΠΊΠΎΡ€Π½Π΅ΠΉ ΡƒΡ‚ΠΎΡ‡Π½ΡΡŽΡ‚ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΌΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌΠΈ. НаиболСС эффСктивными ΠΈΠ· Π½ΠΈΡ… ΡΠ²Π»ΡΡŽΡ‚ΡΡ:

— ΠΌΠ΅Ρ‚ΠΎΠ΄ дСлСния ΠΎΡ‚Ρ€Π΅Π·ΠΊΠ° ΠΏΠΎΠΏΠΎΠ»Π°ΠΌ;

— ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ±Π»ΠΈΠΆΠ΅Π½ΠΈΠΉ (ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΉ);

— ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΡŒΡŽΡ‚ΠΎΠ½Π° (ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΊΠ°ΡΠ°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ…).

Рассмотрим ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΉ, Ρ‚.ΠΊ. ΠΎΠ½ ΠΈ ΡΠ²Π»ΡΠ΅Ρ‚ся ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚ΠΎΠΌ ΠΌΠΎΠ΅ΠΉ курсовой Ρ€Π°Π±ΠΎΡ‚Ρ‹.

1.2 ΠœΠ΅Ρ‚ΠΎΠ΄ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ±Π»ΠΈΠΆΠ΅Π½ΠΈΠΉ (ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΉ)

Π£Ρ€Π°Π²Π½Π΅Π½ΠΈΠ΅ f (x) = 0 ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π² Ρ„ΠΎΡ€ΠΌΠ΅ x = ?(x). НапримСр, ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ x, Π° ΠΎΡΡ‚Π°Π»ΡŒΠ½ΠΎΠ΅ пСрСнСсти Π² ΠΏΡ€Π°Π²ΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ. МоТно Ρ‚Π°ΠΊΠΆΠ΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅: x = x + cf (x), Π³Π΄Π΅ с — ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½Π°Ρ постоянная. x[0] задаСтся Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹ΠΌ ΠΏΡ€ΠΈΠ±Π»ΠΈΠΆΠ΅Π½ΠΈΠ΅ΠΌ, Π° ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ приблиТСния ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ΡΡ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€ΠΎΠΉ Π²ΠΈΠ΄Π°: x[n + 1] = ?(x[n]). ΠŸΡ€ΠΎΡ†Π΅ΡΡ продолТаСтся Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ для Π΄Π²ΡƒΡ… ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ±Π»ΠΈΠΆΠ΅Π½ΠΈΠΉ Π½Π΅ ΡΡ‚Π°Π½Π΅Ρ‚ мСньшС Π·Π°Π΄Π°Π½Π½ΠΎΠΉ ΠΏΠΎΠ³Ρ€Π΅ΡˆΠ½ΠΎΡΡ‚ΠΈ.

2. Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ

2.1 ВрСбования ΠΊ Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½Ρ‹ΠΌ рСсурсам

Π”Π°Π½Π½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ обСспСчСниС Π±Ρ‹Π»ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½ΠΎ Π½Π° ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅ Π½Π° Π±Π°Π·Π΅ процСссора Intel Π² ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмС Windows 7. ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ‚ΡΡ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ смоТСт Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒΡΡ Π½Π° Π»ΡŽΠ±ΠΎΠΌ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅ с Π±ΠΎΠ»Π΅Π΅-ΠΌΠ΅Π½Π΅Π΅ соврСмСнной ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡ‚Π°Ρ†ΠΈΠ΅ΠΉ. ВСстированиС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΠ»ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ Π² ΠžΠ‘ Windows XP, сбоСв Π² Ρ€Π°Π±ΠΎΡ‚Π΅ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½ΠΎ Π½Π΅ Π±Ρ‹Π»ΠΎ.

2.2 ВрСбования ΠΊ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΌ срСдствам Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ

Для просмотра Π»ΠΈΠ±ΠΎ рСдактирования Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΠΌΠ΅Ρ‚ΡŒ установлСнноС Π² ΡΠΈΡΡ‚Π΅ΠΌΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ обСспСчСниС RAD Studio 2012 Π»ΠΈΠ±ΠΎ Delphi 2007. Π‘Ρ€Π΅Π΄Π° Delphi Π±Ρ‹Π»Π° Π²Ρ‹Π±Ρ€Π°Π½Π° Π² ΡΠΈΠ»Ρƒ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ ΠΎΠ½Π° являСтся извСстной ΡˆΠΈΡ€ΠΎΠΊΠΎΠΌΡƒ ΠΊΡ€ΡƒΠ³Ρƒ программистов ΠΈ ΠΈΠ΄Π΅Π°Π»ΡŒΠ½ΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для обучСния Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎΠΌΡƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ.

3. Руководство ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½ΠΎΠ΅ ΠΌΠ½ΠΎΠΉ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠΌΠ΅Π΅Ρ‚ достаточно простой, Π΄Ρ€ΡƒΠΆΠ΅Π»ΡŽΠ±Π½Ρ‹ΠΉ ΠΈ ΠΈΠ½Ρ‚ΡƒΠΈΡ‚ΠΈΠ²Π½ΠΎ понятный интСрфСйс. ΠŸΡ€ΠΈ запускС Ρ„Π°ΠΉΠ»Π° Project1. exe Π½Π° Π΄ΠΈΡΠΏΠ»Π΅Π΅ появляСтся главная Ρ„ΠΎΡ€ΠΌΠ° прилоТСния (Рисунок 1).

Рисунок 1 — Главная Ρ„ΠΎΡ€ΠΌΠ° прилоТСния Π’Π²Π΅Ρ€Ρ…Ρƒ Ρ„ΠΎΡ€ΠΌΡ‹ располоТСно Π½Π΅Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎΠ΅ ΡƒΡ€Π°Π²Π½Π΅Π½ΠΈΠ΅, Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΌ способом. ΠŸΠΎΡΠ΅Ρ€Π΅Π΄ΠΈΠ½Π΅ Ρ„ΠΎΡ€ΠΌΡ‹ располоТСн Π³Ρ€Π°Ρ„ΠΈΠΊ, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒΡΡ вся графичСская информация, которая Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΡΠ²Π»ΡΡ‚ΡŒΡΡ Π² ΠΏΡ€ΠΎΡ†Π΅ΡΡΠ΅ вычислСний.

Π’ Π»Π΅Π²ΠΎΠΌ Π½ΠΈΠΆΠ½Π΅ΠΌ ΡƒΠ³Π»Ρƒ располоТСна панСль, содСрТащая ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ TCheckBox, TLabeledEdit, TButton.

TCheckBox с Π½Π°Π΄ΠΏΠΈΡΡŒΡŽ «ΠΠ½ΠΈΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ процСсс» опрСдСляСт, Π±ΡƒΠ΄Π΅Ρ‚ Π»ΠΈ Π·Π°ΠΌΠ΅Π΄Π»Π΅Π½Π° прорисовка ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… Π»ΠΈΠ½ΠΈΠΉ Π½Π° Π³Ρ€Π°Ρ„ΠΈΠΊΠ΅. Π’ ΠΏΠΎΠ»Π΅ TLabeledEdit ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π΄Π°Π²Π°Ρ‚ΡŒ ΠΆΠ΅Π»Π°Π΅ΠΌΡƒΡŽ Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ вычислСний. По Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ «Π Π΅ΡˆΠΈΡ‚ΡŒ» запускаСтся Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ вычислСния корня уравнСния.

Кнопка Π·Π°ΠΊΡ€Ρ‹Ρ‚ΡŒ, располоТСнная Π² Π½ΠΈΠΆΠ½Π΅ΠΌ ΠΏΡ€Π°Π²ΠΎΠΌ ΡƒΠ³Π»Ρƒ, Π·Π°ΠΊΡ€Ρ‹Π²Π°Π΅Ρ‚ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅.

4. ВСстовыС ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹

Для тСстирования прилоТСния Π±Ρ‹Π»ΠΎ Π²Ρ‹Π±Ρ€Π°Π½ΠΎ ΡƒΡ€Π°Π²Π½Π΅Π½ΠΈΠ΅ exp (x) + ln (x) — 10x = 0. АналитичСскоС рассмотрСниС Π΄Π°Π½Π½ΠΎΠ³ΠΎ уравнСния ΠΏΠΎΠΊΠ°Π·Π°Π»ΠΎ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΎ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΊΠΎΡ€Π΅Π½ΡŒ Π½Π° ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»Π΅ (0, 4). ΠŸΡ€ΠΈ Ρ… > 4 Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ y = exp (x) + ln (x) — 10x Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ возрастаСт, ΠΈ ΠΏΠΎΡΡ‚ΠΎΠΌΡƒ Π΄Π°Π½Π½Ρ‹Π΅ значСния Ρ… ΠΌΡ‹ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ Π½Π΅ Π±ΡƒΠ΄Π΅ΠΌ. ΠŸΡ€ΠΈΠ±Π»ΠΈΠΆΠ΅Π½Π½Ρ‹Π΅ вычислСния ΠΏΠΎΠΊΠ°Π·Π°Π»ΠΈ, Ρ‡Ρ‚ΠΎ ΠΊΠΎΡ€Π΅Π½ΡŒ Π΄Π°Π½Π½ΠΎΠ³ΠΎ уравнСния Ρ…0 ΠΏΡ€ΠΈΠ±Π»ΠΈΠ·ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ€Π°Π²Π΅Π½ 3,5. ΠŸΠ΅Ρ€Π΅ΠΉΠ΄Π΅ΠΌ ΠΊ Ρ‚Π΅ΡΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ прилоТСния, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Π΄Π°Π½Π½ΠΎΠ΅ ΠΏΡ€ΠΈΠ±Π»ΠΈΠΆΠ΅Π½Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΈ ΡƒΡ‚ΠΎΡ‡Π½ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Π΄ΠΎ Π½ΡƒΠΆΠ½ΠΎΠΉ Π½Π°ΠΌ точности.

5. ВСстированиС прилоТСния

ЗапускаСм нашС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π’ ΠΏΠΎΠ»Π΅ «Π’ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ» Π²Π²ΠΎΠ΄ΠΈΠΌ Π½ΡƒΠΆΠ½ΡƒΡŽ Π½Π°ΠΌ Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ вычислСний (Рисунок 2).

Рисунок 2 — Π’Π²ΠΎΠ΄ точности вычислСний Π”Π°Π»Π΅Π΅ провСряСм, Ρ‡Ρ‚ΠΎ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»ΡŒ «ΠΠ½ΠΈΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ процСсс» находится Π²ΠΎ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π½ΠΎΠΌ состоянии (Рисунок 3).

Рисунок 3 — Установка ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»Ρ Π²ΠΎ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π½ΠΎΠ΅ состояниС

ΠŸΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ Ρ‡Π°ΡΡ‚ΡŒ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½Π°, Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ ΠΎΡΠ½ΠΎΠ²Π½ΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ вычислСния корня уравнСния. Для этого Π½Π°ΠΆΠΈΠΌΠ°Π΅ΠΌ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ «Π Π΅ΡˆΠΈΡ‚ΡŒ».

Над Π³Ρ€Π°Ρ„ΠΈΠΊΠΎΠΌ появляСтся ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ TLabel, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π΅ состояниС Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ процСсса. ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ этап вычислСния — рисованиС Π³Ρ€Π°Ρ„ΠΈΠΊΠ° исходной Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ (Рисунок 4).

Рисунок 4 — РисованиС Π³Ρ€Π°Ρ„ΠΈΠΊΠ° исходной Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π’Ρ‚ΠΎΡ€Ρ‹ΠΌ этапом являСтся Π½Π°Ρ…ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΈΠ±Π»ΠΈΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ значСния корня уравнСния (Рисунок 5).

Рисунок 5 — Поиск ΠΏΡ€ΠΈΠ±Π»ΠΈΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ значСния корня

Π”Π°Π»Π΅Π΅ слСдуСт рисованиС Π³Ρ€Π°Ρ„ΠΈΠΊΠΎΠ² биссСктрисы ΠΈ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, пСрСсСчСниС ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΈ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠ²Π»ΡΡ‚ΡŒΡΡ ΠΊΠΎΡ€Π½Π΅ΠΌ уравнСния (Рисунок 6, 7).

Рисунок 6 — ΠŸΠΎΡΡ‚Ρ€ΠΎΠ΅Π½ΠΈΠ΅ биссСктрисы Рисунок 7 — ΠŸΠΎΡΡ‚Ρ€ΠΎΠ΅Π½ΠΈΠ΅ Π³Ρ€Π°Ρ„ΠΈΠΊΠ° Π²ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ

Π—Π°ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ ΠΈ ΡΠ°ΠΌΡ‹ΠΌ Π³Π»Π°Π²Π½Ρ‹ΠΌ этапом вычислСния являСтся ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΉ процСсс нахоТдСния пСрСсСчСния Π³Ρ€Π°Ρ„ΠΈΠΊΠΎΠ² биссСктрисы ΠΈ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ (Рисунок 8).

Рисунок 8 — Поиск пСрСсСчСния Π³Ρ€Π°Ρ„ΠΈΠΊΠΎΠ² Когда Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ Π½Π°ΠΉΠ΄Π΅Π½Π½ΠΎΠ³ΠΎ корня достигнСт Ρ‚Ρ€Π΅Π±ΡƒΠ΅ΠΌΠΎΠΉ точности ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ свою Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΈ Π²Ρ‹Π²Π΅Π΄Π΅Ρ‚ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π² ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ TLabel, располоТСнный Π²Π²Π΅Ρ€Ρ…Ρƒ ΠΎΠΊΠ½Π° прилоТСния (Рисунок 9).

Рисунок 9 — Π—Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠ΅ Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ процСсса Как ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, ΠΏΡ€ΠΈΠ±Π»ΠΈΠΆΠ΅Π½Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ корня ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€Π΄ΠΈΠ»ΠΎΡΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎ ΠΈ ΠΊΠΎΡ€Π΅Π½ΡŒ Π±Ρ‹Π» Π½Π°ΠΉΠ΄Π΅Π½ с Π΄ΠΎΡΡ‚Π°Ρ‚ΠΎΡ‡Π½ΠΎ большой ΡΡ‚Π΅ΠΏΠ΅Π½ΡŒΡŽ точности. Π­Ρ‚ΠΎ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ ΠΎΠ± ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈ, соотвСтствСнно, ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠΉ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° вычислСния Π½Π΅Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎΠ³ΠΎ уравнСния ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ простой ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ.

6. ΠŸΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½ΠΎΠ΅ ΠΌΠ½ΠΎΠΉ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅ ΡƒΡ‡Π΅Π±Π½ΠΎΠ³ΠΎ пособия для дСмонстрации вычислСния ΠΊΠΎΡ€Π½Π΅ΠΉ Π½Π΅Π»ΠΈΠ½Π΅ΠΉΠ½Ρ‹Ρ… ΡƒΡ€Π°Π²Π½Π΅Π½ΠΈΠΉ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ, Ρ‚.ΠΊ. вСсь процСсс вычислСния пошагово дСмонстрируСтся Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ с ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌΠΈ пояснСниями Π² Π²ΠΈΠ΄Π΅ описания Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ этапа вычислСния.

ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅

ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΡ€ΠΈΠ±Π»ΠΈΠΆΠ΅Π½ΠΈΠ΅

// ΠœΠΎΠ΄ΡƒΠ»ΡŒ UnitEquation. pas

unit UnitEquation;

interface

uses Chart, Series, Forms, Windows, StdCtrls, SysUtils, Graphics;

type

TEquation = class

private

fResult: extended;

fAccuracy: extended;

fToAnimate: boolean;

fLabelPodskazka: TLabel;

fLineSeriesFx: TLineSeries;

fLineBisector: TLineSeries;

fPoint: TPointSeries;

function Func (x: extended): extended;

function Phi (x: extended): extended;

procedure DrawMainFunc;

function FindApproxTrunc: extended;

procedure DrawBisector;

procedure DrawFuncPhi;

function FindCrossing (approxTrunc: extended): extended;

function DrawVertical (x0: extended): extended;

function DrawHorizontal (x0: extended): extended;

procedure DrawTrunc;

procedure ChangeAxes (leftMin, leftMax, bottomMin, bottomMax: extended);

public

constructor Create (Chart: TChart; labelPodskazka: TLabel);

function FindResult: extended;

property Accuracy: extended read fAccuracy write fAccuracy;

property ToAnimate: boolean read fToAnimate write fToAnimate;

property Result: extended read fResult;

end;

implementation

constructor TEquation. Create (Chart: TChart; labelPodskazka: TLabel);

begin

fLineSeriesFx := TLineSeries. Create (Chart);

fLineSeriesFx.Pen.Width := 2;

Chart.AddSeries (fLineSeriesFx);

fLineBisector := TLineSeries. Create (Chart);

fLineBisector.Pen.Width := 2;

Chart.AddSeries (fLineBisector);

fPoint := TPointSeries. Create (Chart);

Chart.AddSeries (fPoint);

fLabelPodskazka := labelPodskazka;

end;

function TEquation. FindResult: extended;

var approxTrunc: extended;

begin

fLineSeriesFx.Clear;

fLineBisector.Clear;

fPoint.Clear;

fLabelPodskazka.Caption := 'РисуСм Π³Ρ€Π°Ρ„ΠΈΠΊ исходной Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ';

DrawMainFunc;

fLabelPodskazka.Caption := 'Находим ΠΏΡ€ΠΈΠ±Π»ΠΈΠΆΠ΅Π½Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ корня';

approxTrunc := FindApproxTrunc;

fLabelPodskazka.Caption := 'ΠŸΡ€ΠΈΠ±Π»ΠΈΠΆΠ΅Π½Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅: x = ' + FloatToStr (approxTrunc);

Application.ProcessMessages;

Sleep (3000);

fPoint.Clear;

fLabelPodskazka.Caption := 'Π‘Ρ‚Ρ€ΠΎΠΈΠΌ биссСктрису';

DrawBisector;

fLabelPodskazka.Caption := 'РисуСм Π³Ρ€Π°Ρ„ΠΈΠΊ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ';

DrawFuncPhi;

fLabelPodskazka.Caption := 'Π˜Ρ‰Π΅ΠΌ пСрСсСчСниС с Π±ΠΈΡΡΠ΅ΠΊΡ‚рисой';

fResult := FindCrossing (approxTrunc);

fLabelPodskazka.Caption := 'ΠšΠΎΡ€Π΅Π½ΡŒ Π½Π°ΠΉΠ΄Π΅Π½: x = ' + FloatToStrF (fResult, ffFixed, 4, 3);

DrawTrunc;

end;

procedure TEquation. DrawMainFunc;

var x: extended;

begin

fLineSeriesFx.Clear;

ChangeAxes (-20, 25, -0.5, 4.5);

x := 0.0001;

while x <= 4 do

begin

if fToAnimate then

begin

Application.ProcessMessages;

Sleep (1);

end;

fLineSeriesFx.AddXY (x, Func (x));

x := x + 0.01;

end;

end;

function TEquation. FindApproxTrunc: extended;

var x: extended;

begin

x := 1;

fPoint.Clear;

fPoint.Color := clGreen;

while abs (Func (x)) > 3 do

begin

if fToAnimate then

begin

Application.ProcessMessages;

Sleep (500);

end;

fPoint.Clear;

fPoint.AddXY (x, Func (x));

x := x + 0.5;

end;

Result := x — 0.5;

end;

procedure TEquation. DrawBisector;

var x: extended;

begin

fLineSeriesFx.Clear;

ChangeAxes (1.5, 4.5, 1.5, 4.5);

x := 2;

while x <= 4 do

begin

if fToAnimate then

begin

Application.ProcessMessages;

Sleep (8);

end;

fLineSeriesFx.AddXY (x, x);

x := x + 0.01;

end;

end;

procedure TEquation. DrawFuncPhi;

var x: extended;

begin

x := 2;

while x <= 4 do

begin

if fToAnimate then

begin

Application.ProcessMessages;

Sleep (1);

end;

fLineBisector.AddXY (x, Phi (x));

x := x + 0.01;

end;

end;

function TEquation. FindCrossing (approxTrunc: extended): extended;

var newResult, oldResult: extended;

begin

oldResult := approxTrunc;

DrawVertical (approxTrunc);

newResult := DrawHorizontal (approxTrunc);

while abs ((newResult — oldResult)/oldResult) >= fAccuracy do

begin

oldResult := newResult;

DrawVertical (oldResult);

newResult := DrawHorizontal (oldResult);

end;

Result := newResult;

end;

function TEquation. DrawVertical (x0: extended): extended;

var Line: TLineSeries;

y: extended;

bound: extended;

step: extended;

begin

Line := TLineSeries. Create (fLineSeriesFx.ParentChart);

Line.Color := clBlack;

Line.Pen.Width := 1;

fLineSeriesFx.ParentChart.AddSeries (Line);

y := 2;

bound := Phi (x0);

step := (bound — y)/50;

while y < bound + step/2 do

begin

if fToAnimate then

begin

Application.ProcessMessages;

end;

Line.AddXY (x0, y);

y := y + step;

end;

Result:= y — step;

end;

function TEquation. DrawHorizontal (x0: extended): extended;

var Line: TLineSeries;

x: extended;

bound: extended;

toRight: boolean;

step: extended;

begin

Line := TLineSeries. Create (fLineSeriesFx.ParentChart);

Line.Color := clBlack;

Line.Pen.Width := 1;

fLineSeriesFx.ParentChart.AddSeries (Line);

toRight := Phi (x0) > x0;

x := x0;

bound := Phi (x0);

step := abs ((bound — x)/50);

while (x > bound — step/2 + 2*step*(integer (toRight))) xor toRight do

begin

if fToAnimate then

begin

Application.ProcessMessages;

end;

Line.AddXY (x, bound);

x := x — step + 2*step*(integer (toRight));

end;

Result:= x + step — 2*step*(integer (toRight));

end;

procedure TEquation. DrawTrunc;

begin

end;

procedure TEquation. ChangeAxes (leftMin, leftMax, bottomMin, bottomMax: extended);

begin

fLineSeriesFx.ParentChart.Axes.Left.Minimum := leftMin;

fLineSeriesFx.ParentChart.Axes.Left.Maximum := leftMax;

fLineSeriesFx.ParentChart.Axes.Bottom.Minimum := bottomMin;

fLineSeriesFx.ParentChart.Axes.Bottom.Maximum := bottomMax;

end;

function TEquation. Func (x: extended): extended;

begin

Result := exp (x) + ln (x) — 10*x;

end;

function TEquation. Phi (x: extended): extended;

begin

Result := x — 0.07*Func (x);

end;

end.

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