Как сделать тангенс в питоне
SymPy - это пакет для символьных вычислений на питоне, подобный системе Mathematica. Он работает с выражениями, содержащими символы.
Основными кирпичиками, из которых строятся выражения, являются символы. Символ имеет имя, которое используется при печати выражений. Объекты класса Symbol нужно создавать и присваивать переменным питона, чтобы их можно было использовать. В принципе, имя символа и имя переменной, которой мы присваиваем этот символ - две независимые вещи, и можно написать abc=Symbol('xyz') . Но тогда при вводе программы Вы будете использовать abc , а при печати результатов SymPy будет использовать xyz , что приведёт к ненужной путанице. Поэтому лучше, чтобы имя символа совпадало с именем переменной питона, которой он присваивается.
Можно определить несколько символов одновременно. Строка разбивается на имена по пробелам.
При написании программ в повседневной жизни мы обычно сталкиваемся с ситуациями, когда нам нужно использовать небольшую математику, чтобы выполнить задачу. Как и другие языки программирования, Python предоставляет различные операторы для выполнения базовых вычислений, таких как * для умножения, % для модуля и // для деления пола.
Если вы пишете программу для выполнения определенных задач, таких как изучение периодического движения или моделирования электрических цепей, вам нужно будет работать с тригонометрическими функциями, а также с комплексными числами. Хотя вы не можете использовать эти функции напрямую, вы можете получить к ним доступ, включив сначала два математических модуля. Эти модули являются math и cmath.
Первый дает вам доступ к гиперболическим, тригонометрическим и логарифмическим функциям для действительных чисел, а последний позволяет работать с комплексными числами. В этом уроке я рассмотрю все важные функции, предлагаемые этими модулями. Если явно не указано, все возвращаемые значения - это float.
Арифметические функции
Эти функции выполняют различные арифметические операции, такие как вычисление пола, потолка или абсолютного значения числа с использованием функций floor(x) , ceil(x) и fabs(x) соответственно. Функция ceil(x) вернет наименьшее целое число, которое больше или равно x. Аналогично, floor(x) возвращает наибольшее целое число, меньшее или равное x. Функция fabs(x ) возвращает абсолютное значение x.
Вы также можете выполнять нетривиальные операции, такие как вычисление факториала числа с использованием factorial(x) . Факториал является произведением целого числа и всех положительных целых чисел, меньших его. Он широко используется при работе с комбинациями и перестановками. Его также можно использовать для вычисления значения функций синуса и косинуса.
Еще одна полезная функция в модуле math - gcd(x, y) , которая дает вам наибольший общий делитель (GCD) двух чисел x и y. Когда x и y оба не равны нулю, эта функция возвращает наибольшее положительное целое число, которое делит как x, так и y. Вы можете косвенно использовать его для вычисления наименьшего общего кратного двух чисел, используя следующую формулу:
Вот несколько арифметических функций, которые предлагает Python:
Тригонометрические функции
Эти функции связывают углы треугольника по бокам. У них много приложений, в том числе изучение треугольников и моделирование периодических явлений, таких как звуковые и световые волны. Имейте в виду, что угол, который вы предоставляете, находится в радианах.
Вы можете рассчитать sin(x) , cos(x) и tan(x) непосредственно с помощью этого модуля. Однако нет прямой формулы для вычисления cosec(x) , sec(x) и cot(x) , но их значение равно обратному значению, возвращаемому sin(x) , cos(x) и tan(x) соответственно.
Вместо того, чтобы вычислять значение тригонометрических функций под определенным углом, вы также можете сделать обратный и рассчитать угол, в котором они имеют заданное значение, используя asin(x) , acos(x) и atan(x) .
Вы знакомы с теоремой Пифагора? В нем говорится, что квадрат гипотенузы (сторона, противоположная прямому углу) равна сумме квадратов двух других сторон. Гипотенуза также является самой большой стороной прямоугольного треугольника. Математический модуль обеспечивает функцию hypot(a, b) для вычисления длины гипотенузы.
Гиперболические функции
Гиперболические функции являются аналогами тригонометрических функций, которые основаны на гиперболе вместо круга. В тригонометрии точки (cos b, sin b) представляют точки единичного круга. В случае гиперболических функций точки (cosh b, sinh b) представляют точки, которые образуют правую половину равносторонней гиперболы.
Точно так же, как тригонометрические функции, вы можете непосредственно вычислить значение sinh(x) , cosh(x) и tanh(x) . Остальные значения могут быть рассчитаны с использованием различных отношений между этими тремя значениями. Существуют также другие функции asinh(x) , acosh(x) и atanh(x) , которые могут быть использованы для вычисления обратных соответствующих гиперболических значений.
Так как math.pi равно примерно 3.141592653589793, когда мы использовали asinh() для значения, возвращаемого sinh(math.pi) , мы получили нашу p обратно.
Степень и логарифмические функции
Вероятнее всего, вы чаще всего сталкиваетесь со степенями и логарифмами, чем с гиперболическими или тригонометрическими функциями. К счастью, модуль math предоставляет множество функций, которые помогут нам вычислить логарифмы.
Вы можете использовать log(x, [base]) для вычисления log заданного числа x для данной базы. Если вы оставите необязательный аргумент базы, log x будет вычисляться до базы e. Здесь e - математическая константа, значение которой равно 2.71828182 . и к ней можно получить доступ с использованием math.e . Кстати, Python также позволяет вам получить доступ к другой константе p, используя math.pi .
Если вы хотите рассчитать значения логарифма base-2 или base-10, использование log2(x) и log10(x) вернет более точные результаты, чем log(x, 2) и log(x, 10) . Имейте в виду, что функция log3(x) отсутствует, поэтому вам нужно будет использовать log(x, 3) для вычисления значений логарифма базы-3. То же самое касается всех других баз.
Если значение, логарифм которого вы вычисляете, очень близко к 1, вы можете использовать log1p(x) . 1p в log1p означает 1 плюс. Поэтому log1p(x) вычисляет log(1 + x) , где x близок к нулю. Однако результаты более точны с log1p(x) .
Вы также можете рассчитать значение числа x, возведённого в степень y, используя pow(x, y) . Перед вычислением степени эта функция преобразует оба аргумента в тип float. Если вы хотите, чтобы конечный результат был вычислен в точных целых степенях, вы должны использовать встроенную функцию pow() или оператор ** .
Вы также можете вычислить квадратный корень любого заданного числа x, используя sqrt(x) , но то же самое можно также сделать, используя pow(x, 0.5) .
Сложные числа
Сложные числа хранятся внутри с использованием прямоугольных или декартовых координат. Комплексное число z будет представлено в декартовых координатах как z = x + iy , где x представляет действительную часть, а y представляет собой мнимую часть. Другим способом их представления является использование полярных координат.
В этом случае комплексное число z будет определяться комбинацией модуля r и фазового угла phi. Модуль r является расстоянием между комплексным числом z и началом. Угол phi - угол против часовой стрелки, измеренный в радианах от положительной оси x до отрезка линии, соединяющего z и начало координат.
При работе с комплексными числами модуль cmath может оказать большую помощь. Модуль комплексного числа может быть рассчитан с использованием встроенной функции abs() , и его фаза может быть рассчитана с использованием функции phase(z) , доступной в модуле cmath. Вы можете преобразовать комплексное число в прямоугольной форме в полярную форму, используя polar(z) , которая вернет пару (r, phi), где r - abs(z) , а phi - phase(z) .
Аналогично, вы можете преобразовать комплексное число в полярной форме в прямоугольную форму с помощью rect(r, phi) . Комплексное число, возвращаемое этой функцией, равно r * (math.cos (phi) + math.sin (phi) * 1j) .
Модуль cmath также позволяет использовать регулярные математические функции со сложными числами. Например, вы можете вычислить квадратный корень из комплексного числа, используя sqrt(z) или его косинус, используя cos(z) .
Комплексные числа имеют множество приложений, таких как моделирование электрических цепей, динамика жидкости и анализ сигналов. Если вам нужно работать над любой из этих вещей, модуль cmath не разочарует вас.
Заключение
Все эти функции, о которых мы говорили выше, имеют свои конкретные приложения. Например, вы можете использовать функцию factorial(x) для решения проблем с перестановкой и комбинацией. Вы можете использовать тригонометрические функции для преобразования вектора в декартовы координаты. Вы также можете использовать тригонометрические функции для имитации периодических функций, таких как звуковые и световые волны.
Аналогично, кривая веревки, висящая между двумя полюсами, может быть определена с использованием гиперболической функции. Поскольку все эти функции доступны непосредственно в модуле math, очень легко создавать небольшие программы, которые выполняют все эти задачи.
Надеюсь, вам понравился этот урок. Если у вас есть какие-либо вопросы, дайте мне знать в комментариях.
Функция arctan() вычисляет тригонометрический арктангенс (обратный тангенс), если y = tan(x) , то x = arctan(y) .
Параметры: x — подобный массиву объект y — координата или массив y-координат единичной окружности. *ufunc_args — аргументы универсальной функции Аргументы, позволяющие настроить и оптимизировать работу функции (подробнее см. универсальные функции). Возвращает: результат — массив NumPy или его подкласс Арктангенс элементов x в интервале [-pi/2, pi/2] ( arctan(-inf) = -pi/2 и arctan(inf) = pi/2 ).
Замечание
arctan(x) — многозначная функция, т.е. для каждого x существует бесконечное количество значений углов a при которых tan(a) = x, поэтому принято соглашение о том, что функция numpy.arctan(x) возвращает значение угла в интервале [0, pi] .
Для комплексных входных значений arctan так же представляет собой бесконечнозначную функцию, которая, по соглашению находится на листе D0 с разрезами [1j, infj] и [-1j, -infj] .
Тригонометрические функции модуля math.
Функция math.sin() возвращает синус угла x значение которого задано в радианах.
math.cos(x) :
Функция math.cos() возвращает косинус угла x значение которого задано в радианах.
math.tan(x) :
Функция math.tan() возвращает тангенс угла x значение которого задано в радианах.
При определенных значениях углов тангенс должен быть равен либо -? либо +? , скажем tan(3p/2)=+? , a tan(-p/2)=-? , но вместо этого мы получаем либо очень большие либо очень маленькие значения типа float :
math.asin(x) :
Функция math.asin() возвращает арксинус значения x , т. е. такое значение угла y , выраженного в радианах при котором sin(y) = x .
math.acos(x) :
Функция math.acos() возвращает арккосинус значения x , т. е. возвращает такое значение угла y , выраженного в радианах, при котором cos(y) = x .
math.atan(x) :
Функция math.atan() возвращает арктангенс значения x , т. е. возвращает такое значение угла y , выраженного в радианах, при котором tan(y) = x .
math.atan2(y, x) :
Функция math.atan2() возвращает арктангенс значения y/x , т. е. возвращает такое значение угла z , выраженного в радианах, при котором tan(z) = x . Результат находится между -pi и pi .
Данная функция, в отличие от функции math.atan() , способна вычислить правильный квадрант в котором должно находиться значение результата. Это возможно благодаря тому, что функция принимает два аргумента (x, y) координаты точки, которая является концом отрезка начатого в начале координат. Сам по себе, угол между этим отрезком и положительным направлением оси X не несет информации о том где располагается конец этого отрезка, что приводит к одинаковому значению арктангенса, для разных отрезков, но функция math.atan2() позволяет избежать этого, что бывает очень важно в целом ряде задач. Например, atan(1) и atan2(1, 1) оба имеют значение pi/4, но atan2(-1, -1) равно -3 * pi / 4 .
math.hypot(*coordinates) :
Функция math.hypot() возвращает евклидову норму, sqrt(sum(x**2 for x in coordinates)) . Это длина вектора от начала координат до точки, заданной координатами.
Для двумерной точки (x, y) это эквивалентно вычислению гипотенузы прямоугольного треугольника с использованием теоремы Пифагора sqrt(x*x + y*y) .
Изменено в Python 3.8: Добавлена поддержка n-мерных точек. Раньше поддерживался только двумерный случай.
Программирование и научные вычисления на языке Python/§2/Приложение
Чтобы вы знали о встроенных математических возможностях Python отдельным приложением к уроку 2 служит полный перечень функций модулей math и cmath. Если вы что-то забудете из приведенного, вы всегда можете импортировать модуль в интерпретаторе и набрать команды справки help(something), где в качестве something может стоять имя модуля, функции и т. д.
Содержание
Модуль math всегда доступен и обеспечивает доступ к математическим функциям.
Данные функции неприменимы к комплексным числам, для работы с комплексными числами имеются функции с теми же именами в модуле cmath.
Модуль содержит следующие функции. Во всех случаях, кроме особо оговоренных, функции возвращают число типа float.
- math.exp(x)
- Возвращает e x > .
- math.log(x[, base])
- При передаче функции одного аргумента x, возвращает натуральный логарифм x. При передаче двух аргументов, второй берется как основание логарифма.
- math.log1p(x)
- Возвращает натуральный логарифм от x+1.
- math.log10(x)
- Возвращает десятичный логарифм x.
- math.pow(x, y)
- Возвращает x y > .
- math.sqrt(x)
- Квадратный корень (square root) из x.
- math.acos(x)
- Возвращает арккосинус x, в радианах.
- math.asin(x)
- Возвращает арксинус x, в радианах.
- math.atan(x)
- Возвращает арктангенс x, в радианах.
- math.atan2(y, x)
- Возвращает atan(y/x), в радианах. Результат лежит в интервале [-p, p]. Вектор, конец, которого задается точкой (x, y) образует угол с положительным направлением оси x. Поэтому эта функция имеет более общее назначение, чем предыдущая. Например и atan(1), и atan2(1, 1) дадут в результате pi/4, но atan2(-1, -1) это уже -3*pi/4.
- math.cos(x)
- Возвращает косинус x, где x выражен в радианах.
- math.hyp(x, y)
- Возвращает евклидову норму, то есть sqrt(x**2+y**2). Удобно для вычисления гипотенузы (hyp) и длины вектора.
- math.sin(x)
- Возвращает синус x, где x выражен в радианах.
- math.tan(x)
- Возвращает тангенс x, где x выражен в радианах.
- math.degrees(x)
- Конвертирует значение угла x из радиан в градусы.
- math.radians(x)
- Конвертирует значение угла x из градусов в радианы.
Смысл ясен из названий и соответствует стандартным обозначениям англоязычной литературы:
Этот модуль всегда доступен и позволяет проводить операции над комплексными числами. При этом функции модуля поддерживают работу не только с комплексными, но и с целыми числами и числами с плавающей запятой
Причина, по которой имеются два таких схожих модуля, в том, что многим пользователям не нужны комплексные числа или они просто не знают что это такое. В этих случаях будет даже лучше, если при math.sqrt(-1) будет возбуждено исключение, чем будет найдено комплексное решение. При этом отметим, что функции в модуле всегда возвращают комплексное число, даже если исходные числа не содержат мнимой части.
Комплексное число z может быть представлено в Декартовой системе координат в представлении, что действительная z.real часть откладывается по оси x, а мнимая z.imag — по оси y. Само число z записывается:
Полярные координаты позволяют представить комплексное число другим образом — в виде радиуса r и фазового угла f. Координата r определяет расстояние от точки до полюса, координата f — угол между полярной осью и отрезком, соединяющим полюс и рассматриваемую точку.
Следующие функции могут быть использованы для перехода от исходных прямоугольных координат к полярным:
- cmath.phase(x)
- Возвращает фазовый угол f для числа x, phase(x) эквивалентно math.atan2(x.imag, x.real). Результат лежит в интервале [-p, p].
- cmath.polar(x)
- Возвращает представление x в полярных координатах, то есть возвращает пару (r, phi).
- cmath.rect(r, phi)(x)
- Возвращает обычное комплексное представление x из представления в полярных координатах.
Модуль содержит также ряд функций, с которыми мы ознакомились в модуле math, имеющими то же применение не только к действительным, но и к комплексным числам:
Изучив, данный раздел, мы можем приступить к третьему уроку данного курса, посвященному циклу и последовательностям.
Функции в Python занимают ключевую роль. Без них невозможно выполнение ни одной сложной программы или же для ее создания придется писать каждый раз огромные куски повторяющегося кода. Точно так же невозможно представить программирование без вычислений. Чтобы выполнять математические операции, существуют специальные функции. Все они находятся в модуле math .
Определение модуля. 3 типа модулей в Python
Для начала разберемся в том, что такое модуль в Python. Под этим словом подразумеваются специальные файлы, в которых содержатся переменные классов, функции и другие компоненты работы программы, которые могут использоваться в самых разных приложениях. Они, точно так же, как и функции, лишают необходимости изобретать велосипед или писать огромное количество одних и тех же строк в разных программах.
В это же время функции объявляются в программе, а модуль может использоваться в самых разных приложениях. Достаточно объявить их один раз, и далее ее можно использовать в нескольких программах, написанных разными людьми. Более того, они могут друг друга не знать, а просто установить модуль для языка программирования и использовать их на разных уголках света.
Все модули в Python разделяются на три вида:
- Написанные на самом Python. Имеют расширение .py.
- Написанные на C и загружаемые динамически. Такие модули могут иметь разные расширения, начиная привычным .dll и заканчивая менее распространенными .pyd, .so, .sl.
- Модули, написанные на C, но имеющие связь с Python.
Для того, чтобы получить список последних, необходимо написать следующие строки кода.
import sys
print(sys.builtin_module_names)
Функции представления чисел
Эти функции выполняют такие действия, как отображение целой части числа, получение факториала, абсолютного значения, остатка от деления и так далее. Рассмотрим функции представления чисел.
ceil() и floor() — целая часть числа
С помощью этих функций можно или округлить число до целого или убрать десятичные знаки, оставив часть до запятой неизменной. Обе функции используют в качестве аргумента десятичное число и возвращают целое. Но различается принцип их работы.
С помощью функции ceil() число округляется в большую сторону. А функция floor() по сути также выполняет округление, но в меньшую сторону.
Приведем примеры кода для наглядности.
import math
number=8.10
print(math.ceil(number))
print(math.floor(number))
fabs() — абсолютное значение
Эта функция используется для получения модуля числа. То есть, если оно отрицательное, то будет сконвертировано в положительное. Если оно положительное, то так и останется положительным. Функция не округляет число, поэтому если оно окажется дробным, то ничего не изменится.
В качестве аргумента функция принимает то число, которое необходимо конвертировать в положительное значение. Приведем пример кода для примера.
number = -8.10
print(math.fabs(number))
Не забываем импортировать модуль math перед выполнением всех функций, описанных в этой статье.
factorial() — функция факториала
В качестве аргумента этой функции используется целое положительное число, а возвращаемое значение – его факториал. Это такая функция, которая определяется на множестве неотрицательных целых чисел. Математически вычисляется следующим образом.
Допустим, у нас есть число 5. Чтобы получить его факториал, необходимо построить последовательность натуральных чисел вплоть до 5 (включая это значение), а потом перемножить все эти числа между собой.
То есть, в данном случае, если перемножить каждое число, входящее в последовательность 1,2,3,4,5, то получится 120.
Если же извлекается факториал из нуля, то считается, что это единица.
Теперь приведем пример использования этой функции в программировании.
Факториал используется в целом спектре разделов математики, включая комбинаторику, математический анализ, теория чисел и так далее. Используется он и в теории вероятностей, поэтому данная функция обрела широкое распространение для различных приложений, прогнозирующих финансовые рынки, ставки в азартных играх и так далее.
Внимание! Нельзя использовать в качестве значения этой переменной отрицательное число. В этом случае будет выдана ошибка ValueError, поскольку в саму функцию факториала не входят отрицательные числа.
Интересный факт: факториал является одной из наиболее быстро растущих функций. Если факториал числа 1 – это 1, то факториал числа 6 – 720, а числа 10 – 3 628 800. А если попробовать получить факториал числа 20, то получится число, почти равняющегося 2 с половиной квинтиллионов. Сумасшедшие значения.
fmod() — остаток от деления
Скорее всего, вы уже знакомы с оператором деления по модулю. Он выглядит, как знак процента (%), который стоит между первым и вторым операндами. Недостаток оператора деления по модулю в том, что он может работать только с целыми числами. Поэтому в ситуациях, когда необходимо получить остаток от деления дробных чисел, используется функция fmod() .
Ее синтаксис такой же простой, как и у описанных выше функций. В качестве аргументов она принимает те числа, которые необходимо разделить и получить остаток. Сами числа прописываются через запятую.
И точно так же, чтобы использовать эту функцию, ее необходимо прописать в качестве метода объекта math .
Задача: напишите строку кода, которая получает остаток от деления чисел -5.2 и 2. Ответ:
print(math.fmod(-5.2,2))
Видим, что здесь мы использовали как натуральные числа, так и отрицательные дробные. В этом плане функция очень гибкая.
frexp()
Эта функция позволяет решить такое уравнение, как x = m * 2^n. Она возвращает мантиссу и и показатель степени в виде пары (m, n). Предположим, у нас x равен нулю. В таком случае функция вернет значения 0.0, 0. Иначе возвращается значение 0.5 .
Функция принимает только один аргумент – число, для которого нам необходимо найти мантиссу и показатель степени. Использоваться может как положительное, так и отрицательное значение.
Если использовать в качестве аргумента строку, будет возвращена ошибка TypeError.
Для примера приведем фрагмента кода.
import math
print(math.frexp(24.8))
fsum() — точная сумма float
Эта функция принимает в качестве аргумента последовательность чисел с плавающей точкой и в качестве результата возвращает их сумму. В качестве аргумента можно использовать итерируемый объект, такой как список или диапазон данных. То есть, любой объект, который может возвращать элементы по одному, может использоваться для того, чтобы просуммировать входящие его значения.
Очевидно, что нельзя использовать строчные данные, если они не были предварительно переведены в числовой формат.
Допустим, у нас есть строка ‘5.505’, и нам требуется перевести ее в число с плавающей точкой. Для этого используется функция float(5.505) . И в таком уже виде эта функция может использоваться в качестве аргумента функции float .
Но это уже тонкости. Давайте для начала упростим задачу. Предположим, нам надо просуммировать все числа, входящие в список numbers. Чтобы это сделать, необходимо написать такой код.
numbers=[.1,.2,.3,.4,.5,.6,.7,.8,8.9]
Этот код будет выводить сумму списка, который принимается в качестве аргумента функции fsum .
Функции возведения в степень и логарифма
Иногда может потребоваться операция возведения в степень или получение логарифма (такие ситуации случаются гораздо реже по сравнению с более простыми функциями). Возведение в степень, вообще, довольно популярная функция. Даже для довольно нетривиальных задач она может пригодиться. Ведь это значительно удобнее, чем умножать несколько одинаковых чисел несколько раз, правильно.
Давайте более подробно рассмотрим особенности использования функций возведения в степень и логарифма в языке Python.
Типичный пример экспоненциального роста – геометрическая прогрессия, когда каждое следующее число больше предыдущего в определенное количество раз, но если брать разницу между двумя предыдущими значениями, то она всегда больше ближе к правой части числового ряда.
Но экспонента – это число, которое соответствует числу Эйлера (e) в определенной степени. Используется для представления очень больших чисел, которые невозможно правильно прочитать в своем привычном виде.
Функция exp () принимает целое число или число с плавающей точкой, а возвращает e в соответствующей степени.
print(«e в степени 5 «, math.exp(5))
В первом случае будет возвращено значение 148.4132, а во втором – 12.1825
expm1()
В определенной степени, эта функция противоположная предыдущей в том смысле, что она возвращает экспоненту числа с отрицательной степенью. Для наглядности приведем следующий код.
print(math.exp(5)-1)
print(math.expm1(5))
Несмотря на то, что эти две функции по своей природе разные, возвращают они одно и то же значение. Все потому, что первая функция находит экспоненту отрицательного числа, а вторая – числа, противоположного положительному. В остальных аспектах, эти функции работают одинаково.
Вопрос: зачем вообще была придумана эта функция, если ту же задачу можно выполнить и с помощью предыдущей? Дело в том, что очень часто выражение exp()-1 используется в естественном виде в большом количестве математических формул. И это попросту удобно.
Есть еще одна причина: точность результатов. Если значение x меньше 10, то эта функция дает лучше результат по сравнению с exp()-1 .
log() — логарифм числа
Логарифмы используются в целом спектре видов человеческой деятельности. Так, они широко применяются для создания технических устройств и разработки приложений, которые помогают это делать.
В физике логарифмы используются для измерения интенсивности звука. Так, на каждые следующие 8 децибел интенсивность звука увеличивается вдвое.
В астрономии логарифмы используются для вычисления абсолютной звездной величины, а в химии и медицине – для вычисления pH.
А вот где никто не ожидал увидеть логарифмы – так это в музыке. При этом, каждая следующая нота соответствует другой звуковой частоте. И чтобы построить музыкальную гамму, очень удобно использовать логарифмы этих частот.
Что же такое логарифм? Это степень, в которую надо возвести основание, чтобы получить аргумент, т.е. функция от двух переменных.
Вот, чтобы получить его, используется функция log(x, [base]) . Логарифм – это функция, включающая 2 переменные. Первая – это число, по которому осуществляется определение логарифма. Второй аргумент – это база. Этот параметр может не указываться. В этом случае будет осуществляться расчет логарифма числа без базы.
log1p()
В целом, эта функция работает так же, как и предыдущая. Ее принцип такой же самый. Единственное исключение – она добавляет к x единицу.
Для использования этой функции, так же, как и во всех предыдущих примерах, необходимо сначала импортировать модуль math, а потом использовать в качестве аргумента число и базу.
import math
print(math.log1p(2))
log10()
Если необходимо вычислить логарифм по основанию 10, то это можно сделать с помощью этой функции. Это значительно удобнее, чем задавать основание отдельно. Соответственно, в качестве аргумента используется число, логарифм которого следует найти.
print(math.log10(1000))
Эта функция, как и все остальные, используется, как метод модуля math. Соответственно, его нужно вызывать с этим объектом, как положено, через точку.
pow() – степень числа
Операция возведения в степень в Python, как вы могли уже знать, выполняется с помощью оператора **. Нередко начинающие разработчики на этом языке, ошибочно считают, что возведение числа в степень реализуется с помощью оператора ^. Но это не так, хотя и выглядит логично на первый взгляд. Ведь в математике именно этот символ означает данную операцию.
Но на деле применение этого символа совсем другое – он выполняет побитовую операцию xor .
В Python же возведение в степень реализуется именно с помощью двух звездочек.
Напомним синтаксис этого оператора, потому что те же аргументы используются в функции pow() , которую мы рассмотрим в этом разделе.
Первый операнд – это то число, которое нужно возводить в степень. Допустим, это 5. После него ставится знак возведения в степень, после чего ставится второй операнд, который обозначает, в какую степень осуществляется возведение.
Таким образом, эта программа сначала возводит 5 в степень 6, а потом выводит получившееся значение в консоль.
print(5**6)
Этот оператор можно использовать и с другими видами значений: с отрицательными, числами меньше нуля, с отрицательными степенями.
Функция pow() работает аналогичным образом. Сначала в качестве первого аргумента в нее записывается основание – то число, которое нужно возводить в степень. А в качестве второго аргумента используется число, обозначающее степень, в которую следует возвести число.
print(pow(2, 1.5))
Заметьте, здесь мы не использовали объект math . Почему? Дело в том, что среди встроенных функций Python такая функция также есть. Работает она абсолютно так же, как и в модуле Math , но есть одно существенное отличие. Если мы рассматриваем функцию из библиотеки, то возвращаться будут числа с плавающей точкой, независимо от того, передаются ей целочисленные значения или нет.
Зная эту особенность, можно гибко регулировать
Недостаток функции math.pow() в том, что если значение степени очень большое, будет выдаваться ошибка OverflowError.
sqrt() — квадратный корень числа
Math.sqrt() – это не единственная функция с помощью которой можно произвести операцию возведения в степень. Чтобы более глубоко понять принципы ее работы, надо сравнить также с другими способами получения квадратного корня из числа.
Первый вариант – использовать оператор возведения в степень. Если использовать степень 0,5, программа извлекает квадратный корень. Это очень удобный способ, которым можно пользоваться.
С помощью math.sqrt() можно получить квадратный корень из нуля и положительных чисел. Для этого необходимо в качестве аргумента использовать число, для которого нужно получить квадратный корень.
Недостаток этого метода в том, что он не поддерживает извлечение квадратного корня из отрицательных чисел. Чтобы такая возможность появилась, необходимо подключить другую библиотеку – cmath() и использовать метод cmath.sqrt() с числом в качестве аргумента.
import cmath
num = -25
sqrt = cmath.sqrt(num)
Особенность этой библиотеки в том, что она проводит математические вычисления с комплексными числами, которое и получается в результате получения квадратного корня из отрицательного значения.
Таким образом, функция math.sqrt() – далеко не самая мощная, и для продвинутого функционала требуется совсем другая библиотека. Правда, такая необходимость появляется не так часто. Далеко не всегда надо работать с комплексными числами.
Тригонометрические функции
Одно из характерных преимуществ модуля math() заключается в том, что он поддерживает тригонометрические функции. Поддерживаются все существующие на данный момент – синус, косинус, тангенс, арксинус, арктангенс и так далее.
Рассмотрим самые распространенные тригонометрические функции.
Все они принимают только один аргумент – угол, для которого необходимо найти синус, косинус и так далее.
Получение синуса радиана. Для этого используется функция sin(). Принимает один аргумент – радиан.
Получение косинуса. Чтобы добиться этой цели, применяется функция cos() . В качестве аргумента используется радиан.
Получение тангенса. Используется функция tan .
Приведем таблицу с подробным перечислением тригонометрических функций в Python и тем, как они используются.
Функция преобразования углов
У внимательного читателя мог на предыдущем этапе появиться вопрос: а что, если я не знаю, сколько радиан в угле? Я знаю только количество градусов. Ничего страшного, ведь библиотека math поддерживает возможность конвертации радиан в градусы и наоборот.
Чтобы выполнить первую задачу, существует функция degrees() , которая принимает радиан в качестве аргумента и выводит количество градусов.
Для того, чтобы получить количество радиан, зная количество градусов, следует воспользоваться функцией radians() , которая принимает величину угла в качестве аргумента.
Запомнить очень просто. То, что мы хотим получить, так и называется функция.
Читайте также: