John | 曲

Reflection in Transition

贝贝60秒:摩拳擦掌看教程

曲政 / 2019-09-13


今天是贝贝报告给你的第 197 天
2019-09-13 星期五

今天在中秋游玩之间,把 sympy 的官方 Tutorial 浏览了一遍。有下面几点让我感到兴奋。

  1. 开发者讲为什么要有 sympy? 第一是免费,少花几百美元;第二是开放,只要 python;第三是轻便,不求集大成;第四是谦逊,可以隐藏在背后只作为一个函数库。这四段话让我感到开发者的坦诚,尤其是这句:“The SymPy developers are confident in their abilities in writing mathematical software, but programming language design is a completely different thing.”

  2. 怎样代入变量的数值?把符号替换为相应的数值对象好了。昨天我算出了解析式,还是手工重新输入了一遍。这是我今天通读 Tutorial 的目的。

  3. 很方便对函数求导。多阶导数,偏导数,都很方便。

 >>> diff(exp(x**2), x)
       2
      x 
 2x
 >>> diff(x**4, x, 3)
 24x
 >>> expr = exp(x*y*z)
 >>> diff(expr, x, y, 2, z, 4)
  3  2  3  3  3       2  2  2                  xyz
 x y x y z  + 14x y z  + 52xyz + 48
  1. 解方程很简单,不过竟然能给出解的集合。
 >>> solveset(x**2 - x, x)
 {0, 1}
 >>> solveset(x - x, x, domain=S.Reals)
 
 >>> solveset(sin(x) - 1, x, domain=S.Reals)
         π        
 2nπ +  | n  
         2        
  1. 用户文档中有一节的名称是 Learning SymPy ,点进去才知道,不是给出更多教程,而是展示一种通过读原代码的方式来看程序实现机理的方法。可见这里的人有多有人情味。

总之,看到这样的工具,微积分不用那样学了,工程能力的重点也不在于会推式子了。我只需定义好问题,计算不成问题。