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的Django框架中模板碎片缓存简介
Jul 24 Python
python django 实现验证码的功能实例代码
May 18 Python
Python自动化运维_文件内容差异对比分析
Dec 13 Python
使用python爬虫实现网络股票信息爬取的demo
Jan 05 Python
python web基础之加载静态文件实例
Mar 20 Python
dataframe设置两个条件取值的实例
Apr 12 Python
使用python PIL库实现简单验证码的去噪方法步骤
May 10 Python
10 行Python 代码实现 AI 目标检测技术【推荐】
Jun 14 Python
Python OpenCV 调用摄像头并截图保存功能的实现代码
Jul 02 Python
python+tkinter实现学生管理系统
Aug 20 Python
django实现web接口 python3模拟Post请求方式
Nov 19 Python
讲解Python实例练习逆序输出字符串
May 06 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
thinkphp多层MVC用法分析
2015/12/30 PHP
yii2.0数据库迁移教程【多个数据库同时同步数据】
2016/10/08 PHP
js页面跳转的常用方法整理
2013/10/18 Javascript
JS版的date函数(和PHP的date函数一样)
2014/05/12 Javascript
在页面加载完成后通过jquery给多个span赋值
2014/05/21 Javascript
JavaScript中实现单体模式分享
2015/01/29 Javascript
JS+DIV实现鼠标划过切换层效果的方法
2015/05/25 Javascript
使用JavaScript实现旋转的彩圈特效
2015/06/23 Javascript
JS中多步骤多分步的StepJump组件实例详解
2016/04/01 Javascript
js编写一个简单的产品放大效果代码
2016/06/27 Javascript
购物车前端开发(jQuery和bootstrap3)
2016/08/27 Javascript
微信小程序 POST请求(网络请求)详解及实例代码
2016/11/16 Javascript
BootStrap栅格系统、表单样式与按钮样式源码解析
2017/01/20 Javascript
vuejs项目打包之后的首屏加载优化及打包之后出现的问题
2018/04/01 Javascript
重学JS之显示强制类型转换详解
2019/06/30 Javascript
基于VSCode调试网页JavaScript代码过程详解
2020/07/20 Javascript
Vue实现导航栏菜单
2020/08/19 Javascript
在Python的Django框架中显示对象子集的方法
2015/07/21 Python
Python中将字典转换为列表的方法
2016/09/21 Python
python对DICOM图像的读取方法详解
2017/07/17 Python
详解Python核心对象类型字符串
2018/02/11 Python
Python用csv写入文件_消除空余行的方法
2018/07/06 Python
在双python下设置python3为默认的方法
2018/10/31 Python
Python小整数对象池和字符串intern实例解析
2020/03/21 Python
python 实现非极大值抑制算法(Non-maximum suppression, NMS)
2020/10/15 Python
一篇文章带你搞定Ubuntu中打开Pycharm总是卡顿崩溃
2020/11/02 Python
Python中的面向接口编程示例详解
2021/01/17 Python
html5中如何将图片的绝对路径转换成文件对象
2018/01/11 HTML / CSS
阿联酋团购网站:Groupon阿联酋
2016/10/14 全球购物
全球速卖通:AliExpress(国际版淘宝)
2017/09/20 全球购物
成功的酒店创业计划书
2013/12/27 职场文书
中餐厅经理岗位职责
2014/04/11 职场文书
小学毕业典礼演讲稿
2014/09/09 职场文书
2014教师年度工作总结
2014/11/10 职场文书
Mysql多层子查询示例代码(收藏夹案例)
2022/03/31 MySQL
SQL试题 使用窗口函数选出连续3天登录的用户
2022/04/24 Oracle