python算幂函数 python中幂运算运算符( 二 )


三角函数展开 , 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)
a0, a1, a2, a3, a4 = syms定义a0到a4,frac = apart(frac, a0)可将a0提出来 。frac=1/(frac-a0)将a0去掉取倒 。frac = apart(frac, a1)提出a1 。
help("modules"),模块的含义,help("modules yourstr")模块中包含的字符串的意思 。 , 
help("topics"),import os.path + help("os.path"),help("list"),help("open")
# -*- coding: UTF-8 -*-声明之后就可以在ide中使用中文注释 。
定义
l = list(symbols('a0:5'))定义列表得到[a0, a1, a2, a3, a4]
fromsympyimport*
x,y,z=symbols('x y z')
init_printing(use_unicode=True)
diff(cos(x),x)求导 。diff(exp(x**2), x),diff(x**4, x, x, x)和diff(x**4, x, 3)等价 。
diff(expr, x, y, 2, z, 4)求出表达式的y的2阶,z的4阶,x的1阶导数 。和diff(expr, x, y, y, z, 4)等价 。expr.diff(x, y, y, z, 4)一步到位 。deriv = Derivative(expr, x, y, y, z, 4)求偏导 。但是不显示 。之后用deriv.doit()即可显示
integrate(cos(x), x)积分 。定积分integrate(exp(-x), (x, 0, oo))无穷大用2个oo表示 。integrate(exp(-x**2-y**2),(x,-oo,oo),(y,-oo,oo))二重积分 。print(expr)print的使用 。

推荐阅读