[TOC]
本部分通过Python的SymPy库来实现科学计算,并对QQ读取进来的字符串进行了处理,因此理论上能够通过QQ消息实现所有的SymPy库功能,并且通过机器人的文字消息或图片消息返回结果。
本文档列出了一些经过详细测试的、基本的功能。
查看SymPy文档以了解可调用的全部功能。
sympy
# 注释
a = cos(pi)
show([a])
play
以文字消息输出结果,输入参数为变量表达式。
- 单变量:
show(单变量)
- 多变量:
show([变量1,变量2,变量3])
最后一行输入play
命令,机器人会将结果通过LaTeX引擎渲染为图片并输出。
部分命令无法采用LaTeX进行渲染,则必须调用show()
以文本形式输出。
参数 | 数据类型 | 默认值 | 说明 |
---|---|---|---|
expression |
字符串 | - | 变量表达式 |
-
变量名要求为单个字母
-
支持希腊字母(以英文拼写)和数学常数
# 变量名=Symbol(‘变量表达式’)
a = Symbol(‘alpha ** 2’)
x = Symbol(‘x’)
参数 | 数据类型 | 默认值 | 说明 |
---|---|---|---|
expression |
符号表达式 | - | 变量表达式 |
- 参数写在最前面
- 通过点号与函数进行连接
# 表达式.expand()展开方程
((x + y) ** 3).expand()
参数 | 数据类型 | 默认值 | 说明 |
---|---|---|---|
expression |
符号表达式 | - | 变量表达式 |
无
# facrot(表达式)折叠方程
factor(x ** 2 + 2 * x * y + y ** 2)
参数 | 数据类型 | 默认值 | 说明 |
---|---|---|---|
expression |
符号表达式 | - | 变量表达式 |
无
# apart(表达式)分离分式
apart((x + 3) / (x - 1))
参数 | 数据类型 | 默认值 | 说明 |
---|---|---|---|
expression |
符号表达式 | - | 变量表达式 |
无
# together(表达式)合并分式
together(1 / x + 1 / y + 1 / z)
参数 | 数据类型 | 默认值 | 说明 |
---|---|---|---|
expression |
符号表达式 | - | 变量表达式 |
无
# simplify()常规化简
simplify((x ** 3 + x ** 2 - x - 1) / (x ** 2 + 2 * x + 1))
参数 | 数据类型 | 默认值 | 说明 |
---|---|---|---|
expression |
符号表达式 | - | 变量表达式 |
无
# trigsimp( )三角化简
trigsimp(sin(x) / cos(x))
参数 | 数据类型 | 默认值 | 说明 |
---|---|---|---|
expression |
符号表达式 | - | 变量表达式 |
无
# powsimp()指数化简
powsimp(x ** a * x ** b)
参数 | 数据类型 | 默认值 | 说明 |
---|---|---|---|
expression |
列表 | - | 要解的方程,要求右端等于0 |
unsolved |
列表 | - | 要解的未知数 |
- 参数要表示为列表形式
# 二元一次方程
solve([2 * x - y - 3, 3 * x + y - 7], [x, y])
参数 | 数据类型 | 默认值 | 说明 |
---|---|---|---|
expression |
符号表达式 | - | 函数 |
var |
符号表达式 | - | 变量 |
aim |
数 | - | 趋近于 |
direction |
字符串 | 求极限 | 可选:趋近方向 |
- 无穷用两个小写的oo表示.
- dir='+'求右极限,'-'求左极限
- 不写dir也是求极限
# limit(函数,变量,趋近于,可选:趋近方向)求极限
limit(1 / x, x, 2)
a = limit(1 / x, x, oo, dir='-')
show([a])
参数 | 数据类型 | 默认值 | 说明 |
---|---|---|---|
expression |
符号表达式 | - | 函数 |
var |
符号表达式 | - | 求导变量 |
order |
正整数 | 1 | 可选:求导阶数 |
无
# diff(函数,求导变量,可选:求导阶数)求导
diff(x ** 3, x, 2)
参数 | 数据类型 | 默认值 | 说明 |
---|---|---|---|
expression |
符号表达式 | - | 被积函数 |
var |
符号表达式 | - | 积分变量 |
无
# integrate(被积函数,积分变量)不定积分
integrate(sin(x), x)
参数 | 数据类型 | 默认值 | 说明 |
---|---|---|---|
expression |
符号表达式 | - | 被积函数 |
parameters |
元组 | - | (积分变量,下限,上限) |
无
# integrate(被积函数,(积分变量,下限,上限))定积分
integrate(sin(x), (x, 0, pi / 2))
参数 | 数据类型 | 默认值 | 说明 |
---|---|---|---|
expression |
符号表达式 | - | 待求解的方程,要求右端等于0 |
function |
函数 | - | 所要求解的函数 |
- 先要用
Function
函数建立函数
# 以 y′=2xy 为例
f = Function('f')
a = dsolve(diff(f(x), x) - 2 * f(x) * x, f(x))
show([a])