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模拟登录百度代码分享(获取百度贴吧等级)
Dec 27 Python
Python实现Const详解
Jan 27 Python
python检查序列seq是否含有aset中项的方法
Jun 30 Python
Python md5与sha1加密算法用法分析
Jul 14 Python
python监控文件并且发送告警邮件
Jun 21 Python
Python get获取页面cookie代码实例
Sep 12 Python
基于Django ORM、一对一、一对多、多对多的全面讲解
Jul 26 Python
python使用配置文件过程详解
Dec 28 Python
TensorFlow实现checkpoint文件转换为pb文件
Feb 10 Python
pandas读取csv文件提示不存在的解决方法及原因分析
Apr 21 Python
pycharm 使用tab跳出正在编辑的括号(){}{}等问题
Feb 26 Python
python包的导入方式总结
Mar 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 Undefined index和Undefined variable的解决方法
2008/03/27 PHP
PHP中的gzcompress、gzdeflate、gzencode函数详解
2014/07/29 PHP
php自定义截取中文字符串-utf8版
2017/02/27 PHP
PHP生成短网址的思路以及实现方法的详解
2019/03/25 PHP
利用javascript中的call实现继承
2007/01/22 Javascript
利用js的Node遍历找到repeater的一个字段实例介绍
2013/04/25 Javascript
用javascript替换URL中的参数值示例代码
2014/01/27 Javascript
javascript中clone对象详解
2014/12/03 Javascript
JavaScript中用let语句声明作用域的用法讲解
2016/05/20 Javascript
easyui取消表单实时验证,提交时统一验证的简单实例
2016/11/07 Javascript
jquery表单验证插件validation使用方法详解
2017/01/20 Javascript
Angular 2 利用Router事件和Title实现动态页面标题的方法
2017/08/23 Javascript
jQuery实现动态添加节点与遍历节点功能示例
2017/11/09 jQuery
JavaScript实现重力下落与弹性效果的方法分析
2017/12/20 Javascript
vue 系列——vue2-webpack2框架搭建踩坑之路
2017/12/22 Javascript
Webpack 4.x搭建react开发环境的方法步骤
2018/08/15 Javascript
vue 插件的方法代码详解
2019/06/06 Javascript
vue中实现点击按钮滚动到页面对应位置的方法(使用c3平滑属性实现)
2019/12/29 Javascript
Python获取电脑硬件信息及状态的实现方法
2014/08/29 Python
初步解析Python下的多进程编程
2015/04/28 Python
老生常谈进程线程协程那些事儿
2017/07/24 Python
python-opencv在有噪音的情况下提取图像的轮廓实例
2017/08/30 Python
python机器学习之KNN分类算法
2018/08/29 Python
利用nohup来开启python文件的方法
2019/01/14 Python
python Matplotlib底图中鼠标滑过显示隐藏内容的实例代码
2019/07/31 Python
分享一个pycharm专业版安装的永久使用方法
2019/09/24 Python
Tensorflow的梯度异步更新示例
2020/01/23 Python
python GUI库图形界面开发之PyQt5布局控件QVBoxLayout详细使用方法与实例
2020/03/06 Python
Python实现自动整理文件的脚本
2020/12/17 Python
资生堂英国官网:Shiseido英国
2020/12/30 全球购物
起诉离婚协议书样本
2014/11/25 职场文书
2014年药品销售工作总结
2014/12/16 职场文书
先进教师个人总结
2015/02/11 职场文书
Mysql数据库命令大全
2021/05/26 MySQL
python实现A*寻路算法
2021/06/13 Python
Python实现照片卡通化
2021/12/06 Python