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库urllib与urllib2主要区别分析
Jul 13 Python
Python脚本实现自动发带图的微博
Apr 27 Python
python基础教程之匿名函数lambda
Jan 17 Python
python如何获取服务器硬件信息
May 11 Python
tensorflow识别自己手写数字
Mar 14 Python
Python实现将数据框数据写入mongodb及mysql数据库的方法
Apr 02 Python
Python 实现「食行生鲜」签到领积分功能
Sep 26 Python
Python实现网页截图(PyQT5)过程解析
Aug 12 Python
使用python切片实现二维数组复制示例
Nov 26 Python
PyCharm 2020.2.2 x64 下载并安装的详细教程
Oct 15 Python
python中用Scrapy实现定时爬虫的实例讲解
Jan 18 Python
使用numpngw和matplotlib生成png动画的示例代码
Jan 24 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
Zend Framework缓存Cache用法简单实例
2016/03/19 PHP
php基于openssl的rsa加密解密示例
2016/07/11 PHP
ASP小贴士/ASP Tips javascript tips可以当桌面
2009/12/10 Javascript
jquery创建表格(自动增加表格)代码分享
2013/12/25 Javascript
js实现的彩色方块飞舞奇幻效果
2016/01/27 Javascript
jQuery对象的链式操作用法分析
2016/05/10 Javascript
深入理解jquery中的事件与动画
2016/05/24 Javascript
jquery实现简单的瀑布流布局
2016/12/11 Javascript
Angular在一个页面中使用两个ng-app的方法(二)
2017/02/20 Javascript
jQuery实现返回顶部按钮和scroll滚动功能[带动画效果]
2017/07/05 jQuery
Three.js利用顶点绘制立方体的方法详解
2017/09/27 Javascript
怎么使用javascript深度拷贝一个数组
2019/06/06 Javascript
react使用CSS实现react动画功能示例
2020/05/18 Javascript
手写Vue源码之数据劫持示例详解
2021/01/04 Vue.js
[04:40]2016个国际邀请赛中国区预选赛场地——华西村观战指南
2016/06/25 DOTA
[41:17]VG vs Optic 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
python实现去除下载电影和电视剧文件名中的多余字符的方法
2014/09/23 Python
Python的IDEL增加清屏功能实例
2017/06/19 Python
Python中用psycopg2模块操作PostgreSQL方法
2017/11/28 Python
Python爬虫使用脚本登录Github并查看信息
2018/07/16 Python
对numpy中数组转置的求解以及向量内积计算方法
2018/10/31 Python
python-pyinstaller、打包后获取路径的实例
2019/06/10 Python
详解PyCharm安装MicroPython插件的教程
2019/06/24 Python
Python中使用双下划线防止类属性被覆盖问题
2019/06/27 Python
python获取全国城市pm2.5、臭氧等空气质量过程解析
2019/10/12 Python
python中return的返回和执行实例
2019/12/24 Python
Python3实现飞机大战游戏
2020/04/24 Python
Python如何在main中调用函数内的函数方式
2020/06/01 Python
简单了解Python变量作用域正确使用方法
2020/06/12 Python
pandas参数设置的实用小技巧
2020/08/23 Python
工作表扬信的范文
2014/01/10 职场文书
竞选大队干部演讲稿
2014/09/11 职场文书
仓库统计员岗位职责
2015/04/14 职场文书
2015年教研员工作总结
2015/05/26 职场文书
初中英语教学随笔
2015/08/15 职场文书
golang协程池模拟实现群发邮件功能
2021/05/02 Golang