Hướng dẫn what is a domain error in python? - lỗi miền trong python là gì?

Tôi chỉ đang thử nghiệm một ví dụ từ các phương pháp số trong kỹ thuật với Python.

from numpy import zeros, array
from math import sin, log
from newtonRaphson2 import *

def f(x):
    f = zeros(len(x))
    f[0] = sin(x[0]) + x[1]**2 + log(x[2]) - 7.0
    f[1] = 3.0*x[0] + 2.0**x[1] - x[2]**3 + 1.0
    f[2] = x[0] + x[1] + x[2] -5.0
    return f

x = array([1.0, 1.0, 1.0])
print newtonRaphson2(f,x)

Khi tôi chạy nó, nó hiển thị lỗi sau:

File "example NR2method.py", line 8, in f
    f[0] = sin(x[0]) + x[1]**2 + log(x[2]) - 7.0
ValueError: math domain error

Tôi đã thu hẹp nó xuống nhật ký như khi tôi xóa nhật ký và thêm một chức năng khác, nó hoạt động. Tôi cho rằng đó là do một số loại can thiệp vào cơ sở, tôi không thể tìm ra cách. Bất cứ ai có thể đề xuất một giải pháp?

Bạn có thể gặp phải một

ValueError: math domain error
0 đặc biệt khi làm việc với mô -đun Python từ
ValueError: math domain error
1.

ValueError: math domain error

Python nêu ra lỗi này khi bạn cố gắng làm điều gì đó không thể toán học hoặc được định nghĩa về mặt toán học.

Để hiểu lỗi này, hãy xem định nghĩa của miền:domain:

Phần mềm của một hàm là tập hợp các giá trị có thể có của biến độc lập. Nói một cách đại khái, miền là tập hợp tất cả các giá trị x (đầu vào) có thể dẫn đến giá trị y hợp lệ (đầu ra). (nguồn)domain of a function is the complete set of possible values of the independent variable. Roughly speaking, the domain is the set of all possible (input) x-values which result in a valid (output) y-value.” (source)

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: math domain error
2, bạn đã chuyển một đầu vào không xác định vào hàm
ValueError: math domain error
1. Khắc phục lỗi bằng cách chuyển một đầu vào hợp lệ mà hàm có thể tính toán đầu ra số.

Đây là vài ví dụ:

Lỗi miền toán học xuất hiện nếu bạn chuyển một đối số tiêu cực vào hàm

ValueError: math domain error
4. 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. Python không nhận được điều đó và ném một
ValueError: math domain error
2.

Hướng dẫn what is a domain error in python? - lỗi miền trong python là gì?

Ở đây, một ví dụ tối thiểu:

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
'''

Bạn có thể sửa lỗi miền Math bằng cách sử dụng gói

ValueError: math domain error
6 cho phép tạo các số phức:

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

Nhật ký lỗi miền toán học Python

ValueError: math domain error
7 cho hàm
ValueError: math domain error
8 xuất hiện nếu bạn chuyển giá trị bằng không vào nó, logarit không được xác định cho giá trị 0.

Hướng dẫn what is a domain error in python? - lỗi miền trong python là gì?

Ở đây, mã trên giá trị đầu vào bên ngoài miền của hàm logarit:

from math import log
print(log(0))

Đầu ra là lỗi miền toán học:

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

Bạn có thể sửa lỗi này bằng cách chuyển giá trị đầu vào hợp lệ vào hàm

ValueError: math domain error
8:

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

Lỗi này đôi khi có thể xuất hiện nếu bạn chuyển một số rất nhỏ vào nó, kiểu nổi của Py Python không thể diễn đạt tất cả các số. Để vượt qua một giá trị gần với 0, hãy sử dụng mô -đun

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
'''
0 với độ chính xác cao hơn hoặc chuyển một đối số đầu vào rất nhỏ, chẳng hạn như:

math.log(sys.float_info.min)

ACOS Lỗi miền Math Python

ValueError: math domain error
7 cho hàm
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
'''
2 xuất hiện nếu bạn chuyển một giá trị vào nó mà nó không được xác định là các arccos chỉ được xác định cho các giá trị giữa -1 và 1.

Hướng dẫn what is a domain error in python? - lỗi miền trong python là gì?

Đây là mã sai:

import math
print(math.acos(2))

Đầu ra là lỗi miền toán học:

File "example NR2method.py", line 8, in f
    f[0] = sin(x[0]) + x[1]**2 + log(x[2]) - 7.0
ValueError: math domain error
0

Bạn có thể sửa lỗi này bằng cách chuyển giá trị đầu vào hợp lệ vào hàm

ValueError: math domain error
8:

File "example NR2method.py", line 8, in f
    f[0] = sin(x[0]) + x[1]**2 + log(x[2]) - 7.0
ValueError: math domain error
1

Lỗi này đôi khi có thể xuất hiện nếu bạn chuyển một số rất nhỏ vào nó, kiểu nổi của Py Python không thể diễn đạt tất cả các số. Để vượt qua một giá trị gần với 0, hãy sử dụng mô -đun 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 '''0 với độ chính xác cao hơn hoặc chuyển một đối số đầu vào rất nhỏ, chẳng hạn như:

ACOS Lỗi miền Math Python

Hướng dẫn what is a domain error in python? - lỗi miền trong python là gì?

ValueError: math domain error
7 cho hàm
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
'''
2 xuất hiện nếu bạn chuyển một giá trị vào nó mà nó không được xác định là các arccos chỉ được xác định cho các giá trị giữa -1 và 1.

File "example NR2method.py", line 8, in f
    f[0] = sin(x[0]) + x[1]**2 + log(x[2]) - 7.0
ValueError: math domain error
2

Đầu ra là lỗi miền toán học:

File "example NR2method.py", line 8, in f
    f[0] = sin(x[0]) + x[1]**2 + log(x[2]) - 7.0
ValueError: math domain error
3

Bạn có thể sửa lỗi này bằng cách chuyển giá trị đầu vào hợp lệ vào hàm

ValueError: math domain error
8:

File "example NR2method.py", line 8, in f
    f[0] = sin(x[0]) + x[1]**2 + log(x[2]) - 7.0
ValueError: math domain error
4

Lỗi này đôi khi có thể xuất hiện nếu bạn chuyển một số rất nhỏ vào nó, kiểu nổi của Py Python không thể diễn đạt tất cả các số. Để vượt qua một giá trị gần với 0, hãy sử dụng mô -đun 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 '''0 với độ chính xác cao hơn hoặc chuyển một đối số đầu vào rất nhỏ, chẳng hạn như:

ACOS Lỗi miền Math Python

File "example NR2method.py", line 8, in f
    f[0] = sin(x[0]) + x[1]**2 + log(x[2]) - 7.0
ValueError: math domain error
5

Đầu ra là lỗi miền toán học:

File "example NR2method.py", line 8, in f
    f[0] = sin(x[0]) + x[1]**2 + log(x[2]) - 7.0
ValueError: math domain error
6

Bạn có thể sửa lỗi này bằng cách chuyển giá trị đầu vào hợp lệ vào hàm

ValueError: math domain error
8:

File "example NR2method.py", line 8, in f
    f[0] = sin(x[0]) + x[1]**2 + log(x[2]) - 7.0
ValueError: math domain error
7

Lỗi này đôi khi có thể xuất hiện nếu bạn chuyển một số rất nhỏ vào nó, kiểu nổi của Py Python không thể diễn đạt tất cả các số. Để vượt qua một giá trị gần với 0, hãy sử dụng mô -đun

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
'''
0 với độ chính xác cao hơn hoặc chuyển một đối số đầu vào rất nhỏ, chẳng hạn như:

ACOS Lỗi miền Math Python

ValueError: math domain error
7 cho hàm
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
'''
2 xuất hiện nếu bạn chuyển một giá trị vào nó mà nó không được xác định là các arccos chỉ được xác định cho các giá trị giữa -1 và 1.
Hướng dẫn what is a domain error in python? - lỗi miền trong python là gì?

This is the graph of

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
'''
9. Don’t worry if you don’t understand the code, what’s more important is the following point. You can see that log(x) tends to negative infinity as x tends to 0. Thus, it is mathematically meaningless to calculate the log of a negative number. If you try to do so, Python raises a math domain error.

File "example NR2method.py", line 8, in f
    f[0] = sin(x[0]) + x[1]**2 + log(x[2]) - 7.0
ValueError: math domain error
9

Đây là mã sai:

Bạn có thể sửa lỗi này bằng cách chuyển giá trị đầu vào hợp lệ giữa [-1,1] vào hàm

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
'''
2:

Lỗi tên miền Python Math

ValueError: math domain error
7 cho hàm
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
'''
5 xuất hiện nếu bạn chuyển một giá trị vào nó mà nó không được xác định là arcsin chỉ được xác định cho các giá trị giữa -1 và 1.

Bạn xây dựng các kỹ năng mã hóa có giá trị cao bằng cách làm việc trên các dự án mã hóa thực tế!

Bạn có muốn ngừng học hỏi với các dự án đồ chơi và tập trung vào các dự án mã thực tế kiếm tiền cho bạn và giải quyết các vấn đề thực sự cho mọi người?

Nếu câu trả lời của bạn là có !, Hãy xem xét việc trở thành một nhà phát triển tự do Python! Đó là cách tốt nhất để tiếp cận nhiệm vụ cải thiện các kỹ năng trăn của bạn, ngay cả khi bạn là người mới bắt đầu hoàn toàn.YES!, consider becoming a Python freelance developer! It’s the best way of approaching the task of improving your Python skills—even if you are a complete beginner.

Nếu bạn chỉ muốn tìm hiểu về cơ hội làm việc tự do, vui lòng xem hội thảo trên web miễn phí của tôi Làm thế nào để xây dựng kỹ năng thu nhập cao của bạn Python và tìm hiểu cách tôi phát triển kinh doanh mã hóa của mình trực tuyến và làm thế nào bạn có thể, từ sự thoải mái của bạn riêng nhà.

Tham gia hội thảo trên web miễn phí ngay bây giờ!

Hướng dẫn what is a domain error in python? - lỗi miền trong python là gì?

Trong khi làm việc như một nhà nghiên cứu trong các hệ thống phân tán, Tiến sĩ Christian Mayer đã tìm thấy tình yêu của mình đối với việc dạy các sinh viên khoa học máy tính.

Để giúp học sinh đạt được thành công cao hơn của Python, ông đã thành lập trang web giáo dục chương trình Finxter.com. Ông là tác giả của cuốn sách lập trình phổ biến Python Oneer (Nostarch 2020), đồng tác giả của loạt sách Break Break Python, những cuốn sách tự xuất bản, người đam mê khoa học máy tính, freelancer và chủ sở hữu của một trong 10 blog Python lớn nhất trên toàn thế giới.

Niềm đam mê của ông là viết, đọc và mã hóa. Nhưng niềm đam mê lớn nhất của anh là phục vụ các lập trình viên đầy tham vọng thông qua Finxter và giúp họ tăng cường các kỹ năng của họ. Bạn có thể tham gia học viện email miễn phí của anh ấy ở đây.

Làm cách nào để sửa lỗi miền trong Python?

Có một vài cách để khắc phục lỗi miền.Một cách là chỉ cần tránh sử dụng chức năng bên ngoài miền của nó.Một cách khác là sử dụng một chức năng khác được xác định cho đầu vào bạn đang sử dụng.Cuối cùng, đôi khi bạn có thể chuyển đổi đầu vào để nó nằm trong miền của hàm gốc.avoid using the function outside of its domain. Another way is to use a different function that is defined for the input you are using. Finally, you can sometimes transform the input so that it is within the domain of the original function.

Lỗi miền là gì?

Các lỗi miền xảy ra khi các biểu thức số không được xác định về mặt toán học hoặc không thể được biểu diễn bằng số trên máy tính vì những lý do khác ngoài việc thiếu dữ liệu.Hai ví dụ phổ biến là phân chia theo 0 và căn bậc hai của một số âm.when numeric expressions are mathematically undefined or cannot be represented numerically on the computer for reasons other than missing data. Two common examples are division by 0 and the square root of a negative number.

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

Nghị quyết.Để 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.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.

Lỗi miền SQRT là gì?

Các lỗi miền xảy ra khi các tham số cho các hàm không hợp lệ, chẳng hạn như số âm dưới dạng tham số cho SQRT (hàm gốc căn bậc hai).when the parameters to the functions are invalid, such as a negative number as a parameter to sqrt (the square root function).