Содержание:развернуть
- Что такое модуль числа
- Abs
- Fabs
- Основные свойства модулей
Запускаю китайскую реплику «ТАРДИС», и вот мы в пятом классе. На доске нарисована числовая ось, а на ней выделен отрезок. Его начало в точке 4, а конец — в 8. Учительница говорит, что длину отрезка можно найти путём вычитания координаты начала отрезка из координаты его конца. Вычитаем, получаем 4, и радуемся — мы нашли длину. Ура! 🎉
Перемещаемся на год вперёд, и там происходит странное: учительница выделяет мелом другой отрезок, но делает это в каком-то неправильном месте — левее точки с цифрой «0». Теперь перед нами старая задача, но с новыми числами и даже буквами: A, B, минус 4 и минус 8. Мы начинаем искать длину отрезка AB = [-4;-8]:
Переводим непонимающий взгляд с получившейся отрицательной длины на довольную улыбающуюся учительницу, а затем на доску. Там наверху, рядом с сегодняшней датой, написана тема урока: «Модуль числа».
Что такое модуль числа
Теперь по-взрослому.
Модуль числа называют абсолютной величиной.
Для вещественных чисел модуль определяется так:
Т.е. в любом случае, модуль — число большее или равное 0. Поэтому отрицательная длина в примере хитрой учительницы должна была быть взята по модулю:
Тогда дети бы увидели, что геометрический смысл модуля — есть расстояние. Это справедливо и для комплексных чисел, однако формальное определение для них отличается от вещественного:
, где z — комплексное число: z = x + iy.
В Python для нахождения модуля числа применяются две функции: fabs()
из подключаемой библиотеки math
и встроенная функция abs()
.
Abs
В то время как math.fabs()
может оперировать только вещественными аргументами, abs()
отлично справляется и с комплексными. Для начала покажем, что abs
в python работает строго в соответствии с математическим определением.
# для вещественных чисел
print(abs(-1))
print(abs(0))
print(abs(1))
> 1
> 0
> 1
Как видно, с вещественными числами всё в порядке. Перейдём к комплексным.
# для комплексных чисел
print(complex(-3, 4))
print(abs(complex(-3, 4)))
> (-3+4j)
> 5.0
Если вспомнить, что комплексное число выглядит так: z = x + iy, а его модуль вычисляется по формуле:
, то можно без труда посчитать, что sqrt(3**2 + 4**2)
действительно равно 5.0
.
Можно заметить, что abs()
возвращает значения разных типов. Это зависит от типа аргумента:
print(type(abs(1)))
> <class 'int'>
print(type(abs(1.0)))
> <class 'float'>
print(type(abs(complex(1.0, 1.0))))
<class 'float'>
В этом кроется ещё одно отличие abs()
от fabs()
. Функция из модуля math
всегда приводит аргумент к вещественному типу, а если это невозможно сделать — выбрасывает ошибку:
print(type(math.fabs(complex(2,3))))
> TypeError: can't convert complex to float
Fabs
Для начала работы с fabs()
необходимо импортировать модуль math
с помощью следующей инструкции:
import math
Мы уже выяснили, что fabs()
не работает с комплексными числами, поэтому проверим работу функции на вещественных:
print(math.fabs(-10))
print(math.fabs(0))
print(math.fabs(10))
> 10.0
> 0.0
> 10.0
Функция производит вычисления в соответствие с математическим определением, однако, в отличие от abs()
, всегда возвращает результат типа float
:
print(type(math.fabs(10)))
> <class 'float'>
Основные свойства модулей
# Квадрат модуля = квадрату числа
print(pow(4, 2) == pow(abs(4), 2))
> True
# |x| = |-x|
print(abs(-10) == abs(10))
> True
# Модуль произведения = произведению модулей: |ab|=|a||b|
print(math.fabs(11 * 3) == math.fabs(11) * math.fabs(3))
> True
# Аналогично для деления: |a/b|=|a|/|b|
print(math.fabs(48/8) == math.fabs(48) / math.fabs(8))
> True
# |a ** b| = |a| ** b
print(abs(2 ** 10) == abs(2) ** 10)
> True
И еще несколько важных неравенств:
- m <= |m|
- -|m| <= m
- |m| >= 0
- |m + n| <= |m| + |n|
- |m – n| <= |m| + |n|
- |m| — |n| <= |m + n|
- |m + n| >= ||m| — |n||
- |m – n| >= ||m| — |n||
Перейти к содержанию
На чтение 1 мин Просмотров 2.2к. Опубликовано
Для вычисления модуля числа в языке программирования Python можно использовать несколько способов.
Вычисление модуля числа с помощью модуля Math
Самый простой из них — подключить встроенный модуль, предназначенный для работы с математическими операциями — Math.
Для подключения модуля введем:
import math
И после воспользуемся командой:
math.fabs(число или переменная, модуль которого необходимо вычислить)
Рассмотрим конкретный пример вычисления модуля на языке программирования Python:
import math
print(math.fabs(-56))
>>> 56.0
Вычисление модуля числа написанием собственной функции
Для вычисления модуля вещественного числа можно написать простую собственную функцию:
def module(a):
if a <0:
a = a*-1
return a
print(module(-56))
>>> 56
Здесь в первой строке мы объявляем новую функцию module. Далее в функции проверяем, отрицатильное ли число получает функция на входе, и, если это так, то умножаем его на -1. Не зависимо от результата, в конце функция возвращает результат с помощью команды return.
The Python abs() function return the absolute value and remove the negative sign of a number in Python.
Python abs() Function Syntax
Syntax: abs(number)
- number: Integer, floating-point number, complex number.
Return: Returns the absolute value.
Python abs() Function Example
Python abs() Function with int in Python.
Python3
var
=
-
94
print
(
'Absolute value of integer is:'
,
abs
(var))
Output:
94
Example 1: Get the absolute value of a number
In this example, we pass int data into the abs() function and it will return an absolute value.
Python3
var
=
-
100
print
(
'Absolute value of integer is:'
,
abs
(var))
Output:
Absolute value of integer is: 100
Example 2: Get the absolute value of a floating number
In this example, we pass float data into the abs() function and it will return an absolute value.
Python3
float_number
=
-
54.26
print
(
'Absolute value of float is:'
,
abs
(float_number))
Output:
Absolute value of float is: 54.26
Example 3: Get the absolute value of a complex number
In this example, we pass Python complex data into the abs() function and it will return an absolute value.
Python3
complex_number
=
(
3
-
4j
)
print
(
'Absolute value or Magnitude of complex is:'
,
abs
(complex_number))
Output:
Absolute value or Magnitude of complex is: 5.0
Example 4: Time-Distance calculation using Python abs()
This equation shows the relationship between speed, distance traveled and time taken and we know speed, time and distance are never negative, for this, we will use abs() methods to calculate the exact time, distance, and speed.
Formula used:
Distance = Speed * Time
Time = Distance / Speed
Speed = Distance / Time
Python3
def
cal_speed(dist, time):
print
(
" Distance(km) :"
, dist)
print
(
" Time(hr) :"
, time)
return
dist
/
time
def
cal_dis(speed, time):
print
(
" Time(hr) :"
, time)
print
(
" Speed(km / hr) :"
, speed)
return
speed
*
time
def
cal_time(dist, speed):
print
(
" Distance(km) :"
, dist)
print
(
" Speed(km / hr) :"
, speed)
return
speed
*
dist
print
(
" The calculated Speed(km / hr) is :"
,
cal_speed(
abs
(
45.9
),
abs
(
2.0
)))
print
("")
print
(
" The calculated Distance(km) :"
,
cal_dis(
abs
(
62.9
),
abs
(
2.5
)))
print
("")
print
(
" The calculated Time(hr) :"
,
cal_time(
abs
(
48.0
),
abs
(
4.5
)))
Output:
Distance(km) : 45.9 Time(hr) : 2.0 The calculated Speed(km / hr) is : 22.95 Time(hr) : 2.5 Speed(km / hr) : 62.9 The calculated Distance(km) : 157.25 Distance(km) : 48.0 Speed(km / hr) : 4.5 The calculated Time(hr) : 216.0
Time Complexity: O(1)
Auxiliary Space: O(1)
The Python abs() function return the absolute value and remove the negative sign of a number in Python.
Python abs() Function Syntax
Syntax: abs(number)
- number: Integer, floating-point number, complex number.
Return: Returns the absolute value.
Python abs() Function Example
Python abs() Function with int in Python.
Python3
var
=
-
94
print
(
'Absolute value of integer is:'
,
abs
(var))
Output:
94
Example 1: Get the absolute value of a number
In this example, we pass int data into the abs() function and it will return an absolute value.
Python3
var
=
-
100
print
(
'Absolute value of integer is:'
,
abs
(var))
Output:
Absolute value of integer is: 100
Example 2: Get the absolute value of a floating number
In this example, we pass float data into the abs() function and it will return an absolute value.
Python3
float_number
=
-
54.26
print
(
'Absolute value of float is:'
,
abs
(float_number))
Output:
Absolute value of float is: 54.26
Example 3: Get the absolute value of a complex number
In this example, we pass Python complex data into the abs() function and it will return an absolute value.
Python3
complex_number
=
(
3
-
4j
)
print
(
'Absolute value or Magnitude of complex is:'
,
abs
(complex_number))
Output:
Absolute value or Magnitude of complex is: 5.0
Example 4: Time-Distance calculation using Python abs()
This equation shows the relationship between speed, distance traveled and time taken and we know speed, time and distance are never negative, for this, we will use abs() methods to calculate the exact time, distance, and speed.
Formula used:
Distance = Speed * Time
Time = Distance / Speed
Speed = Distance / Time
Python3
def
cal_speed(dist, time):
print
(
" Distance(km) :"
, dist)
print
(
" Time(hr) :"
, time)
return
dist
/
time
def
cal_dis(speed, time):
print
(
" Time(hr) :"
, time)
print
(
" Speed(km / hr) :"
, speed)
return
speed
*
time
def
cal_time(dist, speed):
print
(
" Distance(km) :"
, dist)
print
(
" Speed(km / hr) :"
, speed)
return
speed
*
dist
print
(
" The calculated Speed(km / hr) is :"
,
cal_speed(
abs
(
45.9
),
abs
(
2.0
)))
print
("")
print
(
" The calculated Distance(km) :"
,
cal_dis(
abs
(
62.9
),
abs
(
2.5
)))
print
("")
print
(
" The calculated Time(hr) :"
,
cal_time(
abs
(
48.0
),
abs
(
4.5
)))
Output:
Distance(km) : 45.9 Time(hr) : 2.0 The calculated Speed(km / hr) is : 22.95 Time(hr) : 2.5 Speed(km / hr) : 62.9 The calculated Distance(km) : 157.25 Distance(km) : 48.0 Speed(km / hr) : 4.5 The calculated Time(hr) : 216.0
Time Complexity: O(1)
Auxiliary Space: O(1)
На чтение 11 мин Просмотров 3.1к. Опубликовано 05.12.2021
В этом уроке мы познакомимся с встроенным модулем стандартной библиотеки Python. Этот модуль предоставляет множество функций для математических вычислений. В целях ускорения вычислений данный модуль «под капотом» написан на языке C.
Содержание
- Функции представления чисел
- ceil() и floor() — целая часть числа
- Функция fabs() — модуль числа
- factorial() — функция факториала
- Функция fmod() — остаток от деления
- Функция frexp()
- Функция fsum() — точная сумма float
- Функции возведения в степень и логарифма
- Функция exp()
- Функция expm1()
- Функция log() — логарифм числа
- Функция log1p()
- Функция log10()
- Функция pow() — степень числа
- Функция sqrt() — квадратный корень числа
- Тригонометрические функции
- Функция преобразования углов
- Математические константы
Функции представления чисел
ceil() и floor() — целая часть числа
Эти функции мы уже рассматривали в одной из прошлых статей.
Кратко повторим.
ceil() и floor() — способы выполнить округление. Обе принимают число с дробной частью (тип float), а возвращают целое (тип int). Разница же между ними в том, что ceil() округляет число вверх (до ближайшего большего целого числа), а floor() — вниз.
from math import floor, ceil
float_var = 3.14
first_int_var = floor(float_var)
second_int_var = ceil(float_var)
print(f'Число {float_var} имеет тип {type(float_var)}')
print(f'Округляем число {float_var} вниз и получаем {first_int_var}')
print('С типом', type(first_int_var))
print(f'Округляем число {float_var} вверх и получаем {second_int_var}')
print('С типом', type(second_int_var))
# Вывод:
Число 3.14 имеет тип <class 'float'>
Округляем число 3.14 вниз и получаем 3
С типом <class 'int'>
Округляем число 3.14 вверх и получаем 4
С типом <class 'int'>
Не забудьте импортировать модуль math в свой проект!
Функция fabs() — модуль числа
Как и встроенная функция Питона abs, функция math.fabs возвращает модуль числа (если чило отрицательное, то отбрасывается знак «-»). Но есть между ними и важные отличия. Во-первых, math.fabs не предназначена для работы с комплексными числами, во-вторых, в отличие от abs, она возвращает не целочисленное, а дробное число.
from math import fabs
var = -3
first_int_var = abs(var)
second_int_var = fabs(var)
print(f'Число {var} имеет тип {type(float_var)}')
print(f'Модуль числа {var}, полученный функцией abs: {first_int_var}')
print('С типом', type(first_int_var))
print(f'Модуль числа {float_var}, полученный функцией fabs: {second_int_var}')
print('С типом', type(second_int_var))
print(abs(complex(1, 2)))
print(fabs(complex(1, 2)))
# Вывод:
Число -3 имеет тип <class 'int'>
Модуль числа -3, полученный функцией abs: 3
С типом <class 'int'>
Модуль числа -3, полученный функцией fabs: 3.0
С типом <class 'float'>
2.23606797749979
Traceback (most recent call last):
File "C:UsersivandAppDataRoamingJetBrainsPyCharm2021.2scratchesscratch.py", line 12, in
print(fabs(complex(1, 2)))
TypeError: can't convert complex to float
factorial() — функция факториала
Эта функция предназначена для получения факториала.
Пример:
from math import factorial
var = 3
first_int_var = factorial(var)
print(f'Число {var} имеет тип {type(var)}')
print(f'Факториал числа {var}, полученный функцией factorial: {first_int_var}')
print('С типом', type(first_int_var))
# Вывод:
Число 3 имеет тип <class 'int'>
Факториал числа 3, полученный функцией factorial: 6
С типом <class 'int'>
Естественно, функция принимает только целое положительное число.
from math import factorial
var = -3
first_int_var = factorial(var)
print(f'Число {var} имеет тип {type(var)}')
print(f'Факториал числа {var}, полученный функцией factorial: {first_int_var}')
print('С типом', type(first_int_var))
# Вывод:
Traceback (most recent call last):
File "C:UsersivandAppDataRoamingJetBrainsPyCharm2021.2scratchesscratch.py", line 4, in
first_int_var = factorial(var)
ValueError: factorial() not defined for negative values
from math import factorial
var = 3.14
first_int_var = factorial(var)
print(f'Число {var} имеет тип {type(var)}')
print(f'Факториал числа {var}, полученный функцией factorial: {first_int_var}')
print('С типом', type(first_int_var))
# Вывод:
C:UsersivandAppDataRoamingJetBrainsPyCharm2021.2scratchesscratch.py:4: DeprecationWarning: Using factorial() with floats is deprecated
first_int_var = factorial(var)
Traceback (most recent call last):
File "C:UsersivandAppDataRoamingJetBrainsPyCharm2021.2scratchesscratch.py", line 4, in
first_int_var = factorial(var)
ValueError: factorial() only accepts integral values
Функция fmod() — остаток от деления
Функция fmod() является расширением оператора % — в отличие от него, данная функция может работать с числами с плавающей точкой.
Пример:
from math import fmod
var = 3.14
print('fmod(var, 2)', fmod(var, 2))
print('fmod(2, var)', fmod(2, var))
print('fmod(var, 1)', fmod(var, 1))
print('fmod(var, 3.14)', fmod(var, 3.14))
print('fmod(var, 50)', fmod(var, 50))
# Вывод:
fmod(var, 2) 1.1400000000000001
fmod(2, var) 2.0
fmod(var, 1) 0.14000000000000012
fmod(var, 3.14) 0.0
fmod(var, 50) 3.14
Функция frexp()
Эта функция возвращает мантиссу и показатель степени.
Пример:
from math import frexp
var = 3.14
print('frexp(var)', frexp(var))
# Вывод:
frexp(var) (0.785, 2)
Функция fsum() — точная сумма float
Вычисляет точную сумму значений с плавающей точкой в итерируемом объекте и сумму списка или диапазона данных.
Пример:
from math import fsum
var_list = [1/i for i in range(1, 10)]
print(f'Сумма элементов последовательностиn{var_list}nравна', fsum(var_list))
# Вывод:
Сумма элементов последовательности
[1.0, 0.5, 0.3333333333333333, 0.25, 0.2, 0.16666666666666666, 0.14285714285714285, 0.125, 0.1111111111111111]
равна 2.828968253968254
Функции возведения в степень и логарифма
Функция exp()
Эта функция принимает один параметр в виде дробного числа и возвращает e^x.
Пример:
from math import exp
var_list = 3.14
print(f'exp(3.14):', exp(var_list))
# Вывод:
exp(3.14): 23.103866858722185
Функция expm1()
Эта функция работает так же, как и exp, но возвращает exp(x)-1. Здесь, expm1 значит exm-m-1, то есть, exp-minus-1.
Пример:
from math import exp, expm1
var_list = 3.14
print(f'exp(3.14) - 1:', exp(var_list) - 1)
print(f'expm1(3.14):', expm1(var_list))
# Вывод:
exp(3.14) - 1: 22.103866858722185
expm1(3.14): 22.103866858722185
Функция log() — логарифм числа
Функция log(x[,base]) находит логарифм числа x по основанию e (по умолчанию). base— параметр опциональный. Если нужно вычислить логарифм с определенным основанием, его нужно указать.
Пример:
from math import log
var_list = 3.14
print(f'log(3.14):', log(var_list))
# Вывод:
log(3.14): 1.144222799920162
Функция log1p()
Эта функция похожа на функцию логарифма, но добавляет 1 к x. log1p значит log-1-p, то есть, log-1-plus.
Пример:
from math import log, log1p
var_list = 3.14
print(f'log(3.14 + 1):', log(var_list + 1))
print(f'log1p(3.14):', log1p(var_list))
# Вывод:
log(3.14 + 1): 1.420695787837223
log1p(3.14): 1.420695787837223
Функция log10()
Вычисляет логарифм по основанию 10.
Пример:
from math import log10
var_list = 3.14
print(f'log10(3.14):', log10(var_list))
# Вывод:
log10(3.14): 0.49692964807321494
Функция pow() — степень числа
Используется для нахождения степени числа. Синтаксис функции pow(Base, Power). Она принимает два аргумента: основание и степень.
Пример:
from math import pow
var_list = 3.14
print(f'pow(3.14, 10):', pow(var_list, 10))
print(f'pow(10, 3.14):', pow(10, var_list))
print(f'pow(10, 10):', pow(10, 10))
# Вывод:
pow(3.14, 10): 93174.3733866435
pow(10, 3.14): 1380.3842646028852
pow(10, 10): 10000000000.0
Функция sqrt() — квадратный корень числа
Эта функция используется для нахождения квадратного корня числа. Она принимает число в качестве аргумента и находит его квадратный корень.
Пример:
from math import sqrt var_list = 3.14 print(f'sqrt(3.14):', sqrt(var_list)) print(f'sqrt(93174.3733866435):', sqrt(93174.3733866435)) print(f'sqrt(10000000000):', sqrt(10000000000)) # Вывод: sqrt(3.14): 1.772004514666935 sqrt(93174.3733866435): 305.2447761824001 sqrt(10000000000): 100000.0
Тригонометрические функции
В Python есть следующие тригонометрические функции.
Функция | Значение |
sin | принимает радиан и возвращает его синус |
cos | принимает радиан и возвращает его косинус |
tan | принимает радиан и возвращает его тангенс |
asin | принимает один параметр и возвращает арксинус (обратный синус) |
acos | принимает один параметр и возвращает арккосинус (обратный косинус) |
atan | принимает один параметр и возвращает арктангенс (обратный тангенс) |
sinh | принимает один параметр и возвращает гиперболический синус |
cosh | принимает один параметр и возвращает гиперболический косинус |
tanh | принимает один параметр и возвращает гиперболический тангенс |
asinh | принимает один параметр и возвращает обратный гиперболический синус |
acosh | принимает один параметр и возвращает обратный гиперболический косинус |
atanh | принимает один параметр и возвращает обратный гиперболический тангенс |
Пример:
from math import sin, cos, tan, acos, atan, sinh, acosh, atanh, asin
var = 0.5
print('sin(var):', sin(var))
print('cos(var):', cos(var))
print('tan(var):', tan(var))
print('acos(var):', acos(var))
print('asin(var):', asin(var))
print('atan(var):', atan(var))
print('sinh(var):', sinh(var))
print('acosh(3.14):', acosh(3.14))
print('atanh(var):', atanh(var))
# Вывод:
sin(var): 0.479425538604203
cos(var): 0.8775825618903728
tan(var): 0.5463024898437905
acos(var): 1.0471975511965979
asin(var): 0.5235987755982989
atan(var): 0.4636476090008061
sinh(var): 0.5210953054937474
acosh(3.14): 1.810991348900196
atanh(var): 0.5493061443340549
Функция преобразования углов
Эти функции преобразуют угол. В математике углы можно записывать двумя способами: угол и радиан. Есть две функции в Python, которые конвертируют градусы в радиан и обратно.
• degrees(): конвертирует радиан в градусы;
• radians(): конвертирует градус в радианы;
Пример:
from math import degrees, radians
var_1 = 3.14
var_2 = 4.13
print('degrees(var_1):', degrees(var_1))
print('radians(var_2):', radians(var_2))
# Вывод:
degrees(var_1): 179.9087476710785
radians(var_2): 0.07208209810736581
Математические константы
В Python есть две математические константы: pi и e.
1. pi: это математическая константа со значением 3.1416..
2. e: это математическая константа со значением 2.7183..
Пример:
import math
# вывод значения PI
print("значение PI", math.pi)
# вывод значения e
print("значение e", math.e)
Вывод:
значение PI 3.141592653589793
значение e 2.718281828459045