背景介绍:
Sugar 起初在 MultiMCU EDU 上写的都是有飞控、嵌入式操作系统、控制算法类的推文。
最近推的 Matlab 和 Python 似乎与 MCU 不在一个世界里,其实不然。机器人身上的 MCU 所跑的程序是有运行控制算法的,而控制算法的学习必须有扎实的数学功底。
当代学数学除了 Matlab 工具可用,还有开源的 Python 模块。学数学必须借助好工具,把抽象变具象才能理解。本篇 Sugar 就来说一说 Python 中的符号运算。
sympy
一、安装 sympy 模块
Sugar 使用 Python 3.8.6 安装 sympy 模块,安装命令如下:
pip install sympy
- 1
二、sympy 使用
1、symbols() 函数定义符号
import sympy as sy
x,y = sy.symbols("x y")
- 1
- 2
如上定义 x
和 y
为符号变量,可以用 type()
函数查看变量类型,如下:
2、字符表达式输出方法:
f"...{}"
字符串前加f
对{}
里的内容格式化输出。
3、符号表达式的数值解
subs()
函数用于将表达式里的变量替换成数值。
f
字符串里凡是要求值的地方都用{}
括起来。
4、变量替换(适用于复合函数)
subs()
函数可以将表达式里的变量替换成其他符号表达式。
5、算术表达式求值
Rational(a,b)
表示分数a/b
。
sqrt(a)
表示求a
的平方根。
evalf()
函数用于求算数表达式的数值解。
6、输出更易懂的表达式
先
init_printing()
再pprint()
就能以更易懂的方式输出符号表达式。
7、输出更专业的表达式
这里要用到
jupyter notebook
,关于 jupyter 的安装和使用 Sugar 下面会单独说。
sympy
模块更多强大的功能可以参考简书上的《Python科学计算利器——SymPy库》,以上内容 Sugar 有参照知乎上的《sympy: 符号运算-1》,在知乎专栏《sympy:符号运算》中有更多内容。本篇意在让初学者简单入门,选得都是简单好用的示例,避免初学者看一大篇长文引起畏难情绪。
jupyter
参考《Python安装Jupyter Notebook配置使用教程》
jupyter notebook
是用来学代码的不二之选,相当于一个活的可运行的代码笔记,功能上类似于 Matlab 的实时脚本。
一、安装 jupyter
pip 安装命令 pip install jupyter
二、简单配置和使用
1、换 jupyter notebook
启动目录
(1) 在 D 盘新建文件夹 D:\jupyter_notebook
(2) 生成配置文件,命令是:jupyter notebook --generate-config
(3) 修改配置文件(搜索关键词 c.NotebookApp.notebook_dir
),如下图:
2、基本使用:在 jupyter 里用 python3 输出公式。
(1) 在 Windows PowerShell
里输入命令 jupyter notebook
打开 jupyter 网页,然后新建 Python3
文件,如下图:
(2) 自动跳转到 Python3 页面,如下图:
(3) 输入如下代码并运行,结果如代码下面的图:
from IPython.display import display, Latex
import sympy as sy
sy.init_printing()
x,y=sy.symbols("x y")
f=x**2+3*x-5
display(Latex(f"$$f(x)={sy.latex(f)}$$"))
xx=3
sy.pprint(f"f({xx})={f.subs({x:xx})}")
yy=4
f1=sy.sqrt(x**2+y**2)
display(Latex(f"$$f_1(x,y)={sy.latex(f1)}$$"))
sy.pprint(f"f1({xx},{yy})={f1.subs({x:xx, y:yy})}")
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
三、更多功能
如上图,jupyter 还支持更 MarkDown 等更多功能,使用方法也是动手弄一弄就会。结合这些功能一起,就能理解为什么叫 jupyter notebook
了,这实在是做代码笔记的不二之选。
简书上有一篇《Jupyter Notebook介绍、安装及使用教程》非常详细地讲述了 jupter 从安装
到使用
以及加入其他功能插件
的各种操作。
PS
对于数学工具,Sugar 推荐相似功能先学习 Matlab 再学 Python,Matlab 环境下查看变量和断点调试更方便。
关注作者
欢迎扫码关注我的公众号MultiMCU EDU
。