3.4 基础数学
3.4.1 化简
使用simplify()函数可以对表达式进行化简,simplify()函数以字符表达式类型作为传入参数,以SymPy表达式类型返回表达式的化简结果。
例:化简多项式
[]:expr=(x**3 + x**2 - x - 1)/(x**2 + 2*x + 1)
simplify(expr)
[]:
3.4.2 展开
多项式展开
使用expand()函数可以对多项式进行展开,expand()函数以多项式类型作为传入参数,以SymPy表达式类型返回多项式的化简结果。
例:展开多项式
>>> []:expr=(1+2\*x+4\*y)\*\*3
>>> expand(expr)
[]:
三角展开
使用expand_trig()函数可以对三角多项式进行展开,expand_trig()函数以三角多项式类型作为传入参数,以SymPy表达式类型返回多项式的化简结果。
例:对多项式进行三角展开
[]:expr=sin(2*x)+cos(2*x)
expand_trig(expr)
[]:
3.4.3 因式分解
使用factor()函数可以对符号表达式进行因式分解,factor()函数以字符表达式类型作为传入参数,以字符表达式类型返回因式分解结果。
例:对多项式进行因式分解
[]:expr=x**3-x**2+x-1
factor(expr)
[]:
3.4.4 合并同类项
使用collect()函数可以对符号表达式进行同类项合并,collect()函数以字符表达式类型作为传入参数,以字符表达式类型返回同类项合并结果结果。使用expr.collect.coeff(expr, n)可以返回前的系数。
例:对多项式进行因式分解
[]:expr = x\*y + x - 3 + 2\*x\*\*2 - z\*x\*\*2 + x\*\*3
collected_expr=collect(expr, x)
collected_expr
[]:
[]:collected\_expr.coeff(x,2)
[]:
3.4.5 解一元方程
使用solveset()函数可以对一元方程进行求解,solveset()函数以字符表达式类型作为传入参数,以集合类型返回一元方程的解。
例:解一元方程
[]:solveset((x+1)\*(x+3)-15, x)
[]:
Eq()函数用来创建一个等式,eq()函数接受两个参数,分别为等号的左右两侧数学表达式。
[]:Equ=Eq((x+1)*(x+3), 15)
solveset(Equ, x)
[]:
3.4.6 解方程组
线性系统
使用linsolve()函数可以对线性系统方程组进行求解。
linsolve()函数的用法如下:
sympy.solvers.solveset.linsolve(system, \*symbols)
其中system代之线性系统也即需要解的线性方程组。*symbols为需要求解的变量。求解结果以集合的形式给出。
例:求解线性系统$$\begin{cases} 3x + 2y + z & = 39 \ 2x + 3y + z & = 34 \ x + 2y + 3z & = 26 \end{cases}
[]:reduce_abs_inequalities([(Abs(3*x - 5) - 7, '<'),
... (Abs(x + 25) - 13, '>')], x)
[]:
例:化简
[]:reduce\_abs_inequalities([(Abs(x - 4) + Abs(3\*x - 5) - 7, '\<')], x)
[]:
Last updated
Was this helpful?