用python 解齐次方程组(python编程解方程第二弹)

用python 解齐次方程组(python编程解方程第二弹)(1)

用纯字符串格式来记录二次方程:

  • '3x^2-10x-8=0'
  • 'x^2-2x 1=0'
  • '3x^2 14x 8=0'
  • 'x^2=9'

二次方怎么表示呢?比如上面的^表示法,或者是Python风格的**表示法,甚至是更简单的直接用x2表示x的二次方,都是可以的。对于我们求解来说,无论用哪种方法都没问题,在代码只需非常小的改动(后面将指出)。

所谓编程,就用抽象的方法来解决问题:上面这些二次方程,我们抽象为这样的格式:

ax^2 bx c=d

注意,我们无须限定等号右边为0

如果你看了前面的《用python编程7行代码解数学方程(ax b=c的形式)》就知道我们思路仍然是先取参数,然后用数学的方法来求解。

这里,我们会看到利用python函数返回多值的贴心功能来直接返回二次方程的两个解。

这就是完整的解方程代码:

用python 解齐次方程组(python编程解方程第二弹)(2)

如果你不是x^2来表示x的二次方,只需在第三行对应位置修改即可。

在代码的4,5,6,7行,都用了Python的三目表达式功能让代码更加简短清晰。特别注意第4行的三目表达式怎样同时给两个参数赋值。

下面来看测试代码:

用python 解齐次方程组(python编程解方程第二弹)(3)

在上篇文章的中代码,我们对于参数缺项没有充分考虑,在本篇的取参数的代码中,做了更多的判断,所以能够支持更多的特殊情况。但仍然存在一个没有考虑到的地方,你能指出来么?

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页