Hướng dẫn how to create a polynomial function in python - cách tạo một hàm đa thức trong python
Tôi khuyên bạn nên sử dụng import numpy as np ppar = [4, 3, -2, 10] p = np.poly1d(ppar) print p(3) print np.polyval(ppar, 3) x = 3 print 4*x**3 + 3*x**2 -2*x + 104 và import numpy as np ppar = [4, 3, -2, 10] p = np.poly1d(ppar) print p(3) print np.polyval(ppar, 3) x = 3 print 4*x**3 + 3*x**2 -2*x + 105, trong đó các hệ số là import numpy as np ppar = [4, 3, -2, 10] p = np.poly1d(ppar) print p(3) print np.polyval(ppar, 3) x = 3 print 4*x**3 + 3*x**2 -2*x + 106. Show Ví dụ: để đại diện cho import numpy as np ppar = [4, 3, -2, 10] p = np.poly1d(ppar) print p(3) print np.polyval(ppar, 3) x = 3 print 4*x**3 + 3*x**2 -2*x + 107:
Và với đối tượng import numpy as np ppar = [4, 3, -2, 10] p = np.poly1d(ppar) print p(3) print np.polyval(ppar, 3) x = 3 print 4*x**3 + 3*x**2 -2*x + 108 kết quả, bạn có thể hoạt động bằng cách sử dụng import numpy as np ppar = [4, 3, -2, 10] p = np.poly1d(ppar) print p(3) print np.polyval(ppar, 3) x = 3 print 4*x**3 + 3*x**2 -2*x + 109, 139 139 1390, v.v.
Nếu bạn muốn xây dựng các chức năng của riêng mình, giả sử rằng P chứa các hệ số theo thứ tự: 139 139 1391:
Ghi chúHàm đánh giá của tôi sử dụng theo cấp số nhân, có thể tránh được với quy tắc của Horner, như được đăng trong một câu trả lời khác, có sẵn trong hàm 139 139 1392 của Numpy Bài đăng Matlab Đa thức có thể được biểu diễn dưới dạng danh sách các hệ số. Ví dụ: đa thức \ (4*x^3 + 3*x^2 -2*x + 10 = 0 \) có thể được biểu diễn dưới dạng [4, 3, -2, 10]. Dưới đây là một số cách để tạo ra một đối tượng đa thức và đánh giá nó. import numpy as np ppar = [4, 3, -2, 10] p = np.poly1d(ppar) print p(3) print np.polyval(ppar, 3) x = 3 print 4*x**3 + 3*x**2 -2*x + 10 139 139 139 Numpy giúp bạn dễ dàng có được sự phái sinh và tích phân của đa thức. Xem xét: \ (y = 2x^2 - 1 \). Chúng tôi biết đạo hàm là \ (4x \). Ở đây chúng tôi tính toán đạo hàm và đánh giá nó ở x = 4. import numpy as np p = np.poly1d([2, 0, -1]) p2 = np.polyder(p) print p2 print p2(4) 4 x 16 Tích hợp của đa thức trước đó là \ (\ frac {2} {3} x^3 - x + c \). Chúng tôi giả sử \ (c = 0 \). Hãy để chúng tôi tính toán tích phân \ (\ int_2^4 2x^2 - 1 dx \). import numpy as np p = np.poly1d([2, 0, -1]) p2 = np.polyint(p) print p2 print p2(4) - p2(2) 3 0.6667 x - 1 x 35.3333333333 Một lý do để sử dụng đa thức là dễ dàng tìm thấy tất cả các gốc bằng cách sử dụng numpy.roots. import numpy as np print np.roots([2, 0, -1]) # roots are +- sqrt(2) # note that imaginary roots exist, e.g. x^2 + 1 = 0 has two roots, +-i p = np.poly1d([1, 0, 1]) print np.roots(p) 0Có các ứng dụng của đa thức trong nhiệt động lực học. Phương trình van der waal là một đa thức khối \ (f (v) = v^3 - \ frac {p n b + n r t} {p} v^2 + \ frac {n^2 a} {p} v - \ frac {n^3 a b} {p} = 0 \), trong đó \ (a \) và \ (b \) là hằng số, \ (p \) là áp suất, \ (r \) là hằng số khí, \ ( T \) là nhiệt độ tuyệt đối và \ (n \) là số nốt ruồi. Rễ của phương trình này cho bạn biết thể tích của khí ở những điều kiện đó. 1 2Lưu ý rằng chỉ có một gốc là có thật (và thậm chí sau đó, chúng ta phải interpet 0.J là không tưởng tượng. Ngoài ra, trong một đa thức khối, chỉ có thể có hai gốc tưởng tượng). Trong trường hợp này có nghĩa là chỉ có một pha hiện tại. 1. Tóm tắt SummaryCác đa thức trong numpy thậm chí còn tốt hơn ở Matlab, bởi vì bạn có một đối tượng đa thức hoạt động giống như một hàm. Nếu không, chúng tương đương về mặt chức năng. Bản quyền (c) 2013 của John Kitchin. Xem giấy phép để biết thông tin về sao chép. Nguồn chế độ org Bởi Bernd Klein. Sửa đổi lần cuối: 16 tháng 2 năm 2022.Bernd Klein. Last modified: 16 Feb 2022. Trên trang này➤ Giới thiệuNếu bạn đã đến trường trung học, bạn sẽ gặp phải các thuật ngữ chức năng đa thức và đa thức. Chương này của hướng dẫn Python của chúng tôi hoàn toàn về đa thức, tức là chúng tôi sẽ xác định một lớp để xác định đa thức. Sau đây là một ví dụ về đa thức với độ 4:polynomial and polynomial function. This chapter of our Python tutorial is completely on polynomials, i.e. we will define a class to define polynomials. The following is an example of a polynomial with the degree 4: $$ p (x) = x^4 - 4 \ cdot x^2 + 3 \ cdot x $$ Bạn sẽ phát hiện ra rằng có rất nhiều điểm tương đồng với số nguyên. Chúng tôi sẽ xác định các hoạt động số học khác nhau cho các đa thức trong lớp của chúng tôi, như bổ sung, trừ, nhân và chia. Lớp đa thức của chúng tôi cũng sẽ cung cấp phương tiện để tính toán đạo hàm và tích phân của đa thức. Chúng tôi sẽ không bỏ lỡ âm mưu đa thức. Có rất nhiều beaty trong đa thức và trên hết là cách chúng có thể được thực hiện như một lớp Python. Chúng tôi muốn nói cảm ơn Drew Shanon, người đã cho phép chúng tôi sử dụng bức tranh tuyệt vời của anh ấy, coi toán học là nghệ thuật! Giới thiệu toán học ngắnChúng tôi sẽ chỉ đối phó với đa thức trong một không xác định (còn được gọi là biến) x. Một dạng chung của đa thức trong một không xác định trông như thế này: $$ a_n \ cdot x^n + a_ {n-1} \ cdot x^{n-1} + \ ldots + a_2 \ cdot x^2 + a_1 \ cdot x + a_0 $$ Trong đó $ a_0, a_1, ... a_n $ là các hằng số - số nguyên không âm - và $ x $ là không xác định hoặc biến. Thuật ngữ "không xác định" có nghĩa là $ x $ đại diện cho không có giá trị cụ thể, nhưng bất kỳ giá trị nào có thể được thay thế cho nó. Biểu thức này thường được viết với toán tử tổng: $$ \ sum_ {k = 0}^{n} a_k \ cdot x^k = a_n \ cdot x^n + a_ {n-1} \ cdot x^{n-1} + \ ldot ^2 + a_1 \ cdot x + a_0 $$ Hàm đa thức là một hàm có thể được xác định bằng cách đánh giá một đa thức. Một hàm F của một đối số có thể được định nghĩa là: $$ f (x) = \ sum_ {k = 0}^{n} a_k \ cdot x^k $$ Các chức năng đa thức với PythonThật dễ dàng để thực hiện các hàm đa thức trong Python. Như một ví dụ, chúng tôi xác định hàm đa thức được đưa ra trong phần giới thiệu của chương này, tức là $ p (x) = x^4 - 4 \ cdot x^2 + 3 \ cdot x $ Mã Python cho hàm đa thức này trông như thế này: 3Chúng ta có thể gọi chức năng này giống như bất kỳ chức năng nào khác: 4OUTPUT: 5 6Đào tạo Python sống Các khóa học trực tuyến sắp tới Ghi danh ở đây Lớp đa thứcChúng tôi sẽ xác định bây giờ là một lớp cho các hàm đa thức. Chúng tôi sẽ xây dựng một ý tưởng mà chúng tôi đã phát triển trong chương về các nhà trang trí hướng dẫn Python của chúng tôi, nơi chúng tôi giới thiệu các nhà máy đa thức.polynomial factories. Một đa thức được xác định duy nhất bởi các hệ số của nó. Điều này có nghĩa là, một thể hiện của lớp đa thức của chúng tôi cần một danh sách hoặc tuple để xác định các hệ số. 7Chúng ta có thể khởi tạo đa thức của hàm đa thức ví dụ trước đây như sau: 8OUTPUT: 9Đã xác định biểu diễn chuỗi chính tắc của một đa thức với hàm repr, chúng tôi cũng muốn xác định một đầu ra có thể được sử dụng để tạo một phiên bản thân thiện hơn với mọi người. Chúng tôi viết một bản trình bày latex có thể được sử dụng để in chức năng theo cách đẹp:repr function, we also want to define an output which could be used to create a version which is more friendly for people. We write a LaTex represention which can be used to print the function in a beatiful way: 0 1OUTPUT: 2Nếu chúng ta sử dụng nó trong latex, nó sẽ trông như thế này: $ p_0 = x^4-4x^2+3x $ $ p_1 = 2x $ $ p_2 = 4x^2+x-1 $ $ p_3 = 3x^4-5x^2+2x+7 $ $ p_4 = -42 $ Cho đến nay, chúng tôi đã xác định đa thức, nhưng những gì chúng tôi thực sự cần là các hàm đa thức. Đối với mục đích này, chúng tôi biến các trường hợp của lớp đa thức thành các thiết bị gọi bằng cách xác định phương thức cuộc gọi.polynomials, but what we actually need are polynomial functions. For this purpose, we turn instances of the Polynomial class into callables by defining the call method. 3Bây giờ có thể gọi một thể hiện của lớp chúng tôi như một hàm. Chúng tôi gọi nó với một đối số và thể hiện, - có thể gọi được, - hoạt động giống như một hàm đa thức: 4OUTPUT: 5Chỉ để giải trí, chúng ta hãy vẽ đồ thị chức năng được xác định trước đó: 6Trước khi chúng tôi tinh chỉnh lớp học của mình, chúng tôi hãy sử dụng một biến thể hiệu quả hơn về mặt số lượng để tính toán đa thức. Chúng tôi sẽ sử dụng thuật toán này trong phương thức 139 139 1393 của chúng tôi. Chúng tôi đã giới thiệu biến thể này trong chương của chúng tôi về trang trí. Mỗi đa thức $ f (x) = \ sum_ {k = 0}^{n} a_k \ cdot x^k $ cũng có thể được viết dưới dạng $ f (x) = (a_n x + x_ {n-1}) x + \ cdot + a_1) x + a_0 $ Để thấy rõ rằng chúng tương đương, chúng tôi viết lại định nghĩa lớp của mình, nhưng gọi nó là 139 139 1394 để chúng tôi có thể sử dụng cả hai phiên bản: 7Chúng tôi sẽ kiểm tra cả hai lớp bằng cách so sánh kết quả: 8OUTPUT:Có thể xác định bổ sung và trừ cho đa thức. Tất cả những gì chúng ta phải làm là thêm hoặc trừ các hệ số có cùng số mũ từ cả hai đa thức. Nếu chúng ta có các hàm đa thức $ f (x) = \ sum_ {k = 0}^{n} a_k \ cdot x^k $ và $ g (x) = \ sum_ {k = 0}^{n} b_k \ cdot x^k $, bổ sung được định nghĩa là $$ (f + g) (x) = \ sum_ {k = 0}^{n} (a_k + b_k) \ cdot x^k $$ và phép trừ tương ứng được định nghĩa là $$ (f -g) (x) = \ sum_ {k = 0}^{n} (a_k - b_k) \ cdot x^k $$ Trước khi chúng ta có thể thêm các phương thức __add__ và __sub__, cần thiết để bổ sung và trừ, chúng ta thêm một zip_longest (). Nó hoạt động tương tự như ZIP cho hai tham số, nhưng nó không dừng lại nếu một trong các trình lặp bị kiệt sức nhưng thay vào đó sử dụng "fillvalue". 9OUTPUT:Chúng tôi sẽ thêm trình tạo này vào lớp của chúng tôi như một phương thức tĩnh. Bây giờ chúng tôi có khả năng thêm các phương thức __add__ và __sub__. Chúng tôi sẽ cần máy phát 139 139 1395 từ itertools. 139 139 1395 lấy và số lượng lặp tùy ý và tham số từ khóa 139 139 1397. Nó tạo ra một trình lặp tập hợp các phần tử từ mỗi lần lặp. Nếu các vòng lặp có độ dài không đồng đều, các giá trị bị thiếu sẽ được lấp đầy bằng fillvalue. Lặp lại tiếp tục cho đến khi có thể cạn kiệt lâu nhất. import numpy as np ppar = [4, 3, -2, 10] p = np.poly1d(ppar) print p(3) print np.polyval(ppar, 3) x = 3 print 4*x**3 + 3*x**2 -2*x + 100 Nó là cực kỳ dễ dàng để thêm sự khác biệt vào lớp của chúng tôi. Về mặt toán học, nó được định nghĩa là $$ f '(x) = \ sum_ {k = 0}^{n} k \ cdot a_k \ cdot x^{k-1} $$ if $$ f (x) = \ sum_ {k = 0}^{n} a_k \ cdot x^k $$ Điều này có thể dễ dàng thực hiện trong phương pháp 'phái sinh' của chúng tôi: import numpy as np ppar = [4, 3, -2, 10] p = np.poly1d(ppar) print p(3) print np.polyval(ppar, 3) x = 3 print 4*x**3 + 3*x**2 -2*x + 101 Chơi xung quanh một chút: import numpy as np ppar = [4, 3, -2, 10] p = np.poly1d(ppar) print p(3) print np.polyval(ppar, 3) x = 3 print 4*x**3 + 3*x**2 -2*x + 102 OUTPUT:import numpy as np ppar = [4, 3, -2, 10] p = np.poly1d(ppar) print p(3) print np.polyval(ppar, 3) x = 3 print 4*x**3 + 3*x**2 -2*x + 103 Đào tạo Python sống Các khóa học trực tuyến sắp tới Ghi danh ở đây Làm thế nào để bạn viết một chương trình đa thức trong Python?Chương trình Python để tính toán một phương trình đa thức.. Nhập mô -đun toán học .. Lấy các hệ số của phương trình đa thức và lưu trữ nó trong danh sách .. Lấy giá trị của x .. Sử dụng một vòng lặp và trong khi vòng lặp để tính toán giá trị của biểu thức đa thức cho ba thuật ngữ đầu tiên và lưu trữ nó trong một biến tổng .. Làm thế nào để bạn tạo ra một đa thức trong numpy?Gói đa thức, được giới thiệu trong Numpy 1.4.... Làm thế nào để…. Làm thế nào để bạn tìm thấy một đa thức trong Python?Cách tiếp cận: Áp dụng chức năng NP.poly1d () trên mảng và lưu trữ nó trong một biến.Tìm rễ bằng cách nhân biến với rễ hoặc r (từ khóa được xây dựng) và in kết quả để có được gốc của đa thức đã cho. |