Рубрики
Без рубрики

Ошибка домена математики Python (как исправить эту глупую ошибку)

Вы можете столкнуться с специальной ValueError при работе с математическим модулем Python. ValueError: Ошибка Math Domain Python поднимает эту ошибку, когда вы пытаетесь сделать что-то, что не является математически возможным или математически определенным. Чтобы понять эту ошибку, посмотрите на определение домена: «Домен функции является полной … ошибка домена Python Math (как исправить эту глупую ошибку) Подробнее»

Автор оригинала: Chris.

Вы можете столкнуться с специальными ValueError При работе с Python’s Математический модуль Отказ

ValueError: math domain error

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

Чтобы понять эту ошибку, посмотрите на определение домен :

« Домен функции – это полный набор возможных значений независимой переменной. Грубо говоря, домен это набор всех возможных (входных) X-значений, который приводит к действительному (выводу) Y-значению. ” ( Источник )

Домен функции – это набор всех возможных входных значений. Если Python бросает ValueError: Ошибка математического домена Вы пропустили неопределенный ввод в Математика функция. Исправьте ошибку, передавая действительный вход, для которого функция может рассчитать числовой выход.

Вот несколько примеров:

Ошибка домена математики Python SQRT

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

Вот минимальный пример:

from math import sqrt
print(sqrt(-1))
'''
Traceback (most recent call last):
  File "C:\Users\xcent\Desktop\Finxter\Blog\code.py", line 2, in 
    print(sqrt(-1))
ValueError: math domain error
'''

Вы можете исправить ошибку математической домена, используя CMATH Пакет, который позволяет создавать комплексные числа:

from cmath import sqrt
print(sqrt(-1))
# 1j

Журнал ошибки домена Python Math

Ошибка математической домена для math.log () Появится функция, если вы проходите нулевое значение в него – логарифм не определен для значения 0.

Вот код на входном значении за пределами домена функции логарифма:

from math import log
print(log(0))

Выходной выход – это ошибка домена математики:

Traceback (most recent call last):
  File "C:\Users\xcent\Desktop\Finxter\Blog\code.py", line 3, in 
    print(log(0))
ValueError: math domain error

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

from math import log
print(log(0.000001))
# -13.815510557964274

Эта ошибка иногда может появиться, если вы пройдете очень небольшое число в IT-Python, который не может выразить все номера. Чтобы пройти значение «Близки к 0», используйте Десятичная Модуль с более высокой точностью или пройти очень маленький входной аргумент, такой как:

math.log(sys.float_info.min)

Ошибка ошибки домена математики Python ACOS

Ошибка математической домена для math.acos () Появится функция, если вы передаете значение для него, для которого он не определен-ARCCO, определяется только значениями между -1 и 1.

Вот неверный код:

import math
print(math.acos(2))

Выходной выход – это ошибка домена математики:

Traceback (most recent call last):
  File "C:\Users\xcent\Desktop\Finxter\Blog\code.py", line 3, in 
    print(math.acos(2))
ValueError: math domain error

Вы можете исправить эту ошибку, передавая действительное входное значение между [-1,1] в math.acos () Функция:

import math
print(math.acos(0.5))
# 1.0471975511965979

Ошибка домена Math Python Asin

Ошибка математической домена для math.asin () Функция появляется, если вы передаете значение в него, для которого он не определен – Arcsin определяется только значениями между -1 и 1.

Вот ошибочный код:

import math
print(math.asin(2))

Выходной выход – это ошибка домена математики:

Traceback (most recent call last):
  File "C:\Users\xcent\Desktop\Finxter\Blog\code.py", line 3, in 
    print(math.asin(2))
ValueError: math domain error

Вы можете исправить эту ошибку, передавая действительное входное значение между [-1,1] в math.asin () Функция:

import math
print(math.asin(0.5))
# 0.5235987755982989

Ошибка ошибки домена Python Math POW POW

Ошибка математической домена для math.pow (a, b) Функция для расчета A ** B, по-видимому, если вы передаете негативное базовое значение, и попытайтесь вычислить негативную мощность. Причина этого не определена, состоит в том, что любое отрицательное число к мощности 0,5 будет квадратным числом – и, таким образом, комплексное число. Но комплексные числа не определены по умолчанию в Python!

import math
print(math.pow(-2, 0.5))

Выходной выход – это ошибка домена математики:

Traceback (most recent call last):
  File "C:\Users\xcent\Desktop\Finxter\Blog\code.py", line 3, in 
    print(math.pow(-2, 0.5))
ValueError: math domain error

Если вам нужен комплекс номер, A B должен быть переписан в E B ln a Отказ Например:

import cmath
print(cmath.exp(0.5 * cmath.log(-2)))
# (8.659560562354932e-17+1.414213562373095j)

Видите ли, это сложный номер!

Ошибка numpy математический домен – np.log (x)

import numpy as np
import matplotlib.pyplot as plt

# Plotting y = log(x)
fig, ax = plt.subplots()
ax.set(xlim=(-5, 20), ylim=(-4, 4), title='log(x)', ylabel='y', xlabel='x')
x = np.linspace(-10, 20, num=1000)
y = np.log(x)

plt.plot(x, y)

Это график log (x) . Не волнуйтесь, если вы не понимаете код, что важнее, является следующим точком. Вы можете видеть, что журнал (X) имеет тенденцию к отрицательной бесконечности, когда X имеет тенденцию к 0. Таким образом, математически бессмысленно рассчитать журнал отрицательного числа. Если вы попытаетесь сделать это, Python поднимает ошибку математической домена.

>>> math.log(-10)
Traceback (most recent call last):
  File "", line 1, in 
ValueError: math domain error

Куда пойти отсюда?

Достаточно теории, давайте познакомимся!

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

Практические проекты – это то, как вы обостряете вашу пилу в кодировке!

Вы хотите стать мастером кода, сосредоточившись на практических кодовых проектах, которые фактически зарабатывают вам деньги и решают проблемы для людей?

Затем станьте питоном независимым разработчиком! Это лучший способ приближения к задаче улучшения ваших навыков Python – даже если вы являетесь полным новичком.

Присоединяйтесь к моему бесплатным вебинаре «Как создать свой навык высокого дохода Python» и посмотреть, как я вырос на моем кодированном бизнесе в Интернете и как вы можете, слишком от комфорта вашего собственного дома.

Присоединяйтесь к свободному вебинару сейчас!

Работая в качестве исследователя в распределенных системах, доктор Кристиан Майер нашел свою любовь к учению студентов компьютерных наук.

Чтобы помочь студентам достичь более высоких уровней успеха Python, он основал сайт программирования образования Finxter.com Отказ Он автор популярной книги программирования Python одноклассники (Nostarch 2020), Coauthor of Кофе-брейк Python Серия самооставленных книг, энтузиаста компьютерных наук, Фрилансера и владелец одного из лучших 10 крупнейших Питон блоги по всему миру.

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

Оригинал: “https://blog.finxter.com/python-math-domain-error/”