Recursion 价值比较
我正在使用python 3.7。我试图将两个函数Recursion 价值比较,recursion,sympy,python-3.7,Recursion,Sympy,Python 3.7,我正在使用python 3.7。我试图将两个函数m(I,k)和m(I,k)生成的值制成表格并进行比较,其中m(I,k)是m(I,k)递归方程的闭式解(包含嵌套双和)。问题是M(i,k)生成了一个汇合的超几何函数2F1(1,4,2,0.000034*10^(-6)),并且没有进一步对其求值以获得可比的结果。这里给出了我的完整代码 import numpy as np from sympy.interactive import printing printing.init_printing(use
m(I,k)
和m(I,k)
生成的值制成表格并进行比较,其中m(I,k)
是m(I,k)
递归方程的闭式解(包含嵌套双和)。问题是M(i,k)
生成了一个汇合的超几何函数2F1(1,4,2,0.000034*10^(-6))
,并且没有进一步对其求值以获得可比的结果。这里给出了我的完整代码
import numpy as np
from sympy.interactive import printing
printing.init_printing(use_latex=True)
import sympy as sp
from sympy import summation, product, symbols, solve, Function, Sum, Product, rsolve, binomial, factorial
from sympy import *
from sympy.stats import Hypergeometric
n, k, j, l, i = symbols('n k j l i',integer=True)
a, b, c, eps, alpha, u = symbols( 'a b c epsilon alpha u')
u = 10**(-6)
eps = 0.85
alpha = u + eps
a = u/(2 * alpha - 1)
b = 2 * eps * (2 * alpha - u)/(2 * alpha - 1)
c = 2 * eps * (1 - u)/(2 * alpha - 1)
from sympy.abc import n
def m(i,k):
if k==0:
return (alpha/(2*eps))*(2*eps/(2*alpha - 1))**i
return a*(m(i,k-1)+b*summation(c**(i - l - 1) * m(l, k-1),(l, 1, i-1)))
k=3
for i in range(1,10):
h=cancel(m(i,k))
display(h)
#Solution
def M(i, k):
if k==0:
return alpha * (2 * eps)**(i - 1) / (2 * alpha - 1)**i
return (alpha * u**(k-1) * (2 * eps)**(i-1) / (2 * alpha - 1)**(i + k)) * \
((2 * alpha)**k / u**(k-1) - summation( (2 * alpha - u)**j * (1 - u)**(i - j) * binomial(i-1, j-1) *\
summation(binomial(l+j-2, j-1)*(2 * alpha / u)**(k-l-j+1),(l, 1, k-j+1)) ,(j, 1, k)) )
for i in range(1,10):
p = cancel(M(i,k))
display(p)
有谁能找出这有什么问题并给我一个很好的解决方案吗