Để kiểm tra xem một dãy có thuộc loại này hay không, bạn có thể sử dụng phương thức
>>> f = Function['f'] >>> Sum[f[n], [n, 0, 3]].doit[] f[0] + f[1] + f[2] + f[3] >>> Sum[f[n], [n, 0, oo]].doit[] Sum[f[n], [n, 0, oo]] >>> f = IndexedBase['f'] >>> Sum[f[n]**2, [n, 0, 3]].doit[] f[0]**2 + f[1]**2 + f[2]**2 + f[3]**23 có sẵn trong lớp Cơ bản. Đây là ví dụ đơn giản liên quan đến một đa thức
>>> from sympy import * >>> n, k = symbols['n,k'] >>> [n**2 + 1].is_hypergeometric[n] True
Tất nhiên đa thức là siêu hình học nhưng có chuỗi nào phức tạp hơn loại này không?
>>> factorial[n].is_hypergeometric[n] True >>> binomial[n, k].is_hypergeometric[n] True >>> rf[n, k].is_hypergeometric[n] True >>> ff[n, k].is_hypergeometric[n] True >>> gamma[n].is_hypergeometric[n] True >>> [2**n].is_hypergeometric[n] True
Chúng tôi thấy rằng tất cả các loài được sử dụng trong tổng kết và các phần khác của toán học cụ thể đều là siêu hình học. Cũng lưu ý rằng các hệ số nhị thức và cả giai thừa tăng và giảm đều là siêu hình học trong cả hai đối số của chúng
>>> binomial[n, k].is_hypergeometric[k] True >>> rf[n, k].is_hypergeometric[k] True >>> ff[n, k].is_hypergeometric[k] True
Nói thêm, tất cả các ví dụ được hiển thị trước đó đều hợp lệ cho các đối số tuyến tính số nguyên
>>> factorial[2*n].is_hypergeometric[n] True >>> binomial[3*n+1, k].is_hypergeometric[n] True >>> rf[n+1, k-1].is_hypergeometric[n] True >>> ff[n-1, k+1].is_hypergeometric[n] True >>> gamma[5*n].is_hypergeometric[n] True >>> [2**[n-7]].is_hypergeometric[n] True
Tuy nhiên, các đối số phi tuyến tính làm cho các chuỗi đó không phải là siêu hình học
>>> factorial[n**2].is_hypergeometric[n] False >>> [2**[n**3 + 1]].is_hypergeometric[n] False
Nếu không chỉ cần kiến thức về siêu hình học hay không, bạn có thể sử dụng hàm
>>> f = Function['f'] >>> Sum[f[n], [n, 0, 3]].doit[] f[0] + f[1] + f[2] + f[3] >>> Sum[f[n], [n, 0, oo]].doit[] Sum[f[n], [n, 0, oo]] >>> f = IndexedBase['f'] >>> Sum[f[n]**2, [n, 0, 3]].doit[] f[0]**2 + f[1]**2 + f[2]**2 + f[3]**24. Nó sẽ cố gắng đơn giản hóa biểu thức tổ hợp và nếu thuật ngữ đã cho là siêu hình học, nó sẽ trả về một thương của các đa thức có bậc nhỏ nhất. Nếu không thì is sẽ trả về \[None\] để nói rằng dãy không phải là siêu hình học.
>>> hypersimp[factorial[2*n], n] 2*[n + 1]*[2*n + 1] >>> hypersimp[factorial[n**2], n]
Tham khảo lớp bê tông #
lớp sympy. bê tông. tổng kết. Tổng[hàm , *symbols, **assumptions][source]#Đại diện cho tổng kết chưa được đánh giá
Giải trình
>>> f = Function['f'] >>> Sum[f[n], [n, 0, 3]].doit[] f[0] + f[1] + f[2] + f[3] >>> Sum[f[n], [n, 0, oo]].doit[] Sum[f[n], [n, 0, oo]] >>> f = IndexedBase['f'] >>> Sum[f[n]**2, [n, 0, 3]].doit[] f[0]**2 + f[1]**2 + f[2]**2 + f[3]**25 đại diện cho một chuỗi hữu hạn hoặc vô hạn, với đối số đầu tiên là dạng tổng quát của các thuật ngữ trong chuỗi và đối số thứ hai là
>>> f = Function['f'] >>> Sum[f[n], [n, 0, 3]].doit[] f[0] + f[1] + f[2] + f[3] >>> Sum[f[n], [n, 0, oo]].doit[] Sum[f[n], [n, 0, oo]] >>> f = IndexedBase['f'] >>> Sum[f[n]**2, [n, 0, 3]].doit[] f[0]**2 + f[1]**2 + f[2]**2 + f[3]**26, với
>>> f = Function['f'] >>> Sum[f[n], [n, 0, 3]].doit[] f[0] + f[1] + f[2] + f[3] >>> Sum[f[n], [n, 0, oo]].doit[] Sum[f[n], [n, 0, oo]] >>> f = IndexedBase['f'] >>> Sum[f[n]**2, [n, 0, 3]].doit[] f[0]**2 + f[1]**2 + f[2]**2 + f[3]**27 lấy tất cả các giá trị nguyên từ
>>> f = Function['f'] >>> Sum[f[n], [n, 0, 3]].doit[] f[0] + f[1] + f[2] + f[3] >>> Sum[f[n], [n, 0, oo]].doit[] Sum[f[n], [n, 0, oo]] >>> f = IndexedBase['f'] >>> Sum[f[n]**2, [n, 0, 3]].doit[] f[0]**2 + f[1]**2 + f[2]**2 + f[3]**28 đến
>>> f = Function['f'] >>> Sum[f[n], [n, 0, 3]].doit[] f[0] + f[1] + f[2] + f[3] >>> Sum[f[n], [n, 0, oo]].doit[] Sum[f[n], [n, 0, oo]] >>> f = IndexedBase['f'] >>> Sum[f[n]**2, [n, 0, 3]].doit[] f[0]**2 + f[1]**2 + f[2]**2 + f[3]**29. Theo quy ước toán học lâu đời, thuật ngữ kết thúc được bao gồm trong tổng kết
Tổng hữu hạn
Đối với các tổng hữu hạn [và các tổng có giới hạn tượng trưng được giả định là hữu hạn], chúng ta tuân theo quy ước tổng được mô tả bởi Karr [1], đặc biệt là định nghĩa 3 của phần 1. 4. Tổng
\[\sum_{m \leq i < n} f[i]\]
có ý nghĩa rõ ràng cho \[m < n\] , cụ thể là.
\[\sum_{m \leq i < n} f[i] = f[m] + f[m+1] + \ldots + f[n-2] + f[n-1]\]
với giá trị giới hạn trên \[f[n]\] bị loại trừ. Tổng của một tập hợp rỗng bằng 0 khi và chỉ khi \[m = n\] .
\[\sum_{m \leq i < n} f[i] = 0 \quad \mathrm{for} \quad m = n\]
Cuối cùng, đối với tất cả các tổng khác trên các tập hợp rỗng, chúng ta giả sử định nghĩa sau
\[\sum_{m \leq i < n} f[i] = - \sum_{n \leq i < m} f[i] \quad \mathrm{for} \quad m > n\]
Điều quan trọng cần lưu ý là Karr xác định tất cả các khoản tiền với giới hạn trên là loại trừ. Điều này trái ngược với ký hiệu toán học thông thường, nhưng không ảnh hưởng đến quy ước tính tổng. Quả thực chúng ta có
\[\sum_{m \leq i < n} f[i] = \sum_{i = m}^{n - 1} f[i]\]
trong đó sự khác biệt trong ký hiệu là cố ý để nhấn mạnh ý nghĩa, với các giới hạn sắp chữ ở trên cùng là bao gồm
ví dụ
>>> from sympy import * >>> n, k = symbols['n,k'] >>> [n**2 + 1].is_hypergeometric[n] True3
Dưới đây là các ví dụ để thực hiện tổng kết với các chỉ số tượng trưng. Bạn có thể sử dụng Hàm của các lớp IndexedBase
>>> f = Function['f'] >>> Sum[f[n], [n, 0, 3]].doit[] f[0] + f[1] + f[2] + f[3] >>> Sum[f[n], [n, 0, oo]].doit[] Sum[f[n], [n, 0, oo]] >>> f = IndexedBase['f'] >>> Sum[f[n]**2, [n, 0, 3]].doit[] f[0]**2 + f[1]**2 + f[2]**2 + f[3]**2
Một ví dụ cho thấy rằng kết quả tượng trưng của phép tính tổng vẫn hợp lệ đối với các giá trị có vẻ vô nghĩa của các giới hạn. Sau đó, quy ước Karr cho phép chúng tôi đưa ra một giải thích hoàn toàn hợp lệ cho các tổng đó bằng cách hoán đổi các giới hạn theo các quy tắc trên
>>> from sympy import * >>> n, k = symbols['n,k'] >>> [n**2 + 1].is_hypergeometric[n] True5
Một ví dụ rõ ràng về quy ước tổng kết Karr
>>> from sympy import * >>> n, k = symbols['n,k'] >>> [n**2 + 1].is_hypergeometric[n] True6
Xem thêm
>>> from sympy import * >>> n, k = symbols['n,k'] >>> [n**2 + 1].is_hypergeometric[n] True50,
>>> from sympy import * >>> n, k = symbols['n,k'] >>> [n**2 + 1].is_hypergeometric[n] True51,
>>> from sympy import * >>> n, k = symbols['n,k'] >>> [n**2 + 1].is_hypergeometric[n] True52
Người giới thiệu
[ R87 ]
Michael Karr, “Tổng kết trong các thuật ngữ hữu hạn”, Tạp chí ACM, Tập 28 Số 2, tháng 4 năm 1981, Trang 305-350 http. //dl. cm. tổ chức/trích dẫn. cfm?doid=322248. 322255
[ R88 ]
https. // vi. wikipedia. org/wiki/Tổng kết#Capital-sigma_notation
[ R89 ]
https. // vi. wikipedia. org/wiki/Empty_sum
euler_maclaurin[m=0, n=0, eps=0, eval_integral=True][source]#Trả về một xấp xỉ Euler-Maclaurin của self, trong đó m là số lượng các số hạng đầu cần tính tổng trực tiếp và n là số lượng các số hạng ở đuôi
Với m = n = 0, đây đơn giản là tích phân tương ứng cộng với hiệu chỉnh điểm cuối cấp một
Trả về [s, e] trong đó s là xấp xỉ Euler-Maclaurin và e là sai số ước tính [được coi là độ lớn của số hạng bị bỏ qua đầu tiên ở đuôi]
>>> factorial[n].is_hypergeometric[n] True >>> binomial[n, k].is_hypergeometric[n] True >>> rf[n, k].is_hypergeometric[n] True >>> ff[n, k].is_hypergeometric[n] True >>> gamma[n].is_hypergeometric[n] True >>> [2**n].is_hypergeometric[n] True0
Các điểm cuối có thể là tượng trưng
>>> factorial[n].is_hypergeometric[n] True >>> binomial[n, k].is_hypergeometric[n] True >>> rf[n, k].is_hypergeometric[n] True >>> ff[n, k].is_hypergeometric[n] True >>> gamma[n].is_hypergeometric[n] True >>> [2**n].is_hypergeometric[n] True1
Nếu hàm là một đa thức bậc nhiều nhất là 2n+1, thì công thức Euler-Maclaurin trở nên chính xác [và e = 0 được trả về]
>>> factorial[n].is_hypergeometric[n] True >>> binomial[n, k].is_hypergeometric[n] True >>> rf[n, k].is_hypergeometric[n] True >>> ff[n, k].is_hypergeometric[n] True >>> gamma[n].is_hypergeometric[n] True >>> [2**n].is_hypergeometric[n] True2
Với một eps khác không được chỉ định, phép tính tổng kết thúc ngay khi số hạng còn lại nhỏ hơn epsilon
eval_zeta_function[f , giới hạn][source]#Kiểm tra xem hàm có khớp với hàm zeta không. Nếu khớp, thì trả về biểu thức \[Piecewise\] vì hàm zeta không hội tụ trừ khi \[s and \[q > 0\]
is_absolutely_convergent[][source] #>> factorial[n].is_hypergeometric[n] True >>> binomial[n, k].is_hypergeometric[n] True >>> rf[n, k].is_hypergeometric[n] True >>> ff[n, k].is_hypergeometric[n] True >>> gamma[n].is_hypergeometric[n] True >>> [2**n].is_hypergeometric[n] True 3Xem thêm
>>> from sympy import * >>> n, k = symbols['n,k'] >>> [n**2 + 1].is_hypergeometric[n] True53
Người giới thiệu
[ R90 ]
https. // vi. wikipedia. org/wiki/Absolute_convergence
is_convergent[][source] #>> factorial[n].is_hypergeometric[n] True >>> binomial[n, k].is_hypergeometric[n] True >>> rf[n, k].is_hypergeometric[n] True >>> ff[n, k].is_hypergeometric[n] True >>> gamma[n].is_hypergeometric[n] True >>> [2**n].is_hypergeometric[n] True 4Xem thêm
>>> from sympy import * >>> n, k = symbols['n,k'] >>> [n**2 + 1].is_hypergeometric[n] True54,
>>> from sympy import * >>> n, k = symbols['n,k'] >>> [n**2 + 1].is_hypergeometric[n] True55
Người giới thiệu
[ R91 ]
https. // vi. wikipedia. org/wiki/Convergence_tests
reverse_order[*chỉ số][source]#Đảo ngược thứ tự của một giới hạn trong Sum
Giải trình
>>> from sympy import * >>> n, k = symbols['n,k'] >>> [n**2 + 1].is_hypergeometric[n] True56 đảo ngược một số giới hạn trong biểu thức
>>> from sympy import * >>> n, k = symbols['n,k'] >>> [n**2 + 1].is_hypergeometric[n] True57 có thể là một
>>> f = Function['f'] >>> Sum[f[n], [n, 0, 3]].doit[] f[0] + f[1] + f[2] + f[3] >>> Sum[f[n], [n, 0, oo]].doit[] Sum[f[n], [n, 0, oo]] >>> f = IndexedBase['f'] >>> Sum[f[n]**2, [n, 0, 3]].doit[] f[0]**2 + f[1]**2 + f[2]**2 + f[3]**25 hoặc một
>>> from sympy import * >>> n, k = symbols['n,k'] >>> [n**2 + 1].is_hypergeometric[n] True51. Bộ chọn trong đối số
>>> from sympy import * >>> n, k = symbols['n,k'] >>> [n**2 + 1].is_hypergeometric[n] True60 chỉ định một số chỉ số có giới hạn bị đảo ngược. Các bộ chọn này là tên biến hoặc chỉ số số được tính bắt đầu từ bộ giới hạn bên trong nhất
ví dụ
>>> factorial[n].is_hypergeometric[n] True >>> binomial[n, k].is_hypergeometric[n] True >>> rf[n, k].is_hypergeometric[n] True >>> ff[n, k].is_hypergeometric[n] True >>> gamma[n].is_hypergeometric[n] True >>> [2**n].is_hypergeometric[n] True5
>>> factorial[n].is_hypergeometric[n] True >>> binomial[n, k].is_hypergeometric[n] True >>> rf[n, k].is_hypergeometric[n] True >>> ff[n, k].is_hypergeometric[n] True >>> gamma[n].is_hypergeometric[n] True >>> [2**n].is_hypergeometric[n] True6
Mặc dù người ta nên ưu tiên đặt tên biến khi chỉ định giới hạn nào cần đảo ngược, ký hiệu đếm chỉ mục có ích trong trường hợp có một số ký hiệu có cùng tên
>>> factorial[n].is_hypergeometric[n] True >>> binomial[n, k].is_hypergeometric[n] True >>> rf[n, k].is_hypergeometric[n] True >>> ff[n, k].is_hypergeometric[n] True >>> gamma[n].is_hypergeometric[n] True >>> [2**n].is_hypergeometric[n] True7
Tất nhiên chúng ta có thể kết hợp cả hai ký hiệu
>>> factorial[n].is_hypergeometric[n] True >>> binomial[n, k].is_hypergeometric[n] True >>> rf[n, k].is_hypergeometric[n] True >>> ff[n, k].is_hypergeometric[n] True >>> gamma[n].is_hypergeometric[n] True >>> [2**n].is_hypergeometric[n] True8
Xem thêm
>>> from sympy import * >>> n, k = symbols['n,k'] >>> [n**2 + 1].is_hypergeometric[n] True61,
>>> from sympy import * >>> n, k = symbols['n,k'] >>> [n**2 + 1].is_hypergeometric[n] True62,
>>> from sympy import * >>> n, k = symbols['n,k'] >>> [n**2 + 1].is_hypergeometric[n] True63
Người giới thiệu
[ R92 ]
Michael Karr, “Tổng kết trong các thuật ngữ hữu hạn”, Tạp chí ACM, Tập 28 Số 2, tháng 4 năm 1981, Trang 305-350 http. //dl. cm. tổ chức/trích dẫn. cfm?doid=322248. 322255
lớp sympy. bê tông. Mỹ phẩm. Sản phẩm[chức năng , *symbols, **assumptions][source]#Đại diện cho các sản phẩm chưa được đánh giá
Giải trình
>>> from sympy import * >>> n, k = symbols['n,k'] >>> [n**2 + 1].is_hypergeometric[n] True51 đại diện cho một sản phẩm hữu hạn hoặc vô hạn, với đối số đầu tiên là dạng tổng quát của các thuật ngữ trong chuỗi và đối số thứ hai là
>>> f = Function['f'] >>> Sum[f[n], [n, 0, 3]].doit[] f[0] + f[1] + f[2] + f[3] >>> Sum[f[n], [n, 0, oo]].doit[] Sum[f[n], [n, 0, oo]] >>> f = IndexedBase['f'] >>> Sum[f[n]**2, [n, 0, 3]].doit[] f[0]**2 + f[1]**2 + f[2]**2 + f[3]**26, với
>>> f = Function['f'] >>> Sum[f[n], [n, 0, 3]].doit[] f[0] + f[1] + f[2] + f[3] >>> Sum[f[n], [n, 0, oo]].doit[] Sum[f[n], [n, 0, oo]] >>> f = IndexedBase['f'] >>> Sum[f[n]**2, [n, 0, 3]].doit[] f[0]**2 + f[1]**2 + f[2]**2 + f[3]**27 lấy tất cả các giá trị nguyên từ
>>> f = Function['f'] >>> Sum[f[n], [n, 0, 3]].doit[] f[0] + f[1] + f[2] + f[3] >>> Sum[f[n], [n, 0, oo]].doit[] Sum[f[n], [n, 0, oo]] >>> f = IndexedBase['f'] >>> Sum[f[n]**2, [n, 0, 3]].doit[] f[0]**2 + f[1]**2 + f[2]**2 + f[3]**28 đến
>>> f = Function['f'] >>> Sum[f[n], [n, 0, 3]].doit[] f[0] + f[1] + f[2] + f[3] >>> Sum[f[n], [n, 0, oo]].doit[] Sum[f[n], [n, 0, oo]] >>> f = IndexedBase['f'] >>> Sum[f[n]**2, [n, 0, 3]].doit[] f[0]**2 + f[1]**2 + f[2]**2 + f[3]**29. Theo quy ước toán học lâu đời, thuật ngữ kết thúc được bao gồm trong sản phẩm
Sản phẩm hữu hạn
Đối với các tích hữu hạn [và các tích có giới hạn ký hiệu được coi là hữu hạn], chúng ta tuân theo quy ước tương tự của quy ước tổng được mô tả bởi Karr [1], đặc biệt là định nghĩa 3 của phần 1. 4. Sản phẩm
\[\prod_{m \leq i < n} f[i]\]
có ý nghĩa rõ ràng cho \[m < n\] , cụ thể là.
\[\prod_{m \leq i < n} f[i] = f[m] f[m+1] \cdot \ldots \cdot f[n-2] f[n-1]\]
với giá trị giới hạn trên \[f[n]\] bị loại trừ. Tích trên một tập hợp rỗng là một khi và chỉ khi \[m = n\] .
\[\prod_{m \leq i < n} f[i] = 1 \quad \mathrm{for} \quad m = n\]
Cuối cùng, đối với tất cả các sản phẩm khác trên các tập hợp rỗng, chúng tôi giả sử định nghĩa sau
\[\prod_{m \leq i < n} f[i] = \frac{1}{\prod_{n \leq i < m} f[i]} \quad \mathrm{for} \quad m > n
Điều quan trọng cần lưu ý là ở trên chúng tôi xác định tất cả các sản phẩm có giới hạn trên là độc quyền. Điều này trái ngược với ký hiệu toán học thông thường, nhưng không ảnh hưởng đến quy ước tích. Quả thực chúng ta có
\[\prod_{m \leq i < n} f[i] = \prod_{i = m}^{n - 1} f[i]\]
trong đó sự khác biệt trong ký hiệu là cố ý để nhấn mạnh ý nghĩa, với các giới hạn sắp chữ ở trên cùng là bao gồm
ví dụ
>>> factorial[n].is_hypergeometric[n] True >>> binomial[n, k].is_hypergeometric[n] True >>> rf[n, k].is_hypergeometric[n] True >>> ff[n, k].is_hypergeometric[n] True >>> gamma[n].is_hypergeometric[n] True >>> [2**n].is_hypergeometric[n] True9
Sản phẩm của Wallis cho số pi
>>> binomial[n, k].is_hypergeometric[k] True >>> rf[n, k].is_hypergeometric[k] True >>> ff[n, k].is_hypergeometric[k] True0
Tính toán trực tiếp hiện không thành công
>>> binomial[n, k].is_hypergeometric[k] True >>> rf[n, k].is_hypergeometric[k] True >>> ff[n, k].is_hypergeometric[k] True1
Nhưng ta có thể tiệm cận tích vô hạn bằng một giới hạn của tích hữu hạn
>>> binomial[n, k].is_hypergeometric[k] True >>> rf[n, k].is_hypergeometric[k] True >>> ff[n, k].is_hypergeometric[k] True2
Bằng công thức tương tự, chúng ta có thể tính sin[pi/2]
>>> binomial[n, k].is_hypergeometric[k] True >>> rf[n, k].is_hypergeometric[k] True >>> ff[n, k].is_hypergeometric[k] True3
Sản phẩm có giới hạn dưới lớn hơn giới hạn trên
>>> binomial[n, k].is_hypergeometric[k] True >>> rf[n, k].is_hypergeometric[k] True >>> ff[n, k].is_hypergeometric[k] True4
Sản phẩm rỗng
>>> binomial[n, k].is_hypergeometric[k] True >>> rf[n, k].is_hypergeometric[k] True >>> ff[n, k].is_hypergeometric[k] True5
Một ví dụ cho thấy rằng kết quả tượng trưng của một sản phẩm vẫn có giá trị đối với các giá trị giới hạn dường như vô nghĩa. Sau đó, quy ước Karr cho phép chúng tôi đưa ra cách giải thích hoàn toàn hợp lệ cho các sản phẩm đó bằng cách hoán đổi các giới hạn theo các quy tắc trên
>>> binomial[n, k].is_hypergeometric[k] True >>> rf[n, k].is_hypergeometric[k] True >>> ff[n, k].is_hypergeometric[k] True6
Một ví dụ rõ ràng về quy ước tổng Karr được áp dụng cho các sản phẩm
>>> binomial[n, k].is_hypergeometric[k] True >>> rf[n, k].is_hypergeometric[k] True >>> ff[n, k].is_hypergeometric[k] True7
Và một cái khác
>>> binomial[n, k].is_hypergeometric[k] True >>> rf[n, k].is_hypergeometric[k] True >>> ff[n, k].is_hypergeometric[k] True8
Xem thêm
>>> f = Function['f'] >>> Sum[f[n], [n, 0, 3]].doit[] f[0] + f[1] + f[2] + f[3] >>> Sum[f[n], [n, 0, oo]].doit[] Sum[f[n], [n, 0, oo]] >>> f = IndexedBase['f'] >>> Sum[f[n]**2, [n, 0, 3]].doit[] f[0]**2 + f[1]**2 + f[2]**2 + f[3]**25,
>>> from sympy import * >>> n, k = symbols['n,k'] >>> [n**2 + 1].is_hypergeometric[n] True50,
>>> factorial[n].is_hypergeometric[n] True >>> binomial[n, k].is_hypergeometric[n] True >>> rf[n, k].is_hypergeometric[n] True >>> ff[n, k].is_hypergeometric[n] True >>> gamma[n].is_hypergeometric[n] True >>> [2**n].is_hypergeometric[n] True01
Người giới thiệu
[ R93 ]
Michael Karr, “Tổng kết trong các thuật ngữ hữu hạn”, Tạp chí ACM, Tập 28 Số 2, tháng 4 năm 1981, Trang 305-350 http. //dl. cm. tổ chức/trích dẫn. cfm?doid=322248. 322255
[ R94 ]
https. // vi. wikipedia. org/wiki/Phép nhân#Capital_Pi_notation
[ R95 ]
https. // vi. wikipedia. org/wiki/Empty_product
is_convergent[][source] #>> factorial[n].is_hypergeometric[n] True >>> binomial[n, k].is_hypergeometric[n] True >>> rf[n, k].is_hypergeometric[n] True >>> ff[n, k].is_hypergeometric[n] True >>> gamma[n].is_hypergeometric[n] True >>> [2**n].is_hypergeometric[n] True 02 để biết giải thích về sự hội tụ trong SymPyGiải trình
Sản phẩm vô tận
\[\prod_{1 \leq i < \infty} f[i]\]
được xác định bởi chuỗi các sản phẩm một phần
\[\prod_{i=1}^{n} f[i] = f[1] f[2] \cdots f[n]\]
khi n tăng không giới hạn. Tích hội tụ đến một giá trị khác 0 khi và chỉ khi tổng
\[\sum_{1 \leq i < \infty} \log{f[n]}\]
hội tụ
ví dụ
>>> binomial[n, k].is_hypergeometric[k] True >>> rf[n, k].is_hypergeometric[k] True >>> ff[n, k].is_hypergeometric[k] True9
Người giới thiệu
[ R96 ]
https. // vi. wikipedia. org/wiki/Infinite_product
reverse_order[*chỉ số][source]#Đảo ngược thứ tự của một giới hạn trong Sản phẩm
Giải trình
>>> factorial[n].is_hypergeometric[n] True >>> binomial[n, k].is_hypergeometric[n] True >>> rf[n, k].is_hypergeometric[n] True >>> ff[n, k].is_hypergeometric[n] True >>> gamma[n].is_hypergeometric[n] True >>> [2**n].is_hypergeometric[n] True03 đảo ngược một số giới hạn trong biểu thức
>>> factorial[n].is_hypergeometric[n] True >>> binomial[n, k].is_hypergeometric[n] True >>> rf[n, k].is_hypergeometric[n] True >>> ff[n, k].is_hypergeometric[n] True >>> gamma[n].is_hypergeometric[n] True >>> [2**n].is_hypergeometric[n] True04 có thể là một
>>> f = Function['f'] >>> Sum[f[n], [n, 0, 3]].doit[] f[0] + f[1] + f[2] + f[3] >>> Sum[f[n], [n, 0, oo]].doit[] Sum[f[n], [n, 0, oo]] >>> f = IndexedBase['f'] >>> Sum[f[n]**2, [n, 0, 3]].doit[] f[0]**2 + f[1]**2 + f[2]**2 + f[3]**25 hoặc một
>>> from sympy import * >>> n, k = symbols['n,k'] >>> [n**2 + 1].is_hypergeometric[n] True51. Bộ chọn trong đối số
>>> from sympy import * >>> n, k = symbols['n,k'] >>> [n**2 + 1].is_hypergeometric[n] True60 chỉ định một số chỉ số có giới hạn bị đảo ngược. Các bộ chọn này là tên biến hoặc chỉ số số được tính bắt đầu từ bộ giới hạn bên trong nhất
ví dụ
>>> factorial[2*n].is_hypergeometric[n] True >>> binomial[3*n+1, k].is_hypergeometric[n] True >>> rf[n+1, k-1].is_hypergeometric[n] True >>> ff[n-1, k+1].is_hypergeometric[n] True >>> gamma[5*n].is_hypergeometric[n] True >>> [2**[n-7]].is_hypergeometric[n] True0
Mặc dù người ta nên ưu tiên đặt tên biến khi chỉ định giới hạn nào cần đảo ngược, ký hiệu đếm chỉ mục có ích trong trường hợp có một số ký hiệu có cùng tên
>>> factorial[2*n].is_hypergeometric[n] True >>> binomial[3*n+1, k].is_hypergeometric[n] True >>> rf[n+1, k-1].is_hypergeometric[n] True >>> ff[n-1, k+1].is_hypergeometric[n] True >>> gamma[5*n].is_hypergeometric[n] True >>> [2**[n-7]].is_hypergeometric[n] True1
Tất nhiên chúng ta có thể kết hợp cả hai ký hiệu
>>> factorial[n].is_hypergeometric[n] True >>> binomial[n, k].is_hypergeometric[n] True >>> rf[n, k].is_hypergeometric[n] True >>> ff[n, k].is_hypergeometric[n] True >>> gamma[n].is_hypergeometric[n] True >>> [2**n].is_hypergeometric[n] True8
Xem thêm
>>> from sympy import * >>> n, k = symbols['n,k'] >>> [n**2 + 1].is_hypergeometric[n] True61,
>>> from sympy import * >>> n, k = symbols['n,k'] >>> [n**2 + 1].is_hypergeometric[n] True62,
>>> from sympy import * >>> n, k = symbols['n,k'] >>> [n**2 + 1].is_hypergeometric[n] True63
Người giới thiệu
[ R97 ]
Michael Karr, “Tổng kết trong các thuật ngữ hữu hạn”, Tạp chí ACM, Tập 28 Số 2, tháng 4 năm 1981, Trang 305-350 http. //dl. cm. tổ chức/trích dẫn. cfm?doid=322248. 322255
lớp sympy. bê tông. expr_with_intlimits. ExprWithIntLimits[hàm , *symbols, **assumptions][source]#Siêu lớp cho Sản phẩm và Tổng
Xem thêm
>>> factorial[n].is_hypergeometric[n] True >>> binomial[n, k].is_hypergeometric[n] True >>> rf[n, k].is_hypergeometric[n] True >>> ff[n, k].is_hypergeometric[n] True >>> gamma[n].is_hypergeometric[n] True >>> [2**n].is_hypergeometric[n] True11,
>>> factorial[n].is_hypergeometric[n] True >>> binomial[n, k].is_hypergeometric[n] True >>> rf[n, k].is_hypergeometric[n] True >>> ff[n, k].is_hypergeometric[n] True >>> gamma[n].is_hypergeometric[n] True >>> [2**n].is_hypergeometric[n] True12,
>>> factorial[n].is_hypergeometric[n] True >>> binomial[n, k].is_hypergeometric[n] True >>> rf[n, k].is_hypergeometric[n] True >>> ff[n, k].is_hypergeometric[n] True >>> gamma[n].is_hypergeometric[n] True >>> [2**n].is_hypergeometric[n] True13change_index[var , trafo, newvar=None][source]#
Thay đổi chỉ mục của Tổng hoặc Sản phẩm
Thực hiện phép biến đổi tuyến tính \[x \mapsto a x + b\] trên biến chỉ mục . Đối với . For \[a\] giá trị duy nhất được phép là \[\pm 1\]. A new variable to be used after the change of index can also be specified.
Giải trình
>>> factorial[n].is_hypergeometric[n] True >>> binomial[n, k].is_hypergeometric[n] True >>> rf[n, k].is_hypergeometric[n] True >>> ff[n, k].is_hypergeometric[n] True >>> gamma[n].is_hypergeometric[n] True >>> [2**n].is_hypergeometric[n] True14 trong đó
>>> factorial[n].is_hypergeometric[n] True >>> binomial[n, k].is_hypergeometric[n] True >>> rf[n, k].is_hypergeometric[n] True >>> ff[n, k].is_hypergeometric[n] True >>> gamma[n].is_hypergeometric[n] True >>> [2**n].is_hypergeometric[n] True15 chỉ định biến chỉ mục \[x\] để chuyển đổi. Phép biến đổi
>>> factorial[n].is_hypergeometric[n] True >>> binomial[n, k].is_hypergeometric[n] True >>> rf[n, k].is_hypergeometric[n] True >>> ff[n, k].is_hypergeometric[n] True >>> gamma[n].is_hypergeometric[n] True >>> [2**n].is_hypergeometric[n] True16 phải tuyến tính và được cho dưới dạng
>>> factorial[n].is_hypergeometric[n] True >>> binomial[n, k].is_hypergeometric[n] True >>> rf[n, k].is_hypergeometric[n] True >>> ff[n, k].is_hypergeometric[n] True >>> gamma[n].is_hypergeometric[n] True >>> [2**n].is_hypergeometric[n] True15. Nếu đối số tùy chọn
>>> factorial[n].is_hypergeometric[n] True >>> binomial[n, k].is_hypergeometric[n] True >>> rf[n, k].is_hypergeometric[n] True >>> ff[n, k].is_hypergeometric[n] True >>> gamma[n].is_hypergeometric[n] True >>> [2**n].is_hypergeometric[n] True18 được cung cấp thì
>>> factorial[n].is_hypergeometric[n] True >>> binomial[n, k].is_hypergeometric[n] True >>> rf[n, k].is_hypergeometric[n] True >>> ff[n, k].is_hypergeometric[n] True >>> gamma[n].is_hypergeometric[n] True >>> [2**n].is_hypergeometric[n] True15 được thay thế bằng
>>> factorial[n].is_hypergeometric[n] True >>> binomial[n, k].is_hypergeometric[n] True >>> rf[n, k].is_hypergeometric[n] True >>> ff[n, k].is_hypergeometric[n] True >>> gamma[n].is_hypergeometric[n] True >>> [2**n].is_hypergeometric[n] True18 trong biểu thức cuối cùng.
ví dụ
>>> factorial[2*n].is_hypergeometric[n] True >>> binomial[3*n+1, k].is_hypergeometric[n] True >>> rf[n+1, k-1].is_hypergeometric[n] True >>> ff[n-1, k+1].is_hypergeometric[n] True >>> gamma[5*n].is_hypergeometric[n] True >>> [2**[n-7]].is_hypergeometric[n] True3
>>> factorial[2*n].is_hypergeometric[n] True >>> binomial[3*n+1, k].is_hypergeometric[n] True >>> rf[n+1, k-1].is_hypergeometric[n] True >>> ff[n-1, k+1].is_hypergeometric[n] True >>> gamma[5*n].is_hypergeometric[n] True >>> [2**[n-7]].is_hypergeometric[n] True4
>>> factorial[2*n].is_hypergeometric[n] True >>> binomial[3*n+1, k].is_hypergeometric[n] True >>> rf[n+1, k-1].is_hypergeometric[n] True >>> ff[n-1, k+1].is_hypergeometric[n] True >>> gamma[5*n].is_hypergeometric[n] True >>> [2**[n-7]].is_hypergeometric[n] True5
>>> factorial[2*n].is_hypergeometric[n] True >>> binomial[3*n+1, k].is_hypergeometric[n] True >>> rf[n+1, k-1].is_hypergeometric[n] True >>> ff[n-1, k+1].is_hypergeometric[n] True >>> gamma[5*n].is_hypergeometric[n] True >>> [2**[n-7]].is_hypergeometric[n] True6
>>> factorial[2*n].is_hypergeometric[n] True >>> binomial[3*n+1, k].is_hypergeometric[n] True >>> rf[n+1, k-1].is_hypergeometric[n] True >>> ff[n-1, k+1].is_hypergeometric[n] True >>> gamma[5*n].is_hypergeometric[n] True >>> [2**[n-7]].is_hypergeometric[n] True7
>>> factorial[2*n].is_hypergeometric[n] True >>> binomial[3*n+1, k].is_hypergeometric[n] True >>> rf[n+1, k-1].is_hypergeometric[n] True >>> ff[n-1, k+1].is_hypergeometric[n] True >>> gamma[5*n].is_hypergeometric[n] True >>> [2**[n-7]].is_hypergeometric[n] True8
>>> factorial[2*n].is_hypergeometric[n] True >>> binomial[3*n+1, k].is_hypergeometric[n] True >>> rf[n+1, k-1].is_hypergeometric[n] True >>> ff[n-1, k+1].is_hypergeometric[n] True >>> gamma[5*n].is_hypergeometric[n] True >>> [2**[n-7]].is_hypergeometric[n] True9
Khi chỉ xử lý các ký hiệu, chúng ta có thể thực hiện một phép biến đổi tuyến tính tổng quát
>>> factorial[n**2].is_hypergeometric[n] False >>> [2**[n**3 + 1]].is_hypergeometric[n] False0
Tuy nhiên, kết quả cuối cùng có thể không phù hợp với phép tính tổng thông thường khi chỉ số tăng dần luôn là 1. Điều này là hiển nhiên khi chúng ta chỉ lấy lại giá trị ban đầu cho
>>> factorial[n].is_hypergeometric[n] True >>> binomial[n, k].is_hypergeometric[n] True >>> rf[n, k].is_hypergeometric[n] True >>> ff[n, k].is_hypergeometric[n] True >>> gamma[n].is_hypergeometric[n] True >>> [2**n].is_hypergeometric[n] True21 bằng +1 hoặc -1
Xem thêm
>>> from sympy import * >>> n, k = symbols['n,k'] >>> [n**2 + 1].is_hypergeometric[n] True61,
>>> from sympy import * >>> n, k = symbols['n,k'] >>> [n**2 + 1].is_hypergeometric[n] True62,
>>> from sympy import * >>> n, k = symbols['n,k'] >>> [n**2 + 1].is_hypergeometric[n] True63,
>>> factorial[n].is_hypergeometric[n] True >>> binomial[n, k].is_hypergeometric[n] True >>> rf[n, k].is_hypergeometric[n] True >>> ff[n, k].is_hypergeometric[n] True >>> gamma[n].is_hypergeometric[n] True >>> [2**n].is_hypergeometric[n] True25,
>>> factorial[n].is_hypergeometric[n] True >>> binomial[n, k].is_hypergeometric[n] True >>> rf[n, k].is_hypergeometric[n] True >>> ff[n, k].is_hypergeometric[n] True >>> gamma[n].is_hypergeometric[n] True >>> [2**n].is_hypergeometric[n] True26thuộc tính has_empty_sequence #
Trả về True nếu Tổng hoặc Sản phẩm được tính cho một chuỗi trống
ví dụ
>>> factorial[n**2].is_hypergeometric[n] False >>> [2**[n**3 + 1]].is_hypergeometric[n] False1
>>> factorial[n**2].is_hypergeometric[n] False >>> [2**[n**3 + 1]].is_hypergeometric[n] False2
>>> factorial[n**2].is_hypergeometric[n] False >>> [2**[n**3 + 1]].is_hypergeometric[n] False3
>>> factorial[n**2].is_hypergeometric[n] False >>> [2**[n**3 + 1]].is_hypergeometric[n] False4
>>> factorial[n**2].is_hypergeometric[n] False >>> [2**[n**3 + 1]].is_hypergeometric[n] False5
>>> factorial[n**2].is_hypergeometric[n] False >>> [2**[n**3 + 1]].is_hypergeometric[n] False6
>>> factorial[n**2].is_hypergeometric[n] False >>> [2**[n**3 + 1]].is_hypergeometric[n] False7
Xem thêm
>>> factorial[n].is_hypergeometric[n] True >>> binomial[n, k].is_hypergeometric[n] True >>> rf[n, k].is_hypergeometric[n] True >>> ff[n, k].is_hypergeometric[n] True >>> gamma[n].is_hypergeometric[n] True >>> [2**n].is_hypergeometric[n] True27,
>>> factorial[n].is_hypergeometric[n] True >>> binomial[n, k].is_hypergeometric[n] True >>> rf[n, k].is_hypergeometric[n] True >>> ff[n, k].is_hypergeometric[n] True >>> gamma[n].is_hypergeometric[n] True >>> [2**n].is_hypergeometric[n] True28index[x][source]>> factorial[n].is_hypergeometric[n] True >>> binomial[n, k].is_hypergeometric[n] True >>> rf[n, k].is_hypergeometric[n] True >>> ff[n, k].is_hypergeometric[n] True >>> gamma[n].is_hypergeometric[n] True >>> [2**n].is_hypergeometric[n] True 29 trả về chỉ số của biến giả
>>> factorial[n].is_hypergeometric[n] True >>> binomial[n, k].is_hypergeometric[n] True >>> rf[n, k].is_hypergeometric[n] True >>> ff[n, k].is_hypergeometric[n] True >>> gamma[n].is_hypergeometric[n] True >>> [2**n].is_hypergeometric[n] True30 trong giới hạn của
>>> factorial[n].is_hypergeometric[n] True >>> binomial[n, k].is_hypergeometric[n] True >>> rf[n, k].is_hypergeometric[n] True >>> ff[n, k].is_hypergeometric[n] True >>> gamma[n].is_hypergeometric[n] True >>> [2**n].is_hypergeometric[n] True04. Lưu ý rằng chúng tôi bắt đầu đếm với 0 ở bộ giới hạn trong cùng nhất
ví dụ
>>> factorial[n**2].is_hypergeometric[n] False >>> [2**[n**3 + 1]].is_hypergeometric[n] False8
Xem thêm
>>> from sympy import * >>> n, k = symbols['n,k'] >>> [n**2 + 1].is_hypergeometric[n] True62,
>>> factorial[n].is_hypergeometric[n] True >>> binomial[n, k].is_hypergeometric[n] True >>> rf[n, k].is_hypergeometric[n] True >>> ff[n, k].is_hypergeometric[n] True >>> gamma[n].is_hypergeometric[n] True >>> [2**n].is_hypergeometric[n] True33,
>>> factorial[n].is_hypergeometric[n] True >>> binomial[n, k].is_hypergeometric[n] True >>> rf[n, k].is_hypergeometric[n] True >>> ff[n, k].is_hypergeometric[n] True >>> gamma[n].is_hypergeometric[n] True >>> [2**n].is_hypergeometric[n] True25,
>>> factorial[n].is_hypergeometric[n] True >>> binomial[n, k].is_hypergeometric[n] True >>> rf[n, k].is_hypergeometric[n] True >>> ff[n, k].is_hypergeometric[n] True >>> gamma[n].is_hypergeometric[n] True >>> [2**n].is_hypergeometric[n] True26sắp xếp lại[*arg][source]#
Sắp xếp lại các giới hạn trong một biểu thức có chứa Tổng hoặc Tích
Giải trình
>>> factorial[n].is_hypergeometric[n] True >>> binomial[n, k].is_hypergeometric[n] True >>> rf[n, k].is_hypergeometric[n] True >>> ff[n, k].is_hypergeometric[n] True >>> gamma[n].is_hypergeometric[n] True >>> [2**n].is_hypergeometric[n] True36 sắp xếp lại các giới hạn trong biểu thức
>>> factorial[n].is_hypergeometric[n] True >>> binomial[n, k].is_hypergeometric[n] True >>> rf[n, k].is_hypergeometric[n] True >>> ff[n, k].is_hypergeometric[n] True >>> gamma[n].is_hypergeometric[n] True >>> [2**n].is_hypergeometric[n] True04 theo danh sách các bộ được cung cấp bởi
>>> factorial[n].is_hypergeometric[n] True >>> binomial[n, k].is_hypergeometric[n] True >>> rf[n, k].is_hypergeometric[n] True >>> ff[n, k].is_hypergeometric[n] True >>> gamma[n].is_hypergeometric[n] True >>> [2**n].is_hypergeometric[n] True38. Các bộ dữ liệu này có thể chứa các chỉ mục số hoặc tên biến chỉ mục hoặc bao gồm cả hai
ví dụ
>>> factorial[n**2].is_hypergeometric[n] False >>> [2**[n**3 + 1]].is_hypergeometric[n] False9
>>> hypersimp[factorial[2*n], n] 2*[n + 1]*[2*n + 1] >>> hypersimp[factorial[n**2], n]0
>>> hypersimp[factorial[2*n], n] 2*[n + 1]*[2*n + 1] >>> hypersimp[factorial[n**2], n]1
>>> hypersimp[factorial[2*n], n] 2*[n + 1]*[2*n + 1] >>> hypersimp[factorial[n**2], n]2
Chúng ta cũng có thể chọn các biến chỉ mục bằng cách đếm chúng, bắt đầu với biến trong cùng
>>> hypersimp[factorial[2*n], n] 2*[n + 1]*[2*n + 1] >>> hypersimp[factorial[n**2], n]3
Và tất nhiên chúng ta có thể kết hợp cả hai kế hoạch
>>> hypersimp[factorial[2*n], n] 2*[n + 1]*[2*n + 1] >>> hypersimp[factorial[n**2], n]4
Xem thêm
>>> from sympy import * >>> n, k = symbols['n,k'] >>> [n**2 + 1].is_hypergeometric[n] True62,
>>> factorial[n].is_hypergeometric[n] True >>> binomial[n, k].is_hypergeometric[n] True >>> rf[n, k].is_hypergeometric[n] True >>> ff[n, k].is_hypergeometric[n] True >>> gamma[n].is_hypergeometric[n] True >>> [2**n].is_hypergeometric[n] True40,
>>> factorial[n].is_hypergeometric[n] True >>> binomial[n, k].is_hypergeometric[n] True >>> rf[n, k].is_hypergeometric[n] True >>> ff[n, k].is_hypergeometric[n] True >>> gamma[n].is_hypergeometric[n] True >>> [2**n].is_hypergeometric[n] True25,
>>> factorial[n].is_hypergeometric[n] True >>> binomial[n, k].is_hypergeometric[n] True >>> rf[n, k].is_hypergeometric[n] True >>> ff[n, k].is_hypergeometric[n] True >>> gamma[n].is_hypergeometric[n] True >>> [2**n].is_hypergeometric[n] True26reorder_limit[x , y][source]#
Hoán đổi hai bộ giới hạn của biểu thức Tổng hoặc Tích
Giải trình
>>> factorial[n].is_hypergeometric[n] True >>> binomial[n, k].is_hypergeometric[n] True >>> rf[n, k].is_hypergeometric[n] True >>> ff[n, k].is_hypergeometric[n] True >>> gamma[n].is_hypergeometric[n] True >>> [2**n].is_hypergeometric[n] True43 trao đổi hai bộ giới hạn. Các đối số
>>> factorial[n].is_hypergeometric[n] True >>> binomial[n, k].is_hypergeometric[n] True >>> rf[n, k].is_hypergeometric[n] True >>> ff[n, k].is_hypergeometric[n] True >>> gamma[n].is_hypergeometric[n] True >>> [2**n].is_hypergeometric[n] True30 và
>>> factorial[n].is_hypergeometric[n] True >>> binomial[n, k].is_hypergeometric[n] True >>> rf[n, k].is_hypergeometric[n] True >>> ff[n, k].is_hypergeometric[n] True >>> gamma[n].is_hypergeometric[n] True >>> [2**n].is_hypergeometric[n] True45 là các số nguyên tương ứng với các biến chỉ số của hai giới hạn sẽ được hoán đổi cho nhau. Biểu thức
>>> factorial[n].is_hypergeometric[n] True >>> binomial[n, k].is_hypergeometric[n] True >>> rf[n, k].is_hypergeometric[n] True >>> ff[n, k].is_hypergeometric[n] True >>> gamma[n].is_hypergeometric[n] True >>> [2**n].is_hypergeometric[n] True04 phải là Tổng hoặc Tích
ví dụ
>>> hypersimp[factorial[2*n], n] 2*[n + 1]*[2*n + 1] >>> hypersimp[factorial[n**2], n]5
>>> hypersimp[factorial[2*n], n] 2*[n + 1]*[2*n + 1] >>> hypersimp[factorial[n**2], n]6
>>> hypersimp[factorial[2*n], n] 2*[n + 1]*[2*n + 1] >>> hypersimp[factorial[n**2], n]7
Xem thêm
>>> factorial[n].is_hypergeometric[n] True >>> binomial[n, k].is_hypergeometric[n] True >>> rf[n, k].is_hypergeometric[n] True >>> ff[n, k].is_hypergeometric[n] True >>> gamma[n].is_hypergeometric[n] True >>> [2**n].is_hypergeometric[n] True40,
>>> factorial[n].is_hypergeometric[n] True >>> binomial[n, k].is_hypergeometric[n] True >>> rf[n, k].is_hypergeometric[n] True >>> ff[n, k].is_hypergeometric[n] True >>> gamma[n].is_hypergeometric[n] True >>> [2**n].is_hypergeometric[n] True33,
>>> factorial[n].is_hypergeometric[n] True >>> binomial[n, k].is_hypergeometric[n] True >>> rf[n, k].is_hypergeometric[n] True >>> ff[n, k].is_hypergeometric[n] True >>> gamma[n].is_hypergeometric[n] True >>> [2**n].is_hypergeometric[n] True25,
>>> factorial[n].is_hypergeometric[n] True >>> binomial[n, k].is_hypergeometric[n] True >>> rf[n, k].is_hypergeometric[n] True >>> ff[n, k].is_hypergeometric[n] True >>> gamma[n].is_hypergeometric[n] True >>> [2**n].is_hypergeometric[n] True26
Chức năng cụ thể Tham khảo #
sympy. bê tông. tổng kết. tổng[f , *symbols, **kwargs][source]#Tính tổng của f đối với các ký hiệu
Giải trình
Ký hiệu cho các ký hiệu tương tự như ký hiệu được sử dụng trong Tích phân. summation[f, [i, a, b]] tính tổng của f đối với i từ a đến b, i. e. ,
>>> hypersimp[factorial[2*n], n] 2*[n + 1]*[2*n + 1] >>> hypersimp[factorial[n**2], n]8
Nếu nó không thể tính tổng, nó sẽ trả về một đối tượng Sum chưa được đánh giá. Các tổng lặp lại có thể được tính bằng cách đưa vào các bộ ký hiệu bổ sung
>>> hypersimp[factorial[2*n], n] 2*[n + 1]*[2*n + 1] >>> hypersimp[factorial[n**2], n]9
>>> from sympy import * >>> n, k = symbols['n,k'] >>> [n**2 + 1].is_hypergeometric[n] True30
>>> from sympy import * >>> n, k = symbols['n,k'] >>> [n**2 + 1].is_hypergeometric[n] True31
>>> from sympy import * >>> n, k = symbols['n,k'] >>> [n**2 + 1].is_hypergeometric[n] True32
Xem thêm
>>> f = Function['f'] >>> Sum[f[n], [n, 0, 3]].doit[] f[0] + f[1] + f[2] + f[3] >>> Sum[f[n], [n, 0, oo]].doit[] Sum[f[n], [n, 0, oo]] >>> f = IndexedBase['f'] >>> Sum[f[n]**2, [n, 0, 3]].doit[] f[0]**2 + f[1]**2 + f[2]**2 + f[3]**25,
>>> from sympy import * >>> n, k = symbols['n,k'] >>> [n**2 + 1].is_hypergeometric[n] True51,
>>> from sympy import * >>> n, k = symbols['n,k'] >>> [n**2 + 1].is_hypergeometric[n] True52sympy. bê tông. Mỹ phẩm. sản phẩm[*đối số , **kwargs][source]#
tính sản phẩm
Giải trình
Ký hiệu cho các ký hiệu tương tự như ký hiệu được sử dụng trong Tổng hoặc Tích phân. product[f, [i, a, b]] tính tích của f đối với i từ a đến b, i. e. ,
>>> from sympy import * >>> n, k = symbols['n,k'] >>> [n**2 + 1].is_hypergeometric[n] True33
Nếu nó không thể tính toán sản phẩm, nó sẽ trả về một đối tượng Sản phẩm chưa được đánh giá. Các sản phẩm lặp lại có thể được tính toán bằng cách đưa vào các bộ ký hiệu bổ sung
>>> hypersimp[factorial[2*n], n] 2*[n + 1]*[2*n + 1] >>> hypersimp[factorial[n**2], n]9
>>> from sympy import * >>> n, k = symbols['n,k'] >>> [n**2 + 1].is_hypergeometric[n] True35
>>> from sympy import * >>> n, k = symbols['n,k'] >>> [n**2 + 1].is_hypergeometric[n] True36sympy. bê tông. ngỗng cái. gosper_normal[f , g, n, polys=True][source]#
Tính dạng chuẩn của Gosper của
>>> factorial[n].is_hypergeometric[n] True >>> binomial[n, k].is_hypergeometric[n] True >>> rf[n, k].is_hypergeometric[n] True >>> ff[n, k].is_hypergeometric[n] True >>> gamma[n].is_hypergeometric[n] True >>> [2**n].is_hypergeometric[n] True54 và
>>> factorial[n].is_hypergeometric[n] True >>> binomial[n, k].is_hypergeometric[n] True >>> rf[n, k].is_hypergeometric[n] True >>> ff[n, k].is_hypergeometric[n] True >>> gamma[n].is_hypergeometric[n] True >>> [2**n].is_hypergeometric[n] True55
Giải trình
Cho các đa thức một biến nguyên tố tương đối
>>> factorial[n].is_hypergeometric[n] True >>> binomial[n, k].is_hypergeometric[n] True >>> rf[n, k].is_hypergeometric[n] True >>> ff[n, k].is_hypergeometric[n] True >>> gamma[n].is_hypergeometric[n] True >>> [2**n].is_hypergeometric[n] True54 và
>>> factorial[n].is_hypergeometric[n] True >>> binomial[n, k].is_hypergeometric[n] True >>> rf[n, k].is_hypergeometric[n] True >>> ff[n, k].is_hypergeometric[n] True >>> gamma[n].is_hypergeometric[n] True >>> [2**n].is_hypergeometric[n] True55, hãy viết lại thương của chúng thành dạng chuẩn tắc được định nghĩa như sau
\[\frac{f[n]}{g[n]} = Z \cdot \frac{A[n] C[n+1]}{B[n] C[n]}\]
trong đó
>>> factorial[n].is_hypergeometric[n] True >>> binomial[n, k].is_hypergeometric[n] True >>> rf[n, k].is_hypergeometric[n] True >>> ff[n, k].is_hypergeometric[n] True >>> gamma[n].is_hypergeometric[n] True >>> [2**n].is_hypergeometric[n] True58 là một hằng số tùy ý và
>>> factorial[n].is_hypergeometric[n] True >>> binomial[n, k].is_hypergeometric[n] True >>> rf[n, k].is_hypergeometric[n] True >>> ff[n, k].is_hypergeometric[n] True >>> gamma[n].is_hypergeometric[n] True >>> [2**n].is_hypergeometric[n] True59,
>>> factorial[n].is_hypergeometric[n] True >>> binomial[n, k].is_hypergeometric[n] True >>> rf[n, k].is_hypergeometric[n] True >>> ff[n, k].is_hypergeometric[n] True >>> gamma[n].is_hypergeometric[n] True >>> [2**n].is_hypergeometric[n] True60,
>>> factorial[n].is_hypergeometric[n] True >>> binomial[n, k].is_hypergeometric[n] True >>> rf[n, k].is_hypergeometric[n] True >>> ff[n, k].is_hypergeometric[n] True >>> gamma[n].is_hypergeometric[n] True >>> [2**n].is_hypergeometric[n] True61 là các đa thức monic trong
>>> factorial[n].is_hypergeometric[n] True >>> binomial[n, k].is_hypergeometric[n] True >>> rf[n, k].is_hypergeometric[n] True >>> ff[n, k].is_hypergeometric[n] True >>> gamma[n].is_hypergeometric[n] True >>> [2**n].is_hypergeometric[n] True62 với các tính chất sau
\[\gcd[A[n], B[n+h]] = 1 \forall h \in \mathbb{N}\]
\[\gcd[B[n], C[n+1]] = 1\]
\[\gcd[A[n], C[n]] = 1\]
Dạng chuẩn này, hay nói cách khác là phân tích thừa số hữu tỷ, là một bước quan trọng trong thuật toán Gosper và trong việc giải các phương trình sai phân. Nó cũng có thể được sử dụng để quyết định xem hai thuật ngữ siêu hình học có giống nhau hay không
Thủ tục này sẽ trả về một bộ chứa các phần tử của phân tích thừa số này ở dạng
>>> factorial[n].is_hypergeometric[n] True >>> binomial[n, k].is_hypergeometric[n] True >>> rf[n, k].is_hypergeometric[n] True >>> ff[n, k].is_hypergeometric[n] True >>> gamma[n].is_hypergeometric[n] True >>> [2**n].is_hypergeometric[n] True63
ví dụ
>>> from sympy import * >>> n, k = symbols['n,k'] >>> [n**2 + 1].is_hypergeometric[n] True37
>>> from sympy import * >>> n, k = symbols['n,k'] >>> [n**2 + 1].is_hypergeometric[n] True38sympy. bê tông. ngỗng cái. gosper_term[f , n][source]#
Tính toán thuật ngữ siêu hình học của Gosper cho
>>> factorial[n].is_hypergeometric[n] True >>> binomial[n, k].is_hypergeometric[n] True >>> rf[n, k].is_hypergeometric[n] True >>> ff[n, k].is_hypergeometric[n] True >>> gamma[n].is_hypergeometric[n] True >>> [2**n].is_hypergeometric[n] True54
Giải trình
Giả sử
>>> factorial[n].is_hypergeometric[n] True >>> binomial[n, k].is_hypergeometric[n] True >>> rf[n, k].is_hypergeometric[n] True >>> ff[n, k].is_hypergeometric[n] True >>> gamma[n].is_hypergeometric[n] True >>> [2**n].is_hypergeometric[n] True54 là một số hạng siêu hình học sao cho
\[s_n = \sum_{k=0}^{n-1} f_k\]
và \[f_k\] không phụ thuộc vào \[n\]. Returns a hypergeometric term \[g_n\] sao cho \[g_{n+1} - g_n = f_n . .
ví dụ
>>> from sympy import * >>> n, k = symbols['n,k'] >>> [n**2 + 1].is_hypergeometric[n] True39
>>> f = Function['f'] >>> Sum[f[n], [n, 0, 3]].doit[] f[0] + f[1] + f[2] + f[3] >>> Sum[f[n], [n, 0, oo]].doit[] Sum[f[n], [n, 0, oo]] >>> f = IndexedBase['f'] >>> Sum[f[n]**2, [n, 0, 3]].doit[] f[0]**2 + f[1]**2 + f[2]**2 + f[3]**20sympy. bê tông. ngỗng cái. gosper_sum[f , k][source]#
Thuật toán tổng kết siêu hình học của Gosper
Giải trình
Cho một số hạng siêu hình học
>>> factorial[n].is_hypergeometric[n] True >>> binomial[n, k].is_hypergeometric[n] True >>> rf[n, k].is_hypergeometric[n] True >>> ff[n, k].is_hypergeometric[n] True >>> gamma[n].is_hypergeometric[n] True >>> [2**n].is_hypergeometric[n] True54 sao cho
\[s_n = \sum_{k=0}^{n-1} f_k\]
và \[f[n]\] không phụ thuộc vào \[n\] . , returns \[g_{n} - g[0]\] where \[g_{n+1} - g_n = f_n\], or
>>> factorial[n].is_hypergeometric[n] True >>> binomial[n, k].is_hypergeometric[n] True >>> rf[n, k].is_hypergeometric[n] True >>> ff[n, k].is_hypergeometric[n] True >>> gamma[n].is_hypergeometric[n] True >>> [2**n].is_hypergeometric[n] True67 if \[s_n\] cannot be expressed in closed form as a sum of hypergeometric terms.
ví dụ
>>> f = Function['f'] >>> Sum[f[n], [n, 0, 3]].doit[] f[0] + f[1] + f[2] + f[3] >>> Sum[f[n], [n, 0, oo]].doit[] Sum[f[n], [n, 0, oo]] >>> f = IndexedBase['f'] >>> Sum[f[n]**2, [n, 0, 3]].doit[] f[0]**2 + f[1]**2 + f[2]**2 + f[3]**21
>>> f = Function['f'] >>> Sum[f[n], [n, 0, 3]].doit[] f[0] + f[1] + f[2] + f[3] >>> Sum[f[n], [n, 0, oo]].doit[] Sum[f[n], [n, 0, oo]] >>> f = IndexedBase['f'] >>> Sum[f[n]**2, [n, 0, 3]].doit[] f[0]**2 + f[1]**2 + f[2]**2 + f[3]**22
Người giới thiệu
[ R98 ]
Marko Petkovsek, Herbert S. Wilf, Doron Zeilberger, A = B, AK Peters, Ltd. , Wellesley, MA, USA, 1997, trang. 73–100