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 smtplib模块发送SSL/TLS安全邮件实例
Apr 08 Python
Python导入oracle数据的方法
Jul 10 Python
对Python中的@classmethod用法详解
Apr 21 Python
python 读取视频,处理后,实时计算帧数fps的方法
Jul 10 Python
Python 实现某个功能每隔一段时间被执行一次的功能方法
Oct 14 Python
Python Excel处理库openpyxl使用详解
May 09 Python
Python 获取 datax 执行结果保存到数据库的方法
Jul 11 Python
Python 异常的捕获、异常的传递与主动抛出异常操作示例
Sep 23 Python
python with (as)语句实例详解
Feb 04 Python
Python 3.8 新功能来一波(大部分人都不知道)
Mar 11 Python
Django ModelForm操作及验证方式
Mar 30 Python
利用Python判断整数是否是回文数的3种方法总结
Jul 07 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中动态显示签名和ip原理
2007/03/28 PHP
php 数组的指针操作实现代码
2011/02/08 PHP
使用淘宝IP库获取用户ip地理位置
2013/10/27 PHP
ThinkPHP模版中导入CSS和JS文件的方法
2014/11/29 PHP
关于实现代码语法标亮 dp.SyntaxHighlighter
2007/02/02 Javascript
番茄的表单验证类代码修改版
2008/07/18 Javascript
JavaScript入门教程(11) js事件处理
2009/01/31 Javascript
模仿JQuery.extend函数扩展自己对象的js代码
2009/12/09 Javascript
分享一个常用的javascript静态类
2014/12/31 Javascript
js中this的用法实例分析
2015/01/10 Javascript
js表头排序实现方法
2015/01/16 Javascript
莱鸟介绍javascript onclick事件
2016/01/06 Javascript
用jQuery的AJax实现异步访问、异步加载
2016/11/02 Javascript
JavaScript基于扩展String实现替换字符串中index处字符的方法
2017/06/13 Javascript
简单快速的实现js计算器功能
2017/08/17 Javascript
JS中获取 DOM 元素的绝对位置实例详解
2018/04/23 Javascript
Fetch超时设置与终止请求详解
2019/05/18 Javascript
vue中监听返回键问题
2019/08/28 Javascript
使用axios请求接口,几种content-type的区别详解
2019/10/29 Javascript
Python中的引用和拷贝浅析
2014/11/22 Python
Python正则表达式完全指南
2017/05/25 Python
Python2.7基于淘宝接口获取IP地址所在地理位置的方法【测试可用】
2017/06/07 Python
pytorch 把MNIST数据集转换成图片和txt的方法
2018/05/20 Python
对python生成业务报表的实例详解
2019/02/03 Python
一个可以套路别人的python小程序实例代码
2019/04/09 Python
python程序中的线程操作 concurrent模块使用详解
2019/09/23 Python
记一次pyinstaller打包pygame项目为exe的过程(带图片)
2020/03/02 Python
Python实现网络聊天室的示例代码(支持多人聊天与私聊)
2021/01/27 Python
.net面试题
2016/09/17 面试题
教学实验楼管理制度
2014/02/01 职场文书
2014年扶贫帮困工作总结
2014/12/09 职场文书
2015年法院工作总结范文
2015/04/28 职场文书
2016党员学习作风建设心得体会
2016/01/21 职场文书
JavaScript 语句之常用 for 循环详解
2021/03/29 Javascript
简单谈谈Python面向对象的相关知识
2021/06/28 Python
使用python创建股票的时间序列可视化分析
2022/03/03 Python