MyTetra Share
Делитесь знаниями!
Math — математические функции в Python
Время создания: 07.02.2021 19:19
Автор: alensav
Текстовые метки: Math — математические функции в Python
Раздел: PYTHON
Запись: alensav/MyTetra2/main/base/1612714750be2n49ldwx/text.html на raw.githubusercontent.com

Math — математические функции в Python

23.02.2020

Эта статья посвящена математическим функциям в Python . Для выполнения математических операций необходим модуль math.

Что такое модуль?

В C и C++ есть заголовочные файлы, в которых хранятся функции, переменные классов и так далее. При включении заголовочных файлов в код появляется возможность не писать лишние строки и не использовать одинаковые функции по несколько раз. Аналогично в Python для этого есть модули, которые включают функции, классы, переменные и скомпилированный код. Модуль содержит группу связанных функций, классов и переменных .

Есть три типа модулей в Python :

  1. Модули, написанные на Python (.py).
  2. Модули, написанные на C и загружаемые динамически (.dll, .pyd, .so, .sl и так далее).
  3. Модули, написанные на C, но связанные с интерпретатором.

import sys

print(sys.builtin_module_names)


('_ast', '_bisect', '_codecs', '_codecs_cn', '_codecs_hk', '_codecs_iso2022',

'_codecs_jp', '_codecs_kr', '_codecs_tw', '_collections', '_csv', '_datetime',

'_functools', '_heapq', '_imp', '_io', '_json', '_locale', '_lsprof', '_md5',

'_multibytecodec', '_opcode', '_operator', '_pickle', '_random', '_sha1',

'_sha256', '_sha512', '_sre', '_stat', '_string', '_struct', '_symtable', '_thread',

'_tracemalloc', '_warnings', '_weakref', '_winapi', 'array', 'atexit', 'audioop',

'binascii', 'builtins', 'cmath', 'errno', 'faulthandler', 'gc', 'itertools', 'marshal',

'math', 'mmap', 'msvcrt', 'nt', 'parser', 'signal', 'sys', 'time', 'winreg',

'xxsubtype', 'zipimport', 'zlib').


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

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

Функции представления чисел

ceil() и floor() — целая часть числа

Сeil() и floor() — функции общего назначения. Функция ceil округляет число до ближайшего целого в большую сторону. Функция floor убирает цифры десятичных знаков. Обе принимают десятичное число в качестве аргумента и возвращают целое число.

Пример:

# Импорт модуля math

import math


# Дробный номер

number=8.10


# выводим целую часть числа с округлением к большему

print("Верхний предел 8.10 это:",math.ceil(number))


# выводим целую часть числа с округлением к меньшему

print("Нижний предел 8.10 это:",math.floor(number))


Вывод:

Верхний предел 8.10 это: 9

Нижний предел 8.10 это: 8


Функция fabs() — абсолютное значение

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

Пример:

# Импорт модуля math

import math


number = -8.10

# вывод абсолютного значения числа

print(math.fabs(number))


Вывод:

8.1


factorial() — функция факториала

Эта функция принимает положительное целое число и выводит его факториал.

Пример:

# Импорт модуля math

import math


number = 5

# вывод факториала числа

print("факториала числа", math.factorial(number))


Вывод:

факториала числа 120


Примечание: при попытке использовать отрицательное число, возвращается ошибка значения ( Value Error ) .

Пример:

# Импорт модуля math

import math


number = -5

# вывод факториала числа

print("факториала числа", math.factorial(number))


Вывод:

ValueError: factorial() not defined for negative values


Функция fmod() — остаток от деления

Функция fmod(x,y) возвращает x % y. Разница в том, что выражение x % y работает только с целыми числами, а эту функцию можно использовать и для чисел с плавающей точкой.

Пример:

# Импорт модуля math

import math


print(math.fmod(5,2))

print(math.fmod(-5,2))

print(math.fmod(-5.2,2))

print(math.fmod(5.2,2))


Вывод:

1.0

-1.0

-1.2000000000000002

1.2000000000000002


Функция frexp()

Эта функция возвращает мантиссу и показатель степени в виде пары (m,n) любого числа x, решая следующее уравнение.

Пример:

# Импорт модуля math

import math


print(math.frexp(24.8))


Вывод:

(0.775, 5)


Функция fsum() — точная сумма float

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

Пример:

# Импорт модуля math

import math

# сумма списка

numbers=[.1,.2,.3,.4,.5,.6,.7,.8,8.9]

print("сумма ", numbers, ":", math.fsum(numbers))

# сумма диапазона

print("сумма чисел от 1 до 10:", math.fsum(range(1,11)))


Вывод:

сумма [0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 8.9] : 12.5

сумма чисел от 1 до 10: 55.0


Функции возведения в степень и логарифма

Функция exp()

Эта функция принимает один параметр в виде дробного числа и возвращает e^x.

Пример:

# Импорт модуля math

import math

print("e в степени 5 ", math.exp(5))

print("e в степени 2.5", math.exp(2.5))


Вывод:

e в степени 5 148.4131591025766

e в степени 2.5 12.182493960703473


Функция expm1()

Эта функция работает так же, как и exp, но возвращает exp(x)-1. Здесь, expm1 значит exm-m-1, то есть, exp-minus-1.

Пример:

# Импорт модуля math

import math

print(math.exp(5)-1)

print(math.expm1(5))


Вывод:

147.4131591025766

147.4131591025766


Функция log() — логарифм числа

Функция log(x[,base]) находит логарифм числа x по основанию e (по умолчанию). base— параметр опциональный. Если нужно вычислить логарифм с определенным основанием, его нужно указать.

Пример:

# Импорт модуля math

import math

# логарифм с основанием e

print(math.log(2))

# логарифм с указанным основанием (2)

print(math.log(64,2))


Вывод:

0.6931471805599453

6.0


Функция log1p()

Эта функция похожа на функцию логарифма, но добавляет 1 к x. log1p значит log-1-p, то есть, log-1-plus.

Пример:

# Импорт модуля math

import math

print(math.log1p(2))


Вывод:

1.0986122886681098


Функция log10()

Вычисляет логарифм по основанию 10.

Пример:

# Импорт модуля math

import math


print(math.log10(1000))


Вывод:

3.0


Функция pow() — степень числа

Используется для нахождение степени числа. Синтаксис функции pow(Base, Power). Она принимает два аргумента: основание и степень.

Пример:

# Импорт модуля math

import math


print(math.pow(5,4))


Вывод:

625.0


Функция sqrt() — квадратный корень числа

Эта функция используется для нахождения квадратного корня числа. Она принимает число в качестве аргумента и находит его квадратный корень.

Пример:

# Импорт модуля math

import math


print(math.sqrt(256))


Вывод:

16.0


Тригонометрические функции

В Python есть следующие тригонометрические функции.

Функция

Значение

sin

принимает радиан и возвращает его синус

cos

принимает радиан и возвращает его косинус

tan

принимает радиан и возвращает его тангенс

asin

принимает один параметр и возвращает арксинус (обратный синус)

acos

принимает один параметр и возвращает арккосинус (обратный косинус)

atan

принимает один параметр и возвращает арктангенс (обратный тангенс)

sinh

принимает один параметр и возвращает гиперболический синус

cosh

принимает один параметр и возвращает гиперболический косинус

tanh

принимает один параметр и возвращает гиперболический тангенс

asinh

принимает один параметр и возвращает обратный гиперболический синус

acosh

принимает один параметр и возвращает обратный гиперболический косинус

atanh

принимает один параметр и возвращает обратный гиперболический тангенс

Пример:

# Импорт модуля math

import math

# функция синусы

print("синус PI/2 :", math.sin(math.pi/2))

# функция косинуса

print("косинус 0 :", math.cos(0))

# функция тангенса

print("тангенс PI/4 :", math.tan(math.pi/4))

print()

# функция арксинуса

print("арксинус 0 :", math.acos(0))

# функция арккосинуса

print("арккосинус 1 :", math.acos(1))

# функция арктангенса

print("арктангенс 0.5 :", math.atan(0.5))

print()

# функция гиперболического синуса

print("гиперболический синус 1 :", math.sinh(1))

# функция гиперболического косинуса

print("гиперболический косинус 0 :", math.cos(0))

# функция гиперболического тангенса

print("гиперболический тангенс 1 :", math.tan(1))

print()

# функция обратного гиперболического синуса

print("обратный гиперболический синус 1 :", math.acosh(1))

# функция обратного гиперболического косинуса

print("обратный гиперболический косинус 1 :", math.acosh(1))

# функция обратного гиперболического тангенса

print("обратный гиперболический тангенс 0.5 :", math.atanh(0.5))


Вывод:

синус PI/2 : 1.0

косинус 0 : 1.0

тангенс PI/4 : 0.9999999999999999


арксинус 0 : 1.5707963267948966

арккосинус 1 : 0.0

арктангенс 0.5 : 0.4636476090008061


гиперболический синус 1 : 1.1752011936438014

гиперболический косинус 0 : 1.0

гиперболический тангенс 1 : 1.5574077246549023


обратный гиперболический синус 1 : 0.0

обратный гиперболический косинус 1 : 0.0

обратный гиперболический тангенс 0.5 : 0.5493061443340549


Функция преобразования углов

Эти функции преобразуют угол. В математике углы можно записывать двумя способами: угол и радиан. Есть две функции в Python , которые конвертируют градусы в радиан и обратно.

  • degrees(): конвертирует радиан в градусы;
  • radians(): конвертирует градус в радианы;

Пример:

# Импорт модуля math

import math


print(math.degrees(1.57))

print(math.radians(90))


Вывод:

89.95437383553924

1.5707963267948966


Математические константы

В Python есть две математические константы: pi и e.

  1. pi: это математическая константа со значением 3.1416..
  2. e: это математическая константа со значением 2.7183..

Пример:

# Импорт модуля math

import math


# вывод значения PI

print("значение PI", math.pi)


# вывод значения e

print("значение e", math.e)


Вывод:

значение PI 3.141592653589793

значение e 2.718281828459045


Появились вопросы? Задайте на Яндекс Кью

У блога есть сообщество на Кью >> Python Q <<. Там я и другие участники отвечаем на вопросы по python, программированию и контенту сайта.

Обучение Python и Data Science

Профессия Data Scientist

9 187 4 593 ₽/мес.

Так же в этом разделе:
 
MyTetra Share v.0.65
Яндекс индекс цитирования