Làm thế nào để bạn viết một phương trình đa thức trong python?

Khi cần tính toán một phương trình đa thức khi các hệ số của đa thức được lưu trữ trong một danh sách, có thể sử dụng một vòng lặp 'for' đơn giản

Dưới đây là minh họa tương tự -

Thí dụ

Bản thử trực tiếp

my_polynomial = [2, 5, 3, 0] num = 2 poly_len = len(my_polynomial) my_result = 0 for i in range(poly_len):    my_sum = my_polynomial[i]    for j in range(poly_len - i - 1):       my_sum = my_sum * num    my_result = my_result + my_sum print("The polynomial equation for the given list of co-efficients is :") print(my_result)

đầu ra

The polynomial equation for the given list of co-efficients is : 42

Giải trình

  • Một danh sách được xác định

  • Một số được chỉ định và độ dài của danh sách được gán cho một biến

  • Một biến kết quả được khai báo là 0

  • Độ dài của danh sách được lặp đi lặp lại và tổng được cộng vào số

  • Điều này được đưa ra như là đầu ra

  • Điều này được hiển thị trên bảng điều khiển

Nếu bạn đã từng học phổ thông, bạn sẽ gặp thuật ngữ đa thức và hàm đ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ôi. e. chúng ta sẽ định nghĩa một lớp để xác định đa thức. Sau đây là ví dụ về đa thức bậc 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 ta sẽ định nghĩa các phép toán số học khác nhau cho các đa thức trong lớp của chúng ta, như cộng, trừ, nhân và chia. Lớp đa thức của chúng tôi cũng sẽ cung cấp các phương tiện để tính đạo hàm và tích phân của đa thức. Chúng tôi sẽ không bỏ lỡ việc vẽ đa thức

Có rất nhiều cái hay trong đa thức và trên hết là cách chúng có thể được triển khai như một lớp Python. Chúng tôi muốn nói lời cảm ơn tới Drew Shanon, người đã cho phép chúng tôi sử dụng bức ảnh tuyệt vời của anh ấy, coi toán học là nghệ thuật

Đào tạo Python trực tiếp

Thưởng thức trang này?

Thấy. Tổng quan về các khóa học Python trực tiếp

đăng ký tại đây

Giới thiệu toán học ngắn

Ta sẽ chỉ xét đa thức một ẩn duy nhất (còn gọi là biến) x. Dạng tổng quát của đa thức trong một ẩn số duy nhất 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à hằng số - số nguyên không âm - và $x$ là biến không xác định. Thuật ngữ "không xác định" có nghĩa là $x$ không đại diện cho giá trị cụ thể nào, nhưng bất kỳ giá trị nào cũng 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} + \ldots + a_2 \cdot x

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

Hàm đa thức với Python

Thậ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 định nghĩa hàm đa thức được đưa ra trong phần giới thiệu của chương này, i. e. $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

def p(x): return x**4 - 4*x**2 + 3*x

Chúng ta có thể gọi hàm này giống như bất kỳ hàm nào khác

for x in [-1, 0, 2, 3.4]: print(x, p(x))

ĐẦU RA

-1 -6 0 0 2 6 3.4 97.59359999999998

import numpy as np import matplotlib.pyplot as plt X = np.linspace(-3, 3, 50, endpoint=True) F = p(X) plt.plot(X,F) plt.show()

Thưởng thức trang này?

Thấy. Tổng quan về các khóa học Python trực tiếp

Các khóa học trực tuyến sắp tới

Khóa học nâng cao chuyên sâu

Lập trình hướng đối tượng với Python

đăng ký tại đây

hạng đa thức

Bây giờ chúng ta sẽ định nghĩa một lớp cho các hàm đa thức. Chúng tôi sẽ xây dựng ý tưởng mà chúng tôi đã phát triển trong chương về trình trang trí của 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

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 ta cần một danh sách hoặc bộ dữ liệu để xác định các hệ số

class Polynomial: def __init__(self, *coefficients): """ input: coefficients are in the form a_n, ...a_1, a_0 """ self.coefficients = list(coefficients) # tuple is turned into a list def __repr__(self): """ method to return the canonical string representation of a polynomial. """ return "Polynomial" + str(tuple(self.coefficients))

Chúng ta có thể khởi tạo đa thức của hàm đa thức ví dụ trước như thế này

p = Polynomial(1, 0, -4, 3, 0) print(p) p2 = eval(repr(p)) print(p2)

ĐẦU RA

________số 8

Đã xác định biểu diễn chuỗi chính tắc của Đa thức bằng hàm repr, chúng tôi cũng muốn xác định đầu ra có thể được sử dụng để tạo 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 một cách đẹp mắt

class Polynomial: def __init__(self, *coefficients): """ input: coefficients are in the form a_n, ...a_1, a_0 """ self.coefficients = list(coefficients) # tuple is turned into a list def __repr__(self): """ method to return the canonical string representation of a polynomial. """ return "Polynomial" + str(tuple(self.coefficients)) def __str__(self): def x_expr(degree): if degree == 0: res = "" elif degree == 1: res = "x" else: res = "x^"+str(degree) return res degree = len(self.coefficients) - 1 res = "" for i in range(0, degree+1): coeff = self.coefficients[i] # nothing has to be done if coeff is 0: if abs(coeff) == 1 and i < degree: # 1 in front of x shouldn't occur, e.g. x instead of 1x # but we need the plus or minus sign: res += f"{'+' if coeff>0 else '-'}{x_expr(degree-i)}" elif coeff != 0: res += f"{coeff:+g}{x_expr(degree-i)}" return res.lstrip('+') # removing leading '+'

The polynomial equation for the given list of co-efficients is : 420

ĐẦU RA

The polynomial equation for the given list of co-efficients is : 421

Nếu chúng ta sử dụng cái này trong LaTeX thì nó sẽ 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 giờ, chúng ta đã định nghĩa các đa thức, nhưng điều chúng ta thực sự cần là các hàm đa thức. Với mục đích này, chúng tôi biến các thể hiện của lớp Đa thức thành các thể gọi được bằng cách xác định phương thức gọi

for x in [-1, 0, 2, 3.4]: print(x, p(x)) 0

Bây giờ có thể gọi một thể hiện của lớp chúng ta giống 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

Chủ đề