<SYSTEM_TASK:>
Given the following text description, write Python code to implement the functionality described below step by step
<END_TASK>
<USER_TASK:>
Description:
 表达式变换
sy.exp(sy.I*x).expand(complex=True) # 展开为复数, 可理解为将x当作复数处理     表达式展开 
sy.cos(x).series(x, 0, 10) #  .series(var, point, order)                 泰勒级数展开   
sy.simplify(expr)          # 对数学表达式进行化简                           化简
sy.radsimp(expr)           # 对表达式的分母进行有理化                       分母进行有理化
           它所得到的表达式的分母部分将不含无理数。即将表达式转换为分子除分母的形式。
sy.ratsimp(expr)           # 对表达式的分母进行通分运算                      通分运算 
sy.cancel(expr)           # 对表达式的分子分母进行约分运算                    约分运算
           只能对纯符号的分式表达式进行约分
           不能对函数内部的表达式进行约分，不能对带函数的表达式进行约分
sy.trim(expr)             # 对表达式的分子分母进行约分运算                   约分运算       
           可以对表达式中的任意部分进行约分，并且支持函数表达式的约分运算。
sy.apart(expr)            # 对表达式进行部分分式分解                        部分分式分解
sy.factor(expr)            # 对表达式进行因式分解                           因式分解
sy.together(1/x+1/y)       # 代数式的合并                                 代数式的合并
sy.trigsimp(expr)         # 对表达式中的三角函数进行化简                     三角函数化简 
           有两个可选参数——deep和recursive，默认值都为False。
              当deep参数为True时，将对表达式中所有子表达式进行化简运算
              当recursive参数为True时，将递归使用trigsimp()进行最大限度的化简
sy.expand_trig(expr)      # 展开三角函数                                   三角函数展开 
积分
Step1:  微分
Step2:  极限
Step3:  求和
Step4:  替换
expression.subs(x, y)   #          将算式中的x替换成y     替换
Step5:  expression.subs({x
Step6:  方程
方程构建
Step7:  sy.solve(方程,未知数)   # 方程求解 ,返回值为list     方程求解
                它的第一个参数是表示方程的表达式，其后的参数是表示方程中未知量的符号。
Step8:  sy.roots(expr)     # 计算单变量方程expr=0的根                                   方程求解
Step9:  可以对微分方程进行符号求解，它的第一个参数是一个带未知函数的表达式，第二个参数是需要进行求解的未知函数。
它在解微分方程中可以传递hint参数，指定微分方程的解法，若设置为“best”则放dsolve()尝试所有的方法并返回最简单的解。
<ASSISTANT_TASK:>
Python Code:
sy.integrate(6*x**5, x)   
sy.integrate(x**3, (x, 0, 10))          #定积分
sy.integrate(6*x**5+y, x,y)             #双重不定积分
sy.integrate(x**3+y, (x, -1, 1),(y,1,3) ) #双重定积分
Explanation: 表达式变换
sy.exp(sy.I*x).expand(complex=True) # 展开为复数, 可理解为将x当作复数处理     表达式展开 
sy.cos(x).series(x, 0, 10) #  .series(var, point, order)                 泰勒级数展开   
sy.simplify(expr)          # 对数学表达式进行化简                           化简
sy.radsimp(expr)           # 对表达式的分母进行有理化                       分母进行有理化
           它所得到的表达式的分母部分将不含无理数。即将表达式转换为分子除分母的形式。
sy.ratsimp(expr)           # 对表达式的分母进行通分运算                      通分运算 
sy.cancel(expr)           # 对表达式的分子分母进行约分运算                    约分运算
           只能对纯符号的分式表达式进行约分
           不能对函数内部的表达式进行约分，不能对带函数的表达式进行约分
sy.trim(expr)             # 对表达式的分子分母进行约分运算                   约分运算       
           可以对表达式中的任意部分进行约分，并且支持函数表达式的约分运算。
sy.apart(expr)            # 对表达式进行部分分式分解                        部分分式分解
sy.factor(expr)            # 对表达式进行因式分解                           因式分解
sy.together(1/x+1/y)       # 代数式的合并                                 代数式的合并
sy.trigsimp(expr)         # 对表达式中的三角函数进行化简                     三角函数化简 
           有两个可选参数——deep和recursive，默认值都为False。
              当deep参数为True时，将对表达式中所有子表达式进行化简运算
              当recursive参数为True时，将递归使用trigsimp()进行最大限度的化简
sy.expand_trig(expr)      # 展开三角函数                                   三角函数展开 
积分
End of explanation
print f(x).diff(x)
sy.diff(sy.sin(x), x)                                                #    解析微分
sy.diff(sy.sin(2*x), x, 2) # 高阶微分 diff(func, var, n)
sy.diff(sy.sin(x*y),x,2,y,3) # 对表达式进行x的2阶求导,对y进行3阶求导
sy.diff(sy.sin(2*x),x)
sy.sin(2*x).diff(x,1)
t=sy.Derivative(sy.sin(x),x)  
# Derivative是表示导函数的类，它的第一个参数是需要进行求导的数学函数，第二个参数是求导的自变量，
# 注意：Derivative所得到的是一个导函数，它不会进行求导运算。
Explanation: 微分
End of explanation
sy.limit(sy.sin(x)/x, x, 0)       # 极限
Explanation: 极限
End of explanation
sy.summation(2*x - 1, (x, 1, y))     #  连加求和
Explanation: 求和
End of explanation
(1 + x*y).subs(x, sy.pi)  
Explanation: 替换
expression.subs(x, y)   #          将算式中的x替换成y     替换
End of explanation
(1 + x*y).subs([(x, sy.pi), (y, 2)])
Explanation: expression.subs({x:y,u:v})        使用字典进行多次替换  
expression.subs([(x,y),(u,v)])    使用列表进行多次替换
End of explanation
# 用sy.Eq构建方程
u_max, rho_max, A, B = sy.symbols('u_max rho_max A B')     # 符号对象, 可限定 real = True , positive = True, complex = True , integer = True ...
eq1 = sy.Eq( 0, u_max*rho_max*(1 - A*rho_max-B*rho_max**2) )  # 一般方程
eq1 = sy.Eq(f(x).diff(x)+f(x)+f(x)**2,0)   # 微分方程
print eq1
Explanation: 方程
方程构建: 任何表达式都可以直接表示值为0的方程,即表达式 expr 也是方程 expr=0
End of explanation
sy.solve(eq1,x)
sy.solveset(sy.sin(x)+x,x) # 即对 sy.sin(x)+x=0 求解
Explanation: sy.solve(方程,未知数)   # 方程求解 ,返回值为list     方程求解
                它的第一个参数是表示方程的表达式，其后的参数是表示方程中未知量的符号。
End of explanation
sy.dsolve(eq1,f(x))  # 微分方程求解                                            微分方程求解
Explanation: sy.roots(expr)     # 计算单变量方程expr=0的根                                   方程求解
End of explanation
from sympy.utilities.lambdify import lambdify
 lambdify([x],f(x),modules="numpy") # 第一个参数为自变量列表
sy.N(sy.pi,20)
sy.pi.evalf(n=50)
i=sy.Symbol('i')
f = sy.Sum(sy.Indexed('x',i)*sy.cos(i*sy.pi),(i,1,10))  
f
func = lambdify(x, f, 'numpy') # returns a numpy-ready function
print func
numpy_array_of_results = func(y)
numpy_array_of_results 
Explanation: 可以对微分方程进行符号求解，它的第一个参数是一个带未知函数的表达式，第二个参数是需要进行求解的未知函数。
它在解微分方程中可以传递hint参数，指定微分方程的解法，若设置为“best”则放dsolve()尝试所有的方法并返回最简单的解。
End of explanation
<END_TASK>