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性能优化技巧
Mar 09 Python
Python搭建APNS苹果推送通知推送服务的相关模块使用指南
Jun 02 Python
Python中 Lambda表达式全面解析
Nov 28 Python
Python实现迭代时使用索引的方法示例
Jun 05 Python
Django使用paginator插件实现翻页功能的实例
Oct 24 Python
python实现根据文件关键字进行切分为多个文件的示例
Dec 10 Python
Python爬取知乎图片代码实现解析
Sep 17 Python
实现ECharts双Y轴左右刻度线一致的例子
May 16 Python
如何更换python默认编辑器的背景色
Aug 10 Python
python如何实现图片压缩
Sep 11 Python
如何将numpy二维数组中的np.nan值替换为指定的值
May 14 Python
python机器学习创建基于规则聊天机器人过程示例详解
Nov 02 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文件读取方法实例分析
2015/06/20 PHP
PHP设计模式之迭代器模式
2016/06/17 PHP
解javascript 混淆加密收藏
2009/01/16 Javascript
javascript与cookie 的问题详解
2013/11/11 Javascript
浅析XMLHttpRequest的缓存问题
2013/12/13 Javascript
jquery中获得元素尺寸和坐标的方法整理
2014/05/18 Javascript
javascript框架设计之框架分类及主要功能
2015/06/23 Javascript
bootstrap css样式之表单
2017/01/19 Javascript
写jQuery插件时的注意点
2017/02/20 Javascript
使用yeoman构建angular应用的方法
2017/08/14 Javascript
Vue-cropper 图片裁剪的基本原理及思路讲解
2018/04/17 Javascript
Vue 设置axios请求格式为form-data的操作步骤
2019/10/29 Javascript
jQuery Datatables 动态列+跨列合并实现代码
2020/01/30 jQuery
简介JavaScript错误处理机制
2020/08/04 Javascript
vue 动态组件(component :is) 和 dom元素限制(is)用法说明
2020/09/04 Javascript
Python数据可视化编程通过Matplotlib创建散点图代码示例
2017/12/09 Python
python 剪切移动文件的实现代码
2018/08/02 Python
Django中的cookie和session
2019/08/27 Python
Python Pandas数据分析工具用法实例
2020/11/05 Python
python中pow函数用法及功能说明
2020/12/04 Python
美体小铺瑞典官方网站:The Body Shop瑞典
2018/01/27 全球购物
捷克鲜花配送:Florea.cz
2018/10/29 全球购物
英国空调、除湿机和通风设备排名第一:Air Con Centre
2019/02/25 全球购物
小学母亲节活动方案
2014/03/14 职场文书
学校党的群众路线教育实践活动总结报告
2014/07/03 职场文书
乡镇四风对照检查材料
2014/08/31 职场文书
讲文明知礼仪演讲稿
2014/09/13 职场文书
党员群众路线教育实践活动学习笔记
2014/11/05 职场文书
比赛主持人开场白
2015/05/29 职场文书
歌咏比赛主持词
2015/06/29 职场文书
2016先进工作者事迹材料
2016/02/25 职场文书
小学2016年第十八届推普周活动总结
2016/04/05 职场文书
2019开业庆典剪彩仪式主持词!
2019/07/22 职场文书
教你如何用python开发一款数字推盘小游戏
2021/04/14 Python
Java使用Unsafe类的示例详解
2021/09/25 Java/Android
Nginx+Tomcat负载均衡多实例详解
2022/04/11 Servers