用Python解方程

我们先从简单的来

例题1: 这是北师大版小学六年级上册课本95页的一道解方程练习题:

大家可以先口算一下,这道题里面的x的值为200

接下来我们用python来实现,代码如下,每一句代码后面都写有解释语:

 

1 import sympy   # 引入解方程的专业模块sympy
2 x = sympy.symbols("x")   # 申明未知数"x"
3 a = sympy.solve([x+(1/5)*x-240],[x])   # 写入需要解的方程体
4 print(a)  # 打印出结果

 

      大家应该注意到了,在写入方程体的时候,(上面的第三行代码)我们并没有原封不动的将原方程写进去,而是换了一种写法,将等号右边的数移到了等号左边(当然,移动的过程中注意要变号哦!)然后将等号丢弃,最后变成了一个式子。这个是我们的一个固定写法,大家记住就可以了。

 

注意:注意!!在数学里面数字和未知数相乘时中间可以不加任何符号,比如2x就代表2乘以x,但在计算机里,乘法必须写成*乘的形式。比如2*x,而不能直接写出2x,此处一定要注意!

这是运行后的结果:

 

大家可以看到,结果被一对大括号包裹着,冒号前是要求的未知数,冒号后即是程序运行后得出的结果。

我们的计算机还是很聪明的,是吧!

 

 

例题2: 接下来我们来试一下两个未知数的

这是北师大版初中八年级上册课本132页的一道练习题:

 

python来实现,

 

1 import sympy   # 引入解方程的专业模块sympy
2 
3 x,y = sympy.symbols("x y")   # 申明未知数"x"和"y"
4 a = sympy.solve([3*x -2*y-3,x+2*y-5],[x,y])   # 写入需要解的方程组
5 print(a)  # 打印出结果

 

运行结果:

 

 

 

所以正确答案为:C答案

 

 

例题3: 接下来,我们再来尝试一下分式方程:

以下为2018成都市的中考数学真题A卷第8题:

 

 

用同样的程序逻辑,填好我们要求的方程,代码如下:

 

1 import sympy
2 
3 x = sympy.symbols("x")
4 a = sympy.solve([((x+1)/x + 1/(x-2))-1],[x])
5 print(a)

 

 

运行结果:

 

 

 

 

例题4: 最后,我们来尝试一下对于数学中考里必考的巧算代数式的值:

 

以下为2018成都市的中考数学真题B卷第21题:

 

 

常规解题思路分析:

一、这是一道根据方程组的解计算代数式的值的常规考题,出这道题的意图就在于让同学们在不计算出未知数的值的基础上就能找到一定的技巧,求出答案。

二、如果单从联立两个方程,解方程组,然后再将解出来的x和y带入后面的代数式求结果的话,计算量会稍微大一些,而且计算过程需要非常仔细小心,因为这里面牵涉到小数,更或者是一些无理数,那我们常规的解决办法就是,观察后面的代数式,将其变为一个完全平方式子,再将前面两个方程构造成x+2y的模式,即将两方程相加,等号左边的相加,等号右边的相加,得到一个新方程

,化简,得,所以原式得

 

Python实现:

 

1 import sympy
2 
3 x,y = sympy.symbols("x y")
4 a = sympy.solve([x + y - 0.2,x + 3*y -1],[x,y])
5 x = a[x]
6 y = a[y]
7 re = x**2+4*x*y +4*y**2
8 print(re)

注意:

  1. 不要省略乘号“*”
  2. “**”代表乘方

 

运行结果截图:

 

 

 

 

至此,我们就已经完成了用Python来解方程的示范,同学们学会了吗,如果还有疑问,欢迎留下你们的问题,我们一起来探讨。

 

 

 

 

附录:

准备工作 sympy的安装

 

 

 

 

 

笔者会不定时的更新一些跟python相关又和数学相关的一些有趣的程序,喜欢就关注我吧。

特别警示:本文为作者原创作品,禁止不经过本人同意就将其转载用于商业用途,否则将予以追究。出于学习分享转载请附上出处链接,谢谢!

 

posted @ 2019-03-14 12:35  天使猿  阅读(45532)  评论(6编辑  收藏  举报