Python数据处理篇之Sympy系列(五)---解方程


Posted in Python onOctober 12, 2019

前言

sympy不仅在符号运算方面强大,在解方程方面也是很强大。

本章节学习对应官网的:Solvers

官方教程

https://docs.sympy.org/latest/tutorial/solvers.html

(一)求解多元一次方程-solve()

1.说明:

解多元一次方程可以使用solve(),在sympy里,等式是用Eq()来表示,

例如:2x=42x=4 表示为:Eq(x*2, 4)

2.源代码:

"""
 解下列二元一次方程
 2x-y=3
 3x+y=7
"""
# 导入模块
from sympy import *
# 将变量符号化
x = Symbol('x')
y = Symbol('y')
z = Symbol('z')
# 解一元一次方程
expr1 = x*2-4
r1 = solve(expr1, x)
r1_eq = solve(Eq(x*2, 4), x)
print("r1:", r1)
print("r1_eq:", r1_eq)
# 解二元一次方程
expr2 = [2*x-y-3, 3*x+y-7]
r2 = solve(expr2, [x, y])
print("r1:", r2)
# 解三元一次方程
f1 = x+y+z-2
f2 = 2*x-y+z+1
f3 = x+2*y+2*z-3
r3 = solve([f1, f2, f3], [x, y, z])
print("r3:", r3)

3.输出:

Python数据处理篇之Sympy系列(五)---解方程

(二)解线性方程组-linsolve()

1.说明:

在sympy中,解线性方程组有三种形式:

默认等式为0的形式:linsolve(eq, [x, y, z])

矩阵形式:linsolve(eq, [x, y, z])

增广矩阵形式:linsolve(A,b, x, y, z)

2.源代码:

"""
  x+y+z-2=0
  2x-y+z+1=0
  x+2y+2z-3=0
"""
from sympy import *
x, y, z = symbols("x y z")
# 默认等式为0的形式
print("======默认等式为0的形式 =======")
eq = [x+y+z-2, 2*x-y+z+1, x+2*y+2*z-3]
result = linsolve(eq, [x, y, z])
print(result)
print(latex(result))
# 矩阵形式
print("======矩阵形式 =======")
eq = Matrix(([1, 1, 1, 2], [2, -1, 1, -1], [1, 2, 2, 3]))
result = linsolve(eq, [x, y, z])
print(result)
print(latex(result))
# 增广矩阵形式
print("======增广矩阵形式 =======")
A = Matrix([[1, 1, 1], [2, -1, 1], [1, 2, 2]])
b = Matrix([[2], [-1], [3]])
system = A, b
result = linsolve(system, x, y, z)
print(result)
print(latex(result))

3.输出:

Python数据处理篇之Sympy系列(五)---解方程

(三)解非线性方程组-nonlinsolve()

1.说明:

nonlinsolve()用于求解非线性方程组,例如二次方,三角函数,,,等方程

2.源代码:

"""
  x**2+y**2-2=0
  x**3+y**3=0
"""
import sympy as sy
x, y = sy.symbols("x y")
eq = [x**2+y**3-2, x**3+y**3]
result = sy.nonlinsolve(eq, [x, y])
print(result)
print(sy.latex(result))

3.输出:

Python数据处理篇之Sympy系列(五)---解方程

Python数据处理篇之Sympy系列(五)---解方程

(四)求解微分方程-dsolve()

1.说明:

求解微分方程使用dsolve(),注意:

f = symbols('f', cls=Function)的作用是声明f()是一个函数。

2.源代码:

from sympy import *
# 初始化
x = symbols('x')
f = symbols('f', cls=Function)
# 表达式
expr1 = Eq(f(x).diff(x, x) - 2*f(x).diff(x) + f(x), sin(x))
# 求解微分方程
r1 = dsolve(expr1, f(x))
print(r1)
print("原式:", latex(expr1))
print("求解后:", latex(r1))

3.输出:

原式:

f(x)−2ddxf(x)+d2dx2f(x)=sin(x)
f(x)−2ddxf(x)+d2dx2f(x)=sin⁡(x)

解微分后:

f(x)=(C1+C2x)ex+cos(x)2
f(x)=(C1+C2x)ex+cos⁡(x)2

Python数据处理篇之Sympy系列(五)---解方程

总结

以上所述是小编给大家介绍的Python数据处理篇之Sympy系列(五)---解方程,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Python 相关文章推荐
python多线程编程中的join函数使用心得
Sep 02 Python
python实现二叉树的遍历
Dec 11 Python
Python实现七彩蟒蛇绘制实例代码
Jan 16 Python
python MysqlDb模块安装及其使用详解
Feb 23 Python
详谈Numpy中数组重塑、合并与拆分方法
Apr 17 Python
Python 变量类型详解
Oct 10 Python
Python用字典构建多级菜单功能
Jul 11 Python
python-序列解包(对可迭代元素的快速取值方法)
Aug 24 Python
Python对接 xray 和微信实现自动告警
Sep 17 Python
Pytorch实现各种2d卷积示例
Dec 30 Python
xadmin使用formfield_for_dbfield函数过滤下拉表单实例
Apr 07 Python
python实现秒杀商品的微信自动提醒功能(代码详解)
Apr 27 Python
详解Python绘图Turtle库
Oct 12 #Python
Python中的list与tuple集合区别解析
Oct 12 #Python
Python 生成器,迭代,yield关键字,send()传参给yield语句操作示例
Oct 12 #Python
Python 类,property属性(简化属性的操作),@property,property()用法示例
Oct 12 #Python
python获取全国城市pm2.5、臭氧等空气质量过程解析
Oct 12 #Python
Python 迭代,for...in遍历,迭代原理与应用示例
Oct 12 #Python
Python 网络编程之TCP客户端/服务端功能示例【基于socket套接字】
Oct 12 #Python
You might like
php实现的简单压缩英文字符串的代码
2008/04/24 PHP
php数组函数序列之krsort()- 对数组的元素键名进行降序排序,保持索引关系
2011/11/02 PHP
探讨PHP中this,self,parent的区别详解
2013/06/08 PHP
xss文件页面内容读取(解决)
2010/11/28 Javascript
myEvent.js javascript跨浏览器事件框架
2011/10/24 Javascript
jQuery LigerUI 使用教程入门篇
2012/01/18 Javascript
javascript时区函数介绍
2012/09/14 Javascript
THREE.JS入门教程(4)创建粒子系统
2013/01/24 Javascript
js history对象简单实现返回和前进
2013/10/30 Javascript
Jquery网页内滑动缓冲导航的实现代码
2015/04/05 Javascript
javascript 使用for循环时该注意的问题-附问题总结
2015/08/19 Javascript
基于React.js实现原生js拖拽效果引发的思考
2016/03/30 Javascript
在Mac OS上安装使用Node.js的项目自动化构建工具Gulp
2016/06/18 Javascript
javascript比较语义化版本号的实现代码
2016/09/09 Javascript
详解vue之页面缓存问题(基于2.0)
2017/01/10 Javascript
js判断节假日实例代码
2017/12/27 Javascript
Vue导出页面为PDF格式的实现思路
2018/07/31 Javascript
vue中$refs, $emit, $on, $once, $off的使用详解
2019/05/26 Javascript
Vue-drag-resize 拖拽缩放插件的使用(简单示例)
2019/12/04 Javascript
flask中使用SQLAlchemy进行辅助开发的代码
2013/02/10 Python
Python打包文件夹的方法小结(zip,tar,tar.gz等)
2016/09/18 Python
删除DataFrame中值全为NaN或者包含有NaN的列或行方法
2018/11/06 Python
使用python实现对元素的长截图功能
2019/11/14 Python
python和php学习哪个更有发展
2020/06/17 Python
python asyncio 协程库的使用
2021/01/21 Python
屈臣氏官方旗舰店:亚洲享负盛名的保健及美妆零售商
2019/03/15 全球购物
应届实习生的自我评价范文
2014/01/05 职场文书
七年级数学教学反思
2014/01/22 职场文书
毕业实习评语
2014/02/10 职场文书
体育教师个人的自我评价
2014/02/16 职场文书
大型主题婚礼活动策划方案
2014/09/15 职场文书
2014旅游局领导班子四风问题对照检查材料思想汇报
2014/09/19 职场文书
医院见习报告范文
2014/11/03 职场文书
党的群众路线教育实践活动个人整改措施材料
2014/11/04 职场文书
董事长致辞
2015/07/29 职场文书
Javascript中async与await的捕捉错误详解
2022/03/03 Javascript