Как извлечь корень из числа в Python: sqrt, квадратный, кубический и n-степени

0
14

Краткая памятка по извлечению корней в Python

  1. Импортируйте модуль math для использования math.sqrt().
  2. Для квадратного корня используйте math.sqrt(x) или x ** 0.5.
  3. Для кубического корня используйте x ** (1/3).
  4. Для корня n-степени используйте x ** (1/n).
  5. Для отрицательных чисел используйте модуль cmath.
  6. Помните, что math.sqrt() возвращает float.
  7. Оператор ** работает с любыми числами, включая отрицательные (с осторожностью).
  8. Для точных вычислений с большими числами используйте decimal.Decimal.
  9. Обрабатывайте исключения при работе с некорректными входными данными.
  10. Тестируйте код на граничных значениях (ноль, единица, отрицательные числа).

Что такое квадратный корень

Корень в python - 6 способов извлечь квадратный корень из числа - изображение номер один
Корень в python — 6 способов извлечь квадратный корень из числа — изображение номер один

Square - изображение номер два
Square — изображение номер два

Операция нахождения числа «Y» называется извлечением квадратного корня из «X». В математике для её записи применяют знак радикала:

Извлечение корня в - изображение номер три
Извлечение корня в — изображение номер три

**
Нотация питона отличается в обоих случаях, и возведение в степень записывается при помощи оператора «»:

А квадратный корень в питоне представлен в виде функции sqrt(), которая существует в рамках модуля math. Поэтому, чтобы начать работу с корнями, модуль math нужно предварительно импортировать:

Функция sqrt() принимает один параметр — то число, из которого требуется извлечь квадратный корень. Тип данных возвращаемого значения — float.

Положительное число

python - изображение номер четыре
python — изображение номер четыре

Именно на работу с неотрицательными числами «заточена» функция sqrt(). Если число больше или равно нулю, то неважно, какой у него тип. Вы можете извлекать корень из целых чисел:

Легко проверить корректность полученных результатов с помощью обратной операции возведения в степень:

Отрицательное число

How to - изображение номер пять
How to — изображение номер пять

Функция sqrt() не принимает отрицательных аргументов. Только положительные целые числа, вещественные числа и ноль.

Такая работа функции идёт вразрез с математическим определением. В математике корень спокойно извлекается из чисел меньше 0. Вот только результат получается комплексным, а таким он нужен для относительно узкого круга реальных задач, вроде расчетов в сфере электроэнергетики или физики волновых явлений.

Поэтому, если передадите отрицательное число в sqrt(), то получите ошибку:

Ноль

Корень в - изображение номер шесть
Корень в — изображение номер шесть

Функция sqrt() корректно отрабатывает с нулём на входе. Результат тривиален и ожидаем:

Математическое представление квадрата числа

How to calculate square root in - изображение номер семь
How to calculate square root in — изображение номер семь

Все мы в детстве узнали, что, когда число умножается само на себя, мы получаем его квадрат. Также квадрат числа можно представить как многократное умножение этого числа. Попробуем разобраться в этом на примере.

Предположим, мы хотим получить квадрат 5. Если мы умножим число (в данном случае 5) на 5, мы получим квадрат этого числа. Для обозначения квадрата числа используется следующая запись:52 = 25

При программировании на Python довольно часто возникает необходимость использовать функцию извлечения квадратного корня. Есть несколько способов найти квадратный корень числа в Python.

Способы извлечения корня

Квадратный корень в - изображение номер восемь
Квадратный корень в — изображение номер восемь

В языке программирования Python 3 существует три способа извлечения корней:

  • Использование функции sqrt из стандартной математической библиотеки math.
  • Операция возведения в степень **
  • Применение функции pow(x, n)
ЧИТАТЬ ТАКЖЕ:  Как установить OpenCV для Python через pip: пошаговое руководство с фото

Чтобы воспользоваться первым способом, необходимо вначале импортировать sqrt из модуля math. Это делается с помощью ключевого слова import: from math import sqrt. При помощи этой функции можно извлекать только квадратный корень из числа. Приведем пример:

Если же нам нужно вычислить в Python корень квадратный из суммы квадратов, то можно воспользоваться функцией hypot из модуля math. Берется сумма квадратов аргументов функции, из нее получается корень. Аргументов у функции два.

Еще одним, чуть более универсальным методом, будет использование возведения в степень. Известно, что для того, чтобы взять корень n из числа, необходимо возвести его в степень 1/n. Соответственно, извлечение квадратного корня из числа 4 будет выглядеть так:

Обратите внимание, что в Python 2 необходимо ставить точку после единицы, иначе произойдет целочисленное деление, и 1/n == 0, а не нужной нам дроби. В Python 3 можно не ставить точку.

Последний метод использует функцию pow(value, n). Эта функция в качестве аргумента value возьмет число, которое необходимо возвести в степень, а второй аргумент будет отвечать за степень числа. Как и в предыдущем методе, необходимо использовать дробь, для того, чтобы получить корень числа.

Используя оператор возведения в степень

Python program to find square root of a number - изображение номер девять
Python program to find square root of a number — изображение номер девять

Объяснение: Мы можем использовать оператор «**» в Python, чтобы получить квадратный корень. Любое число, возведенное в степень 0.5, дает нам квадратный корень из этого числа.

Использование ()

Корень программа - изображение номер десять
Корень программа — изображение номер десять

Вывод: Квадратный корень из числа 25 это 5.Объяснение: sympy — это модуль Python для символьных вычислений. С помощью функции () мы можем получить квадратный корень из положительных, нулевых, отрицательных и комплексных чисел. Единственная разница между этим и другими методами заключается в том, что, если при использовании () аргумент является целым числом, то результат также является целым числом, в отличие от других способов, в которых возвращаемое значение всегда число с плавающей точкой, независимо от типа данных аргумента.

Какой метод быстрее?

Программа, определяющая корни квадратного уравнения - изображение номер одиннадцать
Программа, определяющая корни квадратного уравнения — изображение номер одиннадцать

Для того, чтобы определить какой же метод предпочтительнее использовать, напишем программу. Замерять время выполнения будем с помощью метода monotonic библиотеки time.

Как видно, самое быстрое решение — использовать **. На втором месте метод sqrt, а pow — самый медленный. Правда, метод sqrt наиболее нагляден при вычислении в Python квадратных корней.

Таким образом, если критична скорость, то используем **. Если скорость не критична, а важна читаемость кода, то следует использовать sqrt.

Квадратный корень

Извлечение корня, часть 1 - изображение номер двенадцать
Извлечение корня, часть 1 — изображение номер двенадцать

Для извлечения квадратного корня самым наглядным способом, правда не самым быстрым, будет использование sqrt из модуля math.

Но можно использовать и трюки с возведением в степень 1/2, что тоже будет приводить к нужному результату.

Кубический корень

Free - изображение номер тринадцать
Free — изображение номер тринадцать

Само название функции sqrt() намекает нам на то, что она не подходит для извлечения корня степени отличной от двойки. Поэтому для извлечения кубических корней, сначала необходимо вспомнить связь между степенями и корнями, которую продемонстрируем на корне квадратном:

Кубический корень - изображение номер четырнадцать
Кубический корень — изображение номер четырнадцать

Вышеуказанное соотношение несложно доказать и для других степеней вида 1/n.

ЧИТАТЬ ТАКЖЕ:  Создание графического редактора на Python: PySimpleGUI и Tkinter

В случае с квадратным или кубическим корнем эти операции действительно эквивалентны, но, вообще говоря, в математике извлечение корня и возведение в дробную степень имеют существенные отличия при рациональных степенях вида m/n, где m!= 1. Формально, в дробно-рациональную степень можно возводить только положительные вещественные числа. В противном случае возникают проблемы:

Алгоритмизация и программирование - изображение номер пятнадцать
Алгоритмизация и программирование — изображение номер пятнадцать

👉 Таким образом, извлечь кубический корень в Python можно следующим образом:

Корень n-степени

Арифметический корень натуральной степени - изображение номер шестнадцать
Арифметический корень натуральной степени — изображение номер шестнадцать

Корень n-степени из числа в Python извлекается можно получить двумя способами с помощью возведения в степень 1.0/n:

  • С помощью оператора **.
  • Используя функцию pow.

Как было проверено выше, оператор ** быстрее. Поэтому его использовать более целесообразно. Приведем пример вычисления кубических корней в Python 3 с помощью этих двух методов:

Корень отрицательного числа

Квадратный корень из отрицательного числа - изображение номер семнадцать
Квадратный корень из отрицательного числа — изображение номер семнадцать

Как видно из результата, оператор ** не выдает исключения и возвращает некорректный результат. Функция pow работает корректно. В результате получаем комплексное число 2j, что является верным.

Решение реальной задачи с использованием sqrt

Корень — дитя геометрии. Когда Пифагор доказал свою знаменитую теорему, людям тут же захотелось вычислять стороны треугольников, проверять прямоту внешних углов и сооружать лестницы нужной длины.

Соотношение a2 + b2 = c2, где «a» и «b» — катеты, а «c» — гипотенуза — естественным образом требует извлекать корни при поиске неизвестной стороны. Python-а под рукой у древних греков и вавилонян не было, поэтому считать приходилось методом приближений. Жизнь стала проще, но расчет теоремы Пифагора никто не отменял и в XXI веке.

📡 Решим задачку про вышку сотовой связи. Заказчик требует рассчитать высоту сооружения, чтобы радиус покрытия был 23 километра. Мы неспешно отходим на заданное расстояние от предполагаемого места строительства и задумчиво смотрим под ноги. В голове появляются очертания треугольника с вершинами:

  1. Ваше местоположение;
  2. Центр Земли;
  3. Пиковая высота вышки.

Расчёт выполнен, результат заказчику предоставлен. Можно идти пить чай и радоваться тому, что теперь ещё больше людей смогут звонить родным и сидеть в интернете.

Часто задаваемые вопросы об извлечении корня в Python

Вопрос: Какой модуль Python используется для извлечения квадратного корня?
Ответ: Для извлечения квадратного корня используется модуль math, а именно функция math.sqrt().

Вопрос: Можно ли извлечь корень из отрицательного числа в Python?
Ответ: Да, с помощью модуля cmath, который работает с комплексными числами.

Вопрос: Как извлечь кубический корень в Python?
Ответ: Кубический корень можно извлечь с помощью оператора возведения в степень: number ** (1/3).

Вопрос: Что быстрее: math.sqrt() или оператор **?
Ответ: math.sqrt() обычно быстрее для квадратных корней, так как оптимизирован для этой операции.

Вопрос: Как извлечь корень n-степени в Python?
Ответ: Используйте оператор возведения в степень: number ** (1/n).

Вопрос: Что произойдет, если передать отрицательное число в math.sqrt()?
Ответ: Будет вызвано исключение ValueError, так как math.sqrt() не работает с отрицательными числами.

Вопрос: Какой тип данных возвращает math.sqrt()?
Ответ: Функция math.sqrt() всегда возвращает число с плавающей точкой (float).

Вопрос: Можно ли извлечь корень из нуля?
Ответ: Да, квадратный корень из нуля равен нулю.

Вопрос: Как округлить результат извлечения корня?
Ответ: Используйте функцию round() или форматирование строк для округления до нужного количества знаков.

Вопрос: Какой модуль использовать для работы с большими числами при извлечении корня?
Ответ: Для работы с большими числами используйте модуль decimal для точных вычислений.