Hướng dẫn math domain error python log - nhật ký python lỗi miền toán học

27

Mới! Lưu câu hỏi hoặc câu trả lời và sắp xếp nội dung yêu thích của bạn. Tìm hiểu thêm.
Learn more.

Tôi phải sử dụng hàm Python math.log[x] với các giá trị của x từ [0, ..., 1]. Đôi khi X có thể quá gần bằng không và Python cho tôi một lỗi:x from [0, ..., 1]. Sometimes x may be too close to zero, and Python gives me an error:

ValueError: lỗi miền toán học

Làm thế nào tôi có thể biết, miền định nghĩa của hàm

>>> math.log[sys.float_info.min * sys.float_info.epsilon]
-744.4400719213812
0 là gì?

Hỏi ngày 30 tháng 9 năm 2013 lúc 13:41Sep 30, 2013 at 13:41

1

Miễn là đầu vào của bạn nằm trong khoảng thời gian nửa mở [0, 1] [không bao gồm 0], bạn vẫn ổn. Bạn không thể quá gần với số 0:

>>> math.log[sys.float_info.min]
-708.3964185322641

Vì vậy, chỉ cần kiểm tra chính xác bằng không [có thể là kết quả của một dòng chảy] là đủ, hoặc thay vào đó, hãy nắm bắt ngoại lệ và xử lý nó.

Chỉnh sửa: Điều này cũng giữ cho số điểm nổi tối thiểu không bình thường:: This also holds for the denormal minimum floating point number:

>>> math.log[sys.float_info.min * sys.float_info.epsilon]
-744.4400719213812

Đã trả lời ngày 30 tháng 9 năm 2013 lúc 13:51Sep 30, 2013 at 13:51

Sven Marnachsven MarnachSven Marnach

545K114 Huy hiệu vàng915 Huy hiệu bạc817 Huy hiệu đồng114 gold badges915 silver badges817 bronze badges

3

Bạn đang đi qua độ chính xác được hỗ trợ, sử dụng lớp thập phân thay thế.

>>> from math import log
>>> from decimal import Decimal

>>> d = Decimal['1E-1024']
>>> log[d]
Traceback [most recent call last]:
File "", line 1, in 
ValueError: math domain error
>>> d.ln[]
Decimal['-2357.847135225902780434423250']

Đã trả lời ngày 30 tháng 9 năm 2013 lúc 13:50Sep 30, 2013 at 13:50

ismailismailismail

44,4K8 Huy hiệu vàng84 Huy hiệu bạc95 Huy hiệu Đồng8 gold badges84 silver badges95 bronze badges

Miền của hàm là tập hợp tất cả các giá trị đầu vào có thể. Nếu Python ném ValueError: Lỗi miền toán học, bạn đã chuyển một đầu vào không xác định vào hàm toán học. Trong trường hợp của chúng tôi, không tính toán nhật ký của số âm hoặc bằng không và nó sẽ giải quyết lỗi.ValueError: math domain error. Python raises this error when you try to do something that is not mathematically possible or mathematically defined.

Làm thế nào để bạn giải quyết lỗi miền?The math domain error occurs when you’ve passed an undefined input into the math function. For example, you are doing a log of a number less than or equal to zero. That’s mathematically undefined, so Python’s log function raises an exception.

from math import log

print[log[-1]]

Đầu ra

Traceback [most recent call last]:
  File "/Users/krunal/Desktop/code/pyt/database/app.py", line 3, in 
    print[log[-1]]
ValueError: math domain error

Căn bậc hai của một số âm không thể toán học. Đó là lý do tại sao nó ném một lỗi.ValueError: math domain error.

Python POW: Lỗi miền Math

Lỗi miền toán học cho hàm Math.pow [a, b] để tính toán a ** b phát sinh nếu bạn truyền giá trị cơ sở âm vào nó và cố gắng tính toán sức mạnh âm.

Và chúng tôi nhận được giá trịerror.

Miền của hàm là tập hợp tất cả các giá trị đầu vào có thể. Nếu Python ném ra giá trị horror: Lỗi miền toán học, bạn đã chuyển một đầu vào không xác định vào hàm toán học.

Trong trường hợp của chúng tôi, don lồng tính nhật ký của một số âm hoặc bằng không và nó sẽ giải quyết lỗi.

Có nhiều kịch bản khác nhau trong đó lỗi này có thể xảy ra. Hãy cùng xem một số trong số họ từng người một.

Python Sqrt: Lỗi miền toán học

Để tính toán căn bậc hai của một số trong python, hãy sử dụng phương thức math.sqrt [].

Lỗi miền toán học xuất hiện nếu bạn chuyển một đối số âm vào hàm math.sqrt [].

Về mặt toán học, không thể tính toán căn bậc hai của số âm mà không sử dụng các số phức.

from math import sqrt

print[sqrt[-1]]

Đầu ra

Traceback [most recent call last]:
  File "/Users/krunal/Desktop/code/pyt/database/app.py", line 3, in 
    print[sqrt[-1]]
ValueError: math domain error

Căn bậc hai của một số âm không thể toán học. Đó là lý do tại sao nó ném một lỗi.

Python POW: Lỗi miền Math

Lỗi miền toán học cho hàm Math.pow [a, b] để tính toán a ** b phát sinh nếu bạn truyền giá trị cơ sở âm vào nó và cố gắng tính toán sức mạnh âm.

from math import pow

print[pow[-1, 0.5]]

Đầu ra

Traceback [most recent call last]:
  File "/Users/krunal/Desktop/code/pyt/database/app.py", line 3, in 
    print[pow[-1, 0.5]]
ValueError: math domain error

Và chúng tôi nhận được giá trịerror.

Đó là nó cho hướng dẫn này.

Xem thêm

Chỉ số chuỗi phải là số nguyên trong Python

Python mong đợi một lỗi khối thụt

Python không thể nhập tên

Trả lại chức năng bên ngoài Python

Python valueError

Lỗi miền toán học trong Python là gì?

Lỗi miền toán học trong Python có nghĩa là các giá trị đầu vào cho một hàm không nằm trong miền của hàm. Ví dụ: miền của hàm f [x] = x2 là tập hợp tất cả các số thực, vì vậy nếu chúng ta cố gắng nhập một số phức vào hàm, chúng ta sẽ gặp lỗi miền toán học.the input values to a function are not in the function's domain. For example, the domain of the function f[x] = x2 is the set of all real numbers, so if we try to input a complex number into the function, we will get a math domain error.

Làm cách nào để loại bỏ một lỗi miền toán học trong Python?

ValueError: Lỗi miền toán học được nêu ra khi bạn thực hiện hàm toán học trên số âm hoặc 0 không thể tính được.Để giải quyết lỗi này, hãy đảm bảo bạn đang sử dụng một số hợp lệ cho hàm toán học bạn đang sử dụng.make sure you are using a valid number for the mathematical function you are using.

Làm cách nào để khắc phục giá trị lỗi miền trong toán học?

Miền của hàm là tập hợp tất cả các giá trị đầu vào có thể.Nếu Python ném ValueError: Lỗi miền toán học, bạn đã chuyển một đầu vào không xác định vào hàm toán học.Trong trường hợp của chúng tôi, không tính toán nhật ký của số âm hoặc bằng không và nó sẽ giải quyết lỗi.don't calculate the log of a negative number or zero, and it will resolve the error.

Làm thế nào để bạn giải quyết lỗi miền?

Để giải quyết vấn đề này, hãy xóa máy tính khỏi miền và sau đó kết nối máy tính với miền.Sử dụng tài khoản quản trị viên cục bộ để đăng nhập vào máy tính.Chọn Bắt đầu, nhấn và giữ máy tính [hoặc nhấp chuột phải> Thuộc tính.Chọn Thay đổi cài đặt bên cạnh tên máy tính.remove the computer from the domain, and then connect the computer to the domain. Use a local administrator account to log on to the computer. Select Start, press and hold [or right-click] Computer > Properties. Select Change settings next to the computer name.

Chủ Đề