小记

翻译官方sympy库之ODE

想用来sympy求解线性方程,可是苦于网上资料太少,就想试着翻译。

后来发现有2个博客写的不错,传送门1,传送门2

User Functions

dsolve函数属于这个user functions 范畴内的。

这些函数是用 from sympy import *导入全局名称空间。这些函数(不像hint Functions),它只是为了普通用户使用Sympy。

sympy.solvers.ode.dsolve\color{#008b45}{sympy.solvers.ode.dsolve}sympy.solvers.ode.dsolve

(∗eq∗,∗func=None∗,hint=′default′,simplify=True,ics=None,xi=None,∗eta=None∗,∗x0=0∗,∗n=6∗,kwargs)\color{#008b45}(*eq*, *func=None*, hint='default', simplify=True, ics=None, xi=None, \\*eta=None*, *x0=0*, *n=6*, kwargs)(∗eq∗,∗func=None∗,hint=′default′,simplify=True,ics=None,xi=None,∗eta=None∗,∗x0=0∗,∗n=6∗,kwargs)

可求解任意(支持的)常微分方程和常微分方程方程组。

对于单常微分方程

Usage

将认为它的方程组中的方程个数为1,

dsolve(eq,f(x),hint)\color{#008b45}dsolve(eq, f(x), hint)dsolve(eq,f(x),hint) ->使用方法 hint在常微分方程组eq中求解f(x)。

Details

  • eq 它可以是可支持的任何常微分方程。它可以是一个等式,也可以是一个表达式,假设它等于0。
  • f(x) 它的导数构成了微分方程。在大多数情况下,我们不需要提供它,它会被自动算出(如果它不能被算出就会报错)
  • hint 它是你想让dsolve使用的求解方法。使用classify_ode(eq,f(x))\color{#008b45}{classify\_ode(eq, f(x))}classify_ode(eq,f(x)) 可以获得一个ODE的所有可以使用的方法。默认使用classify_ode()\color{#008b45}{classify\_ode()}classify_ode().
  • simplify 可以用odesimp()\color{#008b45}{odesimp ()}odesimp()来简化。有关更多信息,请参见它的DocString。例如,关闭此选项可以禁用func解的求解或任意常数的简化。它仍然会与这个提示整合。注意,如果启用此选项,解决方案可能包含比ODE的顺序更多的任意常数。
  • xi and eta 是常微分方程的无穷小函数。它们是微分方程不变的点变换的李群的无穷小。用户可以为无穷小指定值。如果没有指定,xi和eta将在各种启发式的帮助下使用infinitesimals()\color{#008b45}{infinitesimals()}infinitesimals()进行计算。
  • ics 为微分方程的初始/边界条件集。它应该以类似于的形式{f(x0):x1,f(x).diff(x).subs(x,x2):x3}\color{#0000ff}{\{f(x0): x1, f(x).diff(x).subs(x, x2): x3\}}{f(x0):x1,f(x).diff(x).subs(x,x2):x3}给出。对于幂级数解,如果没有指定初始条件,则假定为f(0)为c0,幂级数解为0。
  • x0 是那个要求解出的点。
  • n 给出要求解出的变量的指数

Hints

先跳

Tips

  • 你可以这样声明一个未知函数的导数:
from sympy import Function,Derivative
from sympy.abc import x    # x是一个独立变量
f= Function("f")(x)   #f是x的函数
f_=Derivative(f,x)   #f_是f对x的导数
  • 在test_ord .py可以看到一系列如何使用dsolve()\color{#008b45}{dsolve()}dsolve()的示例。
  • dsolve()\color{#008b45}{dsolve()}dsolve()总是返回一个等式类(除了提示是all或all_Integral的情况)。如果可能的话,它将显式地为所求解的函数求解。否则,它返回一个隐式解。任意常数是名为C1、C2等的符号。
  • 因为所有的解在数学上都是等价的,所以对于ODE,一些提示可能会返回完全相同的结果。但是,通常两个不同的提示会以不同的格式返回相同的解决方案。两者应该是等价的。还要注意,有时任意常数在两个不同解中的值可能不相同,因为一个常数可能“吸收”了其他常数。
  • 用 help(ode.ode<hintname>)\color{#008b45}{help(ode.ode_<hintname>)}help(ode.ode<​hintname>)可以获取关于特定提示的更多信息,其中是不带_Integral的提示的名称。

对于常微分方程组

Usage

dsolve(eq,func)\color{#008b45}{dsolve(eq, func)}dsolve(eq,func) ->解常由x(t),y(t),z(t)等构成的微分方程组eq。

Details

eq 它可以是任意支持的常微分方程组它可以是一个等式,也可以是一个表达式,假设它等于0。

func 设x(t)和y(t)是一个变量的函数,该变量及其部分导数构成常微分方程的方程组。它将被自动检测(如果无法检测,则会引发一个错误)。

Examples

from sympy import Function, dsolve, Eq, Derivative, sin, cos, symbols
from sympy.abc import x
f=Function('f')
ans=dsolve(Derivative(f(x),x,x)+9*f(x),f(x))
print(ans)
#Eq(f(x), C1*sin(3*x) + C2*cos(3*x))

sympy的dsolve函数相关推荐

  1. matlab中的dsolve函数是用来解决什么问题的?请详细解释并给我几个简单的例子...

    "dsolve" 函数是 MATLAB 中用于解决微分方程的函数.它的目的是解决一阶或多阶常微分方程的解析解,并且可以对解进行可视化. 下面是几个简单的例子: 一阶常微分方程:dy ...

  2. 利用sympy库求解常微分方程:dsolve()函数

    [小白从小学Python.C.Java] [计算机等级考试+500强双证书] [Python-数据分析] [sympy库的使用] 使用sympy库求解常微分方程 .dsolve()方法 选择题 下列说 ...

  3. SymPy库常用函数

    简介 SymPy是一个符号计算的Python库.它的目标是成为一个全功能的计算机代数系统,同时保持代码简 洁.易于理解和扩展.它完全由Python写成,不依赖于外部库.SymPy支持符号计算.高精度计 ...

  4. python如何求导数(derivative)、求偏导(partial derivative)?(sympy库symbols()函数、diff()函数、subs()函数)

    可以使用Sympy库 SymPy是一个符号计算的Python库.它的目标是成为一个全功能的计算机代数系统,同时保持代码简洁.易于理解和扩展.它完全由Python写成,不依赖于外部库. SymPy支持符 ...

  5. 在matlab中使用dsolve函数解范德波尔二阶微分方程

    荷兰物理学家范德波尔为了描述三极管的震荡效应创建了范德波尔方程,其数学表达式如下: 我们假设μ=0,并给给出初始变量的值,可以简化方程如下: 我们把以上数学公式转换成matlab语言并且做出图像如下: ...

  6. python泰勒展开_如何利用sympy对未知函数$f(x)$进行符号泰勒展开

    正如@asmurer所描述的,现在这是可能的from sympy import init_printing, symbols, Function init_printing() x, h = symb ...

  7. sympy 符号函数求导

    原文链接: sympy 符号函数求导 上一篇: python 一阶线性拟合 下一篇: python 非线性方程组 使用sympy 对指定函数表达式求值和求指定位置的导数 from sympy impo ...

  8. 「SymPy」符号运算(1) 简介/符号/变量/函数/表达式/等式/不等式/运算符

    目录 1 简介 2 导入库 3 定义符号 4 定义函数 5 表达式 6 等式/不等式 7 `SymPy`假设与限制 8 运算符/函数 常用运算符/函数 数学常数 三角函数 复杂函数 指数运算 1 简介 ...

  9. sympy科学计算器

    SymPy库常用函数 简介 本文抄于https://www.cnblogs.com/baby123/p/6296629.html SymPy是一个符号计算的Python库.它的目标是成为一个全功能的计 ...

  10. python解常微分方程_Python-sympy.dsolve求解常微分方程(组)

    这里分别介绍怎么利用sympy.dsolve求解常微分方程和常微分方程组. #首先利用sympy.dsolve求解单个的常微分方程: #代码 from sympy import Function, d ...

最新文章

  1. html如何制作查看更多横条,页面浏览量顶部横条显示代码-附“Js/Jquery获取网页屏幕可见区域高度”...
  2. fpga项目开发实例_深入浅出玩转FPGA书+视频教程:35课时+源码
  3. Word Embedding News|词嵌入新鲜事:六月刊:GPT-3来了
  4. spring 4.0 JUnit简单的Dao,Service测试
  5. kaggle房价预测特征意思_机器学习-kaggle泰坦尼克生存预测(一)-数据清洗与特征构建...
  6. mac下安装sublime text2插件less2css
  7. R语言如何处理数据的列中存在多个元素的问题
  8. 机器学习-西瓜书第一、二章
  9. java实现活动安排问题_贪心算法-活动安排问题
  10. 《Android进阶之光》--Dagger2
  11. html5拼音显示,HTML5:给汉字加拼音?收起展开组件?
  12. mysql类目树关系的保存和全排列查询
  13. 打印2018年的日历
  14. matlab的蝶形运算,第五章快速傅里叶变换(蝶形运算).ppt
  15. SoftICE使用(3)—在VMware中配置远程SoftICE的另一种办法 zz xfocus
  16. 在浏览器输入URL会发生什么?
  17. 笔记本连接显示器后没有声音_笔记本电脑外接显示器后没声音,请问怎么调整设置...
  18. matlab中如何转动三维图_matlab如何画三维图
  19. 华为手表 GT3训练计划怎么用?
  20. java new date 减一天_java日期增加一个月或减少一天

热门文章

  1. 西电计算机学院硕士生导师马,西安电子科技大学计算机学院研究生导师简介-周端...
  2. 失败程序员的十年总结
  3. 计算机课程反馈报告怎么写,计算机概论a课程报告范文.doc
  4. Unity VR成像原理
  5. python123期末四题编程题 -无空隙回声输出-文件关键行数-字典翻转输出-《沉默的羔羊》之最多单词
  6. Amazon 新手要知道 100 个问题
  7. python处理考勤数据_python连接中控考勤机分析数据
  8. 看图猜成语小程序设计与实现(小程序+PHP)
  9. 3D Photography using Context-aware Layered Depth Inpainting-论文主要内容翻译
  10. types是什么意思中文翻译成_types是什么意思_types的翻译_音标_读音_用法_例句_爱词霸在线词典...