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抓取网页图片示例(python爬虫)
Apr 27 Python
Python中让MySQL查询结果返回字典类型的方法
Aug 22 Python
仅利用30行Python代码来展示X算法
Apr 01 Python
wxPython中listbox用法实例详解
Jun 01 Python
Python编程之字符串模板(Template)用法实例分析
Jul 22 Python
python学习教程之使用py2exe打包
Sep 24 Python
Python利用正则表达式实现计算器算法思路解析
Apr 25 Python
分享vim python缩进等一些配置
Jul 02 Python
使用pyinstaller逆向.pyc文件
Dec 20 Python
解决paramiko执行命令超时的问题
Apr 16 Python
Python中json.load()和json.loads()有哪些区别
Jun 07 Python
python实现商品进销存管理系统
May 30 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中防止直接访问或查看或下载config.php文件的方法
2012/07/07 PHP
php+curl 发送图片处理代码分享
2015/07/09 PHP
ThinkPHP使用Ueditor的方法详解
2016/05/20 PHP
thinkphp3.2实现跨控制器调用其他模块的方法
2017/03/14 PHP
什么是PHP文件?如何打开PHP文件?
2017/06/27 PHP
ExtJS 2.0实用简明教程 之获得ExtJS
2009/04/29 Javascript
javascript Firefox与IE 替换节点的方法
2010/02/24 Javascript
jquery插件制作 表单验证实现代码
2012/08/17 Javascript
js文本框输入点回车触发确定兼容IE、FF等
2013/11/19 Javascript
在NodeJS中启用ECMAScript 6小结(windos以及Linux)
2014/07/15 NodeJs
使用JavaScript实现连续滚动字幕效果的方法
2015/07/07 Javascript
基于jQuey实现鼠标滑过变色(整行变色)
2015/12/07 Javascript
js console.log打印对像与数组用法详解
2016/01/21 Javascript
JS实现将数字金额转换为大写人民币汉字的方法
2016/08/02 Javascript
网站申请不到支付宝接口、微信接口,免接口收款实现方式几种解决办法
2016/12/14 Javascript
JavaScript实现格式化字符串函数String.format
2016/12/16 Javascript
解决ajax不能访问本地文件问题(利用js跨域原理)
2017/01/24 Javascript
js中编码函数:escape,encodeURI与encodeURIComponent详解
2017/03/21 Javascript
AngularJS基于http请求实现下载php生成的excel文件功能示例
2018/01/23 Javascript
vue子路由跳转实现tab选项卡
2019/07/24 Javascript
node使用mysql获取数据库数据中文乱码问题的解决
2019/12/02 Javascript
[00:10]DOTA2全国高校联赛速递
2018/05/30 DOTA
[45:50]完美世界DOTA2联赛PWL S3 CPG vs Forest 第二场 12.16
2020/12/17 DOTA
在Python的Django框架中获取单个对象数据的简单方法
2015/07/17 Python
详解python单元测试框架unittest
2018/07/02 Python
Django如何简单快速实现PUT、DELETE方法
2019/07/24 Python
python pygame实现滚动横版射击游戏城市之战
2019/11/25 Python
Python 中的pygame安装与配置教程详解
2020/02/10 Python
python开发实例之python使用Websocket库开发简单聊天工具实例详解(python+Websocket+JS)
2020/03/18 Python
Python定时从Mysql提取数据存入Redis的实现
2020/05/03 Python
Pycharm及python安装详细教程(图解)
2020/07/31 Python
YesBabyOnline美国:全球性的在线婚纱礼服工厂
2018/05/05 全球购物
斯图尔特·韦茨曼鞋加拿大官网:Stuart Weitzman加拿大
2019/10/13 全球购物
秘书岗位职责
2013/11/18 职场文书
基层干部2014全国两会学习心得体会
2014/03/10 职场文书
2015年大学辅导员工作总结
2015/05/12 职场文书