仓库源文

.. Kenneth Lee 版权所有 2018-2020

:Authors: Kenneth Lee :Version: 1.0

教中学生学编程2:解方程


前面我们理解了math这个名称空间,它可以用作我们平时学习数学时候的计算器(不过不 要用它做作业哦,应该笔算的东西还是笔算,计算器可以作为验算,否则你就什么都学不 会了)。但你会发现,这个东西不实用,因为它给出的是结果不是准确的值,而是一个“模 拟解”,也就是一个不精确的小数,比如我们计算:::

    import math
    math.sqrt(8)

我们希望得到2又根号2,而不是2.8284271247461903:

    .. figure:: _static/ipython例1.jpg

特别是我们解方程的时候,这个时候math这个名称空间就不够用了,我们需要另一个名称 空间,它叫:sympy。(这是Symbols Python的简称)

我们用sympy来重新做上面这个运算:

    .. figure:: _static/ipython例2.jpg

这种解,就叫解释解。上面这个过程里调用了一个init_session(),它的作用它自己的输 出已经解释了,我们做这个动作是为了让输出更好看,你不做也可以,但建议是上来就做 一次,这样我们看起来会舒服很多。而且如果你不做这个动作,x, y, z, t这些符号也不 会被定义,所以,我们先不纠结细节,反正你import sympy了,就做一下这个动作,然后 再用,这会省很多事。

有了这个工具,我们就可以用它来解方程了。比如我们要解下面这个方程:

    .. math:: x^2+3x-8=0

我们可以这样:

    .. figure:: _static/ipython例3.png

注意两点:

  1. 方程不写等号,把另一边移项移成0,然后用非零那边即可

  2. 要说明你的未知数是哪个

我们也可以用来解2元方程:

    .. figure:: _static/ipython例4.png

除了解方程,平时你们经常干的事情都可以用这个工具解决:

多项式展开和因式分解:

    .. figure:: _static/ipython例5.png

化简:

    .. figure:: _static/ipython例6.png

分式化简:

    .. figure:: _static/ipython例7.png

有没有发现计算机真的是很牛逼的?:)