Для вычисления квадратного корня числа в языке программирования 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), которая содержится в данном модуле.
7.9 Цифровой корень. «Поколение Python»: курс для начинающих. Курс Stepik
Вычисления квадратного корня числа с помощью встроенный в python функции
В Python есть встроенная функция, которая аналогична оператору (**):
pow(x, y)
Здесь x — число которое возводим в степень, а y — непосредственно степень.
pow (16, 0.5) >>> 4.0
Источник: python-teach.ru
Программа которая находит квадратный корень
Извлечение квадратного корня на 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)
Результат:
КВАДРАТНЫЙ КОРЕНЬ числа с помощью PYTHON | #shorts
>>> Квадратный корень из 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
Источник: proghunter.ru
Вычисление квадратного корня из числа в Python
Квадратный корень из числа – очень распространенная математическая функция, используемая во всех областях науки – физике, математике, информатике и т.д. Квадратные корни чисел и выражений очень часто встречаются в формулах во всех областях науки, и особенно в том, как мы представляем реальность – моделируя то, что мы можем наблюдать с помощью исчисления.
В этой статье мы рассмотрим различные способы вычисления квадратного корня из числа в Python. Наконец, мы проведем тест производительности с постоянными и случайными числами, а также со списками случайных чисел, чтобы проверить все подходы.
Вычисление квадратного корня в Python с помощью NumPy
NumPy – это библиотека научных вычислений, которая присутствовала во многих приложениях и вариантах использования. Естественно, в нем есть множество оболочек математических функций в качестве вспомогательных методов.
Если она еще не установлена, вы можете установить ее через pip:
$ pip install numpy
В терминах NumPy функция sqrt() вычисляет квадратный корень из числа и возвращает результат:
import numpy as np: x = np.scrt(2) print(x)
1.4142135623730951
Помимо использования одной переменной в качестве аргумента, sqrt() также может анализировать списки и возвращать список квадратных корней:
arr = [2, 3, 5, 7] roots = np.sqrt(arr) print(roots)
[1.41421356 1.73205081 2.23606798 2.64575131]
Функция sqrt(), однако, имеет ограничение – она не может вычислять квадратный корень из отрицательного числа, поскольку операция квадратного корня с действительными числами определена только для положительных чисел.
Попытка вставить -4 в функцию sqrt() приведет к исключению:
print(np.sqrt(-4))
Попытка вычислить квадратный корень из отрицательного числа приведет к появлению предупреждения и значению nan:
RuntimeWarning: invalid value encountered in sqrt nan
Вычисление квадратного корня из комплексного числа с помощью Numpy
К счастью, NumPy не ограничивается работой только с действительными числами – он также может работать с комплексными числами:
import numpy as np complex_number = -1 + 1j complex_array = [-2, 3, complex_number] complex_root = np.sqrt(complex_number) complex_array_roots = np.sqrt(complex_array) print(f»Square root of »:n «) print(f»Square roots of »:n «)
Если в списке есть хотя бы одно комплексное число, все числа будут приведены и обработаны как сложные, поэтому можно добавить даже отрицательные целые числа:
Square root of ‘(-1+1j)’: (0.45508986056222733+1.09868411346781j) Square roots of ‘[-2, 3, (-1+1j)]’: [0. +1.41421356j 1.73205081+0.j 0.45508986+1.09868411j]
Модуль math в Python
Модуль math – это стандартный модуль, упакованный с Python. Он всегда доступен, но должен быть импортирован и предоставляет оболочки для некоторых общих функций, таких как квадратный корень, полномочия и т.д.:
import math math.sqrt()
Функция sqrt() модуля math- это простая функция, которая возвращает квадратный корень из любого положительного числа:
print(math.sqrt(2))
1.4142135623730951
В отличие от функции sqrt() NumPy, она может работать только с одним элементом, поэтому, если вы хотите вычислить квадратный корень из всех элементов в списке, вам придется использовать цикл for или генератор списка:
import math arr = [2, 3, 5, 7] roots = [] for x in arr: roots.append(math.sqrt(x)) # OR roots = [math.sqrt(x) for x in arr]
В обоих случаях список корней будет содержать:
[1.4142135623730951, 1.7320508075688772, 2.23606797749979, 2.6457513110645907]
math.pow()
Квадратный корень из числа также может быть вычислен путем возведения числа в степень ½:
Так что на самом деле, нахождение квадратного корня из числа может быть выражено как увеличение числа до степени ½. math.pow() принимает два аргумента – основание и показатель степени, и увеличивает основание до степени экспоненты:
print(math.pow(2, 0.5))
Естественно, это приводит к:
1.4142135623730951
Оператор **
Оператор ** является двоичным оператором, что означает, что он работает с двумя значениями, как и обычное умножение с помощью *. Однако, поскольку это оператор, используемый для возведения в степень, мы повышаем его левый аргумент до степени его правого аргумента.
Этот подход может быть использован в той же форме, что и предыдущий:
print(2 ** 0.5)
И это также приводит к:
1.4142135623730951
Функция pow()
В Python есть еще один встроенный метод pow(), который не требует импорта математического модуля. Этот метод отличается от метода math.pow() внутренне.
math.pow() неявно преобразует элементы в двойные, в то время как pow() использует внутреннюю реализацию объекта, основанную на операторе **. Хотя это различие в реализации может оправдать использование того или иного в определенных контекстах, если вы просто вычисляете квадратный корень из числа, вы на самом деле не увидите разницы:
print(pow(2, 0.5))
1.4142135623730951
Контрольный показатель производительности
Итак, какой из них дает наилучшую производительность, и какой из них вы должны выбрать? Как обычно, нет одного явного победителя, и это зависит от использования методов.
А именно, если вы работаете с постоянными числами, случайными числами или массивом случайных чисел в большем масштабе – эти методы будут работать по-другому.
Давайте проверим их все на постоянных числах, случайных числах и массивах случайных чисел:
import timeit print(«Time to execute 100k operations on constant number: n») print(«math.sqrt(): %ss» % timeit.timeit(«math.sqrt(100)», setup=»import math», number=100000)) print(«math.pow(): %ss» % timeit.timeit(«math.pow(100, 0.5)», setup=»import math», number=100000)) print(«pow(): %ss» % timeit.timeit(«pow(100, 0.5)», number=100000)) print(«np.sqrt(): %ss» % timeit.timeit(«np.sqrt(100)», setup=»import numpy as np», number=100000)) print(«** operator: %ss» % timeit.timeit(«100 ** 0.5», number=100000)) print(«nTime to execute 100k operations on random number: n») print(«math.sqrt() %ss» % timeit.timeit(«math.sqrt(random.random())», setup=»import math; import random;», number=100000)) print(«math.pow(): %ss» % timeit.timeit(«math.pow(random.random(), 0.5)», setup=»import math; import random», number=100000)) print(«pow(): %ss» % timeit.timeit(«pow(random.random(), 0.5)», setup=»import random», number=100000)) print(«np.sqrt(): %ss» % timeit.timeit(«np.sqrt(random.random())», setup=»import numpy as np; import random», number=100000)) print(«** operator: %ss» % timeit.timeit(«random.random() ** 0.5″, setup=»import random», number=100000)) print(«nTime to execute 100k operations on list of random numbers: n») print(«math.sqrt() %ss» % timeit.timeit(«[math.sqrt(x) for x in np.random.rand(100)]», setup=»import math; import numpy as np;», number=100000)) print(«math.pow(): %ss» % timeit.timeit(«[math.pow(x, 0.5) for x in np.random.rand(100)]», setup=»import math; import numpy as np;», number=100000)) print(«pow(): %ss» % timeit.timeit(«[pow(x, 0.5) for x in np.random.rand(100)]», setup=»import numpy as np;», number=100000)) print(«np.sqrt(): %ss» % timeit.timeit(«np.sqrt(np.random.rand(100))», setup=»import numpy as np; import numpy as np;», number=100000)) print(«** operator: %ss» % timeit.timeit(«np.random.rand(100) ** 0.5″, setup=»import numpy as np», number=100000))