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多线程编程(三):threading.Thread类的重要函数和方法
Apr 05 Python
python实现支持目录FTP上传下载文件的方法
Jun 03 Python
python实现发送和获取手机短信验证码
Jan 15 Python
简单谈谈python中的Queue与多进程
Aug 25 Python
Python KMeans聚类问题分析
Feb 23 Python
使用Python的datetime库处理时间(RPA流程)
Nov 24 Python
pytorch 实现打印模型的参数值
Dec 30 Python
Python API 操作Hadoop hdfs详解
Jun 06 Python
tensorflow使用CNN分析mnist手写体数字数据集
Jun 17 Python
Python logging日志模块 配置文件方式
Jul 12 Python
从python读取sql的实例方法
Jul 21 Python
在PyCharm中安装PaddlePaddle的方法
Feb 05 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中文验证码实现示例分享
2014/01/12 PHP
PHP实用函数分享之去除多余的0
2015/02/06 PHP
关于取不到由location.href提交而来的上级页面地址的解决办法
2009/07/30 Javascript
基于jquery实现的鼠标滑过按钮改变背景图片
2011/07/15 Javascript
javascript 回到顶部效果的实现代码
2014/02/17 Javascript
教你如何自定义百度分享插件以及bshare分享插件的分享按钮
2014/06/20 Javascript
理解javascript封装
2016/02/23 Javascript
有趣的bootstrap走动进度条
2016/12/01 Javascript
JavaScript中的高级函数
2018/01/04 Javascript
jQuery实现带右侧索引功能的通讯录示例【附源码下载】
2018/04/17 jQuery
jQuery发请求传输中文参数乱码问题的解决方案
2018/05/22 jQuery
小程序扫描普通链接二维码跳转小程序指定界面方法
2019/05/07 Javascript
小程序如何在不同设备上自适应生成海报的实现方法
2019/08/20 Javascript
Javascript异步执行不按顺序解决方案
2020/04/30 Javascript
小程序选项卡以及swiper套用(跨页面)
2020/06/19 Javascript
在vue中实现嵌套页面(iframe)
2020/07/30 Javascript
python使用心得之获得github代码库列表
2014/06/25 Python
跟老齐学Python之有容乃大的list(1)
2014/09/14 Python
Python使用scrapy采集时伪装成HTTP/1.1的方法
2015/04/08 Python
python list是否包含另一个list所有元素的实例
2018/05/04 Python
numpy中矩阵合并的实例
2018/06/15 Python
详解基于django实现的webssh简单例子
2018/07/17 Python
python 监听salt job状态,并任务数据推送到redis中的方法
2019/01/14 Python
Python学习笔记之自定义函数用法详解
2019/06/08 Python
python Pandas如何对数据集随机抽样
2019/07/29 Python
wxpython+pymysql实现用户登陆功能
2019/11/19 Python
Python实现对adb命令封装
2020/03/06 Python
pandas中ix的使用详细讲解
2020/03/09 Python
python制作微博图片爬取工具
2021/01/16 Python
HTML5 Canvas阴影使用方法实例演示
2013/08/02 HTML / CSS
美国五金商店:Ace Hardware
2018/03/27 全球购物
新西兰最大、占有率最高的综合性药房:PharmacyDirect药房中文网
2020/11/03 全球购物
电信营业员自我评价分享
2014/01/17 职场文书
素质教育标语
2014/06/27 职场文书
普通员工辞职信范文
2015/05/12 职场文书
Python使用psutil库对系统数据进行采集监控的方法
2021/08/23 Python