Модуль cmath. Робота з комплексними числами. Тригонометричні функції. Гіперболічні функції. Функції класифікацій
Зміст
Пошук на інших ресурсах:
1. Тригонометричні функції
Модуль cmath містить 6 тригонометричних функцій, які обробляють комплексні числа:
- cmath.acos(x) – повертає арккосинус від аргументу x;
- cmath.asin(x) – повертає арксинус від аргументу x;
- cmath.atan(x) – визначає арктангенс від аргументу x;
- cmath.cos(x) – повертає косинус від аргументу x;
- cmath.sin(x) – повертає синус від аргументу x;
- cmath.tan(x) – повертає тангенс від аргументу x.
⇑
1.1. Функції cmath.acos(), cmath.asin(), cmath.atan(). Отримати арккосинус, арксинус, арктангенс аргументу
Функції
cmath.acos(x) cmath.asin(x)
повертають відповідно арккосинус та арксинус від аргументу x. Кожна з функцій має два розрізи розгалуження. Перший простягається від 1 до ∞ вздовж дійсної осі, неперервний знизу. Другий простягається вліво від -1 до -∞ вздовж дійсної осі, неперервний зверху.
Функція
cmath.atan(x)
дозволяє отримати арктангенс від аргументу x.
Функція має два розрізи розгалуження. Перший простягається від 1j вздовж уявної осі до ∞j неперервно справа. Другий простягається від -1 до -∞ і є неперервний зліва.
Приклад.
# Тригонометричні функції acos(), asin(), atan() # 1. Підключити модуль cmath import cmath # 2. Отримати комплексне число з клавіатури re = int(input('re = ')) im = int(input('im = ')) z = complex(re, im) # 3. Обчислити арккосинус аргументу z та вивести його arc_cos = cmath.acos(z) print('arc_cos = ', arc_cos) # 4. Обчислити арксинус від z arc_sin = cmath.asin(z) print('arc_sin = ', arc_sin) # 5. Обчислити арктангенс від z arc_tan = cmath.atan(z) print('arc_tan = ', arc_tan)
Тестовий приклад
re = 3 im = -4 arc_cos = (0.9368124611557198+2.305509031243477j) arc_sin = (0.6339838656391766-2.305509031243477j) arc_tan = (1.4483069952314644-0.15899719167999918j)
⇑
1.2. Функції cmath.cos(), cmath.sin(), cmath.tan(). Отримати косинус, синус та тангенс аргументу
Функції
cmath.cos(x) cmath.sin(x) cmath.tan(x)
повертають косинус, синус і тангенс аргументу x.
Приклад.
# Функції cos(), sin(), tan() # Підключити модуль cmath import cmath # Створити комплексне число z = 7-8j z = complex(7, -8) # Обчислити косинус, синус, тангенс sin_res = cmath.sin(z) cos_res = cmath.cos(z) tan_res = cmath.tan(z) print('sin_res = ', sin_res) print('cos_res = ', cos_res) print('tan_res = ', tan_res)
Тестовий приклад
sin_res = (979.2248346123021-1123.6753468137035j) cos_res = (1123.675599719735+979.2246142178511j) tan_res = (2.2295633684101687e-07-0.9999999692244822j)
⇑
2. Гіперболічні функції
Модуль cmath містить реалізацію наступних гіперболічних функцій, які оперують комплексними числами:
- cmath.acosh(x) – повертає гіперболічний арккосинус від аргументу x;
- cmath.asinh(x) – повертає гіперболічний арксинус від аргументу x;
- cmath.atanh(x) – повертає гіперболічний арктангенс від аргументу x;
- cmath.cosh(x) – повертає гіперболічний косинус від аргументу x;
- cmath.sinh(x) – повертає гіперболічний синус від аргументу x;
- cmath.tanh(x) – повертає гіперболічний тангенс від аргументу x.
⇑
2.1. Функції cmath.acosh(), cmath.asinh(), cmath.atanh(). Гіперболічний арккосинус, арксинус, арктангенс
Для обчислення гіперболічного арккосинусу від аргументу x використовується функція
cmath.acosh(x)
Для даної функції існує один розріз гілки, що простягається зліва від -1 вздовж дійсної осі до -∞. Цей розріз є неперервний зверху.
Для обчислення гіперболічного арксинусу від аргументу x використовується функція
cmath.asinh(x)
Тут є два розгалуження. Перше розгалуження простягається від 1j вздовж уявної осі до ∞j. Це розгалуження є неперервне справа. Друге розгалуження простягається від -1j вздовж уявної осі до -∞j і є неперервне справа.
Для обчислення гіперболічного арктангенсу від аргументу x використовується функція
cmath.atanh(x)
Тут є два розгалуження. Одне розгалуження розширюється від 1 вздовж дійсної осі до ∞ і є неперервним знизу. Друге розширюється від -1 вздовж дійсної осі до -∞ і є неперервним зверху.
Приклад.
У прикладі реалізовано обчислення гіперболічного арккосинусу, гіперболічного арксинусу та гіперболічного арктангенсу. Також демонструється виведення результату для гіперболічного арккосинусу у зручній формі з точністю 2 знаки після коми.
# Тригонометричні функції acosh(), asinh(), atanh() # 1. Підключити модуль cmath import cmath # 2. Отримати комплексне число з клавіатури re = int(input('re = ')) # дійсна частина im = int(input('im = ')) # уявна частина z = complex(re, im) # 3. Обчислити гіперболічний арккосинус аргументу z # та вивести його з точністю 2 знаки після коми # 3.1. Отримати значення arc_cosh = cmath.acos(z) # 3.2. Сформувати складові комплексного числа re_str = '%.2f' % arc_cosh.real # дійсна частина комплексного числа arc_cosh im_str = '%.2f' % arc_cosh.imag # уявна частина # 3.3. Вивести на екран у зручній формі if arc_cosh.imag>0: print('arc_cosh = ' + re_str + '+' + im_str + 'j') elif arc_cosh.imag==0: print('arc_cosh = ' + re_str) else: print('arc_cosh = ' + re_str + im_str + 'j') # 4. Обчислити та вивести гіперболічний арктангенс arc_tanh = cmath.atanh(z) print('arc_tanh = ', arc_tanh) # 5. Обчислити та вивести гіперболічний арксинус arc_sinh = cmath.asinh(z) print('arc_sinh = ', arc_sinh)
Тестовий приклад
re = 3 im = -4 arc_cosh = 0.94+2.31j arc_tanh = (0.1175009073114339-1.4099210495965755j) arc_sinh = (2.2999140408792695-0.9176168533514787j)
⇑
2.2. Функції cmath.cosh(), cmath.sinh(), cmath.tanh(). Гіперболічний косинус, синус, тангенс
Для обчислення гіперболічного косинусу, синусу та тангенсу відповідно використовуються функції
cmath.cosh(x) cmath.sinh(x) cmath.tanh(x)
Приклад.
# Тригонометричні функції cosh(), sinh(), tanh() # 1. Підключити модуль cmath import cmath # 2. Отримати комплексне число з клавіатури re = int(input('re = ')) # дійсна частина im = int(input('im = ')) # уявна частина z = complex(re, im) # 3. Обчислити гіперболічний косинус аргументу z # та вивести його з точністю 2 знаки після коми # 3.1. Отримати значення cosh = cmath.cosh(z) # 3.2. Сформувати складові комплексного числа re_str = '%.2f' % cosh.real # дійсна частина комплексного числа cosh im_str = '%.2f' % cosh.imag # уявна частина # 3.3. Вивести на екран у зручній формі res_str = re_str if cosh.imag>0: res_str += '+' res_str += im_str + 'j' print('cosh = ' + res_str) # 4. Обчислити та вивести гіперболічний тангенс tanh = cmath.tanh(z) print('tanh = ', tanh) # 5. Обчислити та вивести гіперболічний синус sinh = cmath.sinh(z) print('sinh = ', sinh)
Тестовий приклад
re = 4 im = -3 cosh = -27.03-3.85j tanh = (0.999355987381473+0.0001873462046294784j) sinh = (-27.016813258003932-3.8537380379193773j)
⇑
3. Функції класифікацій
До функцій класифікацій модуля cmath відносяться наступні:
- cmath.isinfinite(x) – визначає, чи дійсна та уявна частина комплексного числа x є скінченими;
- cmath.isinf(x) – визначає, чи дійсна або уявна частини комплексного числа x є нескінченими;
- cmath.isnan(x) – визначає, чи дійсна або уявна частина комплексного числа мають значення Nan;
- cmath.isclose(x) – визначає близькість двох значень між собою.
⇑
3.1. cmath.isfinite(). Скінченість комплексного числа
Функція
cmath.isfinite(x)
повертає True, якщо дійсна та уявна частини комплексного числа є скінченими. У противному випадку функція повертає False.
Приклад.
# Функція isfinite() # 1. Підключити модуль cmath import cmath # 2. Отримати комплексне число з клавіатури re = int(input('re = ')) # дійсна частина im = int(input('im = ')) # уявна частина z = complex(re, im) # 3. Використання функції isfinite() res = cmath.isfinite(z) if res: print('Both parts are finite.') else: print('Both parts are not finite.')
Тестовий приклад
re = 5 im = -2 Both parts are finite.
⇑
3.2. cmath.isinf(). Скінченість складових комплексного числа
Функція
cmath.isinf(x)
повертає True, якщо дійсна (x.real) або уявна (x.imag) частина комплексного числа є нескінченими. У противному випадку, повертається False.
Приклад.
# Функція isinf() # 1. Підключити модуль cmath import cmath # 2. Отримати комплексне число з клавіатури re = int(input('re = ')) # дійсна частина im = int(input('im = ')) # уявна частина z = complex(re, im) # 3. Використання функції isinf() res = cmath.isinf(z) if res: print('Both parts are not finite.') else: print('Both parts are finite.')
Тестовий приклад
re = 5 im = -3 Both parts are finite.
⇑
3.3. cmath.isnan(). Перевірка складових комплексного числа на значення Nan
Функція
cmath.isnan(x)
повертає True, якщо одна з частин (дійсна або уявна) комплексного числа має значення Nan. У противному випадку функція повертає False.
Приклад.
# Функція isnan() # 1. Підключити модуль cmath import cmath # 2. Отримати комплексне число з клавіатури re = int(input('re = ')) # дійсна частина im = int(input('im = ')) # уявна частина z = complex(re, im) # 3. Використання функції isnan() res = cmath.isnan(z) if res: print('One of the parts is equal to the Nan value.') else: print('Both parts are not equal to Nan.')
Тестовий приклад
re = 2 im = -7 Both parts are not equal to Nan.
⇑
3.4. cmath.isclose(). Визначення близькості двох значень між собою
Функція cmath.isclose() дозволяє визначити близькість двох значень між собою на основі заданої точності. Згідно документації Python синтаксис оголошення функції наступний:
cmath.isclose(a, b, rel_tol=1e-09, abs_tol = 0.0)
тут
- a, b – комплексні числа, що порівнюються. Якщо значення близькі (рівні з заданою точністю), то функція повертає True, інакше функція повертає False;
- rel_tol – не обов’язковий параметр, що задає відносну похибку при порівнянні;
- abs_tol – не обов’язковий параметр, який визначає абсолютну похибку між значеннями елементів.
Приклад.
# Функція isclose() # Підключити модуль cmath import cmath # Випадок 1. Два комплексні числа не рівні z1 = complex(2.5, 3.2) # z = 2.5+3.2j z2 = complex(2.5000001, 3.2) # z = 2.5000001+3.2j # Використання функції isclose() res = cmath.isclose(z1, z2) # False if res: print('z1 == z2') else: print('z1 != z2') # Випадок 2. Два комплексні числа рівні z1 = complex(7.2, -1.7) # z1 = 7.2-1.7j z2 = complex(7.2, -1.7) # z2 = 7.2-1.7j # Використання функції isclose() res = cmath.isclose(z1, z2) # True if res: print('z1 == z2') else: print('z1 != z2') # Випадок 3. Два комплексні числа рівні з заданою відносною точністю z1 = complex(3.001, 2.8) z2 = complex(3.0, 2.8) # Використання функції isclose(), вказується відносна точність 0.01 res = cmath.isclose(z1, z2, rel_tol=0.01) # z1 == z2 if res: print('z1 == z2') else: print('z1 != z2') # Випадок 4. Два комплексні числа рівні з заданою абсолютною точністю z1 = complex(1.0001, 5.5) z2 = complex(1.0, 5.5) # Виклик функції isclose(), вказується абсолютна точність 0.001 res = cmath.isclose(z1, z2, abs_tol=0.001) # z1 == z2 if res: print('z1 == z2') else: print('z1 != z2')
Тестовий приклад
z1 != z2 z1 == z2 z1 == z2 z1 == z2
⇑
Споріднені теми
- Комплексні числа. Модуль cmath. Створення комплексного числа. Клас complex. Функції та константи модуля cmath
- Функції перетворення в полярні координати і навпаки. Степеневі та логарифмічні функції
- Представлення чисел різних типів. Базові числові типи. Функції перетворення чисел
⇑