Как извлечь корень в питоне
Перейти к содержимому

Как извлечь корень в питоне

Как извлечь корень в Python

Квадратный корень из числа — это значение, которое при умножении само на себя дает исходное число. Каждое положительное число имеет два квадратных корня (то же значение с положительным и отрицательным знаками). Ниже приводится запись квадратного корня:
√25 = ±5

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

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

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

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

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

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

 
num = 25 sqrt = num ** (0.5) print("Квадратный корень из числа "+str(num)+" это "+str(sqrt))
Квадратный корень из числа 25 это 5.0

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

2. Использование math.sqrt()

Квадратный корень из числа можно получить с помощью функции sqrt() из модуля math , как показано ниже. Далее мы увидим три сценария, в которых передадим положительный, нулевой и отрицательный числовые аргументы в sqrt() .

a. Использование положительного числа в качестве аргумента.

 
import math num = 25 sqrt = math.sqrt(num) print("Квадратный корень из числа " + str(num) + " это " + str(sqrt))

Вывод: Квадратный корень из числа 25 это 5.0 .

b. Использование ноля в качестве аргумента.

 
import math num = 0 sqrt = math.sqrt(num) print("Квадратный корень из числа " + str(num) + " это " + str(sqrt))

Вывод: Квадратный корень из числа 0 это 0.0 .

c. Использование отрицательного числа в качестве аргумента.

 
import math num = -25 sqrt = math.sqrt(num) print("Квадратный корень из числа " + str(num) + " это " + str(sqrt))
Traceback (most recent call last): File "C:\wb.py", line 3, in sqrt = math.sqrt(num) ValueError: math domain error

Объяснение: Когда мы передаем отрицательное число в качестве аргумента, мы получаем следующую ошибку «math domain error». Из чего следует, что аргумент должен быть больше 0. Итак, чтобы решить эту проблему, мы должны использовать функцию sqrt() из модуля cmath .

3. Использование cmath.sqrt()

Ниже приведены примеры применения cmath.sqrt() .

а. Использование отрицательного числа в качестве аргумента.

Извлечение корней в Python

Под извлечением корня из какого-либо числа чаще всего подразумевают нахождение решение уравнения x в степени n = value, соответственно для квадратного корня, число n — это два, для кубического — 3. Чаще всего под результатом и числом подразумеваются вещественные числа.

В программировании нахождение корней используется очень часто. Разберемся, как и какими методами можно эффективно извлекать корни из числа. Вначале рассмотрим, какие способы есть в Python, и определим самый эффективный. Потом более подробно разберём, как можно найти не только квадратный корень из числа, но и кубический, и потом корень n степени.

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

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

  • Использование функции sqrt из стандартной математической библиотеки math.
  • Операция возведения в степень **
  • Применение функции pow(x, n)

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

from math import sqrt x = sqrt(4) print(x) 2.0

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

from math import hypot x = hypot(4,3) print(x) 5.0

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

n = 2 x = 4**(1./n) print(x) 2.0

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

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

x = pow(4, 0.5) print(x) 2.0

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

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

from time import monotonic from math import sqrt iterations = 1000000 start = monotonic() for a in range(iterations): x = sqrt(4) print("sqrt time: .3f>".format(monotonic() - start) + " seconds") start = monotonic() for a in range(iterations): x = 4 ** 0.5 print("** time: .3f>".format(monotonic() - start) + " seconds") start = monotonic() for a in range(iterations): x = pow(4, 0.5) print("pow time: .3f>".format(monotonic() - start) + " seconds") sqrt time: 0.266 seconds ** time: 0.109 seconds pow time: 0.453 seconds

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

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

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

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

from math import sqrt x = sqrt (value)

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

x = value ** (0.5) или x = pow(value, 0.5) .

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

Для извлечения кубического корня в Python 3 метод sqrt не подойдет, поэтому воспользуйтесь возведением в степень 1/3:

x = value ** (1./3) или x=pow(value, 1/3) .

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

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

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

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

n = 4. x = 16.0 ** (1./n) print(x) x = pow(16.0, 1./n) print(x) 2.0 2.0

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

Рассмотрим, как поведут себя функции, если будем брать корень из отрицательного числа.

from math import sqrt x = sqrt(-4) File "main.py", line 2, in x = sqrt(-4) ValueError: math domain error

Как видим, функция sqrt выдаёт исключение.

Теперь посмотрим, что будет при использовании других методов.

x = -4 ** 0.5 print(x) x = pow(-4, 0.5) print(x) -2.0 (1.2246467991473532e-16+2j)

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

Вывод

В Python существуют два универсальных способа для извлечения корня из числа. Это возведение в необходимую степень 1/n. Кроме того, можно воспользоваться функцией из математического модуля языка, если необходимо извлечь квадратный корень числа.

Все эти методы имеют свои преимущества и недостатки. Самый наглядный это sqrt, но подходит только для квадратный корней из числа. Остальные методы не такие элегантные, но легко могут извлечь корень нужной степени из числа. Кроме того оператор ** оказался наиболее быстрым при тестировании.

Необходимо также помнить про целочисленное деление, неправильное использование которого может приводить к ошибке в вычислении.

Вычисление квадратного корня числа в Python

Картинка к уроку

Для вычисления квадратного корня числа в языке программирования Python существует несколько команд. Рассмотрим все варианты.

Вычисления квадратного корня числа возведением в степень

В Python есть выражение для возведения числа в степень ( ** ) :

2**3 >>> 8

А мы знаем, что вычисление квадратного корня числа, аналогично возведению в степень 1/2. Значит на языку Python можем воспользоваться выражением для возведения числа в степень для вычисления корня числа:

16**0.5 >>> 4.0

Вычисления квадратного корня числа с помощью модуля math

Второй вариант вычисления квадратного корня — это импорт модуля math и последующее использование функции данного модуля:

import math math.sqrt(16) >>> 4.0

В первой стоке мы импортируем встроенный модуль math, а во второй используем функцию вычисления квадратного корня (math.sqrt), которая содержится в данном модуле.

Вычисления квадратного корня числа с помощью встроенный в python функции

В Python есть встроенная функция, которая аналогична оператору (**):

pow(x, y)

Здесь x — число которое возводим в степень, а y — непосредственно степень.

pow (16, 0.5) >>> 4.0

Как извлечь корень в питоне

Извлечение квадратного корня на Python: примеры кода

Извлечение квадратного корня на Python: примеры кода

09 марта 2023
Оценки статьи
Еще никто не оценил статью

Извлечение квадратного корня - это одна из самых базовых операций в математике, которая часто используется в научных и инженерных вычислениях. В этой статье мы рассмотрим, как извлечь квадратный корень на Python, как с помощью стандартной библиотеки math, так и без нее.

Извлечение квадратного корня с помощью оператора **

Квадратный корень из числа X можно определить как число Y , которое при возведении в квадрат дает значение X .

Другими словами, квадратный корень из числа X - это число Y , такое что Y умноженное само на себя равняется X .

В языке Python возведение в степень обозначается оператором ** , например, a ** 2 - это квадрат числа a .

Таким образом, чтобы вычислить квадратный корень из числа X , мы можем записать его в виде выражения Y = X ** 0.5 . Например, если дано число X = 25 , то его квадратный корень можно вычислить следующим образом:

X = 8 Y = X ** 0.5  print("Квадратный корень из", X, "равен", Y) 

Результат:

>>> Квадратный корень из 8 равен 2.8284271247461903 

Извлечение квадратного корня с помощью методов объектов float и decimal.Decimal

В Python можно извлечь квадратный корень использовав методы объектов float и decimal.Decimal

x = 8 print(float(x) ** 0.5) # 2.8284271247461903 

Или с более точным измерением decimal.Decimal :

from decimal import Decimal x = Decimal(8)  print(x.sqrt()) # 2.828427124746190097603377448 

Извлечение квадратного корня по методу Ньютона (касательных) в Python

Метод Ньютона (также известный как метод касательных) - это итерационный алгоритм для приближенного вычисления корня функции. Он основывается на использовании касательной к кривой функции в точке итерации для нахождения более точного приближения корня.

Для использования метода Ньютона в Python можно написать следующую функцию:

def newton_sqrt(x, epsilon=1e-6):  # Начальное приближение для корня  z = 1.0  # Итерация до достижения заданной точности  while abs(z*z - x) >= epsilon:  # Используем касательную к кривой функции в точке z для нахождения следующего приближения  z -= (z*z - x) / (2*z)  return z print(newton_sqrt(4)) # 2.000000000001355 print(newton_sqrt(8)) # 2.8284271250498643 print(newton_sqrt(10)) # 3.162277660168379 

В этой функции мы используем начальное приближение 1.0 и продолжаем итерацию до тех пор, пока разность между квадратом текущего приближения и исходным числом x не станет меньше заданной точности epsilon . Внутри цикла мы используем касательную к кривой функции в точке z для вычисления следующего приближения. Как только разность достигнет заданной точности, мы возвращаем текущее значение z как приближение к корню.

Метод Ньютона позволяет быстро находить приближенные значения корней функций, но может быть нестабилен в некоторых случаях, например, когда производная функции близка к нулю. Также стоит учитывать, что приближенный результат зависит от начального приближения и заданной точности.

Извлечение квадратного корня с помощью библиотеки math

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

Для использования функции sqrt() из библиотеки math необходимо импортировать ее следующим образом:

import math a = 8 b = math.sqrt(a)  print(b) # 2.8284271247461903 

В данном примере мы импортировали функцию sqrt() из библиотеки math и применили ее к переменной a, содержащей значение 8 .

Результатом выполнения функции sqrt() будет значение 2.8284271247461903 , которое мы присваиваем переменной b .

Затем мы выводим значение b на экран с помощью функции print() .

Извлечение квадратного корня с помощью библиотеки NumPy

Можно использовать библиотеку NumPy, которая предоставляет функцию sqrt() . Но перед использованием библиотеку NumPy необходимо ее установить: pip install numpy .

import numpy as np x = 8 print(np.sqrt(x)) # 2.8284271247461903 

Какой способ использовать, зависит от конкретной задачи.

Заключение

Извлечение квадратного корня - это простая, но важная операция в математике, которая может быть выполнена как с помощью стандартной библиотеки Python, так и без нее. Независимо от выбранного способа, важно понимать, как работает этот процесс и какие алгоритмы лежат в его основе, чтобы быть уверенным в правильности выполнения расчета.

Меню категорий

    Загрузка категорий.

Добро пожаловать в Блог Разработчика Владислава Александровича.

Ведется медленная, но уверенная разработка функционала сайта.

Django Core: 0.3.4 / Next.js 1.0 / UPD: 05.06.2023

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *