精华内容
下载资源
问答
  • 常微分方程数值解法及其应用,欧拉算法、改进欧拉算法
  • matlab 常微分方程数值解法 源程序代码所属分类:其他开发工具:matlab文件大小:16KB下载次数:41上传日期:2019-02-13 11:03:29上 传 者:XWLYF说明:11.1 Euler方法 38011.1.1 Euler公式的推导 38011.1.2 Euler...

    matlab 常微分方程数值解法 源程序代码

    所属分类:其他

    开发工具:matlab

    文件大小:16KB

    下载次数:41

    上传日期:2019-02-13 11:03:29

    上 传 者:XWLYF

    说明:  11.1 Euler方法 380

    11.1.1 Euler公式的推导 380

    11.1.2 Euler方法的改进 383

    11.2 Runge-Kutta方法 385

    11.2.1 二阶Runge-Kutta方法 385

    11.2.2 三阶Runge-Kutta方法 388

    11.2.3 四阶Runge-Kutta方法 390

    11.2.4 隐式Runge-Kutta方法 391

    11.3 线性多步法 392

    11.3.1 Adams外推公式 392

    11.3.2 Adams内插公式 394

    11.3.3 Adams预测校正公式 395

    11.4 微分方程组的数值解 397

    11.4.1 Euler方法 397

    11.4.2 经典四阶Runge-Kutta方法 398

    11.4.3 高阶方程组的求解 399

    11.5 刚性方程组的数值解 401

    11.5.1 梯形公式 401

    11.5.2 隐式Runge-Kutta方法 402

    11.5.3 Adams隐式公式 403

    11.6 边值问题的数值解 405

    11.6.1 打靶法 405

    11.6.2 差分法 409

    11.7 MATLAB自带函数应用 411

    11.7.1 ode系列函数 411

    11.7.2 bvp系列函数 414

    11.8 应用案例 416

    (numerical methods for ordinary differential equations)

    文件列表:[举报垃圾]

    CH11, 0 , 2019-02-13

    CH11\adamscoef.m, 395 , 2017-05-20

    CH11\addallnum.m, 63 , 2017-02-27

    CH11\addrownum.m, 898 , 2017-02-14

    CH11\dpendulum.m, 3386 , 2017-05-20

    CH11\euler_trape.m, 815 , 2017-05-20

    CH11\example11_9.m, 405 , 2017-05-20

    CH11\lindiff.m, 795 , 2017-05-20

    CH11\linsht.m, 604 , 2017-05-20

    CH11\nlinsht.m, 628 , 2017-05-20

    CH11\odes_AM.m, 1025 , 2017-05-20

    CH11\odes_euler.m, 512 , 2017-05-20

    CH11\odes_imrk4.m, 1037 , 2017-05-20

    CH11\odes_rk4.m, 767 , 2017-05-20

    CH11\odes_trape.m, 796 , 2017-05-20

    CH11\ode_AB.m, 888 , 2017-05-20

    CH11\ode_ABM.m, 1083 , 2017-05-20

    CH11\ode_AM.m, 1251 , 2017-05-20

    CH11\ode_euler.m, 543 , 2017-05-20

    CH11\ode_imeuler.m, 778 , 2017-05-20

    CH11\ode_imrk4.m, 1070 , 2017-05-20

    CH11\ode_rk2.m, 716 , 2017-05-20

    CH11\ode_rk3.m, 994 , 2017-05-20

    CH11\ode_rk4.m, 771 , 2017-05-20

    CH11\spendulum.m, 1666 , 2017-05-20

    近期下载者:

    相关文件:

    收藏者:

    展开全文
  • 常微分的几种解法应用 常微分方程的初值问题 欧拉方法 龙格-库塔方法
  • 常微分方程数值解法——python实现

    千次阅读 2018-12-29 23:35:06
    研究生课程《应用数值分析》结课了,使用python简单记录了下常微分方程数值解法。 向前欧拉法 {yi+1=yi+hif(xi,yi)y0=y(a) \left \{ \begin{array}{lr} y_{i+1}=y_i+h_i f(x_i,y_i) \\ y_0=y(a) \end{array} \right...

    研究生课程《应用数值分析》结课了,使用python简单记录了下常微分方程数值解法。

    向前欧拉法

    {yi+1=yi+hif(xi,yi)y0=y(a) \left \{ \begin{array}{lr} y_{i+1}=y_i+h_i f(x_i,y_i) \\ y_0=y(a) \end{array} \right .

    from pylab import *
    import warnings
    warnings.filterwarnings('ignore')
    

    求解初值问题
    {y=xy+10x1y(0)=1 \left \{ \begin{array}{lr} y'=x-y+1 & 0\leq x \leq 1 \\ y(0)=1 \end{array} \right .

    该微分方程的精确解为:y=x+exp(x)y=x+exp(-x)

    def f(t,y):
        '''
        求解的微分方程,
        '''
        return t-y+1
    
    def euler_forward(f,a=0,b=1,ya=1,h=0.1,verbose=True):
        '''向前欧拉法
        Args
        ----------
        f: callable function
            需要求解的函数
        a: float
            求解区间起始值
        b:float
            求解区间终止值
        ya:float
            起始条件,ya=y(a)
        h:float
            求解步长(区间[a,b]n等分)
        verbose:logical,default is True
            显示迭代结果
        
        Returns
        ----------
        res:list like
            返回向前欧拉发求解的结果
        '''
    #     i = 0
        res = []
        xi = a 
        yi = ya
        while xi<=b: # 在求解区间范围
            y = yi + h*f(xi,yi)
            if verbose:
                print('xi:{:.2f}, yi:{:.6f}'.format(xi,yi))
            res.append(y)
            xi, yi = xi+h, y
        
        return res
    
    res = euler_forward(f,a=0,b=1,ya=1,h=0.1,verbose=True)
    
    xi:0.00, yi:1.000000
    xi:0.10, yi:1.000000
    xi:0.20, yi:1.010000
    xi:0.30, yi:1.029000
    xi:0.40, yi:1.056100
    xi:0.50, yi:1.090490
    xi:0.60, yi:1.131441
    xi:0.70, yi:1.178297
    xi:0.80, yi:1.230467
    xi:0.90, yi:1.287420
    xi:1.00, yi:1.348678
    

    龙格库塔(Runge-Kutta methods)

    三阶龙格库塔法

    {yi+1=yi+16(k1+2k2+k3)k1=hf(xi,yi)k2=hf(xi+12h,yi+12k1)k3=hf(xi+h,yik1+2k2)y0=y(a),i=0,1,&ThinSpace;,n1 \left \{ \begin{array}{lr} y_{i+1}=y_i+\frac{1}{6}(k_1+2k_2+k_3) &amp; \\ k_1 = hf(x_i,y_i) &amp; \\ k_2 = hf(x_i+\frac{1}{2}h,y_i+\frac{1}{2}k_1) &amp; \\ k_3 = hf(x_i+h,y_i-k_1+2k_2) &amp; \\ y_0=y(a),i=0,1,\cdots,n-1 \\ \end{array} \right .

    四阶龙格库塔法

    {yi+1=yi+16(k1+2k2+2k3+k4)k1=hf(xi,yi)k2=hf(xi+12h,yi+12k1)k3=hf(xi+12h,yi+12k2)k4=hf(xi+h,yi+k3)y0=y(a),i=0,1,&ThinSpace;,n1 \left \{ \begin{array}{lr} y_{i+1}=y_i+\frac{1}{6}(k_1+2k_2+2k_3+k_4) &amp; \\ k_1 = hf(x_i,y_i) &amp; \\ k_2 = hf(x_i+\frac{1}{2}h,y_i+\frac{1}{2}k_1) &amp; \\ k_3 = hf(x_i+\frac{1}{2}h,y_i+\frac{1}{2}k_2) &amp; \\ k_4 = hf(x_i+h,y_i+k_3) &amp; \\ y_0=y(a),i=0,1,\cdots,n-1 \\ \end{array} \right .

    def runge_kutta(f,a=0,b=1,ya=1,h=0.1,verbose=True):
        '''四阶龙格库塔法
        Args
        ----------
        f: callable function
            需要求解的函数
        a: float
            求解区间起始值
        b:float
            求解区间终止值
        ya:float
            起始条件,ya=y(a)
        h:float
            求解步长(区间[a,b]n等分)
        verbose:logical,default is True
            显示迭代结果
        
        Returns
        ----------
        res:list like
            返回向前欧拉发求解的结果
        '''
        res = []
        xi = a 
        yi = ya
        
        while xi <= b: # 在求解区间范围
            k1 = h * f(xi, yi)
            k2 = h * f(xi + h/2, yi + k1/2)
            k3 = h * f(xi + h/2, yi + k2/2)
            k4 = h * f(xi + h, yi + k3)
            y = yi + 1/6 * (k1 + 2*k2 + 2*k3 + k4)
            if verbose:
                print('xi:{:.2f}, yi:{:.10f}'.format(xi,yi))
            res.append(y)
            xi, yi = xi+h, y
        
        return res
    res = runge_kutta(f,a=0,b=1,ya=1,h=0.1,verbose=True)
    
    xi:0.00, yi:1.0000000000
    xi:0.10, yi:1.0048375000
    xi:0.20, yi:1.0187309014
    xi:0.30, yi:1.0408184220
    xi:0.40, yi:1.0703202889
    xi:0.50, yi:1.1065309344
    xi:0.60, yi:1.1488119344
    xi:0.70, yi:1.1965856187
    xi:0.80, yi:1.2493292897
    xi:0.90, yi:1.3065699912
    xi:1.00, yi:1.3678797744
    

    改进欧拉法

    {yp=yi+hf(xi,yi)yi+1=yi+h2[f(xi,yi)+f(xi,yp)]i=0,1,&ThinSpace;,n1y0=y(a) \left \{ \begin{array}{lr} y_p=y_i+hf(x_i,y_i) &amp; \\ y_{i+1} = y_i+\frac{h}{2}[f(x_i,y_i)+f(x_i,y_p)] &amp;i=0,1,\cdots ,n-1 \\ y_0=y(a) \\ \end{array} \right .

    求解初值问题
    {y=y(0x1)y(0)=1 \left \{ \begin{array}{lr} y&#x27;=-y &amp;(0 \leq x \leq 1) \\ y(0)=1 \\ \end{array} \right .
    精确解为y=exp(x)y=exp(-x)

    def f(t,y):
        '''
        精确解为y=exp(-x)
        '''
        return -y
    
    def improved_euler(f,a=0,b=1,ya=1,h=0.1,verbose=True):
        '''改进欧拉法
        Args
        ----------
        f: callable function
            需要求解的函数
        a: float
            求解区间起始值
        b:float
            求解区间终止值
        ya:float
            起始条件,ya=y(a)
        h:float
            求解步长(区间[a,b]n等分)
        verbose:logical,default is True
            显示迭代结果
        
        Returns
        ----------
        res:list like
            返回向前欧拉发求解的结果
        '''
        res = []
        xi = a 
        yi = ya
        
        while xi <= b: # 在求解区间范围
            yp = yi + h*f(xi, yi)
            y = yi + h/2 * (f(xi, yi) + f(xi, yp))
            if verbose:
                print('xi:{:.2f}, yi:{:.6f}'.format(xi,yi))
            res.append(y)
            xi, yi = xi+h, y
        
        return res
    res = improved_euler(f,a=0,b=1,ya=1,h=0.1,verbose=True)
    
    xi:0.00, yi:1.000000
    xi:0.10, yi:0.905000
    xi:0.20, yi:0.819025
    xi:0.30, yi:0.741218
    xi:0.40, yi:0.670802
    xi:0.50, yi:0.607076
    xi:0.60, yi:0.549404
    xi:0.70, yi:0.497210
    xi:0.80, yi:0.449975
    xi:0.90, yi:0.407228
    xi:1.00, yi:0.368541
    
    展开全文
  • 但之前求解微分方程的解析方法主要是应用于一些简单和特殊的微分方程求解中,对于一般形式的微分方程,一般很难用解析方法求出精确解,只能用数值方法求解。而在具体求解微分方程中,一般来说是条件是 KaTeX parse ...

    在惯性导航以及VIO等实际问题中利用IMU求解位姿需要对IMU测量值进行积分得到需要的位置和姿态,其中主要就是求解微分方程。但之前求解微分方程的解析方法主要是应用于一些简单和特殊的微分方程求解中,对于一般形式的微分方程,一般很难用解析方法求出精确解,只能用数值方法求解。该系列主要介绍一些常用的常微分方程的数值解法,主要包括:

    这个系列后面文章会用到前面文章的理论和技术,所以建议按照顺序查看。

    简介

    而在具体求解微分方程中,一般来说给定的条件是
    {x(t)=f(t,x(t)),atbx(t0)=x0 \begin{cases} \mathbf{x}^{\prime}(t)=f(t, \mathbf{x}(t)), \quad a \leq t \leq b \\ \mathbf{x}({t_0}) = x_0 \end{cases}
    即给定微分方程以及原方程在初始点的值,求原方程在某个tt下的x(t)x(t)原方程的值,这类问题就是(一阶)常微分方程初值求解问题。
    (这里不对常微分方程或者偏微分方程等概念,以及求解微分方程的其他条件如边界条件情况做详细介绍,需要了解的话可以自己google,不影响本系列介绍。)

    解法介绍

    一般来说,(一阶)常微分方程数值解法基本思想是:
    在区间[a,b][a, b]中插入一系列间隔相同为Δt\Delta t的离散点
    at0<t1<<ti<<tn1<tnb a \leq t_0 < t_1< \cdots < t_i < \cdots < t_{n-1} < t_n \leq b
    常微分方程的数值解法的目的就是在给定合适初始值前提下,建立求解x(t)x(t)的近似值xtx_t的递推方式,这样求得x(t)x(t)在各个离散点的近似值。
    给定一个具体的时间间隔Δt\Delta_t,可以把该方程转换成差分方程
    x(t+Δt)=x(t)+τ[t,t+Δt]f(τ,x(τ))dτ,atb,(1) \mathbf{x}(t+\Delta t)=\mathbf{x}(t)+\int_{\tau \in [t, t+\Delta t]} f(\tau, \mathbf{x}(\tau)) d \tau, \quad a \leq t \leq b, \tag{1}
    这样利用之前说的离散点可以把tt离散化,那么ti=a+iΔtt_{i}=a+i \Delta t以及 xix(ti)\mathbf{x}_{i} \approx \mathbf{x}(t_{i}),所以上面公式(2)(2)也可以写成
    x(ti+1)xi+1=xi+τ[a+iΔt,a+(i+1)Δt]f(τ,x(τ))dτ,(2) \mathbf{x}(t_{i+1}) \approx x_{i+1}=\mathbf{x}_{i}+\int_{\tau \in [a+i \Delta t, a+(i+1) \Delta t]} f(\tau, \mathbf{x}(\tau)) d \tau, \tag{2}

    截断误差

    上节介绍常微分方程的数值解法就是利用初值和离散点获得近似值xtx_t,但是和真实值x(t)x(t)之前还是存在误差,即
    ei=xix(ti),(3) \boldsymbol{e}_i = x_i - \mathbf{x}(t_i), \tag{3}
    ei\boldsymbol{e}_i则表示该数值解法在离散点tit_i处的局部截断误差。局部截断误差在一定程度上反应了该数值解法的精度。
    一般来说常用泰勒展开式来计算讨论局部截断误差,后面具体方法会给出具体的对应的截断误差的讨论。这里简单给出定义:
    如果数值解法的局部截断误差为ei=O(ΔtP+1)\boldsymbol{e}_i = \boldsymbol{O}(\Delta t^{P+1}),则称该解法具有P阶精度或P阶解法

    这里O(ΔtP+1)\boldsymbol{O}(\Delta t^{P+1})为泰勒展开式的余项

    展开全文
  • 中值法简介 在惯性导航以及VIO等实际问题中利用IMU...[常微分方程数值解法系列一] 常微分方程 [常微分方程数值解法系列二] 欧拉法 [常微分方程数值解法系列三] 中值法 [常微分方程数值解法系列四] 龙格-库塔(R

    在惯性导航以及VIO等实际问题中利用IMU求解位姿需要对IMU测量值进行积分得到需要的位置和姿态,其中主要就是求解微分方程。但之前求解微分方程的解析方法主要是应用于一些简单和特殊的微分方程求解中,对于一般形式的微分方程,一般很难用解析方法求出精确解,只能用数值方法求解。该系列主要介绍一些常用的常微分方程的数值解法,主要包括:

    这个系列后面文章会用到前面文章的理论和技术,所以建议按照顺序查看。

    简介

    [常微分方程的数值解法系列二] 欧拉法[常微分方程的数值解法系列三] 改进欧拉法(预估校正法)介绍了欧拉法以及改进版欧拉法。中值法思路和改进版欧拉法思路很类似。
    向前(显式)欧拉公式
    xi+1=xi+Δtf(ti,xi) x_{i+1}=x_{i} + \Delta t \cdot f(t_{i}, x_{i})
    中点公式
    xi+1=xi+Δtf(ti+12,xi+12) x_{i+1}=x_{i} + \Delta t \cdot f(t_{i+\frac{1}{2}}, x_{i+\frac{1}{2}})

    具体步骤

    利用向前(显式)欧拉公式预估一个x(ti+12)\mathbf{x}(t_{i+\frac{1}{2}})的近似值
    xi+12=xi+12Δtf(ti,xi),(1) x_{i+\frac{1}{2}} = x_{i} + \frac{1}{2} \Delta t \cdot f(t_{i}, x_{i}), \tag{1}
    利用中点公式求得最终的估计值
    xi+1=xi+Δtf(ti+12,xi+12),(2) x_{i+1}=x_{i} + \Delta t \cdot f(t_{i+\frac{1}{2}}, x_{i+\frac{1}{2}}), \tag{2}
    公式(1)(1)和公式(2)(2)就叫做中值法,也会叫做变形欧拉公式

    截断误差

    [常微分方程的数值解法系列一] 常微分方程文中公式(3)(3)可知常微分方程的数值解法的局部截断误差为
    ei=xix(ti) \boldsymbol{e}_i = x_i - \mathbf{x}(t_i)
    所以对于改进欧拉法来说局部截断误差为:
    ei+1=xi+Δtf(ti+12,xi+12)x(ti+1),(5) \boldsymbol{e}_{i+1} = x_{i} + \Delta t \cdot f(t_{i+\frac{1}{2}}, x_{i+\frac{1}{2}}) - \mathbf{x}(t_{i+1}), \tag{5}
    对式子右边f(ti+1,xi+1)f(t_{i+1},x_{i+1})x(ti+1)\mathbf{x}(t_{i+1})分别作泰勒展开
    f(ti+12,xi+12)=f(ti+12Δt,xi+12Δtf(ti,xi))=f(ti,xi)+12Δtft(ti,xi)+(12Δtf(ti,xi))fx(ti,xi)+O(Δt2)=x(ti)+12Δtx(ti)+O(Δt2)x(ti+1)=x(ti+Δt)=x(ti)+Δtx(ti)+Δt22!x(ti)+O(Δt3) \begin{aligned} f(t_{i+\frac{1}{2}}, x_{i+\frac{1}{2}}) &= f(t_i + \frac{1}{2}\Delta t, x_{i} + \frac{1}{2} \Delta t \cdot f(t_{i}, x_{i})) \\ &= f(t_i,x_i) + \frac{1}{2}\Delta t f_t^{\prime}(t_i,x_i) + (\frac{1}{2}\Delta t \cdot f(t_{i}, x_{i}))\cdot f_x^{\prime}(t_i,x_i) + \mathbf{O}(\Delta t^2) \\ &=\mathbf{x}^{\prime}(t_i) + \frac{1}{2}\Delta t \mathbf{x}^{\prime\prime}(t_i) + \mathbf{O}(\Delta t^2) \\ \mathbf{x}(t_{i+1}) &= \mathbf{x}(t_i + \Delta t) = \mathbf{x}(t_{i})+\Delta t \mathbf{x}^{\prime}(t_{i}) + \frac{\Delta t^2}{2!} \mathbf{x}^{\prime\prime}(t_{i}) + \mathbf{O}(\Delta t^3) \end{aligned}
    带入公式(5)(5)可得
    ei+1=xi+Δtf(ti+12,xi+12)x(ti+1)=xi+Δt(x(ti)+12Δtx(ti)+O(Δt3))x(ti)+Δtx(ti)+Δt22!x(ti)+O(Δt3)=O(Δt3) \begin{aligned} \boldsymbol{e}_{i+1} &= x_{i} + \Delta t \cdot f(t_{i+\frac{1}{2}}, x_{i+\frac{1}{2}}) - \mathbf{x}(t_{i+1}) \\ & = x_{i} + \Delta t(\mathbf{x}^{\prime}(t_i) + \frac{1}{2}\Delta t \mathbf{x}^{\prime\prime}(t_i) + \mathbf{O}(\Delta t^3)) - \mathbf{x}(t_{i})+\Delta t \mathbf{x}^{\prime}(t_{i}) + \frac{\Delta t^2}{2!} \mathbf{x}^{\prime\prime}(t_{i}) + \mathbf{O}(\Delta t^3) \\ & = \mathbf{O}(\Delta t^3) \end{aligned}
    根据[常微分方程的数值解法系列一] 常微分方程文中局部截断误差定义得
    变形欧拉公式具有二阶精度(二阶解法)

    上面求解会用到二元函数的泰勒展开,这里给出三阶二元函数的泰勒展开公式 f(x+Δx,y+Δy)=f(x,y)+Δxfx(x,y)+Δyfy(x,y)+12!Δxfxx(x,y)+12!ΔxΔyfxy(x,y)+12!ΔxΔyfyx(x,y)+12!Δyfyy(x,y)+o3 \begin{aligned} f(x+\Delta x, y + \Delta y) = & f(x, y) +\Delta xf_x^{\prime}(x,y) + \Delta yf_y^{\prime}(x,y) \\ &+ \frac{1}{2!}\Delta xf_{xx}^{\prime \prime}(x,y) + \frac{1}{2!}\Delta x \Delta yf_{xy}^{\prime \prime}(x,y) + \frac{1}{2!}\Delta x \Delta yf_{yx}^{\prime \prime}(x,y) + \frac{1}{2!}\Delta yf_{yy}^{\prime \prime}(x,y) + o^3 \end{aligned}

    例子

    使用[常微分方程的数值解法系列三] 改进欧拉法(预估校正法)中的例子,后面绘图会放在一起对比。
    利用中值法求解初值问题
    {x(t)=x2tx,0t1x(t0)=1 \begin{cases} \mathbf{x}^{\prime}(t)=x - \frac{2t}{x}, \quad 0 \leq t \leq 1 \\ \mathbf{x}({t_0}) = 1 \end{cases}
    x(t=1)\mathbf{x}(t=1)的近似值,步长Δt=0.1\Delta t = 0.1

    这里原函数为x(t)=1+2t\mathbf{x}(t) =\sqrt{1+2t},用于后面验证结果

    解:
    {xi+12=xi+0.12(xi2tixi)=1.05xi0.1tixixi+1=xi+0.1(xi+122ti+12xi+12)x0=1 \begin{cases} x_{i+\frac{1}{2}} = x_{i} +\frac{0.1}{2}(x_i-\frac{2t_i}{x_i}) = 1.05x_i-\frac{0.1t_i}{x_i} \\ x_{i+1}=x_{i} +0.1(x_{i+\frac{1}{2}} - \frac{2t_{i+\frac{1}{2}}}{x_{i+\frac{1}{2}}}) \\ x_0 = 1 \end{cases}
    计算得:

    ii tit_i 向前xix_i 改进xix_i 中值xix_i x(ti)\mathbf{x}(t_i)
    0 0 1 1 1 0
    1 0.1 1.1 1.095909 1.095476 1.095445
    2 0.2 1.191818 1.184097 1.183298 1.183216
    3 0.3 1.277138 1.266201 1.265056 1.264911
    4 0.4 1.358213 1.343360 1.341859 1.341641
    5 0.5 1.435133 1.416402 1.414516 1.414214
    6 0.6 1.508966 1.485966 1.483638 1.483240
    7 0.7 1.580338 1.552514 1.549702 1.549193
    8 0.8 1.649783 1.616475 1.613088 1.612452
    9 0.9 1.717779 1.678166 1.674106 1.673320
    10 1.0 1.784770 1.737867 1.733012 1.732051

    绘制如下图所示
    红色:x(ti)\mathbf{x}(t_i)
    绿色:向前xix_i
    蓝色:改进xix_i
    金色:中值xix_i
    在本例中,中值法比改进欧拉法还要好一些,几乎和真值重叠!!!
    在这里插入图片描述

    展开全文
  • 常微分方程解法求解系列博文: 常微分方程解法 (一): 常微分方程的离散化 :差商近似导数、数值积分方法、Taylor 多项式近似 常微分方程解法 (二): 欧拉(Euler)方法 常微分方程解法 (三): 龙格—库塔...
  • 龙格-库塔法简介 在惯性导航以及VIO等实际问题中利用IMU...[常微分方程数值解法系列一] 常微分方程 [常微分方程数值解法系列二] 欧拉法 [常微分方程数值解法系列三] 中值法 [常微分方程数值解法系列四] 龙格-库
  • 常微分方程的初值问题 欧拉方法 龙格-库塔方法
  • 改进欧拉法简介预估-校正截断误差例子 在惯性导航以及VIO等实际问题中利用...[常微分方程数值解法系列一] 常微分方程 [常微分方程数值解法系列二] 欧拉法 [常微分方程数值解法系列三] 改进欧拉法(预估校正法)
  • 欧拉法简介几何意义证明泰勒展开近似求导近似积分近似几种欧拉方式向前欧拉公式向后欧拉公式梯形公式改进欧拉法截断误差...该系列主要介绍一些常用的常微分方程数值解法,主要包括: [常微分方程数值解法系列一]
  • 机器之心原创作者:蒋思源微分方程真的能结合深度神经网络?真的能用来理解深度神经网络、推导神经网络架构、构建深度生成模型?本文将从鄂维南、董彬和陈天琦等研究者的工作中,窥探微分方程与深度学习联袂前行的...
  • 所谓数值解法,就是设法将常微分方程离散化,建立差分方程,给出解在一些离散点上的近似值.问题 7.1 一阶常微分方程初值问题的一般形式{y′=f(x,y),a⩽x⩽by(a)=α\begin{equation} \left \{ \begin{aligned} & y'=f(x,...
  • 常微分方程数值解法及仿真

    热门讨论 2010-01-07 23:40:30
    三、 一阶常微分方程组的数值解法 2 四、 仿真算例 4 仿真1 应用欧拉法 4 仿真2 应用二阶龙格-库塔法 5 仿真3 应用四阶龙格-库塔法 6 附录 Matlab程序 7 1. 欧拉法程序 7 2. 二阶龙格-库塔法程序 8 3. 四阶龙格-库塔...
  • 博主在这段时间将不断更新有限差分法在偏微分方程中的应用,并以python为工具讲解三类偏微分方程的有限差分法实现。 直通链接: ... 未完待续 有限差分法的引入与介绍 ========== 微分方程(model)是描述现实...
  • 和Matlab应用有关的,具体介绍常微分方程的使用和解法,原理性介绍,帮助理解。
  • 05常微分方程数值解.ppt第五章,常微分方程数值解法,(Numerical s for Ordinary Differential Equations ),常微分方程分为 (1)初值问题 (2)边值问题,一、初值问题的数值解法,1 引 言,一阶常微分方程初值问题的一般...
  • 毕业论文开题报告题 目: 微分方程数值解法院 系): 理学院专 业: 信息与计算科学学生姓名: 袁琪 学 号: 201010010219指导教师: 肖烨讲师年月日 毕 业 设 计(论 文)开 题 报 告1.文献综述:结合毕业设计(论文...
  • 2.3 常微分方程组的数值解法 知识要点 常微分方程初值问题---ode45,0de23 常微分方程边值问题---bvp4c 微分方程在化工模型中的应用 间歇反应器的计算 活塞流反应器的计算 全混流反应器的动态模拟 定态一维热传导问题...
  • 第27卷 第4期桂林电子科技大学学报Vo l.27,N o.4 2007年8月Journal of G uilin University of Electronic Technology A ug.2007 应用M atlab辅助微分方程数值解法教学阳莺(桂林电子科技大学数学与计算科学学院,...
  • 本文是自己写的关于怎样利用MATLAB求解常微分方程数值解的,文中从Euler法讲起,最后总结了常用的odeXX的用法及其原理,其中包含各个函数怎样使用的MATLAB代码
  • Matlab在常微分方程求解中的应用;实验目的 1学会用Matlab软件求解微分方程的初值问题 2了解微分方程数值解思想掌握基本的微分方程数值解方法 3学会根据实际问题建立简单微分方程数学模型 4了解计算机数据仿真数据...
  • 【实例简介】和Matlab应用有关的,具体介绍常微分方程的使用和解法,原理性介绍,帮助理解。局部截断误差指的是,按()式计算由到这一步的计算值与精确值之差+。为了估计它,由展开得到的精确值是()、()两式相减(注意到...
  • 2018年常微分方程MATLAB解法.doc常微分方程MATLAB解法实验四一、问题背景与实验目的求微分方程的解实际应用问题通过数学建模所归纳而得到的方程,绝大多数都是微分方程,真正能得到代数方程的机会很少.另一方面,...
  • MATLAB在常微分方程数值解中的应用摘 要】许多现实问题都可以通过微分方程的形式进行表示,传统解微分方程的方法有 近似分析解法、表解法和图解法,这些方法需对其进行大量的假设,而使得数学模型有一 定的失真,有...
  • 数值解及其误差,并附算法的 matlab 程序。 1.   程序文本   显式中点法   clc; y(1)=3;h=0.2; t=0; n=1/h; for i=1:n   t=t+h;   Y=(1-0.5*h)*y(i)-0.5*h*t;   y(i+1)=y(i)...
  • 常微分方程数值求解及python实现,包括欧拉公式的理论推导以及相应的python实现代码
  • 微分方程数值解(二): 一维状态空间的偏微分方程的 MATLAB 解法微分方程数值解(三): 化工应用实例 ----------触煤反应装置内温度及转换率的分布 偏微分方程数值解(四): 化工应用————扩散系统之浓度...
  • 用Eular法解常微分方程组的数值解,使用了细胞数组,代码简洁,除注释外的有效代码只有二十行左右。(几年前上传的程序了,当时要20积分,现在为大家降到5个积分)
  • 常微分方程在数学建模中的应用.doc

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 972
精华内容 388
关键字:

常微分方程数值解法的应用