贝贝60秒:摩拳擦掌看教程
曲政 / 2019-09-13
今天是贝贝报告给你的第 197 天
2019-09-13 星期五
今天在中秋游玩之间,把 sympy 的官方 Tutorial 浏览了一遍。有下面几点让我感到兴奋。
-
开发者讲为什么要有 sympy? 第一是免费,少花几百美元;第二是开放,只要 python;第三是轻便,不求集大成;第四是谦逊,可以隐藏在背后只作为一个函数库。这四段话让我感到开发者的坦诚,尤其是这句:“The SymPy developers are confident in their abilities in writing mathematical software, but programming language design is a completely different thing.”
-
怎样代入变量的数值?把符号替换为相应的数值对象好了。昨天我算出了解析式,还是手工重新输入了一遍。这是我今天通读 Tutorial 的目的。
-
很方便对函数求导。多阶导数,偏导数,都很方便。
>>> diff(exp(x**2), x) ⎛ 2⎞ ⎝x ⎠ 2⋅x⋅ℯ >>> diff(x**4, x, 3) 24⋅x >>> expr = exp(x*y*z) >>> diff(expr, x, y, 2, z, 4) 3 2 ⎛ 3 3 3 2 2 2 ⎞ x⋅y⋅z x ⋅y ⋅⎝x ⋅y ⋅z + 14⋅x ⋅y ⋅z + 52⋅x⋅y⋅z + 48⎠⋅ℯ
- 解方程很简单,不过竟然能给出解的集合。
>>> solveset(x**2 - x, x) {0, 1} >>> solveset(x - x, x, domain=S.Reals) ℝ >>> solveset(sin(x) - 1, x, domain=S.Reals) ⎧ π ⎫ ⎨2⋅n⋅π + ─ | n ∊ ℤ⎬ ⎩ 2 ⎭
- 用户文档中有一节的名称是 Learning SymPy ,点进去才知道,不是给出更多教程,而是展示一种通过读原代码的方式来看程序实现机理的方法。可见这里的人有多有人情味。
总之,看到这样的工具,微积分不用那样学了,工程能力的重点也不在于会推式子了。我只需定义好问题,计算不成问题。