精华内容
下载资源
问答
  • 常微分方程的稳定性理论,第一部分介绍了常微分方程组,线性微分方程组的概念,从第五章开始稳定性理论的讲解。包括李亚普诺夫稳定性与全局稳定性
  • python解常微分方程组

    千次阅读 2020-06-07 17:00:43
    美国气象学家洛伦兹(E.N.Lorenz)是混沌理论的奠基者之一。...随后,他在同事工作的基础上化简了自己先前的模型,得到了有3个变量的一阶微分方程组,由它描述的运动中存在一个奇异吸引子,即洛伦兹吸引子。

    美国气象学家洛伦兹(E.N.Lorenz)是混沌理论的奠基者之一。20世纪50年代末到60年代初,他的主要工作目标是从理论上进行长期天气预报研究。他在使用计算机模拟天气时意外发现,对于天气系统,哪怕初始条件的微小改变也会显著影响运算结果。随后,他在同事工作的基础上化简了自己先前的模型,得到了有3个变量的一阶微分方程组,由它描述的运动中存在一个奇异吸引子,即洛伦兹吸引子,方程如下。

    三个方程定义了三维空间中的各个坐标点上度速度矢量,其中ρ、σ、β为常数,不同的参数可以算出不同的轨迹:x(t)、y(t)、z(t)。当参数为某些值时,轨迹出现混沌现象。即最小的初值差别也会显著地影响运动轨迹。

    import pylab as pl
    import numpy as np
    from scipy import integrate
    from scipy.integrate import odeint
    
    #%fig=洛伦茨吸引子:微小的初值差别也会显著地影响运动轨迹
    from scipy.integrate import odeint 
    import numpy as np 
    
    def lorenz(w, t, p, r, b): #❶
        # 给出位置矢量w,和三个参数p, r, b计算出
        # dx/dt, dy/dt, dz/dt的值
        x, y, z = w.tolist()
        # 直接与lorenz的计算公式对应 
        return p*(y-x), x*(r-z)-y, x*y-b*z
    
    t = np.arange(0, 30, 0.02) # 创建时间点 
    # 调用ode对lorenz进行求解, 用两个不同的初始值 
    track1 = odeint(lorenz, (0.0, 1.00, 0.0), t, args=(10.0, 28.0, 3.0)) #❷
    track2 = odeint(lorenz, (0.0, 1.01, 0.0), t, args=(10.0, 28.0, 3.0)) #❸
    #%hide
    from mpl_toolkits.mplot3d import Axes3D
    fig = pl.figure()
    ax = Axes3D(fig)
    ax.plot(track1[:,0], track1[:,1], track1[:,2], lw=1)
    ax.plot(track2[:,0], track2[:,1], track2[:,2], lw=1);
    
    即使微小的差别也会显著地影响运动轨迹
    洛伦茨吸引子:即使微小的差别也会显著地影响运动轨迹

    [1]洛伦茨吸引子介绍参考:http://bzhang.lamost.org/website/archives/lorenz_attactor

    [2]《python科学计算》(张若愚著)

    展开全文
  • 常微分方程

    2009-12-31 00:26:00
    具体包括:常微分方程的初等解法、线性常微分方程组、高阶常系数线性方程、常微分方程的幂级数解法、常微分方程基本理论、常微分方程定性理论初步和一阶偏微分方程。 本书在编写中注重开拓读者思路,在许多知识点的...
    本书主要介绍了常微分方程的初等解法、基本理论和稳定性理论初步。具体包括:常微分方程的初等解法、线性常微分方程组、高阶常系数线性方程、常微分方程的幂级数解法、常微分方程基本理论、常微分方程定性理论初步和一阶偏微分方程。 本书在编写中注重开拓读者思路,在许多知识点的讲授中,能针对同一问题提供视角不同的多种方法;在关于方程解的基本性质的讲授中,尝试直接利用方程本身和已知结果进行研究;在关于闭轨线存在性和 lyapunov稳定性等的讲授中,注重从几何或力学的角度来分析和阐述问题。 本书可以作为数学类各专业常微分方程课程的教学用书或参考书,对其他理工科学生学习常微分方程理论也具有参考价值。 本书主要介绍了常微分方程的初等解法、基本理论和稳定性理论初步。具体包括:常微分方程的初等解法、线性常微分方程组、高阶常系数线性方程、常微分方程的幂级数解法、常微分方程基本理论、常微分方程定性理论初步和一阶偏微分方程。 本书在编写中注重开拓读者思路,在许多知识点的讲授中,能针对同一问题提供视角不同的多种方法;在关f方程解的基本性质的讲授中,尝试直接利用方程本身和已知结果进行研究;在关于闭轨线存在性和lyapunov稳定性等的讲授中,注重从几何或力学的角度来分析和阐述问题。 第0章 绪论第一章 常微分方程的初等解法 1.1 分离变量法 1.2 一阶线性方程 1.3 恰当方程、积分因子法 1.4 初等变换法 1.5 一阶隐式方程 1.6 高阶方程的降阶 1.7 微分方程组、首次积分第二章 线性常微分方程组 2.1 常系数线性方程组 2.2 eat的计算 2.3 高阶常系数线性方程 2.4 算子法和laplace变换法 2.5 线性方程组的一般理论 2.6 二阶线性方程的边值问题第三章 常微分方程基本理论 3.1 picard存在惟一性定理 3.2 解的延伸 3.3 比较定理、gronwall不等式 3.4 解关于参数、初值的连续性、连续可微性 3.5 peano定理、osgood条件 3.6 不动点定理与解的存在性第四章 幂级数解法 4.1 picard幂级数解法 4.2 广义幂级数解法第五章 定性理论初步 5.1 自治系统 5.2 平面自治系统的奇点 5.3 平面自治系统的极限环 5.4 lyapunov稳定性 5.5 lyapunov直接方法 5.6 lyapunov函数的存在性 5.7 一次近似理论第六章 一阶偏微分方程 6.1 引论 6.2 一阶齐次线性偏微分方程 6.3 一阶拟线性偏微分方程参考文献

    转载于:https://www.cnblogs.com/kangderui/archive/2009/12/31/1636517.html

    展开全文
  • 本节将介绍常微分方程初值问题的数值求解,主要内容分为三个部分:常微分方程数值...常微分方程数值求解,指研究求解初值问题各类数值方法的构造、理论分析与数值实现问题。研究的主要对象为一阶方程组初值问题: 其中

    本节将介绍常微分方程初值问题的数值求解,主要内容分为三个部分:常微分方程数值求解的概念、求解函数及刚性问题。
    一、常微分方程数值求解的一般概念
    首先,凡含有参数,未知函数和未知函数导数 (或微分) 的方程,称为微分方程,有时简称为方程,未知函数是一元函数的微分方程称作常微分方程,未知函数是多元函数的微分方程称作偏微分方程。微分方程中出现的未知函数最高阶导数的阶数,称为微分方程的阶。
    常微分方程数值求解,指研究求解初值问题各类数值方法的构造、理论分析与数值实现问题。研究的主要对象为一阶方程组初值问题:
    在这里插入图片描述
    其中,其中y=y(x)是未知函数,y(x0)=y0是初值条件,而f(x,y)是给定的二元函数。
    所谓其数值解法,就是求y(x)在离散结点xn处的函数近似值yn 的方法 ,yn≈y(xn)。这些近似值称为常微分方程初值问题的数值解。相邻两个结点之间的距离称为步长。
    这里主要介绍两种:单步法和多步法
    单步法:在计算y(n+1)时只用到前一步的y(n),因此在有了初值之后就可以逐步往下计算,其代表是龙格- - 库塔( Runge- - Kutta ) 法
    多步法:在计算y(n+1)时,除了用到前一步的值y(n)之外, , 还要用到y(n-p)( p=1,2 , … ,k,k>0)的值, , 即前面的k步。其代表就是亚当斯 (Adams) 法
    更多介绍可参见这个链接:
    https://wenku.baidu.com/view/cafe161b9a6648d7c1c708a1284ac850ad0204fc.html
    二、常微分方程求解函数
    MATLAB 提供了多个求常微分方程初值问题数值解的函数,一般调用格式为:
    [t,y]=solver(filename,tspan,y0,option)
    其中,t和y分别给出时间向量和相应的数值解。solver为求常微分方程数值解的函数。filename 是定义 f(t ,y) 的函数名,该函数必须返回一个列向量。
    tspan 形式为 [t0,tf],表示求解区间。 y0 是初始状态向量。Option 是可选参数,用于设置求解属性,常用的属性包括相对误差值 RelTol(默认值是10的-3次方)和绝对误差值 AbsTol( ( 默认值是10的-6次方)。
    常微分方程数值求解函数的统一命名格式:
    odennx
    ode是Ordinary Differential Equation 的缩写,是常微分方程的意思。
    nn 是数字,代表所用方法的阶数。例如,ode23采用2阶龙格- - 库塔( Runge- - Kutta )算法 ,用3阶公式做误差估计来调节步长,具有低等精度。ode45 采用4阶龙格- - 库塔算 法 ,用5阶公式做误差估计来调节步长,具有中等精度。
    x是字母,用于标注方法的专门特征。例如, ode15s 、ode23s 中的“s”代表( Stiff ),表示函数适用于刚性方程。
    下表列出了求常微分方程数值解的函数:

    求解函数 采用方法 适用场合
    ode23 2 阶或3阶 Runge- - Kutta 算法,低精度 非刚性
    ode45 4 阶或5阶 Runge- - Kutta 算法,中精度 非刚性
    ode113 Adams 算法,精度可到10的-3次方至10的-6次方 非刚性,计算时间比 ode45
    ode23t 梯形算法 适度刚性
    ode15s Gear’s 反向数值微分算法,中精度 刚性
    ode23s 2阶 Rosebrock 算法,低精度 刚性,当精度较低时,计算时间比 ode15s
    ode23tb 梯形算法,低精度 刚性,当精度较低时,计算时间比 ode15s

    先看一个简单例子,y‘=y+3x/x^2,初值y(0)=-2,求解区间为[1,4]。

    >> odefun=@(x,y) (y+3*x)/x^2;
    tspan=[1 4];
    y0=-2;
    [x y]=ode45(odefun,tspan,y0)
    plot(x,y)
    

    在这里插入图片描述 二、刚性问题
    有一类常微分方程,其解的分量有的变化很快,有的变化很慢,且相差悬殊,这就是所谓的刚性问题 (Stiff) 。
    对于刚性问题,数值解算法必须取很小步长才能获得满意的结果,导致计算量会大大增加。解决刚性问题需要有专门方法。非刚性算法可以求解刚性问题,只不过需要很长的计算时间。
    例、假如点燃一个火柴,火焰球迅速增大直至某个临界体积,然后,维持这一体积不变,原因是火焰球内部燃烧耗费的氧气和从球表面所获氧气达到平衡。其简化模型如下:
    y’=y2-y3,y(0)=L,0<=t<=2/L
    其中, y(t) 代表火焰球半径,初始半径是λ ,它很小。分析 λ 的大小对方程求解过程的影响。

    >>  L=0.01;
    f=@(t,y) y^2-y^3;
    tic;[ t,y ]=ode45(f,[0,2/L],L); toc
    disp (['ode45 计算的点数' num2str(length(t))]);
    时间已过 0.003704 秒。
    ode45 计算的点数157
    >>  L=1e-5;
    f=@(t,y) y^2-y^3;
    tic;[ t,y ]=ode45(f,[0,2/L],L); toc
    disp (['ode45 计算的点数' num2str(length(t))]);
    时间已过 1.010016 秒。
    ode45 计算的点数120565
    >> L=1e-5;
    f=@(t,y) y^2-y^3;
    tic;[ t,y ]=ode15s(f,[0,2/L],L); toc
    disp (['ode45 计算的点数' num2str(length(t))]);
    时间已过 0.189977 秒。
    ode45 计算的点数98
    

    注:tic 和 toc 函数 用来记录 微分方程求解 命令执行的时间 ,使用 tic 函数启动计时器,使用 toc 函数显示从计时器启动到当前所经历的时间。
    上述采用了三种不同方法,可以发现,第一种的运行结果表明这时常微分方程不算很刚性;第二种这时计算时间明显加长,计算的点数剧增,表明这时常微分方程表现为刚性;因此对于刚性问题,我们需要改变求解算法,我们选择以“s”结尾的函数,例如第三种方法他们专门用于求解刚性方程。计算时间大大缩短,计算的点数大大减少。
    常微分方程数值解法的研究已发展得相当成熟,理论上也颇为完善,小编由于能力有限,只能了解个大概,本文讲解也就写的是比较基础的一些方面,如果大家有更多需求,可以自己查阅相关资料。

    关于MATLAB的学习:

    大家可以关注我们的知乎专栏——数据可视化和数据分析中matlab的使用:
    https://zhuanlan.zhihu.com/c_1131568134137692160

    欢迎大家加入我们的MATLAB学习交流群:
    953314432
    扫码关注我们
    发现更多精彩
    在这里插入图片描述

    展开全文
  • 神经网络求解二阶常微分方程

    千次阅读 热门讨论 2020-11-20 15:10:41
    神经网络求解二阶常微分方程 最近课题老师给出一篇文献,文件原文如链接一所示。需要让我使用深度神经网络求解偏微分方程。在相关调研过程中,CSDN上作者Trytobenice分享过相关的程序源码。基于相关程序源码,我将...

    神经网络求解二阶常微分方程

    最近课题组老师给出一篇文献,文件原文如链接一所示。需要让我使用深度神经网络求解偏微分方程。在相关调研过程中,CSDN上作者Trytobenice分享过相关的程序源码。基于相关程序源码,我将他的一阶常微分方程求解扩充到二阶常微分方程求解。并且按照此方法可以求解高阶常微分方程。

    理论分析

    对于任意一个微分方程,我们都可以用这个方程表示出
    在这里插入图片描述
    求解目的就是找出这样的一个方程:ψ(x),能够满足以上的G()函数。
    对于计算机求解,第一步要将其离散化处理:
    在这里插入图片描述
    人工神经网络若要求解该方程,那就设方程ψ(x)函数如下形式:
    在这里插入图片描述
    将预设的ψ(x)带入原方程中,只需要让G()函数在定义范围内达到最小,那就求解出这个方程了。二次方项是为了将负数对结果的影响消除。
    在这里插入图片描述
    下面再来分析ψ(x)的内容:
    在讲解这个解函数之前,需要给出一个补充知识。要求解出常微分方程,仅仅给出常微分方程表达式是不够的,还要给出常微分方程的初始条件和边界条件。这样才能保证解函数的唯一性。

    ψ(x)函数中包含两项。第一项是A(x),这一项是为了满足初始条件或者边界条件。第二项F{x,N(x,p)},这一项是神经网络满足偏微分方程的部分,不考虑边界条件。【注:为什么F()项能够不考虑边界条件,文中例子会给出介绍】

    继续看F{x,N(x,p)},这一项中包含N(x,p)。这个N()函数就是神经网络函数表达式形式。x表示输入数据,p表示神经网络中的参数。通过BP网络优化神经网络中的参数p,使神经网络能够达到最适,就能得到神经网络的解函数ψ(x)。

    设出这个解函数之后,我们下一步要根据解函数表达出微分方程。微分方程中至少包含一个微分项,可能是一阶,也可能是二阶;可能是常微分,也可能是偏微分。论文中给出神经网络N(x,p)输出对输入x的微分公式。公式形式如下:在这里插入图片描述
    式中k表示k阶导数,j表示对输入数据 xj(j是下角标) 的偏导。本文仅仅探讨常微分形式。

    举例分析

    这里给出一个一阶常微分方程表达式,用这个方程分析如何使用神经网络求解。方程入下:
    在这里插入图片描述
    并且给出边界条件,在这里插入图片描述
    这个方程有很明确的解析解,解析解如下所示:
    在这里插入图片描述
    对于神经网络求解,我们可以设神经网络解ψ(x)形式为:
    在这里插入图片描述
    在这里,满足边界条件的A(x)直接为1。不需要考虑边界条件的项F{x,N(x,p)}设为x*N(x,p),那么在x=0的情况下,解第二项直接为0,仅仅保留A(x),这样就能解释前部分的【注】。

    方法提升

    以上分析全部针对论文1的内容,论文1出版年份为1998年,论文2于2019年提出了更进一步的方法,下面我们进一步分析论文2的内容:

    论文2设计的神经网络与论文1,解析解设计过程中,直接设神经网络输出的结果为
    在这里插入图片描述
    在这里不考虑边界值,边界值在损失函数上体现。损失函数第一项如论文1相同,第二项体现边界值。损失函数通过以下函数给出:在这里插入图片描述
    论文2设计的神经网络结构非常简单,中间只有一个隐藏层,隐藏层中只有10个神经元。

    在这里插入图片描述

    代码结果

    在这里展示我使用Tensorflow设计的,求解二阶常微分方程的程序结果。二阶常微分方程式由以下方程给出:
    在这里插入图片描述

    二阶微分方程的初始值:
    在这里插入图片描述

    该微分方程的解析解:
    在这里插入图片描述

    使用设计的程序,仿真出的结果如图所示:
    在这里插入图片描述
    其中,解析解和神经网络解之间的差值用下图可以看出:
    在这里插入图片描述
    可以看到,这个拟合结果还是非常不错的,误差数量级控制在10^-4以下。

    有时间会在github上开源代码,到时候下载别忘了给我点一个star。

    论文1: Artificial neural networks for solving ordinary and partial differential equations
    论文2: Solving differential equations with neural networks: Applications to the calculation of cosmological phase transitions.

    展开全文
  • 常微分方程教程(第2版)》是作者在北京大学数学学院多年教学实践的基础上编写而成的,第一版于1991年出版。作者在第二版准备的过程中,在力求保持原有风格、特色的同时,对部分内容作了适当调整和精简,在叙述上也...
  • 全书主要内容包括:绪论、一阶方程的初等积分法、一阶方程的一般理论、高阶微分方程、微分方程组、微分方程的定性理论、Maple在常微分方程中的应用。 《常微分方程及Maple应用》可作为数学、应用数学、计算数学、...
  • 该书是常微分方程基础理论、基本方法和数学软件的系统应用相结合的教材。 它保持了当前通用教材中理论系统相对完整,方法与技巧多样化的特点,突出了从问题出发引导、发现解决问题的途径,进而导出重要的概念、命题...
  • 针对常规三阶微分方程的可积性,采用一种不同于降阶、消元的新方法,利用对称群理论,采用将三阶常微分方程作用在Lie群上的方法,通过一个变换将方程组的任意解映成该方程组的另一个解,求出Lie群生成元,得到首次积分,...
  • 研究了用Rosenbrock方法求解多延时微分方程组数值解的稳定性Rosenbrock方法是求解刚性常微分方程的有效方法,基于Lagrange插值,借助于理论解渐近稳定的条件,对于线型方程组模型,分析了Rosenbrock方法的GPmL-稳定...
  • 1. 熟悉求解常微分方程初值问题的有关方法和理论,主要是改进欧拉法; 2. 会编制上述方法的计算程序,包括求解微分方程组的计算程序; 3. 针对实习编制程序,并上机计算其所需要的结果; 4. 通过对各种求解方法的...
  • 本文着重于开发一种具有块扩展的混合方法,用于直接求解一般三阶常微分方程的初值问题(IVP)。 幂级数用作IVP解决方案的基础函数。 将基函数的近似解插值到某些选定的离网点,同时将近似解的三阶导数并置在所有网格...
  • 作者:黄建华,王晓 摘要:本书是常微分方程和差...本教材的主要内容包括一阶常微分方程基本理论、线性微分方程组与高阶微分方程、微分方程定性理论与稳定性理论初步、一阶差分方程基本理论、差分方程组及其稳定性等。
  • 基于微分方程组理论和矩阵理论,采用待定矩阵方法和按列比较方法,给出了非齐次项为二次多项式与指数函数乘积的一类三维二阶系数线性微分方程组的特解公式,对二种特殊情况进行了讨论,并通过算例验证了微分方程组特解...
  • 基于微分方程组理论和矩阵理论,采用按列比较方法和待定矩阵方法,给出了非齐次项为二次多项式与指数函数乘积的一类三维二阶系数线性微分方程组的特解公式。对特殊情况进行了讨论,并通过算例验证了微分方程组特解...
  • 基于微分方程组理论和矩阵理论,采用待定矩阵方法和按列比较方法,给出了非齐次项为三角函数与指数函数乘积的一类三维二阶系数线性微分方程组的特解公式,对3种特殊情况进行了讨论,并通过算例验证了微分方程组特...
  • 前半部分重点介绍常微分方程和常微分方程组,后半部分重点讲述偏微分方程的初步理论,分别从定性分析、解析分析和数值分析三个角度由浅人深、徐徐展开。另外,本书的每一章都包含丰富的范例,安排了适量的习题,并且...
  • //功能:方程组1和方程组2解不断逼近,t不断改变方程组1,A不断改变方程组2迭代初值,误差满足要求, 输出此时A、t。现在在步长为0.01,C[0]=100;时运行出t=1.1,A=43.0,改变C[0]=200就没有结果了1、参看 资料变...
  • 应用偏微分方程 作 者: 谷超豪,李大潜,沈玮熙 著 出版时间:2014 丛编项: 高等学校教材 内容简介  本书的写作意图是通过几个经过选择的主题的简单介绍,使读者了解偏微分方程应用的...附录 常微分方程几何理论
  • 求解常微分方程的时间步长方法; 以及延迟微分方程的程序。 仔细的数值分析产生了一套快速,准确和可靠的方法。 因此,本工作消除了用户熟悉所有这些技术和基础理论,对其进行编程,然后调试数千行代码的需求。 该...
  • 阐述了应用微分算子理论建立基本解的具体步骤,并应用它和求解常微分方程组的若干技巧建立了二维和三维弹性静力学、二维弹性动力学、Reissner板以及正交各向异性薄板和平面问题的基本解,验证了所提出方法的...
  • 在数值计算中,对三次样条曲线插值和用差分方法求解常微分方程边值问题时,通常会遇到Ax=d三对角形式的方程组: (1) 利用三对角矩阵的LU分解建立计算量更少的线性方程组求解公式,现将系数矩阵A进行克劳特...
  • 【笔记】线性方程组

    2011-05-13 17:10:00
    工程中许多问题最后都可以转化为求解线性方程组,而且许多数值计算问题(如样条函数、常微分方程数值解、差分方程等)的研究也往往归结为此类问题,因此线性方程组的求解是一个有广泛应用背景的问题。 线性方程组...
  • 数值计算——追赶法求解三对角方程组(附代码)

    千次阅读 多人点赞 2019-09-22 20:30:30
    目录 追赶法基础理论 追赶法c++程序代码 程序运行结果 源码文件下载地址 ...在数值计算中,对三次样条曲线插值和用差分方法求解常微分方程边值问题时,通常会遇到Ax=d三对角形式的方程组: ...
  • 这几十年涌现了大量的论文、专著,举行了多次分数微积分与分数微分方程理论和应用的国际会议.美国“数学评论”(MR)的分类目录中已列出专项.同时,由于它在物理学中的应用,还引起了对经典物理定律,的杯葛和激烈...
  • 主要研究一类四阶渐近常微分方程组解的存在性,是关于自伴算子方程指标理论进一步的应用.定义了四阶线性系统的指标。讨论了指标的性质,研究了一类四阶渐近常微分方程组解的存在性,并给出了解存在性的例子.
  • 洛伦兹方程的求解 洛伦兹吸引子是混沌理论重要的标志而它是由洛伦兹方程求解得来的 洛伦兹方程是一组常微分方程而 Runge-Kutta方法是求解常微分方程的经典方法 Matlab提供了多个采用该方法的函数命令比如 ode23,ode...
  • 洛伦兹方程的求解 洛伦兹吸引子是混沌理论重要的标志而它是由洛伦兹方程求解得来的 洛伦兹方程是一组常微分方程而Runge-Kutta方法是求解常微分方程的经典方法Matlab提供了多个采用该方法的函数命令比如ode23,ode45...
  • 通过变量替换,再引入双曲正切函数作为独立变量,并利用双曲正切函数其独特的微分特性,给出1变换,将修正的 Kortewey-de Vries方程简化为常微分方程,由此得出它的解。此解可作为物理学中非线性方程的实例。尽管不是...
  • 首先简要叙述了耦合模理论早期从微波领域逐渐发展起来而延伸到导波光学和其他领域的历程, 该理论的数学描述是联立的一阶线性常微分方程组, 即耦合模方程。然后明确指出一阶导数形式是该理论的特色, 指明该方程在具体...

空空如也

空空如也

1 2 3 4 5 6
收藏数 115
精华内容 46
关键字:

常微分方程组理论