Как использовать sqrt в питоне

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Вывод

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

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

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

Источник

Python sqrt (): практическое руководство

Как использовать sqrt в питоне. Python sqrt. Как использовать sqrt в питоне фото. Как использовать sqrt в питоне-Python sqrt. картинка Как использовать sqrt в питоне. картинка Python sqrt

Если вы не гений математики, вы не запомните все квадратные корни. И даже если вы это сделали, кто-то другой, глядя на ваш код, может не знать, что вы. Это означает, что им, возможно, придётся перепроверить, что вы написали правильные квадратные корни — это просто переделка работы.

Если вы использовали функцию квадратного корня Python, ясно, что вычисляется квадратный корень. Другой человек, смотрящий на ваш код, знает, что он точен. В качестве дополнительного бонуса никто не должен открывать свой калькулятор!

Что такое Python sqrt ()?

Независимо от того, используете ли вы теорему Пифагора или работаете над квадратным уравнением, функция квадратного корня Python — sqrt () — может помочь вам решить ваши проблемы. Как вы уже догадались, sqrt()вернёт квадрат числа, переданного вами в качестве параметра.

sqrt()Метод может быть полезен, потому что это быстро и точно. В этом кратком руководстве рассматривается, что вы можете передать в качестве параметра sqrt(), способы обхода недопустимых параметров и пример, который поможет вам понять. Вы можете получить квадратный корень из числа, возведя его в степень 0,5 с помощью оператора экспоненты Python (**) или pow()функции.

Когда вы работаете с несколькими числами, требующими квадратного корня, вы обнаружите, что использование sqrt()функции более элегантно, чем использование нескольких операторов экспоненты с «0,5». Кроме того, это более понятно. Можно легко забыть или пропустить лишнюю звёздочку (’*’), которая полностью превратит оператор в оператор умножения, что даст вам совершенно другой результат.

Синтаксис функции квадратного корня Python

Общий синтаксис, используемый для вызова sqrt()функции:

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

Но к чему относится «математическая» часть синтаксиса выше? Математический модуль — это библиотека Python, которая содержит множество полезных математических функций, одна из которых является sqrt()функцией. Для использования sqrt()вам нужно будет импортировать математический модуль, поскольку именно там хранится код для выполнения функции. Приставляя «math» к префиксу sqrt(), компилятор знает, что вы используете функцию sqrt(), принадлежащую библиотеке «math».

Способ импорта математического модуля состоит в том, чтобы написать ключевое слово «импорт» вместе с именем модуля — в данном случае «математика». Оператор импорта — это простая строка, которую вы пишете перед кодом, содержащим sqrt()функцию:

Результатом функции извлечения квадратного корня является число с плавающей запятой (float). Например, результатом использования sqrt()81 будет 9,0, что является числом с плавающей запятой.

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

Как использовать метод Python sqrt ()

Вы можете передавать положительные числа типа с плавающей запятой или целочисленного типа int. В предыдущем примере мы видели int 81 в качестве параметра. Но мы также можем передать число с плавающей запятой, 70,5, например:

Результат этого расчёта: 8,916277250063503. Как видите, результат довольно точный. Теперь вы можете понять, почему имеет смысл, что результат всегда будет двойным, даже если квадратный корень из числа такой же простой, как «9».

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

yourValue= 90
math.sqrt(yourValue)
# 9.486832980505138

И вы также можете сохранить результат в переменной:

Сохранение этого в переменной упростит вывод на экран:

Работа с отрицательными числами с помощью abs ()

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

abs()Функция возвращает абсолютное значение заданного числа. Абсолютное значение −9 будет 9. Аналогично, абсолютное значение 9 равно 9. Поскольку sqrt()оно предназначено для работы с положительными числами, отрицательное число вызовет исключение ValueError.

Предположим, вы передаёте переменные sqrt()и не можете узнать, все ли они положительны, не просматривая длинные строки кода, чтобы найти значения переменных. В то же время вы также не хотите, чтобы вам выдавалось исключение ValueError. Даже если вы посмотрите, может войти другой программист и непреднамеренно добавить отрицательную переменную, тогда ваш код выдаст ошибку. Чтобы предотвратить это безумие, вы можете использовать abs():

abs()Функция будет принимать в своём значении и перевести его к абсолютному значению (81 в данном случае). Затем в sqrt()функцию будет передано неотрицательное абсолютное значение, что нам и нужно, чтобы не получить надоедливых ошибок!

Понимание списка и sqrt ()

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

Сначала составьте список значений, квадратные корни которых вы хотите получить.

Во-вторых, давайте переберём список с помощью выражения для цикла, чтобы получить квадратный корень для каждого значения. Синтаксис встроенного выражения цикла for — это число в числах, где «число» — это каждый член списка, который мы назвали «числами». Мы сохраним результаты в списке, который мы назовём «квадратные числа».

squaredNumbers = [ math.sqrt(number) for number in numbers]

Используйте print()оператор, чтобы увидеть результаты возведения списка чисел в квадрат.

for-утверждения и sqrt ()

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

Сначала объявите список, в котором вы хотите сохранить вычисленные значения.

Мы будем использовать тот же список значений («числа»), что и в предыдущем примере, и перебираем каждый из его элементов, которые мы назвали «число».

for number in numbers:
squaredNumbers.append(math.sqrt(number))

Теперь, если вы распечатаете этот новый список чисел в квадрате, вы получите тот же результат, что и в предыдущем примере.

Пример с sqrt (): диагональные расстояния

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

Это потому, что диагональное расстояние между двумя точками, которые пересекаются под прямым углом, было бы эквивалентно гипотенузе треугольника, и для этого вы можете использовать теорему Пифагора (a 2 + b 2 ) = c 2, которая, как правило, использует квадратные корни. Эта формула очень удобна, потому что на городских улицах, домашних чертежах и в полях можно легко получить измерения длины и ширины, но не для диагоналей между ними.

Вам нужно будет использовать sqrt()гипотенузу c 2, чтобы получить длину. Другой способ переписать теорему Пифагора — c = √a 2 + b 2. Давайте представим, что мы проехали по трассе в нашем местном парке в форме треугольника.

Мы пробежали по длине и ширине, а затем вернулись к исходной точке. Чтобы точно подсчитать, сколько футов вы пробежали, вы можете рассчитать футы диагонального пути, который вы пересекаете, используя длину и ширину (чью длину в футах вы можете сохранить как переменные «a» и «b») парк:

Результатом будет 47.43416490252569. Итак, когда вы добавляете это к двум другим длинам, вы знаете, и вот оно. Общее количество футов, которое вы пробежали по дорожке в форме прямоугольного треугольника в парке.

Что ещё можно сделать с помощью Sqrt ()?

Теперь, когда вы знаете основы, возможности безграничны. Например:

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

Источник

Как вычислить квадратный корень в Python

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

Например, квадратный корень из 144 равен 12.

Как использовать sqrt в питоне. how to write square root in python. Как использовать sqrt в питоне фото. Как использовать sqrt в питоне-how to write square root in python. картинка Как использовать sqrt в питоне. картинка how to write square root in python

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

Функция sqrt() – это встроенная функция, которая возвращает квадратный корень из любого числа. Ниже приведены шаги, чтобы найти квадратный корень из числа.

Давайте напишем программу на Python.

Как использовать sqrt в питоне. how to write square root in python2. Как использовать sqrt в питоне фото. Как использовать sqrt в питоне-how to write square root in python2. картинка Как использовать sqrt в питоне. картинка how to write square root in python2

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

Как использовать sqrt в питоне. how to write square root in python3. Как использовать sqrt в питоне фото. Как использовать sqrt в питоне-how to write square root in python3. картинка Как использовать sqrt в питоне. картинка how to write square root in python3

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

Как использовать sqrt в питоне. how to write square root in python4. Как использовать sqrt в питоне фото. Как использовать sqrt в питоне-how to write square root in python4. картинка Как использовать sqrt в питоне. картинка how to write square root in python4

Использование функции math.pow()

Pow() – это встроенная функция, которая используется в Python для возврата степени числа. У него два параметра. Первый параметр определяет число, а второй параметр определяет увеличение мощности до этого числа.

Как использовать sqrt в питоне. how to write square root in python5. Как использовать sqrt в питоне фото. Как использовать sqrt в питоне-how to write square root in python5. картинка Как использовать sqrt в питоне. картинка how to write square root in python5

Использование оператора **

Мы также можем использовать оператор экспоненты, чтобы найти квадратный корень из числа. Оператор может применяться между двумя операндами. Например, x ** y. Это означает, что левый операнд возведен в степень правого.

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

Давайте реализуем вышеуказанные шаги.

Как использовать sqrt в питоне. how to write square root in python6. Как использовать sqrt в питоне фото. Как использовать sqrt в питоне-how to write square root in python6. картинка Как использовать sqrt в питоне. картинка how to write square root in python6

Как мы видим в приведенном выше примере, сначала мы берем ввод(число) от пользователя, а затем используем оператор степени **, чтобы узнать степень числа. Где 0,5 равно √(символ корня), чтобы увеличить степень данного числа.

Давайте создадим программу Python, которая находит квадратный корень из указанного диапазона, в следующей программе вычисление из всех чисел от 0 до 50.

Источник

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

Вступление

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

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

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

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

Если она еще не установлена, вы можете установить ее через pip:

В терминах NumPy функция sqrt() вычисляет квадратный корень из числа и возвращает результат:

Помимо использования одной переменной в качестве аргумента, sqrt() также может анализировать списки и возвращать список квадратных корней:

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

Попытка вычислить квадратный корень из отрицательного числа приведет к появлению предупреждения и значению nan:

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

К счастью, NumPy не ограничивается работой только с действительными числами – он также может работать с комплексными числами:

Если в списке есть хотя бы одно комплексное число, все числа будут приведены и обработаны как сложные, поэтому можно добавить даже отрицательные целые числа:

Модуль math в Python

Модуль math – это стандартный модуль, упакованный с Python. Он всегда доступен, но должен быть импортирован и предоставляет оболочки для некоторых общих функций, таких как квадратный корень, полномочия и т.д.:

Функция sqrt() модуля math- это простая функция, которая возвращает квадратный корень из любого положительного числа:

В отличие от функции sqrt() NumPy, она может работать только с одним элементом, поэтому, если вы хотите вычислить квадратный корень из всех элементов в списке, вам придется использовать цикл for или генератор списка:

В обоих случаях список корней будет содержать:

math.pow()

Квадратный корень из числа также может быть вычислен путем возведения числа в степень ½:

Так что на самом деле, нахождение квадратного корня из числа может быть выражено как увеличение числа до степени ½. math.pow() принимает два аргумента – основание и показатель степени, и увеличивает основание до степени экспоненты:

Естественно, это приводит к:

Оператор **

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

Этот подход может быть использован в той же форме, что и предыдущий:

И это также приводит к:

Функция pow()

В Python есть еще один встроенный метод pow(), который не требует импорта математического модуля. Этот метод отличается от метода math.pow() внутренне.

math.pow() неявно преобразует элементы в двойные, в то время как pow() использует внутреннюю реализацию объекта, основанную на операторе **. Хотя это различие в реализации может оправдать использование того или иного в определенных контекстах, если вы просто вычисляете квадратный корень из числа, вы на самом деле не увидите разницы:

Контрольный показатель производительности

Итак, какой из них дает наилучшую производительность, и какой из них вы должны выбрать? Как обычно, нет одного явного победителя, и это зависит от использования методов. А именно, если вы работаете с постоянными числами, случайными числами или массивом случайных чисел в большем масштабе – эти методы будут работать по-другому.

Давайте проверим их все на постоянных числах, случайных числах и массивах случайных чисел:

Мы прошли все описанные выше методы через один и тот же тест – постоянное число (которое, вероятно, будет кэшировано для оптимизации), случайное число на каждой из 100 тыс. итераций и список из 100 случайных чисел.

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

Выполнение этого фрагмента кода приводит к:

С постоянными числами – функции math.pow(), math.sqrt() и pow() значительно превосходят функцию Numpy sqrt(), поскольку они могут лучше использовать кэширование в процессоре на уровне языка.

Со случайными числами кэширование работает не так хорошо, и мы видим меньшие расхождения.

Со списками случайных чисел np.sqrt() значительно превосходит все три встроенных метода, и оператор ** работает в одной и той же области действия.

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

В зависимости от обрабатываемых данных – протестируйте различные подходы на своем локальном компьютере.

Вывод

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

Мы рассмотрели функции pow() и sqrt() математического модуля, а также встроенную функцию pow(), функцию Numpy sqrt() и оператор **. Наконец, мы провели сравнительный анализ методов для сравнения их производительности на различных типах входных данных – постоянных числах, случайных числах и списках случайных чисел.

Источник

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

Но обо всём по порядку.

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

Корнем квадратным из числа «X» называется такое число «Y», которое при возведении его во вторую степень даст в результате то самое число «X».

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

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

a = 2 b = a ** 2 print(b) > 4

import math import random # пример использования функции sqrt() # отыщем корень случайного числа и выведем его на экран rand_num = random.randint(1, 100) sqrt_rand_num = math.sqrt(rand_num) print(‘Случайное число = ‘, rand_num) > Случайное число = 49 print(‘Корень = ‘, sqrt_rand_num) > Корень = 7.0

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

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

import math print(math.sqrt(100)) > 10.0

А можете — из вещественных:

import math print(math.sqrt(111.5)) > 10.559356040971437

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

print(math.sqrt(70.5)) > 8.396427811873332 # возвести в степень можно так print(8.396427811873332 ** 2) > 70.5 # а можно с помощью функции pow() print(pow(8.396427811873332, 2)) > 70.5

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

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

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

print(math.sqrt(-1)) > ValueError: math domain error

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

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

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

# Квадратный корень можно извлечь с помощью операции возведения в степень «**» a = 4 b = a ** 0.5 print(b) > 2.0

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

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

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

# извлечём корень 17-й степени из числа 5600 x = 5600 y = 17 z = pow(x, (1/y)) print(z) > 1.6614284717080507 # проверяем корректность результата print(pow(z, y)) > 5600.0

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

import random # точность можно задать на ваше усмотрение x = random.randint(1, 10000) y = random.randint(1, 100) z = pow(x, (1 / y)) print(‘Корень степени’, y, ‘из числа’, x, ‘равен’, z) # при проверке вероятны незначительные расхождения из-за погрешности вычислений print(‘Проверка’, pow(z, y)) # но специально для вас автор накликал целочисленный результат > Корень степени 17 из числа 6620 равен 1.6778624404513571 > Проверка 6620.0

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

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

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

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

Модель готова, приступаем к написанию кода:

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

Источник

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

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