| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > эффективное нахождение корня уравнения |
| Автор: JackYF 16.11.2004, 05:27 |
| есть уравнение: x^n (х в степени n)=a. Как его ЭФФЕКТИВНО, не методом деления отрезка пополам,алгоритмически решить? Мы умеем только возводить в степерь и делать сравнение? |
| Автор: Hroft 16.11.2004, 09:51 |
| АНАЛИТИЧЕСКИ! Если степень четная, то n/2 корней a^(1/n), и столько же с другим знаком, если нечетная, то n таких первых корней. Какой еще алгоритм! Если только корень n-й степени посчитать. |
| Автор: Adil' 16.11.2004, 13:32 |
| Hroft, нее, это ж очень сложный алгоритм! JackYF, вот блок схема: [IN a, n] [OUT pow(a,1./n)] |
| Автор: Hroft 17.11.2004, 10:17 |
| Да, так действительно намного лучше! (ну все, пошел флейм) |
| Автор: JackYF 18.11.2004, 01:45 |
| Люди, вы не поняли задание... Программируется арифметика! Я умею только делать возведение в ЦЕЛУЮ степень , умножать, делить, слаживать и вычитать. По сути то что вы предлагаете это с аналитической точки зрения то же самое, но как ты число 1988904380628369210732856487696205 возведёшь в 1/3 степень? Точность должна сохраняться до последнего знака. Абсолютная погрешность не больше 1. |
| Автор: Guest 18.11.2004, 10:11 |
| Ну тут кроме разложения в ряд вряд ли что придумаешь, т.е. представим корень n-ой степени из a в виде суммы, а какой ряд выбрать лучше в АЛГОРИТМАХ спроси |
| Автор: DENNN 18.11.2004, 11:14 | ||
Участвовал я в свое время в школьной олимпиаде, там была задача написать алгоритм, который перемножает числа любой длины. У меня получилось сделать через свой механизм хранения числе в виде текста. Это насчет точности для очень больших чисел. По воводу решения. ТО не монятно, все жж, как ие значения может принимать n? положительные, отрицательные, дробные, только целые. В общем виде, на ЭВМ для нахождения корня обычно используется полином Ньютона, который имеет квадратичную сходимость (нсчет сходимости - повторяю с чужих слов). P.S. Стоит посмотреть на библиотеку Linpack. Там много чего реализованно. Добавлено @ 11:19 http://algolist.manual.ru/maths/count_fast/intsqrt.php |
| Автор: Adil' 18.11.2004, 15:51 | ||
|
| Автор: JackYF 20.11.2004, 00:43 |
| Я тоже реализовую целочисленную длинную арифметику... Что за библиотека Linpack? К Guest'у: какой такой ряд? Нельзя ли поподробнее? |