Π”ΠΈΠΏΠ»ΠΎΠΌ, курсовая, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Π°Ρ Ρ€Π°Π±ΠΎΡ‚Π°
ΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² написании студСнчСских Ρ€Π°Π±ΠΎΡ‚

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Π°Ρ рСализация Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ алгСбраичСского уравнСния ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ Π‘Π΅Ρ€Π½ΡƒΠ»Π»ΠΈ

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

ВычислСния ΠΏΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρƒ Π‘Π΅Ρ€Π½ΡƒΠ»Π»ΠΈ сводятся Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ ΠΊ ΠΏΠΎΡΡ‚Ρ€ΠΎΠ΅Π½ΠΈΡŽ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ чисСл, для построСния ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π²Ρ‹Π±ΠΈΡ€Π°ΡŽΡ‚ΡΡ Π²Π½Π°Ρ‡Π°Π»Π΅ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅, Π²ΠΎΠΎΠ±Ρ‰Π΅ говоря, ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½Ρ‹Π΅ значСния. ПослС этого значСния Π²Ρ‹Ρ‡ΠΈΡΠ»ΡΡŽΡ‚ΡΡ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ€Π΅ΠΊΡƒΡ€Ρ€Π΅Π½Ρ‚Π½ΠΎΠΉ Ρ„ΠΎΡ€ΠΌΡƒΠ»Ρ‹: Double — вСщСствСнный ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½Ρ‹ΠΉ Ρ‚ΠΈΠΏ int — цСлочислСнный ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹ΠΉ Ρ‚ΠΈΠΏ double — вСщСствСнный ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹ΠΉ Ρ‚ΠΈΠΏ String — строковый Ρ‚ΠΈΠΏ… Π§ΠΈΡ‚Π°Ρ‚ΡŒ Π΅Ρ‰Ρ‘ >

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Π°Ρ рСализация Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ алгСбраичСского уравнСния ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ Π‘Π΅Ρ€Π½ΡƒΠ»Π»ΠΈ (Ρ€Π΅Ρ„Π΅Ρ€Π°Ρ‚, курсовая, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Π°Ρ)

Π’Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ Ρ‚Π΅Ρ…Π½ΠΈΠΊΠ° Π½Π°ΡˆΠΈΡ… Π΄Π½Π΅ΠΉ прСдставляСт собой ΠΌΠΎΡ‰Π½Ρ‹Π΅ срСдства для фактичСского выполнСния счСтной Ρ€Π°Π±ΠΎΡ‚Ρ‹. Благодаря этому Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ… случаях стало Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹ΠΌ ΠΎΡ‚ΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ ΠΎΡ‚ ΠΏΡ€ΠΈΠ±Π»ΠΈΠΆΠ΅Π½Π½ΠΎΠΉ Ρ‚Ρ€Π°ΠΊΡ‚ΠΎΠ²ΠΊΠΈ ΠΏΡ€ΠΈΠΊΠ»Π°Π΄Π½Ρ‹Ρ… вопросов ΠΈ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΊ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡŽ Π·Π°Π΄Π°Ρ‡ Π² Ρ‚ΠΎΡ‡Π½ΠΎΠΉ постановкС. РСшСниС ΡƒΡ€Π°Π²Π½Π΅Π½ΠΈΠΉ — алгСбраичСских ΠΈΠ»ΠΈ трансцСндСнтных — прСдставляСт собой ΠΎΠ΄Π½Ρƒ ΠΈΠ· ΡΡƒΡ‰Π΅ΡΡ‚Π²Π΅Π½Π½Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡ ΠΏΡ€ΠΈΠΊΠ»Π°Π΄Π½ΠΎΠ³ΠΎ Π°Π½Π°Π»ΠΈΠ·Π°, ΠΏΠΎΡ‚Ρ€Π΅Π±Π½ΠΎΡΡ‚ΡŒ Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ Π² ΠΌΠ½ΠΎΠ³ΠΎΡ‡ΠΈΡΠ»Π΅Π½Π½Ρ‹Ρ… ΠΈ ΡΠ°ΠΌΡ‹Ρ… Ρ€Π°Π·Π½ΠΎΠΎΠ±Ρ€Π°Π·Π½Ρ‹Ρ… Ρ€Π°Π·Π΄Π΅Π»Π°Ρ… Ρ„ΠΈΠ·ΠΈΠΊΠΈ, ΠΌΠ΅Ρ…Π°Π½ΠΈΠΊΠΈ, Ρ‚Π΅Ρ…Π½ΠΈΠΊΠΈ ΠΈ Π΅ΡΡ‚Сствознания Π² ΡˆΠΈΡ€ΠΎΠΊΠΎΠΌ смыслС этого слова. ΠšΡƒΡ€ΡΠΎΠ²Π°Ρ Ρ€Π°Π±ΠΎΡ‚Π° посвящСна ΠΎΠ΄Π½ΠΎΠΌΡƒ ΠΈΠ· ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ алгСбраичСских ΡƒΡ€Π°Π²Π½Π΅Π½ΠΈΠΉ — ΠΌΠ΅Ρ‚ΠΎΠ΄Ρƒ Π‘Π΅Ρ€Π½ΡƒΠ»Π»ΠΈ.

ΠžΠ±ΠΎΠ·Π½Π°Ρ‡Π΅Π½ΠΈΡ

coeffs — массив коэффициСнтов с — массив коэффицСнтов (ΠΏΠΎ Π’Π΅Ρ€ΠΆΠ±Π½ΠΈΡ†ΠΊΠΎΠΌΡƒ Π’. М. c[i])

i — счСтчик Ρ†ΠΈΠΊΠ»Π°

coeffs.length — Π΄Π»ΠΈΠ½Π° массива coeffs

u — массив коэффицСнтов (ΠΏΠΎ Π’Π΅Ρ€ΠΆΠ±Π½ΠΈΡ†ΠΊΠΎΠΌΡƒ Π’. М. u[i])

k, i, j — счСтчики Ρ†ΠΈΠΊΠ»ΠΎΠ²

g — ΠΊΠΎΡ€Π΅Π½ΡŒ (ΠΏΠΎ ΠΏΠ΅Ρ€Π²ΠΎΠΌΡƒ ΡƒΡΠ»ΠΎΠ²ΠΈΡŽ)

gg — ΠΊΠΎΡ€Π΅Π½ΡŒ (ΠΏΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΌΡƒ ΡƒΡΠ»ΠΎΠ²ΠΈΡŽ)

n — число коэфициСнтов

answer — строка для Π²Π²ΠΎΠ΄Π° с ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ

arrcoeffs — строчный массив коэффицСнтов

arrcoeffs.length — Π΄Π»ΠΈΠ½Π° массива

ex — ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠ° NumberFormatException

ex — ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠ° NumberFormatException

ex — ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠ° Exception

lim — ΠΏΡ€Π΅Π΄Π΅Π» Ρ€Π°Π½Π΄ΠΎΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ

rnd — ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Ρ‚ΠΈΠΏΠ° Random

root — ΠΊΠΎΡ€Π΅Π½ΡŒ

1. ΠŸΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΊΠ° Π·Π°Π΄Π°Ρ‡ΠΈ ΠœΠ΅Ρ‚ΠΎΠ΄ Π‘Π΅Ρ€Π½ΡƒΠ»Π»ΠΈ позволяСт Π½Π°ΠΉΡ‚ΠΈ наибольший ΠΈ Π½Π°ΠΈΠΌΠ΅Π½ΡŒΡˆΠΈΠΉ ΠΏΠΎ ΠΌΠΎΠ΄ΡƒΠ»ΡŽ ΠΊΠΎΡ€Π΅Π½ΡŒ алгСбраичСского уравнСния, Π½ΠΎ ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΎ Π±Π»ΠΈΠΆΠ°ΠΉΡˆΠΈΡ… ΠΊ Π½Π΅ΠΌΡƒ (ΠΏΠΎ ΠΌΠΎΠ΄ΡƒΠ»ΡŽ) ΠΊΠΎΡ€Π½Π΅ΠΉ.

ВычислСния ΠΏΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρƒ Π‘Π΅Ρ€Π½ΡƒΠ»Π»ΠΈ сводятся Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ ΠΊ ΠΏΠΎΡΡ‚Ρ€ΠΎΠ΅Π½ΠΈΡŽ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ чисСл, для построСния ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π²Ρ‹Π±ΠΈΡ€Π°ΡŽΡ‚ΡΡ Π²Π½Π°Ρ‡Π°Π»Π΅ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅, Π²ΠΎΠΎΠ±Ρ‰Π΅ говоря, ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½Ρ‹Π΅ значСния. ПослС этого значСния Π²Ρ‹Ρ‡ΠΈΡΠ»ΡΡŽΡ‚ΡΡ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ€Π΅ΠΊΡƒΡ€Ρ€Π΅Π½Ρ‚Π½ΠΎΠΉ Ρ„ΠΎΡ€ΠΌΡƒΠ»Ρ‹:

Π”Π°Π»Π΅Π΅ ΠΏΠΎ Π²ΠΈΠ΄Ρƒ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ опрСдСляСтся Π²ΠΈΠ΄ наибольшСго (наимСньшСго) ΠΏΠΎ ΠΌΠΎΠ΄ΡƒΠ»ΡŽ корня ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ этого корня.

Π”Π°Π»Π΅Π΅ послС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ наибольший ΠΊΠΎΡ€Π΅Π½ΡŒ вычислСн с Π΄ΠΎΡΡ‚Π°Ρ‚ΠΎΡ‡Π½ΠΎΠΉ ΡΡ‚Π΅ΠΏΠ΅Π½ΡŒΡŽ точности, опрСдСляСтся Π²Ρ‚ΠΎΡ€ΠΎΠΉ ΠΏΠΎ Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Π΅ модуля ΠΊΠΎΡ€Π΅Π½ΡŒ. Для Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ корня ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒΡΡ новая ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ, Π²ΠΈΠ΄ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ опрСдСляСтся Π½Π° ΠΎΡΠ½ΠΎΠ²Π°Π½ΠΈΠΈ Ρ‚ΠΈΠΏΠ° сходимости ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ построСнной для ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅Π³ΠΎ корня.

ПослС Ρ‚ΠΎΠ³ΠΎ ΠΊΠ°ΠΊ Π½Π°ΠΉΠ΄Π΅Π½ Π²Ρ‚ΠΎΡ€ΠΎΠΉ ΠΏΠΎ ΠΌΠΎΠ΄ΡƒΠ»ΡŽ ΠΊΠΎΡ€Π΅Π½ΡŒ, Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎ находятся Ρ‚Ρ€Π΅Ρ‚ΠΈΠΉ ΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΊΠΎΡ€Π½ΠΈ.

ΠŸΡƒΡΡ‚ΡŒ ΠΏΠΎΠ³Ρ€Π΅ΡˆΠ½ΠΎΡΡ‚ΡŒ округлСния Π²ΠΎ Π²ΡΠ΅Ρ… вычислСниях постоянна ΠΈ Ρ€Π°Π²Π½Π°. Π’ΠΎΠ³Π΄Π° ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ ΠΏΠΎΠ³Ρ€Π΅ΡˆΠ½ΠΎΡΡ‚ΡŒ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ корня Ρ€Π°Π²Π½Π°

Π³Π΄Π΅ .

ΠŸΠΎΡ‚Π΅Ρ€Ρ точности для ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… ΠΊΠΎΡ€Π½Π΅ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ большС.

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΌΠ΅Ρ‚ΠΎΠ΄ Π‘Π΅Ρ€Π½ΡƒΠ»Π»ΠΈ ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ‚ ΠΎΡ‡Π΅Π½ΡŒ простой Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ схСмой. ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ вычислСния сводятся ΠΊ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π΅Π½ΠΈΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ накоплСния, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΌ для вычислСния Π½Π° Π­Π’Πœ. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠΎΡ€Π½ΠΈ Π² ΠΌΠ΅Ρ‚ΠΎΠ΄Π΅ Π‘Π΅Ρ€Π½ΡƒΠ»Π»ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ΡΡ Π½Π΅ Π²ΡΠ΅ сразу, Π° ΠΎΠ΄ΠΈΠ½ ΠΈΠ»ΠΈ нСсколько Π½Π°ΠΈΠ±ΠΎΠ»ΡŒΡˆΠΈΡ… (Π½Π°ΠΈΠΌΠ΅Π½ΡŒΡˆΠΈΡ…) ΠΏΠΎ ΠΌΠΎΠ΄ΡƒΠ»ΡŽ ΠΊΠΎΡ€Π½Π΅ΠΉ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ ΠΏΠΎΡ‚Π΅Ρ€Π΅ точности для ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΊΠΎΡ€Π½Π΅ΠΉ.

2. Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° Π΄Π°Π½Π½Ρ‹Ρ… Π’Ρ…ΠΎΠ΄Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅: double[] coeffs, int n

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

ΠŸΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅:

Double — вСщСствСнный ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½Ρ‹ΠΉ Ρ‚ΠΈΠΏ int — цСлочислСнный ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹ΠΉ Ρ‚ΠΈΠΏ double — вСщСствСнный ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹ΠΉ Ρ‚ΠΈΠΏ String — строковый Ρ‚ΠΈΠΏ NumberFormatException — Ρ‚ΠΈΠΏ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ NullPointerException — Ρ‚ΠΈΠΏ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ NumberFormatException — Ρ‚ΠΈΠΏ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Exception — Ρ‚ΠΈΠΏ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Random — Ρ‚ΠΈΠΏ Random

k, i, j — ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹ΠΉ цСлочислСнный Ρ‚ΠΈΠΏ

lim — ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹ΠΉ цСлочислСнный Ρ‚ΠΈΠΏ

root — вСщСствСнный ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½Ρ‹ΠΉ Ρ‚ΠΈΠΏ

ex — ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹ΠΉ цСлочислСнный Ρ‚ΠΈΠΏ

coeffs.lengthΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹ΠΉ цСлочислСнный Ρ‚ΠΈΠΏ с, u, n — ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹ΠΉ цСлочислСнный Ρ‚ΠΈΠΏ

arrcoeffs — ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹ΠΉ цСлочислСнный Ρ‚ΠΈΠΏ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΡƒΡ€Π°Π²Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΡ€Π΅Π½ΡŒ Π±Π΅Ρ€Π½ΡƒΠ»Π»ΠΈ

3. Алгоритм Рис. 1

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

Π”Π°Π½Π½Ρ‹ΠΉ ΠΎΡ‚Ρ‡Π΅Ρ‚ Π±Ρ‹Π» ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²Π»Π΅Π½ Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Π΄Π½Π΅ΠΉ. ВсС досконально ΠΈΠ·ΡƒΡ‡ΠΈΠ² ΠΈ Π½Π°Π»Π°Π΄ΠΈΠ², ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΠ² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹ мСня ΡƒΠ΄Π²ΠΎΠ»Π΅Ρ‚Π²ΠΎΡ€ΠΈΠ»ΠΈ.

1. Π’Π΅Ρ€ΠΆΠ±ΠΈΡ†ΠΊΠΈΠΉ Π’. М. — ΠžΡΠ½ΠΎΠ²Ρ‹ числСнных ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ². Π£Ρ‡Π΅Π±Π½ΠΈΠΊ для Π²ΡƒΠ·ΠΎΠ². Π’Ρ‹ΡΡˆ. школа — 2002 Π³.

2. Π›Π°Ρ‚Ρ‹ΠΏΠΎΠ²Π° Н. Π’. «ΠœΠ΅Ρ‚одичСскиС указания ΠΈ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΈ ΠΏΠΎ Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅» Π£Π΄Π“Ρƒ, ИТСвск, 2004Π³

3. Ким И. Π“, Π›Π°Ρ‚Ρ‹ΠΏΠΎΠ²Π° Н. Π’., ΠœΠΎΡ‚ΠΎΡ€ΠΈΠ½Π° О. Π›. «Π§ΠΈΡΠ»Π΅Π½Π½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Ρ‡.2» Π£Π΄Π“Ρƒ, ИТСвск, 2013Π³

4. Ким И. Π“, Π›Π°Ρ‚Ρ‹ΠΏΠΎΠ²Π° Н.Π’."ЧислСнныС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Ρ‡.1″ Π£Π΄Π“Ρƒ, ИТСвск, 2012Π³

ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Код ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

package Program;

import java.util.Random;

import java.util.Scanner;

public class Program {

public static Double bernoullisMethod (Double[] coeffs) { //ΠΌΠ΅Ρ‚ΠΎΠ΄ Π‘Π΅Ρ€Π½ΡƒΠ»ΠΈ

int n = coeffs. length — 1; //инициализация ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° массива для коэфф-Π² c[i]

double[] c = new double[n]; // созданиС экзСмпляра массива

for (int i = 1; i < coeffs. length; i++) // Π² Ρ†ΠΈΠΊΠ»Π΅ ;

c[i — 1] = (-1) * coeffs[i] / coeffs[0]; // - подсчСт c[i] коэфф-Π²

double[] u = new double[n * 2]; // созданиС экзСмпляра массива для u[i] коэфф-Π²

for (int i = 0; i < n — 1; i++)

u[i] = 0; // инициализация элСмСнтов Π΄ΠΎ n ΠΏΠΎ Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹ΠΌ условиям

for (int k = 1; k <= n; k++) { // Π² Ρ†ΠΈΠΊΠ»Π΅ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ u[n+k] элСмСнта

u[n — 1] = k; // присвоСниС значСния ΠΏΠΎ ΡƒΡΠ»ΠΎΠ²ΠΈΡŽ

for (int j = 1; j <= n; j++) // Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹ΠΉ Ρ†ΠΈΠΊΠ» (сумма u[n+k])

u[(n + k) — 1] = c[j — 1] * u[(n + k — j) — 1]; // подсчСт u[n+k-j] коэфф-Π²

}

double g = u[n + n — 2] / u[n + n — 3]; // подсчСт корня ΠΏΠΎ ΠΏΠ΅Ρ€Π²ΠΎΠΌΡƒ ΡƒΡΠ»ΠΎΠ²ΠΈΡŽ

double gg = u[n + n — 1] / u[n + n — 3]; // подсчСт корня ΠΏΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΌΡƒ ΡƒΡΠ»ΠΎΠ²ΠΈΡŽ

return Math. max (g, gg); // Π²Ρ‹Π²ΠΎΠ΄ максимального корня

}

public static void main (String[] args) {

while (true) {

int n; //число коэфициСнтов

Double[] coeffs; //массив коэффициСнтов

try { //ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ° Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ дальнСйший ΠΊΠΎΠ΄

// инициализация коэффициСнтов

System.out.print («Π²Π²Π΅Π΄ΠΈΡ‚Π΅ число коэфициСнтов ΠΏΠΎΠ»ΠΈΠ½ΠΎΠΌΠ° n = «); // Π²Ρ‹Π²ΠΎΠ΄ Π² ΠΊΠΎΠ½ΡΠΎΠ»ΡŒ

n = new Scanner (System.in).nextInt (); //Π²Π²ΠΎΠ΄ числа n Ρ ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ

//ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ простых ΡƒΡ€Π°Π²Π½Π΅Π½ΠΈΠΉ, Π³Π΄Π΅ n < 3

if (n < 3) {

System.out.println («Π·Π°Π΄Π°ΠΉΡ‚Π΅ n Π±ΠΎΠ»ΡŒΡˆΠ΅ «);

continue;

}

coeffs = new Double[n]; //созданиС массива коэфф-Π²

System.out.println («Π²Π²Π΅Π΄Π΅Ρ‚Π΅ коэффицСнты c[i] сами? Π΄Π°/Π½Π΅Ρ‚»); // Π²Ρ‹Π²ΠΎΠ΄ Π² ΠΊΠΎΠ½ΡΠΎΠ»ΡŒ

String answer; //пСрСмСнная ΠΎΡ‚Π²Π΅Ρ‚Π°

answer = new Scanner (System.in).nextLine (); //Π²Π²ΠΎΠ΄ ΠΎΡ‚Π²Π΅Ρ‚Π° с ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ

if (answer.equals («Π΄Π°»)) { //ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° ΠΎΡ‚Π²Π΅Ρ‚. Ссли «Π΄Π°», Ρ‚ΠΎ ΠΏΡ€ΠΎΠΈΡΡ…ΠΎΠ΄ΠΈΡ‚ Π²Π²ΠΎΠ΄ значСния коэфф-Π² Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ

System.out.println («Π²Π²ΠΎΠ΄ΠΈΡ‚Π΅ коэффициСнты Π² ΠΎΠ΄Π½Ρƒ строку, отдСляя ΠΏΡ€ΠΎΠ±Π΅Π»Π°ΠΌΠΈ»); // Π²Ρ‹Π²ΠΎΠ΄ Π² ΠΊΠΎΠ½ΡΠΎΠ»ΡŒ

String[] arrcoeffs = new Scanner (System.in).nextLine ().split («\s+»); //инициализация массива коэфф-Π² (строки)

if (n == arrcoeffs. length) { //ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° равСнства n ΠΈ Π΄Π»ΠΈΠ½Ρ‹ массива

try { //ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ° Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ дальнСйший ΠΊΠΎΠ΄

for (int i = 0; i < n; i++) { //для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ коэфф-Ρ‚Π° ;

coeffs[i] = Double. parseDouble (arrcoeffs[i]); // - Π΅Π³ΠΎ конвСртация ΠΈΠ· ΡΡ‚Ρ€ΠΎΠΊΠΈ Π² Π²Π΅Ρ‰Π΅ΡΡ‚Π²Π΅Π½Π½ΠΎΠ΅ число

}

} catch (NumberFormatException ex) { //ΠΏΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‚Ρ‹Π²Π°Π½ΠΈΠ΅ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ NumberFormatException

System.out.println («ΠΎΡˆΠΈΠ±ΠΊΠ° Π²Π²ΠΎΠ΄Π°: «

+ ex. getMessage () + «n ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΠΈΡ‚Π΅ Π²Π²ΠΎΠ΄»); //Π²Ρ‹Π²ΠΎΠ΄ Π² ΠΊΠΎΠ½ΡΠΎΠ»ΡŒ

continue;

} catch (NullPointerException ex) { //ΠΏΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‚Ρ‹Π²Π°Π½ΠΈΠ΅ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ NullPointerException

System.out.println («ΠΎΡˆΠΈΠ±ΠΊΠ° Π²Π²ΠΎΠ΄Π°: «

+ ex. getMessage () + «n ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΠΈΡ‚Π΅ Π²Π²ΠΎΠ΄»); //Π²Ρ‹Π²ΠΎΠ΄ Π² ΠΊΠΎΠ½ΡΠΎΠ»ΡŒ

continue;

} catch (Exception ex) { //ΠΏΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‚Ρ‹Π²Π°Π½ΠΈΠ΅ ΠΎΠ±Ρ‰Π΅Π³ΠΎ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ (ошибки)

System.out.println («ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΊΠΎΡΡ„-Ρ‚ΠΎΠ² Π½Π΅ ΡΠ²Π»ΡΠ΅Ρ‚ся числом «); //Π²Ρ‹Π²ΠΎΠ΄ Π² ΠΊΠΎΠ½ΡΠΎΠ»ΡŒ

continue;

}

} else { //ΠΊΠΎΠ³Π΄Π° n Π½Π΅ ΡΠΎΠ²ΠΏΠ°Π΄Π°Π΅Ρ‚ с Ρ€Π°Π·ΠΌΠ΅Ρ€Π½ΠΎΡΡ‚ΡŒΡŽ массива

System.out.println («ΠΊΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ ΠΊ-Π² Π½Π΅ ΡΠΎΠΎΡ‚вСтствуСт «

+ «Π²Π²Π΅Π΄Π΅Π½Π½ΠΎΠΌΡƒ nn ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΠΈΡ‚Π΅ Π²Π²ΠΎΠ΄»); // Π²Ρ‹Π²ΠΎΠ΄ Π² ΠΊΠΎΠ½ΡΠΎΠ»ΡŒ

continue;

}

} else { //Ссли ΠΎΡ‚Π²Π΅Ρ‚ Π½Π΅ «Π΄Π°», коэфф-Ρ‚Ρ‹ Π·Π°Π΄Π°ΡŽΡ‚ΡΡ Ρ€Π°Π½Π΄ΠΎΠΌΠ½ΠΎ

int lim = 20; //ΠΏΡ€Π΅Π΄Π΅Π» Ρ€Π°Π½Π΄ΠΎΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ

System.out.println («Π²Ρ‹Π±Ρ€Π°Π½Ρ‹ случайныС Ρ†Π΅Π»Ρ‹Π΅ коэффициэнты «

+ «ΠΈΠ· ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»Π° [» + (-1) * lim + «,» + lim + «]»); // Π²Ρ‹Π²ΠΎΠ΄ Π² ΠΊΠΎΠ½ΡΠΎΠ»ΡŒ

Random rnd = new Random (); //созданиС экзСмпляра класса Random

for (int i = 0; i < n; i++) { // Π·Π°Π΄Π°Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½Ρ‹Ρ… коэфф-Π² Π² Ρ†ΠΈΠΊΠ»Π΅ ;

coeffs[i] = (double) rnd. nextInt (lim + 1) — lim; // - значСния бСрутся ΠΈΠ· ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»Π° [-lim;lim]

System.out.format («%.2f «, coeffs[i]); // ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Π²Ρ‹Π²ΠΎΠ΄ Π² ΠΊΠΎΠ½ΡΠΎΠ»ΡŒ

}

}

// подсчСт ΠΊΠΎΡ€Π½Π΅ΠΉ

double root = bernoullisMethod (coeffs); //ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π‘Π΅Ρ€Π½ΡƒΠ»ΠΈ

System.out.println («nΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ Π‘Π΅Ρ€Π½ΡƒΠ»ΠΈ посчитан ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹Ρ…»

+ «ΠΊΠΎΡ€Π½Π΅ΠΉ ng1 = «+ root

+ «n Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΠΎΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹Π΅ (ΠΈΠ»ΠΈ Π²Ρ‹ΠΉΡ‚ΠΈ)? Π΄Π°/Π½Π΅Ρ‚»); //Π²Ρ‹Π²ΠΎΠ΄ Π² ΠΊΠΎΠ½ΡΠΎΠ»ΡŒ

// условиС Π½Π΅Π²Ρ‹Ρ…ΠΎΠ΄Π°

answer = new Scanner (System.in).nextLine (); // Π²Π²ΠΎΠ΄ ΠΎΡ‚Π²Π΅Ρ‚Π° с ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ

if (answer.equals («Π΄Π°»)) // ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° ΠΎΡ‚Π²Π΅Ρ‚Π°. Ссли «Π΄Π°», Ρ‚ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° начинаСтся сначала

continue;

else

return; //ΠΈΠ½Π°Ρ‡Π΅ происходит Π²Ρ‹Ρ…ΠΎΠ΄

} catch (Exception ex) { // ΠΏΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‚Ρ‹Π²Π°Π½ΠΈΠ΅ ΠΎΠ±Ρ‰Π΅Π³ΠΎ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ

System.err.println (ex); //Π²Ρ‹Π²ΠΎΠ΄ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Ρ‡Π΅Ρ€Π΅Π· ΠΏΠΎΡ‚ΠΎΠΊ err

System.out.println («ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΠΈΡ‚Π΅ Π²Π²ΠΎΠ΄»); // Π²Ρ‹Π²ΠΎΠ΄ Π² ΠΊΠΎΠ½ΠΎΠ»ΡŒ

continue;

}

}

}

}

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹:

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