python求伽马函数 pythongamma函数( 三 )


expand((x + 1)**2)展开多项式 。
expand((x + 1)*(x - 2) - (x - 1)*x)
因式分解 。factor(x**2*z + 4*x*y*z + 4*y**2*z)得到z*(x + 2*y)**2
from_future_import division
x,y,z,t=symbols('x y z t')定义变量,
k, m, n = symbols('k m n', integer=True)定义三个整数变量 。
f, g, h = symbols('f g h', cls=Function)定义的类型为函数 。
factor_list(x**2*z + 4*x*y*z + 4*y**2*z)得到一个列表,表示因式的幂,(1, [(z, 1), (x + 2*y, 2)])
expand((cos(x) + sin(x))**2)展开多项式 。
expr = x*y + x - 3 + 2*x**2 - z*x**2 + x**3,collected_expr = collect(expr, x)将x合并 。将x元素按阶次整合 。
collected_expr.coeff(x, 2)直接取出变量collected_expr的x的二次幂的系数 。
cancel()is more efficient thanfactor().
cancel((x**2 + 2*x + 1)/(x**2 + x))
 , expr = (x*y**2 - 2*x*y*z + x*z**2 + y**2 - 2*y*z + z**2)/(x**2 - 1),cancel(expr)
expr = (4*x**3 + 21*x**2 + 10*x + 12)/(x**4 + 5*x**3 + 5*x**2 + 4*x) , apart(expr)
asin(1)
trigsimp(sin(x)**2 + cos(x)**2)三角函数表达式化简 , 
trigsimp(sin(x)**4 - 2*cos(x)**2*sin(x)**2 + cos(x)**4)
trigsimp(sin(x)*tan(x)/sec(x))
trigsimp(cosh(x)**2 + sinh(x)**2)双曲函数 。
三角函数展开,expand_trig(sin(x + y)),acos(x),cos(acos(x)) , expand_trig(tan(2*x))
x, y = symbols('x y', positive=True)正数,a, b = symbols('a b', real=True)实数,z, t, c = symbols('z t c')定义变量的方法 。
sqrt(x) == x**Rational(1, 2)判断是否相等 。
powsimp(x**a*x**b)幂函数的乘法,不同幂的乘法,必须先定义a和b 。powsimp(x**a*y**a)相同幂的乘法 。
powsimp(t**c*z**c),注意,powsimp()refuses to do the simplification if it is not valid.
powsimp(t**c*z**c, force=True)这样的话就可以得到化简过的式子 。声明强制进行化简 。
(z*t)**2,sqrt(x*y)
第一个展开expand_power_exp(x**(a + b)),expand_power_base((x*y)**a)展开,
expand_power_base((z*t)**c, force=True)强制展开 。
powdenest((x**a)**b) , powdenest((z**a)**b),powdenest((z**a)**b, force=True)
ln(x),x, y ,z= symbols('x y z', positive=True),n = symbols('n', real=True),
expand_log(log(x*y))展开为log(x) + log(y),但是python3没有 。这是因为需要将x定义为positive 。这是必须的,否则不会被展开 。expand_log(log(x/y)),expand_log(log(x**n))
As withpowsimp()andpowdenest(),expand_log()has aforceoption that can be used to ignore assumptions 。
expand_log(log(z**2), force=True),强制展开 。
logcombine(log(x) + log(y)),logcombine(n*log(x)),logcombine(n*log(z), force=True) 。
factorial(n)阶乘,binomial(n, k)等于c(n,k) , gamma(z)伽马函数 。
hyper([1, 2], [3], z),
tan(x).rewrite(sin)得到用正弦表示的正切 。factorial(x).rewrite(gamma)用伽马函数重写阶乘 。
expand_func(gamma(x + 3))得到,x*(x + 1)*(x + 2)*gamma(x) , 
hyperexpand(hyper([1, 1], [2], z)) , 
combsimp(factorial(n)/factorial(n - 3))化简,combsimp(binomial(n+1, k+1)/binomial(n, k))化简 。combsimp(gamma(x)*gamma(1 - x))
自定义函数
def list_to_frac(l):
expr = Integer(0)
for i in reversed(l[1:]):
expr += i
expr = 1/expr
return l[0] + expr
list_to_frac([x, y, z])结果为x + 1/z,这个结果是错误的 。
syms = symbols('a0:5'),定义syms,得到的结果为(a0, a1, a2, a3, a4) 。
这样也可以a0, a1, a2, a3, a4 = syms, 可能是我的操作错误。发现python和自动缩进有关,所以一定看好自动缩进的距离 。list_to_frac([1, 2, 3, 4])结果为43/30 。
使用cancel可以将生成的分式化简,frac = cancel(frac)化简为一个分数线的分式 。
(a0*a1*a2*a3*a4 + a0*a1*a2 + a0*a1*a4 + a0*a3*a4 + a0 + a2*a3*a4 + a2 + a4)/(a1*a2*a3*a4 + a1*a2 + a1*a4 + a3*a4 + 1)

推荐阅读