Hướng dẫn how to add complex numbers in python - cách thêm số phức trong python
Xem thảo luận Show
Cải thiện bài viết Lưu bài viết Xem thảo luận Cải thiện bài viết Lưu bài viết Đọc Input: 2+3i, 4+5i Output: Addition is : 6+8i Input: 2+3i, 1+2i Output: Addition is : 3+5i Bàn luận Python3Cho hai số phức Z1 và Z2. Nhiệm vụ là thêm và trừ đi các số phức đã cho. Đứng trước số phức: Trong Python, các số phức có thể được thêm vào bằng cách sử dụng toán tử.Examples: & nbsp; & nbsp; & nbsp; ví dụ: 7 8 9 0 1 2 3Addition is : (3+5j)10 Addition is : (3+5j)11 Addition is : (3+5j)12 Addition is : (3+5j)13
Addition is : (3+5j) Is O(1) Đầu ra: & nbsp;O(1) Độ phức tạp về thời gian: O (1) Complex numbers in Python can be subtracted using – operator. Input: 2+3i, 4+5i Output: Subtraction is : -2-2i Input: 2+3i, 1+2i Output: Subtraction is : 1+1i Không gian phụ trợ: O (1) Python3Phép trừ các số phức: Số phức trong Python có thể được trừ bằng cách sử dụng - toán tử.example: & nbsp; & nbsp; Ví dụ: & nbsp; 7 Addition is : (3+5j)15 9 0 1 2 3Addition is : (3+5j)10 Addition is : (3+5j)11 Addition is : (3+5j)39 Addition is : (3+5j)40 Output: Subtraction is : (1+1j) IsO(1) Đầu ra: & nbsp;O(1) Một số phức được đại diện bởi A + BI hoặc A + BJ. Python sử dụng ký hiệu A+BJ để biểu diễn số phức. Python uses a+bj notation for representing complex number. Ngôn ngữ lập trình Python chuyển đổi các số thực A và B thành phức tạp bằng cách sử dụng hàm Trong Python, chúng ta có thể đặt số phức bằng Addition is : (3+5j)42. Sau khi cài đặt như thế này, chúng ta có thể truy cập một phần thực của A có thể thu được bằng cách sử dụng Addition is : (3+5j)43 và phần tưởng tượng của A có thể thu được bằng cách sử dụng Addition is : (3+5j)44. Ví dụ >>> a=3+4j >>> a.real 3.0 >>> a.imag 4.0 >>> complex(1,2) (1+2j) Python xử lý các hoạt động đơn giản như bổ sung, trừ, nhân và chia trực tiếp. Đối với hoạt động nâng cao hơn trên các số phức, bạn có thể sử dụng thư viện Addition is : (3+5j)45. Chương trình Python này thêm hai số phức được đưa ra bởi người dùng và hiển thị đầu ra.Bổ sung hai số phức tạp trong Python
Đầu ra của chương trình trên Enter first complex number: 2+3j Enter first complex number: 4+6j SUM = (6+9j) Hầu hết các ngôn ngữ lập trình đa năng không có hỗ trợ hoặc hỗ trợ hạn chế cho các số phức. Các tùy chọn điển hình của bạn là học một số công cụ chuyên dụng như MATLAB hoặc tìm thư viện của bên thứ ba. Python là một ngoại lệ hiếm hoi vì nó đi kèm với những con số phức tạp được tích hợp.complex numbers. Your typical options are learning some specialized tool like MATLAB or finding a third-party library. Python is a rare exception because it comes with complex numbers built in. Mặc dù tên, những con số phức tạp không phải là phức tạp! Họ thuận tiện trong việc giải quyết các vấn đề thực tế mà bạn sẽ nhận được một hương vị trong hướng dẫn này. Youllll khám phá đồ họa vector và phân tích tần số âm thanh, nhưng các số phức tạp cũng có thể giúp vẽ các fractals, chẳng hạn như bộ Mandelbrot.vector graphics and sound frequency analysis, but complex numbers can also help in drawing fractals, such as the Mandelbrot set. Trong hướng dẫn này, bạn sẽ học cách:
Nếu bạn cần một sự bồi dưỡng nhanh hoặc giới thiệu nhẹ nhàng về lý thuyết về các số phức tạp, thì bạn có thể xem loạt video Khan Academy. Để tải xuống mã mẫu được sử dụng trong suốt hướng dẫn này, nhấp vào liên kết bên dưới: Tạo các số phức tạp trong PythonTạo và thao tác các số phức trong Python không khác nhiều so với các loại dữ liệu tích hợp khác, đặc biệt là các loại số. Nó có thể vì ngôn ngữ coi họ là công dân hạng nhất. Điều này có nghĩa là bạn có thể thể hiện các công thức toán học liên quan đến các số phức tạp với rất ít chi phí. Python cho phép bạn sử dụng các số phức tạp trong các biểu thức số học và các hàm gọi trên chúng giống như bạn làm với các số khác trong Python. Nó dẫn đến cú pháp thanh lịch đọc gần giống như một cuốn sách giáo khoa toán học. Số phức theo nghĩa đenCách nhanh nhất để xác định một số phức trong Python là bằng cách nhập trực tiếp theo nghĩa đen của nó vào mã nguồn: Mặc dù điều này trông giống như một công thức đại số, biểu thức ở bên phải của dấu bằng đã là một giá trị cố định không cần đánh giá thêm. Khi bạn kiểm tra loại của nó, bạn sẽ xác nhận rằng nó thực sự là một số phức tạp: >>>
Làm thế nào khác với việc thêm hai số với toán tử cộng? Một giveaway rõ ràng là chữ Addition is : (3+5j)47 dán vào số thứ hai, điều này thay đổi hoàn toàn ý nghĩa của biểu thức. Nếu bạn xóa chữ cái, thay vào đó, bạn sẽ nhận được kết quả số nguyên quen thuộc: thay vào đó: >>>
Làm thế nào khác với việc thêm hai số với toán tử cộng? Một giveaway rõ ràng là chữ Addition is : (3+5j)47 dán vào số thứ hai, điều này thay đổi hoàn toàn ý nghĩa của biểu thức. Nếu bạn xóa chữ cái, thay vào đó, bạn sẽ nhận được kết quả số nguyên quen thuộc: thay vào đó: >>>
Làm thế nào khác với việc thêm hai số với toán tử cộng? Một giveaway rõ ràng là chữ Addition is : (3+5j)47 dán vào số thứ hai, điều này thay đổi hoàn toàn ý nghĩa của biểu thức. Nếu bạn xóa chữ cái, thay vào đó, bạn sẽ nhận được kết quả số nguyên quen thuộc: thay vào đó:standard form, the algebraic form, or sometimes the canonical form, of a complex number. In Python, you can use either lowercase Addition is : (3+5j)47 or uppercase Addition is : (3+5j)49 in those literals. Nhân tiện, bạn cũng có thể sử dụng các số điểm nổi để tạo các số phức tạp: Các chữ số phức tạp trong Python bắt chước ký hiệu toán học, còn được gọi là dạng tiêu chuẩn, dạng đại số hoặc đôi khi là dạng chính tắc, của một số phức. Trong Python, bạn có thể sử dụng chữ thường Addition is : (3+5j)47 hoặc chữ hoa Addition is : (3+5j)49 trong các nghĩa đen đó.imaginary unit. You might feel a slight discomfort with Python’s convention if you have a mathematical background. However, there are a few reasons that can justify Python’s controversial choice:
Trong tính toán, chữ Addition is : (3+5j)50 thường được sử dụng cho biến lập chỉ mục trong các vòng lặp.
Điều này đã được đưa lên trên trình theo dõi lỗi Python, hơn một thập kỷ trước, và người tạo ra Python, chính Guido Van Rossum, đã đóng vấn đề này với nhận xét này: Điều này sẽ không được sửa chữa. Đối với một điều, chữ cái ‘I, hoặc trường hợp trên Tôi trông quá giống như các chữ số. Cách các số được phân tích cú pháp bởi trình phân tích cú pháp ngôn ngữ (trong mã nguồn) hoặc theo các hàm tích hợp (int, float, phức tạp) không nên được định hình hoặc có thể định cấu hình theo bất kỳ cách nào; Điều đó yêu cầu những thất vọng lớn xuống đường. Nếu bạn muốn phân tích các số phức tạp bằng cách sử dụng ‘I, thay vì‘ J, bạn đã có sẵn rất nhiều giải pháp. (Nguồn) >>> Addition is : (3+5j)0 Làm thế nào khác với việc thêm hai số với toán tử cộng? Một giveaway rõ ràng là chữ Addition is : (3+5j)47 dán vào số thứ hai, điều này thay đổi hoàn toàn ý nghĩa của biểu thức. Nếu bạn xóa chữ cái, thay vào đó, bạn sẽ nhận được kết quả số nguyên quen thuộc: thay vào đó: >>> Addition is : (3+5j)1 Làm thế nào khác với việc thêm hai số với toán tử cộng? Một giveaway rõ ràng là chữ Addition is : (3+5j)47 dán vào số thứ hai, điều này thay đổi hoàn toàn ý nghĩa của biểu thức. Nếu bạn xóa chữ cái, thay vào đó, bạn sẽ nhận được kết quả số nguyên quen thuộc: thay vào đó: >>> Addition is : (3+5j)2 Mặt khác, việc thêm chữ cái Addition is : (3+5j)47 vào một chữ số sẽ ngay lập tức biến nó thành một số phức: >>> Addition is : (3+5j)3 Nói đúng ra, từ quan điểm toán học, bạn đã tạo ra một số tưởng tượng thuần túy, nhưng Python có thể đại diện cho nó như một loại dữ liệu độc lập. Do đó, không có phần khác, nó chỉ là một số phức.imaginary number, but Python can’t represent it as a stand-alone data type. Therefore, without the other part, it’s just a complex number . Làm thế nào về điều ngược lại? Để tạo một số phức mà không có phần tưởng tượng, bạn có thể tận dụng 0 và thêm hoặc trừ nó như vậy: >>> Addition is : (3+5j)4 Nói đúng ra, từ quan điểm toán học, bạn đã tạo ra một số tưởng tượng thuần túy, nhưng Python có thể đại diện cho nó như một loại dữ liệu độc lập. Do đó, không có phần khác, nó chỉ là một số phức. >>> Addition is : (3+5j)5 Nói đúng ra, từ quan điểm toán học, bạn đã tạo ra một số tưởng tượng thuần túy, nhưng Python có thể đại diện cho nó như một loại dữ liệu độc lập. Do đó, không có phần khác, nó chỉ là một số phức. Làm thế nào về điều ngược lại? Để tạo một số phức mà không có phần tưởng tượng, bạn có thể tận dụng 0 và thêm hoặc trừ nó như vậy: Trong thực tế, cả hai phần của số phức luôn luôn ở đó. Khi bạn không thấy một, điều đó có nghĩa là nó có giá trị bằng không. Hãy để kiểm tra những gì xảy ra khi bạn thử nhét nhiều thuật ngữ vào tổng hơn trước: >>> Addition is : (3+5j)6 Nói đúng ra, từ quan điểm toán học, bạn đã tạo ra một số tưởng tượng thuần túy, nhưng Python có thể đại diện cho nó như một loại dữ liệu độc lập. Do đó, không có phần khác, nó chỉ là một số phức. Làm thế nào về điều ngược lại? Để tạo một số phức mà không có phần tưởng tượng, bạn có thể tận dụng 0 và thêm hoặc trừ nó như vậy:Trong thực tế, cả hai phần của số phức luôn luôn ở đó. Khi bạn không thấy một, điều đó có nghĩa là nó có giá trị bằng không. Hãy để kiểm tra những gì xảy ra khi bạn thử nhét nhiều thuật ngữ vào tổng hơn trước: Lần này, biểu hiện của bạn không còn là một nghĩa đen vì Python đã đánh giá nó thành một số phức chỉ bao gồm hai phần. Hãy nhớ rằng các quy tắc cơ bản của đại số chuyển sang các số phức tạp, vì vậy nếu bạn nhóm các thuật ngữ tương tự và áp dụng bổ sung theo thành phần, thì bạn sẽ kết thúc với Addition is : (3+5j)64.Cartesian coordinate system that you’ll explore in a bit. You can think of complex numbers as two-dimensional. Lưu ý cách Python hiển thị các số phức theo mặc định. Biểu diễn văn bản của họ chứa một cặp dấu ngoặc đơn, chữ thường Addition is : (3+5j)47 và không có khoảng trắng nào. Ngoài ra, phần tưởng tượng đứng thứ hai.real part, while the second one represents the imaginary part denoted with the letter Addition is : (3+5j)47 in the literal you saw earlier: >>> Addition is : (3+5j)7 Những con số phức tạp cũng là những con số tưởng tượng thuần túy xuất hiện mà không có dấu ngoặc đơn và chỉ tiết lộ phần tưởng tượng của chúng: >>> Addition is : (3+5j)8 Điều này giúp phân biệt các số tưởng tượng với hầu hết các số phức tạp được tạo thành từ các phần thực và tưởng tượng.type casting. For example, you can pass a nonnumeric value like a string literal to obtain a corresponding 6 object. Note that the string can’t contain any whitespace, though:>>> Addition is : (3+5j)9 Addition is : (3+5j)66 Chức năng nhà máy >>> Input: 2+3i, 4+5i Output: Subtraction is : -2-2i Input: 2+3i, 1+2i Output: Subtraction is : 1+1i0 Python có chức năng tích hợp, Addition is : (3+5j)66, mà bạn có thể sử dụng thay thế cho số lượng phức tạp theo nghĩa đen:immutable. To make a distinct copy of a complex number, you must call the function with both arguments again or declare another variable with the complex number literal: >>> Input: 2+3i, 4+5i Output: Subtraction is : -2-2i Input: 2+3i, 1+2i Output: Subtraction is : 1+1i1 Trong hình thức này, nó giống như một tuple hoặc một cặp số thông thường được đặt hàng. Sự tương tự là rất xa. Các số phức tạp có một cách giải thích hình học trong hệ tọa độ Cartesian mà bạn sẽ khám phá một chút. Bạn có thể nghĩ về những con số phức tạp là hai chiều. >>> Input: 2+3i, 4+5i Output: Subtraction is : -2-2i Input: 2+3i, 1+2i Output: Subtraction is : 1+1i2 Hàm nhà máy số phức tạp chấp nhận hai tham số số. Phần đầu tiên đại diện cho phần thực, trong khi phần thứ hai đại diện cho phần tưởng tượng được biểu thị bằng chữ cái Addition is : (3+5j)47 trong chữ cái mà bạn đã thấy trước đó: >>> Input: 2+3i, 4+5i Output: Subtraction is : -2-2i Input: 2+3i, 1+2i Output: Subtraction is : 1+1i3 Cả hai tham số đều là tùy chọn, với các giá trị mặc định bằng 0, điều này làm cho việc xác định các số phức hơn mà không có phần tưởng tượng hoặc cả phần thực và phần tưởng tượng: >>> Input: 2+3i, 4+5i Output: Subtraction is : -2-2i Input: 2+3i, 1+2i Output: Subtraction is : 1+1i4 Phiên bản đơn lẻ có thể hữu ích trong việc đúc loại. Ví dụ: bạn có thể vượt qua một giá trị không phải là một chuỗi theo nghĩa đen để có được một đối tượng 6 tương ứng. Lưu ý rằng chuỗi có thể chứa bất kỳ khoảng trắng nào, mặc dù:
Điều đó phù hợp với cách các loại số khác trong Python hoạt động bởi vì tất cả chúng đều bất biến. Để tạo một bản sao riêng biệt của một số phức, bạn phải gọi lại chức năng với cả hai đối số hoặc khai báo một biến khác với số phức theo nghĩa đen: Khi bạn cung cấp hai đối số cho hàm, chúng phải luôn là số, chẳng hạn như Addition is : (3+5j)71, Addition is : (3+5j)72 hoặc 6. Nếu không, bạn sẽ nhận được một lỗi thời gian chạy. Về mặt kỹ thuật, Addition is : (3+5j)74 là một lớp con của Addition is : (3+5j)71, vì vậy nó cũng sẽ hoạt động: Làm quen với các số phức tạp PythonTrong toán học, các số phức là một siêu số thực, điều đó có nghĩa là mỗi số thực cũng là một số phức tạp có phần tưởng tượng bằng không. Các mô hình Python mối quan hệ này thông qua một khái niệm gọi là tháp số, được mô tả trong PEP 3141:numeric tower, described in PEP 3141: >>> Input: 2+3i, 4+5i Output: Subtraction is : -2-2i Input: 2+3i, 1+2i Output: Subtraction is : 1+1i5 Mô-đun Addition is : (3+5j)82 tích hợp xác định một hệ thống phân cấp của các loại số thông qua các lớp trừu tượng có thể được sử dụng để kiểm tra loại và phân loại số. Ví dụ: để xác định xem một giá trị có thuộc về một tập hợp số cụ thể hay không, bạn có thể gọi Addition is : (3+5j)83 trên đó:abstract classes that can be used for type checking and classifying numbers. For example, to determine if a value belongs to a specific set of numbers, you can call Addition is : (3+5j)83 on it: >>> Input: 2+3i, 4+5i Output: Subtraction is : -2-2i Input: 2+3i, 1+2i Output: Subtraction is : 1+1i6 Mô-đun Addition is : (3+5j)82 tích hợp xác định một hệ thống phân cấp của các loại số thông qua các lớp trừu tượng có thể được sử dụng để kiểm tra loại và phân loại số. Ví dụ: để xác định xem một giá trị có thuộc về một tập hợp số cụ thể hay không, bạn có thể gọi Addition is : (3+5j)83 trên đó: >>> Input: 2+3i, 4+5i Output: Subtraction is : -2-2i Input: 2+3i, 1+2i Output: Subtraction is : 1+1i7 Mô-đun Addition is : (3+5j)82 tích hợp xác định một hệ thống phân cấp của các loại số thông qua các lớp trừu tượng có thể được sử dụng để kiểm tra loại và phân loại số. Ví dụ: để xác định xem một giá trị có thuộc về một tập hợp số cụ thể hay không, bạn có thể gọi Addition is : (3+5j)83 trên đó:Giá trị điểm nổi Addition is : (3+5j)84 là một số thực cũng là một số phức nhưng không phải là một tích phân. Lưu ý rằng bạn có thể sử dụng các loại tích hợp trực tiếp trong một thử nghiệm như vậy: Sự khác biệt giữa 6 và Addition is : (3+5j)86 là chúng thuộc về các nhánh riêng biệt trong cây phân cấp loại và sau là một lớp cơ sở trừu tượng mà không có bất kỳ việc thực hiện nào: Nhập phân cấp cho các số trong PythonCác lớp cơ sở trừu tượng, được biểu thị bằng màu đỏ trên sơ đồ trên, có thể bỏ qua cơ chế kiểm tra kế thừa thông thường bằng cách đăng ký các lớp không liên quan làm các lớp con ảo của chúng. Đó là lý do tại sao một giá trị điểm nổi trong ví dụ dường như là một ví dụ là Addition is : (3+5j)86 nhưng không phải 6.>>> Input: 2+3i, 4+5i Output: Subtraction is : -2-2i Input: 2+3i, 1+2i Output: Subtraction is : 1+1i8 Mô-đun Addition is : (3+5j)82 tích hợp xác định một hệ thống phân cấp của các loại số thông qua các lớp trừu tượng có thể được sử dụng để kiểm tra loại và phân loại số. Ví dụ: để xác định xem một giá trị có thuộc về một tập hợp số cụ thể hay không, bạn có thể gọi Addition is : (3+5j)83 trên đó:read-only because complex numbers are immutable, so trying to assign a new value to either of them will fail: >>> Input: 2+3i, 4+5i Output: Subtraction is : -2-2i Input: 2+3i, 1+2i Output: Subtraction is : 1+1i9 Mô-đun Addition is : (3+5j)82 tích hợp xác định một hệ thống phân cấp của các loại số thông qua các lớp trừu tượng có thể được sử dụng để kiểm tra loại và phân loại số. Ví dụ: để xác định xem một giá trị có thuộc về một tập hợp số cụ thể hay không, bạn có thể gọi Addition is : (3+5j)83 trên đó: >>> Subtraction is : (1+1j)0 Mô-đun Addition is : (3+5j)82 tích hợp xác định một hệ thống phân cấp của các loại số thông qua các lớp trừu tượng có thể được sử dụng để kiểm tra loại và phân loại số. Ví dụ: để xác định xem một giá trị có thuộc về một tập hợp số cụ thể hay không, bạn có thể gọi Addition is : (3+5j)83 trên đó: Giá trị điểm nổi Addition is : (3+5j)84 là một số thực cũng là một số phức nhưng không phải là một tích phân. Lưu ý rằng bạn có thể sử dụng các loại tích hợp trực tiếp trong một thử nghiệm như vậy:Sự khác biệt giữa 6 và Addition is : (3+5j)86 là chúng thuộc về các nhánh riêng biệt trong cây phân cấp loại và sau là một lớp cơ sở trừu tượng mà không có bất kỳ việc thực hiện nào: >>> Subtraction is : (1+1j)1 Mô-đun Addition is : (3+5j)82 tích hợp xác định một hệ thống phân cấp của các loại số thông qua các lớp trừu tượng có thể được sử dụng để kiểm tra loại và phân loại số. Ví dụ: để xác định xem một giá trị có thuộc về một tập hợp số cụ thể hay không, bạn có thể gọi Addition is : (3+5j)83 trên đó: >>> Subtraction is : (1+1j)2 Giá trị điểm nổi Addition is : (3+5j)84 là một số thực cũng là một số phức nhưng không phải là một tích phân. Lưu ý rằng bạn có thể sử dụng các loại tích hợp trực tiếp trong một thử nghiệm như vậy: >>> Subtraction is : (1+1j)3 Sự khác biệt giữa 6 và Addition is : (3+5j)86 là chúng thuộc về các nhánh riêng biệt trong cây phân cấp loại và sau là một lớp cơ sở trừu tượng mà không có bất kỳ việc thực hiện nào: Nhập phân cấp cho các số trong PythonCác lớp cơ sở trừu tượng, được biểu thị bằng màu đỏ trên sơ đồ trên, có thể bỏ qua cơ chế kiểm tra kế thừa thông thường bằng cách đăng ký các lớp không liên quan làm các lớp con ảo của chúng. Đó là lý do tại sao một giá trị điểm nổi trong ví dụ dường như là một ví dụ là Addition is : (3+5j)86 nhưng không phải 6.arithmetic expressions and call many of the built-in functions on them. More advanced functions for complex numbers are defined in the Addition is : (3+5j)45 module, which is part of the standard library. You’ll get an introduction to it in a later part of this tutorial. Truy cập các phần thực và tưởng tượngimaginary unit, which satisfies the following equation: Để có được các phần thực và tưởng tượng của một số phức trong Python, bạn có thể đạt được các thuộc tính Addition is : (3+5j)89 và Addition is : (3+5j)90 tương ứng: Cả hai thuộc tính đều chỉ đọc được vì các số phức là bất biến, vì vậy cố gắng gán một giá trị mới cho một trong số chúng sẽ thất bại:Vì mỗi số trong Python là một loại cụ thể hơn của một số phức, các thuộc tính và phương thức được xác định trong Addition is : (3+5j)86 cũng có sẵn trong tất cả các loại số, bao gồm Addition is : (3+5j)71 và Addition is : (3+5j)72: >>> Subtraction is : (1+1j)4 Phần tưởng tượng của những con số như vậy luôn luôn bằng không. Tính toán liên hợp của một số phức >>> Subtraction is : (1+1j)5 Các con số phức tạp Python chỉ có ba thành viên công cộng. Ngoài các thuộc tính Addition is : (3+5j)89 và Addition is : (3+5j)90, chúng phơi bày phương pháp Addition is : (3+5j)96, lật dấu hiệu của phần tưởng tượng: Đối với các số có phần tưởng tượng bằng 0, nó đã giành được bất kỳ hiệu ứng nào:Hoạt động này là nghịch đảo của riêng nó, vì vậy gọi nó hai lần sẽ giúp bạn có số ban đầu mà bạn đã bắt đầu với: >>> Subtraction is : (1+1j)6 Mặc dù có vẻ như ít giá trị, nhưng liên hợp phức tạp có một vài đặc tính số học hữu ích có thể giúp tính toán sự phân chia của hai số phức tạp với bút và giấy, trong số nhiều thứ khác. >>> Subtraction is : (1+1j)7 Số lượng phức tạp số họcunary minus operator (-) to make the negative of a complex number: >>> Subtraction is : (1+1j)8 Vì 6 là một loại dữ liệu gốc trong Python, bạn có thể cắm các số phức tạp vào các biểu thức số học và gọi nhiều hàm tích hợp trên chúng. Các hàm nâng cao hơn cho các số phức được xác định trong mô -đun Addition is : (3+5j)45, là một phần của thư viện tiêu chuẩn. Bạn sẽ nhận được một giới thiệu về nó trong phần sau của hướng dẫn này. Phép nhânSản phẩm của hai hoặc nhiều số phức tạp trở nên thú vị hơn: >>> Subtraction is : (1+1j)9 Làm thế nào trên trái đất bạn kết thúc với một số âm chỉ trong số các số tích cực? Để trả lời câu hỏi này, bạn phải nhớ lại định nghĩa của đơn vị tưởng tượng và viết lại biểu thức theo các phần thực và tưởng tượng: Quan sát chính để thực hiện là Addition is : (3+5j)47 lần Addition is : (3+5j)47 cung cấp Addition is : (3+5j)47 8, có thể được thay thế bằng Input: 2+3i, 4+5i Output: Subtraction is : -2-2i Input: 2+3i, 1+2i Output: Subtraction is : 1+1i02. Điều này đảo ngược dấu hiệu của một trong các bản tóm tắt, trong khi phần còn lại của các quy tắc vẫn giống hệt như trước đây. Phân côngChia các số phức tạp có thể trông đáng sợ ở cuộc gặp gỡ đầu tiên: >>> >>> a=3+4j >>> a.real 3.0 >>> a.imag 4.0 >>> complex(1,2) (1+2j)0 Làm thế nào trên trái đất bạn kết thúc với một số âm chỉ trong số các số tích cực? Để trả lời câu hỏi này, bạn phải nhớ lại định nghĩa của đơn vị tưởng tượng và viết lại biểu thức theo các phần thực và tưởng tượng: Quan sát chính để thực hiện là Addition is : (3+5j)47 lần Addition is : (3+5j)47 cung cấp Addition is : (3+5j)47 8, có thể được thay thế bằng Input: 2+3i, 4+5i Output: Subtraction is : -2-2i Input: 2+3i, 1+2i Output: Subtraction is : 1+1i02. Điều này đảo ngược dấu hiệu của một trong các bản tóm tắt, trong khi phần còn lại của các quy tắc vẫn giống hệt như trước đây.modulus of the divisor. You’ll learn more about the modulus of complex numbers later. When you continue deriving the formula, this is what you’ll get: Phân công >>> >>> a=3+4j >>> a.real 3.0 >>> a.imag 4.0 >>> complex(1,2) (1+2j)1 Làm thế nào trên trái đất bạn kết thúc với một số âm chỉ trong số các số tích cực? Để trả lời câu hỏi này, bạn phải nhớ lại định nghĩa của đơn vị tưởng tượng và viết lại biểu thức theo các phần thực và tưởng tượng: Quan sát chính để thực hiện là Addition is : (3+5j)47 lần Addition is : (3+5j)47 cung cấp Addition is : (3+5j)47>>> z = 3.14 + 2.71j
>>> type(z)
|
Xoay vòng 90 ° | Tổng góc | Công thức | Số mũ | Giá trị |
---|---|---|---|---|
0 | 0 ° | z | Addition is : (3+5j)470 | 1 |
1 | 90 ° | Z × Addition is : (3+5j)47 | Addition is : (3+5j)471 | Addition is : (3+5j)47 |
2 | 180 ° | Z × Addition is : (3+5j)47 × Addition is : (3+5j)47 | Addition is : (3+5j)472 | -1 |
3 | 270 ° | Z × Addition is : (3+5j)47 × Addition is : (3+5j)47 × Addition is : (3+5j)47 | Addition is : (3+5j)473 | -________ 147 |
4 | 360 ° | Z × Addition is : (3+5j)47 × Addition is : (3+5j)47 × Addition is : (3+5j)47 × Addition is : (3+5j)47 | Addition is : (3+5j)474 | 1 |
5 | 450 ° | Z × Addition is : (3+5j)47 × Addition is : (3+5j)47 × Addition is : (3+5j)47 × Addition is : (3+5j)47 × Addition is : (3+5j)47 | Addition is : (3+5j)475 | Addition is : (3+5j)47 |
6 | 180 ° | Z × Addition is : (3+5j)47 × Addition is : (3+5j)47 | Addition is : (3+5j)472 | -1 |
7 | 270 ° | Z × Addition is : (3+5j)47 × Addition is : (3+5j)47 × Addition is : (3+5j)47 | Addition is : (3+5j)473 | -________ 147 |
8 | 360 ° | Z × Addition is : (3+5j)47 × Addition is : (3+5j)47 × Addition is : (3+5j)47 × Addition is : (3+5j)47 | Addition is : (3+5j)474 | 1 |
450 °
Z ×
Addition is : (3+5j)47 ×
Addition is : (3+5j)47 ×
Addition is : (3+5j)47 ×
Addition is : (3+5j)47 ×
Addition is : (3+5j)47
Addition is : (3+5j)475
# Python program to add two complex number
# Enter first complex number i.e. 3+4j not 3+4i
first = complex(input('Enter first complex number: '))
second = complex(input('Enter first complex number: '))
# Addition of complex number
addition = first + second
# Displaying Sum
print('SUM = ', addition)
6540 °exponential form to make the calculations more straightforward:
Z ×
Addition is : (3+5j)47 ×
Addition is : (3+5j)47 ×
Addition is : (3+5j)47 ×
Addition is : (3+5j)47 ×
Addition is : (3+5j)47 ×
Addition is : (3+5j)47
# Python program to add two complex number
# Enter first complex number i.e. 3+4j not 3+4i
first = complex(input('Enter first complex number: '))
second = complex(input('Enter first complex number: '))
# Addition of complex number
addition = first + second
# Displaying Sum
print('SUM = ', addition)
7Addition is : (3+5j)476
630 °
Z × Addition is : (3+5j)47 × Addition is : (3+5j)47 × Addition is : (3+5j)47 × Addition is : (3+5j)47 × Addition is : (3+5j)47 × Addition is : (3+5j)47 × Addition is : (3+5j)47
Addition is : (3+5j)477
720 °
# Python program to add two complex number
# Enter first complex number i.e. 3+4j not 3+4i
first = complex(input('Enter first complex number: '))
second = complex(input('Enter first complex number: '))
# Addition of complex number
addition = first + second
# Displaying Sum
print('SUM = ', addition)
8Z ×
Addition is : (3+5j)47 ×
Addition is : (3+5j)47 ×
Addition is : (3+5j)47 ×
Addition is : (3+5j)47 ×
Addition is : (3+5j)47 ×
Addition is : (3+5j)47 ×
Addition is : (3+5j)47 ×
Addition is : (3+5j)47trigonometric, hyperbolic, or logarithmic functions are available in the standard library. Sadly, even if you know everything about the Python
Input: 2+3i, 4+5i Output: Subtraction is : -2-2i Input: 2+3i, 1+2i Output: Subtraction is : 1+1i13 module, it won’t help because none of its functions support complex numbers. You’ll need to combine it with the
Addition is : (3+5j)45 module, which defines corresponding functions for complex numbers.
Addition is : (3+5j)478
720 °
# Python program to add two complex number
# Enter first complex number i.e. 3+4j not 3+4i
first = complex(input('Enter first complex number: '))
second = complex(input('Enter first complex number: '))
# Addition of complex number
addition = first + second
# Displaying Sum
print('SUM = ', addition)
9Z ×
Addition is : (3+5j)47 ×
Addition is : (3+5j)47 ×
Addition is : (3+5j)47 ×
Addition is : (3+5j)47 ×
Addition is : (3+5j)47 ×
Addition is : (3+5j)47 ×
Addition is : (3+5j)47 ×
Addition is : (3+5j)47
720 °
Enter first complex number: 2+3j Enter first complex number: 4+6j SUM = (6+9j)0
Z ×
Addition is : (3+5j)47 ×
Addition is : (3+5j)47 ×
Addition is : (3+5j)47 ×
Addition is : (3+5j)47 ×
Addition is : (3+5j)47 ×
Addition is : (3+5j)47 ×
Addition is : (3+5j)47 ×
Addition is : (3+5j)47
Addition is : (3+5j)478
Khi bạn thể hiện phép nhân lặp đi lặp lại bằng
Addition is : (3+5j)47 về mặt số liệu số nguyên dương, thì một mẫu xuất hiện. Lưu ý cách nâng đơn vị tưởng tượng lên các quyền hạn tiếp theo khiến nó đi qua cùng một giá trị nhiều lần. Bạn có thể ngoại suy điều này lên các số mũ phân đoạn và mong đợi chúng tương ứng với các góc trung gian.rectangular coordinates comprising the real and imaginary parts.
Ví dụ, số mũ giữa vòng quay đầu tiên bằng 0,5 và biểu thị góc 45 °:polar coordinates that also let you find it unambiguously with two distances:
- Vì vậy, nếu bạn biết rằng một sức mạnh của một đại diện cho góc phù hợp và bất cứ điều gì ở giữa các thang đo theo tỷ lệ, thì bạn có thể lấy được công thức chung này cho các vòng quay tùy ý: is the length of the radius measured from the origin.
- Lưu ý rằng việc xoay trở nên tự nhiên hơn khi bạn thể hiện các số phức tạp của bạn trong tọa độ cực, đã mô tả góc. Sau đó, bạn có thể tận dụng hình thức theo cấp số nhân để làm cho các tính toán đơn giản hơn: is the angle measured between the horizontal axis and the radius.
Có hai cách để xoay một số bằng tọa độ cực:radius, also known as the modulus, corresponds to the complex number’s magnitude, or the vector’s length. The angle is commonly referred to as the phase or argument of a complex number. It’s useful to express the angle in radians rather than degrees when working with trigonometric functions.
Bạn có thể tổng hợp các góc hoặc nhân số phức của bạn với một vectơ đơn vị.
Bạn sẽ tìm hiểu thêm về những người trong phần tiếp theo.
Khám phá mô -đun toán học cho các số phức:
Addition is : (3+5j)45
>>>
Enter first complex number: 2+3j Enter first complex number: 4+6j SUM = (6+9j)1
Nó sẽ trả lại một tuple, trong đó phần tử thứ nhất là bán kính và phần tử thứ hai là góc trong radian. Lưu ý rằng bán kính có cùng giá trị với độ lớn mà bạn có thể tính toán bằng cách gọi
Input: 2+3i, 4+5i Output: Subtraction is : -2-2i Input: 2+3i, 1+2i Output: Subtraction is : 1+1i18 trên số phức của bạn. Ngược lại, nếu bạn chỉ quan tâm đến việc lấy góc của một số phức, thì bạn có thể gọi
Input: 2+3i, 4+5i Output: Subtraction is : -2-2i Input: 2+3i, 1+2i Output: Subtraction is : 1+1i86:
>>>
Enter first complex number: 2+3j Enter first complex number: 4+6j SUM = (6+9j)2
Góc có thể thu được bằng cách sử dụng lượng giác cơ bản vì phần thực, phần tưởng tượng và độ lớn cùng nhau tạo thành một tam giác vuông:
Bạn có thể sử dụng các hàm lượng giác nghịch đảo, chẳng hạn như arcsine, từ
Input: 2+3i, 4+5i Output: Subtraction is : -2-2i Input: 2+3i, 1+2i Output: Subtraction is : 1+1i13 hoặc
Addition is : (3+5j)45, nhưng phần sau sẽ tạo ra các giá trị phức tạp với phần tưởng tượng bằng 0:arcsine, either from
Input: 2+3i, 4+5i Output: Subtraction is : -2-2i Input: 2+3i, 1+2i Output: Subtraction is : 1+1i13 or
Addition is : (3+5j)45, but the latter will produce complex values with the imaginary part equal to zero:
>>>
Enter first complex number: 2+3j Enter first complex number: 4+6j SUM = (6+9j)3
Tuy nhiên, có một chi tiết nhỏ để cẩn thận khi sử dụng hàm Arctangent, điều này đã khiến nhiều ngôn ngữ lập trình phát triển một triển khai thay thế gọi là
Input: 2+3i, 4+5i Output: Subtraction is : -2-2i Input: 2+3i, 1+2i Output: Subtraction is : 1+1i89. Tính tỷ lệ giữa phần tưởng tượng và phần thực đôi khi có thể tạo ra một điểm kỳ dị do, ví dụ, phân chia theo 0. Hơn nữa, các dấu hiệu riêng lẻ của hai giá trị bị mất trong quá trình, khiến cho không thể nói góc một cách chắc chắn:arctangent function, though, which led many programming languages to develop an alternative implementation called
Input: 2+3i, 4+5i Output: Subtraction is : -2-2i Input: 2+3i, 1+2i Output: Subtraction is : 1+1i89. Calculating the ratio between the imaginary and the real part can sometimes produce a singularity due to, for instance, division by zero. Moreover, the individual signs of the two values are lost in the process, making it impossible to tell the angle with certainty:
>>>
Enter first complex number: 2+3j Enter first complex number: 4+6j SUM = (6+9j)4
Lưu ý cách
Input: 2+3i, 4+5i Output: Subtraction is : -2-2i Input: 2+3i, 1+2i Output: Subtraction is : 1+1i90 không nhận ra hai điểm khác nhau nằm trong các góc phần tư đối diện của hệ tọa độ. Mặt khác,
Input: 2+3i, 4+5i Output: Subtraction is : -2-2i Input: 2+3i, 1+2i Output: Subtraction is : 1+1i89 mong đợi hai đối số thay vì một để bảo tồn các dấu hiệu riêng lẻ trước khi chia cho nhau và cũng tránh các vấn đề khác.
Để có được độ thay vì radian, bạn có thể thực hiện chuyển đổi cần thiết bằng cách sử dụng mô -đun
Input: 2+3i, 4+5i Output: Subtraction is : -2-2i Input: 2+3i, 1+2i Output: Subtraction is : 1+1i13:
>>>
Enter first complex number: 2+3j Enter first complex number: 4+6j SUM = (6+9j)5
Đảo ngược quá trình, đó là, chuyển đổi cực sang tọa độ hình chữ nhật trên các chức năng khác. Tuy nhiên, bạn có thể chỉ cần vượt qua cùng một tuple mà bạn có được từ
Input: 2+3i, 4+5i Output: Subtraction is : -2-2i Input: 2+3i, 1+2i Output: Subtraction is : 1+1i84 kể từ khi
Input: 2+3i, 4+5i Output: Subtraction is : -2-2i Input: 2+3i, 1+2i Output: Subtraction is : 1+1i94 mong đợi hai đối số riêng biệt:
>>>
Enter first complex number: 2+3j Enter first complex number: 4+6j SUM = (6+9j)6
Đó là một ý tưởng tốt để giải nén bộ tuple trước tiên khi thực hiện một bài tập và đưa ra các yếu tố đó nhiều tên mô tả hơn. Bây giờ bạn có thể gọi
Input: 2+3i, 4+5i Output: Subtraction is : -2-2i Input: 2+3i, 1+2i Output: Subtraction is : 1+1i94 chính xác:
>>>
Enter first complex number: 2+3j Enter first complex number: 4+6j SUM = (6+9j)7
Bạn có thể gặp lỗi làm tròn trên đường đi trong khi Python thực hiện các tính toán. Đằng sau hậu trường, nó gọi các hàm lượng giác để truy xuất các phần thực và tưởng tượng:
>>>
Enter first complex number: 2+3j Enter first complex number: 4+6j SUM = (6+9j)8
Một lần nữa, không quan trọng cho dù bạn sử dụng
Input: 2+3i, 4+5i Output: Subtraction is : -2-2i Input: 2+3i, 1+2i Output: Subtraction is : 1+1i13 hay
Addition is : (3+5j)45 trong trường hợp này vì kết quả sẽ giống hệt nhau.
Đại diện cho các số phức tạp khác nhau
Bất kể hệ tọa độ, bạn có thể diễn đạt cùng một số phức trong một vài hình thức tương đương về mặt toán học:
- Đại số (Tiêu chuẩn)
- Hình học
- Lượng giác
- số mũ
Danh sách này không đầy đủ vì có nhiều đại diện hơn, chẳng hạn như biểu diễn ma trận của các số phức.
Có sự lựa chọn cho phép bạn chọn một người thuận tiện nhất để giải quyết một vấn đề nhất định. Ví dụ, bạn sẽ cần hình thức theo cấp số nhân để tính toán biến đổi Fourier rời rạc trong một phần sắp tới. Sử dụng hình thức này cũng phù hợp để nhân và chia số phức.
Dưới đây, một danh sách nhanh chóng của các biểu mẫu số phức và tọa độ của chúng:
Hình thức | Hình hộp chữ nhật | Cực |
---|---|---|
Đại số | z = x + yAddition is : (3+5j)47 | - |
Hình học | z = (x, y) | z = (r, φ) |
Lượng giác | z = | z | (cos (x/| z |) + ________ 147Sin (y/| z |))) | z = r (cos (φ) + ________ 147Sin (φ))) |
số mũ | z = | z | e ________ 301 | z = r (e ________ 147φ) |
Hình thức đại số có nguồn gốc từ Python khi bạn chỉ định các số phức tạp bằng cách sử dụng chữ của chúng. Bạn cũng có thể xem chúng là điểm trên một mặt phẳng Euclide trong các hệ tọa độ của Cartesian hoặc Polar. Mặc dù có các biểu diễn riêng cho dạng lượng giác hoặc theo cấp số nhân trong Python, bạn có thể xác minh xem các nguyên tắc toán học có giữ được không.
Ví dụ, việc cắm vào công thức Euler, thành dạng lượng giác sẽ biến nó thành theo cấp số nhân. Bạn có thể gọi mô -đun
Addition is : (3+5j)45
>>>
Enter first complex number: 2+3j Enter first complex number: 4+6j SUM = (6+9j)9
Tất cả các hình thức thực sự là những cách khác nhau để mã hóa cùng một số. Tuy nhiên, bạn có thể so sánh chúng trực tiếp vì các lỗi làm tròn có thể xảy ra trong lúc này. Sử dụng
Subtraction is : (1+1j)06 để so sánh an toàn hoặc
Subtraction is : (1+1j)07 Các số dưới dạng chuỗi một cách thích hợp. Bạn sẽ tìm ra cách định dạng các chuỗi như vậy trong phần sắp tới.
Giải thích tại sao các hình thức khác nhau của một số phức là tương đương đòi hỏi tính toán và vượt xa phạm vi của hướng dẫn này. Tuy nhiên, nếu bạn quan tâm đến toán học, thì bạn sẽ tìm thấy các kết nối giữa các lĩnh vực toán học khác nhau được thể hiện bởi các số phức tạp là hấp dẫn.
Phân tích một số phức trong Python
Bạn đã học được một loạt về các con số phức tạp Python và đã thấy các ví dụ sơ bộ. Tuy nhiên, trước khi di chuyển xa hơn, nó có giá trị để bao gồm một số chủ đề cuối cùng. Trong phần này, bạn sẽ xem xét so sánh các số phức tạp, định dạng các chuỗi có chứa chúng và hơn thế nữa.
Kiểm tra bình đẳng của các số phức tạp
Về mặt toán học, hai số phức là bằng nhau khi chúng có các giá trị giống hệt nhau bất kể hệ tọa độ được thông qua. Tuy nhiên, việc chuyển đổi giữa các tọa độ phân cực và hình chữ nhật thường đưa ra các lỗi làm tròn trong Python, vì vậy bạn cần coi chừng sự khác biệt nhỏ khi so sánh chúng.
Ví dụ, khi bạn xem xét một điểm trên một vòng tròn đơn vị có bán kính bằng một và được nghiêng ở 60 °, thì lượng giác hoạt động độc đáo, làm cho việc chuyển đổi bằng bút và giấy đơn giản:
>>>
>>> type(z)
0Mặc dù bạn biết rằng
Addition is : (3+5j)18 và
>>> z = 3.14 + 2.71j
>>> type(z)
3 là cùng một điểm, Python có thể xác định rằng vì các lỗi làm tròn. May mắn thay, tài liệu PEP 485 được xác định các chức năng cho sự bình đẳng gần đúng, có sẵn trong các mô -đun Input: 2+3i, 4+5i Output: Subtraction is : -2-2i Input: 2+3i, 1+2i Output: Subtraction is : 1+1i13 và
Addition is : (3+5j)45:
>>>
Mặc dù bạn biết rằngAddition is : (3+5j)18 và
>>> z = 3.14 + 2.71j
>>> type(z)
3 là cùng một điểm, Python có thể xác định rằng vì các lỗi làm tròn. May mắn thay, tài liệu PEP 485 được xác định các chức năng cho sự bình đẳng gần đúng, có sẵn trong các mô -đun Input: 2+3i, 4+5i Output: Subtraction is : -2-2i Input: 2+3i, 1+2i Output: Subtraction is : 1+1i13 và
Addition is : (3+5j)45:
>>> type(z)
1Hãy nhớ luôn luôn sử dụng chúng khi so sánh các số phức tạp! Nếu dung sai mặc định không đủ tốt cho các tính toán của bạn, bạn có thể thay đổi nó bằng cách chỉ định các đối số bổ sung.
Đặt hàng số phức
>>>
>>> type(z)
2Mặc dù bạn biết rằng
Addition is : (3+5j)18 và
>>> z = 3.14 + 2.71j
>>> type(z)
3 là cùng một điểm, Python có thể xác định rằng vì các lỗi làm tròn. May mắn thay, tài liệu PEP 485 được xác định các chức năng cho sự bình đẳng gần đúng, có sẵn trong các mô -đun Input: 2+3i, 4+5i Output: Subtraction is : -2-2i Input: 2+3i, 1+2i Output: Subtraction is : 1+1i13 và
Addition is : (3+5j)45:
>>>
>>> type(z)
3Mặc dù bạn biết rằng
Addition is : (3+5j)18 và
>>> z = 3.14 + 2.71j
>>> type(z)
3 là cùng một điểm, Python có thể xác định rằng vì các lỗi làm tròn. May mắn thay, tài liệu PEP 485 được xác định các chức năng cho sự bình đẳng gần đúng, có sẵn trong các mô -đun Input: 2+3i, 4+5i Output: Subtraction is : -2-2i Input: 2+3i, 1+2i Output: Subtraction is : 1+1i13 và
Addition is : (3+5j)45:
>>>
>>> type(z)
4Mặc dù bạn biết rằng
Addition is : (3+5j)18 và
>>> z = 3.14 + 2.71j
>>> type(z)
3 là cùng một điểm, Python có thể xác định rằng vì các lỗi làm tròn. May mắn thay, tài liệu PEP 485 được xác định các chức năng cho sự bình đẳng gần đúng, có sẵn trong các mô -đun Input: 2+3i, 4+5i Output: Subtraction is : -2-2i Input: 2+3i, 1+2i Output: Subtraction is : 1+1i13 và
Addition is : (3+5j)45:key function, such as
Input: 2+3i, 4+5i Output: Subtraction is : -2-2i Input: 2+3i, 1+2i Output: Subtraction is : 1+1i18:
>>>
>>> type(z)
5Mặc dù bạn biết rằng
Addition is : (3+5j)18 và
>>> z = 3.14 + 2.71j
>>> type(z)
3 là cùng một điểm, Python có thể xác định rằng vì các lỗi làm tròn. May mắn thay, tài liệu PEP 485 được xác định các chức năng cho sự bình đẳng gần đúng, có sẵn trong các mô -đun Input: 2+3i, 4+5i Output: Subtraction is : -2-2i Input: 2+3i, 1+2i Output: Subtraction is : 1+1i13 và
Addition is : (3+5j)45:
>>> type(z)
1
Hãy nhớ luôn luôn sử dụng chúng khi so sánh các số phức tạp! Nếu dung sai mặc định không đủ tốt cho các tính toán của bạn, bạn có thể thay đổi nó bằng cách chỉ định các đối số bổ sung.
Đặt hàng số phức
>>>
>>> type(z)
6Mặc dù bạn biết rằng
Addition is : (3+5j)18 và
>>> z = 3.14 + 2.71j
>>> type(z)
3 là cùng một điểm, Python có thể xác định rằng vì các lỗi làm tròn. May mắn thay, tài liệu PEP 485 được xác định các chức năng cho sự bình đẳng gần đúng, có sẵn trong các mô -đun Input: 2+3i, 4+5i Output: Subtraction is : -2-2i Input: 2+3i, 1+2i Output: Subtraction is : 1+1i13 và
Addition is : (3+5j)45:
>>>
>>> type(z)
7Mặc dù bạn biết rằng
Addition is : (3+5j)18 và
>>> z = 3.14 + 2.71j
>>> type(z)
3 là cùng một điểm, Python có thể xác định rằng vì các lỗi làm tròn. May mắn thay, tài liệu PEP 485 được xác định các chức năng cho sự bình đẳng gần đúng, có sẵn trong các mô -đun Input: 2+3i, 4+5i Output: Subtraction is : -2-2i Input: 2+3i, 1+2i Output: Subtraction is : 1+1i13 và
Addition is : (3+5j)45:
>>>
>>> type(z)
8Mặc dù bạn biết rằng
Addition is : (3+5j)18 và
>>> z = 3.14 + 2.71j
>>> type(z)
3 là cùng một điểm, Python có thể xác định rằng vì các lỗi làm tròn. May mắn thay, tài liệu PEP 485 được xác định các chức năng cho sự bình đẳng gần đúng, có sẵn trong các mô -đun Input: 2+3i, 4+5i Output: Subtraction is : -2-2i Input: 2+3i, 1+2i Output: Subtraction is : 1+1i13 và
Addition is : (3+5j)45:positional or keyword arguments to it:
>>>
>>> type(z)
9Mặc dù bạn biết rằng
Addition is : (3+5j)18 và
>>> z = 3.14 + 2.71j
>>> type(z)
3 là cùng một điểm, Python có thể xác định rằng vì các lỗi làm tròn. May mắn thay, tài liệu PEP 485 được xác định các chức năng cho sự bình đẳng gần đúng, có sẵn trong các mô -đun Input: 2+3i, 4+5i Output: Subtraction is : -2-2i Input: 2+3i, 1+2i Output: Subtraction is : 1+1i13 và
Addition is : (3+5j)45:
>>>
>>> z = 3 + 2
>>> type(z)
0Mặc dù bạn biết rằng
Addition is : (3+5j)18 và
>>> z = 3.14 + 2.71j
>>> type(z)
3 là cùng một điểm, Python có thể xác định rằng vì các lỗi làm tròn. May mắn thay, tài liệu PEP 485 được xác định các chức năng cho sự bình đẳng gần đúng, có sẵn trong các mô -đun Input: 2+3i, 4+5i Output: Subtraction is : -2-2i Input: 2+3i, 1+2i Output: Subtraction is : 1+1i13 và
Addition is : (3+5j)45:
>>> type(z)
1
Hãy nhớ luôn luôn sử dụng chúng khi so sánh các số phức tạp! Nếu dung sai mặc định không đủ tốt cho các tính toán của bạn, bạn có thể thay đổi nó bằng cách chỉ định các đối số bổ sung.bound vectors. You might calculate their dot product and do some trigonometry. Alternatively, you can take advantage of complex numbers.
Đặt hàng số phức
>>> z = 3 + 2
>>> type(z)
1Nếu bạn quen thuộc với Tuples, thì bạn sẽ biết rằng Python có thể sắp xếp chúng:
Theo mặc định, các bộ dữ liệu riêng lẻ được so sánh bên trái:
>>> z = 3 + 2
>>> type(z)
2Trong trường hợp đầu tiên, số
Subtraction is : (1+1j)12 lớn hơn
Subtraction is : (1+1j)13, do đó, các tên hành tinh không được xem xét. Họ có thể giúp giải quyết một cà vạt, mặc dù. Tuy nhiên, đó không phải là trường hợp với các số phức tạp vì họ không xác định mối quan hệ đặt hàng tự nhiên. Ví dụ: bạn sẽ gặp lỗi nếu bạn cố gắng so sánh hai số phức tạp:delegation when you call the global
Addition is : (3+5j)66 on a vector instance:
>>>
>>> z = 3 + 2
>>> type(z)
3Kích thước tưởng tượng có nên có trọng lượng nhiều hơn so với thực tế? Nên so sánh cường độ của chúng? Nó tùy thuộc vào bạn, và câu trả lời sẽ khác nhau. Vì bạn có thể so sánh trực tiếp các số phức, bạn cần nói với Python cách sắp xếp chúng bằng cách chỉ định chức năng khóa tùy chỉnh, chẳng hạn như
Input: 2+3i, 4+5i Output: Subtraction is : -2-2i Input: 2+3i, 1+2i Output: Subtraction is : 1+1i18:
>>>
>>> z = 3 + 2
>>> type(z)
4Bạn đã có hai vectơ được xác định bởi bốn điểm riêng biệt. Tiếp theo, bạn chuyển chúng trực tiếp đến
Input: 2+3i, 4+5i Output: Subtraction is : -2-2i Input: 2+3i, 1+2i Output: Subtraction is : 1+1i86, việc chuyển đổi thành một số phức cho bạn và trả về pha. Sự khác biệt pha là góc giữa hai vectơ.
Có phải là người đẹp không? Bạn đã tự cứu mình khỏi việc gõ rất nhiều mã dễ bị lỗi bằng cách cõng những con số phức tạp và một chút ma thuật Python.
Tính toán biến đổi Fourier rời rạc với các số phức
Mặc dù bạn có thể sử dụng các số thực để tính toán các hệ số sin và cosine của một hàm định kỳ tần số với biến đổi Fourier, nhưng nó thường thuận tiện hơn để đối phó với chỉ một hệ số phức tạp trên mỗi tần số. Biến đổi Fourier rời rạc trong miền phức tạp được đưa ra bởi công thức sau:discrete Fourier transform in the complex domain is given by the following formula:
Đối với mỗi Tần số Bin K, nó đo được mối tương quan của tín hiệu và một sóng hình sin cụ thể được biểu thị bằng một số phức ở dạng hàm mũ. .frequency bin k, it measures the correlation of the signal and a particular sine wave expressed as a complex number in the exponential form. (Thank you, Leonhard Euler!) The angular frequency of the wave can be calculated by multiplying the round angle, which is 2π radians, by k over the number of discrete samples:
Mã hóa điều này trong Python trông khá gọn gàng khi bạn tận dụng kiểu dữ liệu
>>> z = 3.14 + 2.71j
>>> type(z)
6:>>> z = 3 + 2
>>> type(z)
5Hàm này là một phiên mã theo nghĩa đen của các công thức ở trên. Bây giờ bạn có thể chạy phân tích tần số trên một âm thanh mà bạn tải từ tệp âm thanh bằng mô -đun Python, ____328 hoặc bạn tổng hợp từ đầu. Một trong những máy tính xách tay Jupyter đi kèm với hướng dẫn này cho phép bạn chơi với tổng hợp và phân tích âm thanh một cách tương tác.
Để vẽ phổ tần số với matplotlib, bạn phải biết tần số lấy mẫu, xác định độ phân giải thùng tần số cũng như giới hạn Nyquist:frequency spectrum with Matplotlib, you must know the sampling frequency, which determines your frequency bin resolution as well as the Nyquist limit:
>>> z = 3 + 2
>>> type(z)
6Số lượng thùng tần số trong phổ bằng một nửa các mẫu, trong khi tần số Nyquist giới hạn tần số cao nhất bạn có thể đo. Biến đổi trả về một số phức có cường độ tương ứng với biên độ của sóng hình sin ở tần số đã cho, trong khi góc của nó là pha.amplitude of a sine wave at the given frequency, whereas its angle is the phase.
Ở đây, một biểu đồ tần số mẫu của sóng âm bao gồm ba âm 440 Hz, 1,5 kHz và 5 kHz, có biên độ bằng nhau:
Biểu đồ phổ tần sốLưu ý đây là một ví dụ hoàn toàn học thuật vì tính toán biến đổi Fourier rời rạc với các lần lặp lồng nhau có độ phức tạp thời gian O (N2), khiến nó không thể sử dụng được trong thực tế. Đối với các ứng dụng thực tế, bạn muốn sử dụng thuật toán Fast Fourier Transform (FFT) được triển khai tốt nhất trong thư viện C, chẳng hạn như FFT trong SCIPY.fast Fourier transform (FFT) algorithm best implemented in a C library, such as the FFT in SciPy.
Sự kết luận
Sự dễ dàng của việc sử dụng các số phức tạp trong Python làm cho chúng trở thành một công cụ thực tế và thú vị đáng ngạc nhiên. Bạn đã thấy các vectơ hai chiều được triển khai thực tế miễn phí và bạn đã có thể phân tích tần số âm thanh nhờ chúng. Các số phức cho phép bạn thể hiện một cách tao nhã các công thức toán học trong mã mà không có nhiều cú pháp tự nhiên cản trở.vectors implemented practically for free, and you were able to analyze sound frequencies thanks to them. Complex numbers let you elegantly express mathematical formulas in code without much boilerplate syntax standing in the way.
Trong hướng dẫn này, bạn đã học được cách:
- Xác định các số phức tạp với nghĩa đen trong Pythonliterals in Python
- Biểu thị các số phức trong tọa độ hình chữ nhật và cựcrectangular and polar coordinates
- Sử dụng các số phức tạp trong các biểu thức số họcarithmetic expressions
- Tận dụng mô-đun
Addition is : (3+5j)
45 tích hợpAddition is : (3+5j)
45 module - Dịch các công thức toán học trực tiếp sang mã Pythonmathematical formulas directly to Python code
Kinh nghiệm của bạn là gì với những con số phức tạp Python cho đến nay? Bạn đã bao giờ bị họ đe dọa? Những vấn đề thú vị khác mà bạn nghĩ rằng họ sẽ cho phép bạn giải quyết?
Bạn có thể nhấp vào liên kết bên dưới để lấy mã nguồn đầy đủ cho hướng dẫn này: