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实现一个简单的多线程TCP服务器的教程
May 05 Python
Python环境下搭建属于自己的pip源的教程
May 05 Python
Python中shutil模块的常用文件操作函数用法示例
Jul 05 Python
基于python元祖与字典与集合的粗浅认识
Aug 23 Python
Python之Scrapy爬虫框架安装及简单使用详解
Dec 22 Python
python爬虫获取京东手机图片的图文教程
Dec 29 Python
python跳过第一行快速读取文件内容的实例
Jul 12 Python
Python对CSV、Excel、txt、dat文件的处理
Sep 18 Python
简单了解python的一些位运算技巧
Jul 13 Python
python中p-value的实现方式
Dec 16 Python
python实现简单井字棋小游戏
Mar 05 Python
如何用python爬取微博热搜数据并保存
Feb 20 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 破解防盗链图片函数
2008/12/09 PHP
php学习笔记之 函数声明
2011/06/09 PHP
详解js异步文件加载器
2016/01/24 PHP
PHP5中使用mysqli的prepare操作数据库的介绍
2019/03/18 PHP
基于PHP实现解密或加密Cloudflar邮箱保护
2020/06/24 PHP
swoole锁的机制代码实例讲解
2021/03/04 PHP
Gambit vs ForZe BO3 第三场 2.13
2021/03/10 DOTA
从javascript语言本身谈项目实战
2006/12/27 Javascript
JQuery 无废话系列教程(一) jquery入门 [推荐]
2009/06/23 Javascript
BootStrap selectpicker
2016/06/20 Javascript
js返回顶部实例分享
2016/12/21 Javascript
JS实现的简单表单验证功能完整实例
2017/10/14 Javascript
Vue的路由动态重定向和导航守卫实例
2018/03/17 Javascript
Vue 项目代理设置的优化
2018/04/17 Javascript
angularJS自定义directive之带参方法传递详解
2018/10/09 Javascript
nuxt中使用路由守卫的方法步骤
2019/01/27 Javascript
javascript实现计算器功能
2020/03/30 Javascript
javascript实现简单留言板案例
2021/02/09 Javascript
[43:24]2018DOTA2亚洲邀请赛3月29日 小组赛A组 LGD VS Liquid
2018/03/30 DOTA
linux系统使用python监控apache服务器进程脚本分享
2014/01/15 Python
详解Python爬虫的基本写法
2016/01/08 Python
浅谈Pandas中map, applymap and apply的区别
2018/04/10 Python
新加坡最早生产电动滑板车的制造商之一:FunsToTheFore
2020/09/08 全球购物
JPA的优势都有哪些
2013/07/04 面试题
小学生家长评语大全
2014/02/10 职场文书
三查三看党性分析材料
2014/02/18 职场文书
《小猫刮胡子》教学反思
2014/02/21 职场文书
人力资源主管职责范本
2014/03/05 职场文书
高中学校对照检查材料
2014/08/31 职场文书
列车乘务员工作不细心检讨书
2014/10/07 职场文书
小学班主任工作总结2015
2015/04/07 职场文书
团队拓展训练感想
2015/08/07 职场文书
课程设计感想范文
2015/08/11 职场文书
幼儿园大班开学寄语(2016秋季)
2015/12/03 职场文书
python 利用 PIL 将数组值转成图片的实现
2021/04/12 Python
OpenCV图像变换之傅里叶变换的一些应用
2021/07/26 Python