Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > 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)] smile

Автор: Hroft 17.11.2004, 10:17
Да, так действительно намного лучше! smile smile smile
(ну все, пошел флейм)

Автор: JackYF 18.11.2004, 01:45
Люди, вы не поняли задание...

Программируется арифметика! smile
Я умею только делать возведение в ЦЕЛУЮ степень , умножать, делить, слаживать и вычитать.

По сути то что вы предлагаете это с аналитической точки зрения то же самое, но как ты число 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 @ 18.11.2004, 01:45)
Люди, вы не поняли задание...
Ну, это не мы не поняли, а ты вопрос неправильно поставаил...

Автор: JackYF 20.11.2004, 00:43
Я тоже реализовую целочисленную длинную арифметику...

Что за библиотека Linpack?


К Guest'у: какой такой ряд? Нельзя ли поподробнее?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)