第15章 符号计算——SymPy

本章将简要介绍如何使用Python进行符号计算。市场上有用于符号计算的强大软件,例如MapleTM或MathematicaTM。但有时在用户习惯使用的语言或框架中进行符号计算可能会更好。本章假设使用的语言是Python,所以要在Python中寻求一个工具——SymPy模块。

关于SymPy的完整描述甚至可以写成一本书,但这不是本章的目的。本章将通过一些指导性的示例来探索该工具的使用方法,这样就可以把该工具的潜在功能变成NumPy和SciPy的补充。

截至目前,本书中出现的计算均为数值计算,它们是以浮点数为主的一系列计算。数值计算的本质是其结果为精确解的近似值。

符号计算运用于公式和符号,这是通过将它们转换为其他公式来实现的(正如微积分中所提到的)。转换最后一步可能需要插入数字并进行数值计算。

下面通过计算这个确定的积分来说明差异:

\int_0^4 {\frac{1}{{{x^2} + x + 1}}{\text{d}}x}

这个表达式可以象征性地通过考虑被积函数的原始函数来进行转换:

\frac{2}{{\sqrt 3 }}\arctan \left( {\frac{{2x + 1}}{{\sqrt 3 }}} \right)

现在要通过插入积分范围来获得用于定积分的公式,如下所示:

这被称为积分的闭合表达式。很少有用闭合表达式来表示答案的数学问题。闭合表达式是没有任何近似值的积分的精确值,也不会通过将实数表示为浮点数来引发错误,否则会引发舍入误差。

当最后一刻需要评估这些表达式时,近似值和舍入才会发挥作用。平方根和反正切值只能通过数值方法进行评估。这样的评估将会得到能够达到一定精度(通常是未知的)的结果: ...

Get Python3.0科学计算指南 now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.