用Python编程来解数学方程(纯字符串格式),没想到出人意料的简单。
我们的目标是从字符串直接求解,而不是输入参数。
例如:
一次方程:3x+5=0
二次方程:x^2+2x+1=0
方程组:
3x+5y=11
6x+5y=23

解一次方程

这是最简单的一种情况,这样一个简单的函数就可以实现

def solv(func):p1, p2= func.split('=')a1, a2= p1.split('x')if a2=='':a2= '0'x= (float(p2)-float(a2))/  float(a1)return x

调用测试:

str1= '3x+5=0'
str1= '19x-38=0'
str1= '3x=9'
x= solv(str1)
print(f'{x=}')

解一次方程组

也很简单,这里增加了一个参数读取函数

def getParm(func):p1, p2= func.split('=')a1, a2= p1.split('x')b1, b2= a2.split('y')if b2=='':b2= '0'return float(a1), float(b1), float(b2), float(p2)def solv2(func1, func2):a1, b1, c1, d1= getParm(func1)a2, b2, c2, d2= getParm(func2)x= ((d1-c1)*b2-(d2-c2)*b1)/(a1*b2- a2*b1)y= ((d1-c1)*a2-(d2-c2)*a1)/(-a1*b2+ a2*b1)return x,y

调用测试:

str1= '3x+5y=11'
str2= '6x+5y=23'
x,y= solv2(str1,str2)
print(f'{x=},{y=}')

解二次方程

记得求根公式就没问题


def getParm(func):p1, p2= func.split('=')a1, a2= p1.split('x^2')b1, b2= a2.split('x')if a1=='':a1= '1'if b2=='':b2= '0'return float(a1), float(b1), float(b2), float(p2)def solv3(func):a, b, c, d= getParm(func)dt= b*b- 4*a*(c-d)if dt>=0:x1= (-b+ dt**(1/2))/(2*a)x2= (-b- dt**(1/2))/(2*a)return x1, x2else:return None,None

调用测试:

str1= '3x^2-10x-8=0'
# str1= 'x^2-2x+1=0'
# str1= '3x^2+14x+8=0'
x1,x2= solv3(str1)
print(f'{x1=},{x2=}')

扩展

进一步的扩展,是针对缺项的时候做相应的处理;对取参数的函数做通用化;对变量的位置甚至与字母的限制放宽,等等。
应该说,数学学习到这个程度的初中同学,完全可以编写这样的python程序,起到很好的python+数学的互相辅助,互相促进的作用。

python编程解数学方程(纯字符串格式)相关推荐

  1. python如何表示未知数_用Python如何解数学方程

    原标题:用Python如何解数学方程 我们先从简单的来 例题1: 这是北师大版小学六年级上册课本95页的一道解方程练习题: x+1/5x=240 大家可以先口算一下,这道题里面的x的值为200 接下来 ...

  2. python解数学方程_用Python如何解数学方程

    用Python如何解数学方程 我们先从简单的来 例题1: 这是北师大版小学六年级上册课本95页的一道解方程练习题: 大家可以先口算一下,这道题里面的x的值为200 接下来我们用python来实现,代码 ...

  3. 使用 Python 解数学方程

    使用 Python 解数学方程 使用 Python 解数学方程 - 知乎 用python解中考数学规律题 用python解中考数学规律题 - 简书 如何看github上用python实现2019高考数 ...

  4. Python计算:sympy解数学方程

    解方程 solve(f, *symbols, **flags) 函数说明: f: 转化成右端等于0 形式的表达式 symbols: 未知数 代码示例 # -*- coding: utf-8 -*-# ...

  5. python将数值代入方程_使用 Python 解数学方程

    说到数学题,相信大家都不陌生,从小学到大学都跟数学打交道. 其中初中的方程组,高中的二次曲线,大学的微积分最为头疼,这个项目就使用python 来解决方程组问题,微积分问题,矩阵化简. SymPy库 ...

  6. 想学python编程-想学Python编程?你真的适合吗?

    原标题:想学Python编程?你真的适合吗? 有的人说我想学什么.我想干什么,很多时候都是头脑发热,单凭一腔热血,可是这样的路即便走上去你又能坚持多久呢?所以,每每有人问我学Python编程怎么样,我 ...

  7. 学python编程-趣学python编程中文版 PDF 下载

    相关截图: 资料简介: Python是一款解释型.面向对象.动态数据类型的高级程序设计语言.Python语法简捷而清晰,具有丰富和强大的类库,因而在各种行业中得到广泛的应用.对于初学者来讲,Pytho ...

  8. 学python编程-趣学Python编程

    Python是一种强大并通俗易懂的编程语言,而且它易学又好用!但是关于学习Python语言的书大多很枯燥无趣,读起来没什么乐趣.本书把你带入一个鲜活的Python编程世界.作者Jason R. Bri ...

  9. 菜鸟能学python编程,菜鸟学Python编程文章阅读记录一

    菜鸟学Python编程文章阅读记录 看的懵懵懂懂,感觉就是要把代码看懂到,这个代码块做了什么功能,了解到建了属性,定义了方法,这些方法与属性的关系 今天是js逆向专题,这个帖子,回头再好好看 回头再找 ...

最新文章

  1. 详解OpenCV中的Lucas Kanade稀疏光流单应追踪器
  2. “手机编码速度大 PK”,你玩程序猿撸月饼了么?
  3. 用Eclipse进行java学习的步骤
  4. » 欄位太小以致於無法接受您試圖加入的資料數量
  5. SpringBoot 源码解析 (一)----- SpringBoot核心原理入门
  6. tensorflow随笔-tf.decode_csv
  7. 你好同窗,我们开始吧,这是我们的第3次见面
  8. String和enum的互相转换
  9. [cocos2d]修改富文本文本和高度
  10. PCA主成分分析实战和可视化 | 附R代码和测试数据
  11. C---队列,栈的实现
  12. MTK驱动(53)---平台DTS文件匹配过程
  13. 【Flink】Flink1.12.0 FlinkSQL消费Kafka 使用 temporal join 关联维表Hive 最新分区数据 join 不上
  14. Linux内核TCP/IP协议栈运行时序 | 配图
  15. 蒙特卡洛方法习题_蒙特卡洛方法
  16. Unity-timeline(时间线)
  17. 未能加载文件或程序集
  18. mybatis.org/dtd/mybatis-generator-config_1_0.dtd标红
  19. fmc接口定义_FMC接口说明
  20. 针对网页开发者的滚动锚定功能

热门文章

  1. 音频噪声抑制(2):维纳(Wiener)滤波器篇
  2. 7月7日云栖精选夜读:专访 | 杨强教授谈CCAI、深度学习泡沫与人工智能入门
  3. RSSI in wifi
  4. 数值计算之 拟合法,线性拟合,多项式拟合
  5. 如何看待 2022 年秋招算法岗人间地狱?
  6. 游戏设计模式阅读笔记19——优化模式(空间分区)
  7. 【LeetCode】322. 零钱兑换 结题报告 (C++)
  8. linux中的fs文件夹,linux上使用eCryptFS加密文件夹的方法
  9. 爬虫豆瓣读书top250,保存为本地csv文件,可用excel查看(具体步骤和容易遇到的坑)
  10. 物联网操作系统碎片化问题分析与思考