python解数学方程_用Python如何解数学方程-程序员宅基地

技术标签: python解数学方程  

用Python如何解数学方程

我们先从简单的来

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

x+1/5x=240

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

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

import sympy # 引入解方程的专业模块sympy

x = sympy.symbols("x") # 申明未知数"x"

a = sympy.solve([x+(1/5)*x-240],[x]) # 写入需要解的方程体

print(a) # 打印出结果

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

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

这是运行后的结果:

用Python如何解数学方程

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

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

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

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

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

用python来实现:

import sympy # 引入解方程的专业模块sympy

x,y = sympy.symbols("x y") # 申明未知数"x"和"y"

a = sympy.solve([3*x -2*y-3,x+2*y-5],[x,y]) # 写入需要解的方程组

print(a) # 打印出结果

运行结果:

用Python如何解数学方程

所以正确答案为:C答案

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

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

2018成都市的中考数学真题A卷第8题

(A) X = 1 (B) X = -1 (C) X=3 (D) X = -3

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

import sympy

x = sympy.symbols("x")

a = sympy.solve([((x+1)/x + 1/(x-2))-1],[x])

print(a)

运行结果:

用Python如何解数学方程

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

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

2018成都市的中考数学真题B卷第21题

常规解题思路分析:

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

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

用Python实现:

import sympy

x,y = sympy.symbols("x y")

a = sympy.solve([x + y - 0.2,x + 3*y -1],[x,y])

x = a[x]

y = a[y]

re = x**2+4*x*y +4*y**2

print(re)

注意:

1. 不要省略乘号“*”

2. “**”代表乘方

运行结果截图:

用Python如何解数学方程

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

附录:准备工作 sympy的安装

1.安装sympy方法一:

用Python如何解数学方程

缺点,太慢,还有可能会报红色错误

2. 安装sympy方法二:

优点,添加豆瓣源,速度快,不会报红色延时的错误,推荐

用Python如何解数学方程

码小易Python老师会不定时的更新一些跟python相关又和数学相关的一些有趣的程序,喜欢就关注我吧。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_31894867/article/details/112012307

智能推荐

Shuffle 工作机制_shuffle阶段是干什么的-程序员宅基地

文章浏览阅读265次。本章详细介绍了shuffle工作机制(自用)_shuffle阶段是干什么的

Andriod studio格式化代码_android studio 代码格式化-程序员宅基地

文章浏览阅读778次。使用快捷键:默认情况下,可以使用快捷键Ctrl + Alt + L (在Windows和Linux下) 或者 Command + Option + L (在Mac OS下) 来格式化选定的代码块或整个文件。使用自动保存功能:可以在Android Studio的设置中启用"Editor | General | Auto Save"选项,这样当你修改代码时,代码会在一定时间内自动格式化。无论使用哪种方式,Android Studio都会根据你的代码风格设置自动为你格式化代码,保持统一的代码风格和可读性。_android studio 代码格式化

300套Java微信小程序项目实战-程序员宅基地

文章浏览阅读531次,点赞23次,收藏6次。博主介绍:程序员陈师兄、8年大厂程序员经历。csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战 精彩专栏推荐订阅 不然下次找不到哟。

Linux与Gvim常用命令_gvim grep命令-程序员宅基地

文章浏览阅读1.1k次。一、LINUX常用命令文件管理类命令:pwd 打印当前目录 cd 改变目录 cd / 转到根目录 cd ~ 转到用户目录 cd /XX/XX 转到绝对路径 cd XX 转到当前目录下的相对路径 ls 查看目录内容 ls -a 列举全部文件,包括隐藏文件 ls -l 列举目录中的细节(权限,所有者等) ls -l XX 列举某一文件信息 ls -R 递归列举该目录所有子目录内容 ls -s 按文件大小排序 cat XX 显示..._gvim grep命令

LNK1179: 无效或损坏的文件: 重复的 COMDAT "_IID_IDispatchEx"_无效或损坏的文件:重复的comdat-程序员宅基地

文章浏览阅读2.6k次。fatal error LNK1179: invalid or corrupt file: duplicate comdat "XXX" 解决方法,找到(ocx和dll都是类似的)#import "Flash.ocx" named_guids改为#import "Flash.ocx" named_guids, exclude("IFlashObject_无效或损坏的文件:重复的comdat

Word Search(C++单词搜索)_c++ccc word hunt-程序员宅基地

文章浏览阅读300次。Word Search(C++单词搜索)_c++ccc word hunt

随便推点

使用计时器延迟页面显示,以保证页面加载完ajax数据也请求完成_jquery计时器会比页面晚出现-程序员宅基地

文章浏览阅读363次。<script type="text/javascript"> window.onload = function(){ // 刚跳转到该页面时,使其暂时隐藏 $(".body").hide(); setTimeout(function(){ // 加载完成后显示页面 $(".body").show(); $.ajax({ url: 'http:/..._jquery计时器会比页面晚出现

msvcp140_codecvt_ids.dll缺失修复方法,分析msvcp140_codecvt_ids.dll文件_由于找不到msvcp140 codecvt ids.dii,无法继续执行代码。重新安装程 序可能-程序员宅基地

文章浏览阅读1k次,点赞19次,收藏19次。在日常使用电脑的过程中,我们可能偶尔会遇到一些技术挑战,其中包括与运行在后台的动态链接库(dll)文件相关的问题。msvcp140_codecvt_ids.dll是一个这样的关键 dll 文件,它默默地在系统底层发挥作用,为各种应用程序提供支持,确保操作系统的稳定运行。但如果这个文件发生故障或丢失,它的重要性将迅速变得非常明显。接下来,我们将探讨如何解决 msvcp140_codecvt_ids.dll缺失的问题。_由于找不到msvcp140 codecvt ids.dii,无法继续执行代码。重新安装程 序可能

如何解决vscode检测到#include错误,请更新includePath。_vcode 检测到#include错误-程序员宅基地

文章浏览阅读3.9w次,点赞40次,收藏66次。如何解决vscode检测到#include错误,请更新includePath。终端输入gcc -v -E -x c -打开vscode 按ctrl+shift+p 。搜索c/c++:Edit Configurations(JSON)3将刚才的路径粘贴到这里的“IncludePath”这样就完成了配置,可以使用头文件。..._vcode 检测到#include错误

Keras的模块结构-程序员宅基地

文章浏览阅读786次。_keras的模块结构

51单片机高级外设和项目篇-免费下载_盗版先锋单片机-程序员宅基地

文章浏览阅读10w+次,点赞11次,收藏103次。《朱有鹏老师单片机完全学习系列课程》针对有志于物联网技术开发行业的零基础学员设计,共分6季,总200余小时的课程。第1季课程的主要内容包括:《朱有鹏老师单片机系列课程》的整体规划、课程设计、学习路线介绍,单片机学习的意义、单片机与物联网的关系,51单片机工作原理、电路原理图识别、C语言基础知识等学习单片机软件开发必备的基础知识,常用开发工具Keil uVision软件的使用、模拟单步调试方法、IS..._盗版先锋单片机

thchs30跑过程中注意事项_thchs30错误总结-程序员宅基地

文章浏览阅读963次。尽量使用最新的版本,之需要改下面的第一个问题,就可以全部跑通,新的版本中beam size 是6, 就不会有问题了。按照github上的版本直接跑的过程中遇到两个问题: 1. 在 make word graph的过程中字典正确的没有拷贝到本地: 在 14.04 下面没有问题,在16.04 下面出现问题了。 cat $thchs/resource/dict/lexicon.txt $thchs/d..._thchs30错误总结

推荐文章

热门文章

相关标签