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访问抓取网页常用命令总结
Apr 11 Python
Python中的单行、多行、中文注释方法
Jul 19 Python
python单例模式获取IP代理的方法详解
Sep 13 Python
Linux下安装python3.6和第三方库的教程详解
Nov 09 Python
用python脚本24小时刷浏览器的访问量方法
Dec 07 Python
详解Python进阶之切片的误区与高级用法
Dec 24 Python
python3.7 openpyxl 删除指定一列或者一行的代码
Oct 08 Python
如何给Python代码进行加密
Jan 10 Python
python 中的[:-1]和[::-1]的具体使用
Feb 13 Python
Python 实现自动完成A4标签排版打印功能
Apr 09 Python
django ObjectDoesNotExist 和 DoesNotExist的用法
Jul 09 Python
Python编写memcached启动脚本代码实例
Aug 14 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
Ajax+PHP 边学边练之四 表单
2009/11/27 PHP
php实现统计二进制中1的个数算法示例
2018/01/23 PHP
javascript动画效果类封装代码
2007/08/28 Javascript
点击下载链接 弹出页面实现代码
2009/10/01 Javascript
JavaScript 轻松搞定快捷留言功能 只需一行代码
2010/04/01 Javascript
基于jQuery的表格操作插件
2010/04/22 Javascript
JS正则表达式大全(整理详细且实用)
2013/11/14 Javascript
jQuery后代选择器用法实例
2014/12/23 Javascript
JavaScript事件类型中焦点、鼠标和滚轮事件详解
2016/01/25 Javascript
三个js循环的关键字示例(for与while)
2016/02/16 Javascript
JavaScript实现256色转灰度图
2017/02/22 Javascript
深入理解vue-loader如何使用
2017/06/06 Javascript
angularjs性能优化的方法
2018/09/05 Javascript
layui-laydate时间日历控件使用方法详解
2018/11/15 Javascript
Vuex实现简单购物车
2021/01/10 Vue.js
[50:02]完美世界DOTA2联赛循环赛 Magma vs IO BO2第一场 11.01
2020/11/02 DOTA
python通过apply使用元祖和列表调用函数实例
2015/05/26 Python
Python3使用PyQt5制作简单的画板/手写板实例
2017/10/19 Python
python 解决动态的定义变量名,并给其赋值的方法(大数据处理)
2018/11/10 Python
python 随机打乱 图片和对应的标签方法
2018/12/14 Python
python将字符串list写入excel和txt的实例
2019/07/20 Python
Django中提示消息messages的设置方式
2019/11/15 Python
基于spring boot 日志(logback)报错的解决方式
2020/02/20 Python
解决python脚本中error: unrecognized arguments: True错误
2020/04/20 Python
Matplotlib中%matplotlib inline如何使用
2020/07/28 Python
慕尼黑山地运动、户外服装和体育用品专家:Sporthaus Schuster
2019/08/27 全球购物
美国球迷装备的第一来源:FOCO
2020/07/03 全球购物
大学本科毕业生的自我鉴定
2013/11/26 职场文书
拾金不昧表扬信范文
2014/01/11 职场文书
办公自动化专业大学生职业规划书
2014/03/06 职场文书
2014全国两会大学生学习心得体会
2014/03/10 职场文书
党员四风问题对照检查材料思想汇报
2014/09/16 职场文书
企业务虚会发言材料
2014/10/20 职场文书
工人先锋号申报材料
2014/12/29 职场文书
储备店长岗位职责
2015/04/14 职场文书
话题作文之呼唤
2019/12/18 职场文书