Сравнение значений

#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_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) 
 

Может ли кто-нибудь понять, в чем проблема с этим, и дать мне хорошее решение для этого?