带有时延的分数阶微分方程求解---预估校正法

由于分数阶工具箱不会用,自己写了个分数阶微分方程求解的代码。数值求解常用的预估-校正法,对于带有时延的分数阶微分方程,《A Predictor-Corrector Scheme For Solving Nonlinear Delay Differential Equations Of Fractional Order》这篇文章给出了带时延的预估校正算法,下面的求解函数也是根据这篇文章写的,但仅能求解常数时延的方程, 话不多说,先放matlab代码:

function [t,y] = fo_solution(h,tfinal,ini_val,alpha,delay)
%%%%%%%%%%%
%%%%%%%%%%%
%   fo_solution.m: 分数阶微分方程求解函数,这个一般不需要改,
%       参数:
%           h(步长),
%           tfinal(终止时间),
%           ini_val(系统初始值),
%%          alpha(阶数),
%           delay(时延),
%       要求解带有时延的系统,时延只能是离散时延。
%       若求解不带有时延的系统,时延默认为0。
%       返回值:
%           t是时间向量,
%           y是系统的值,第i行是变量i的数值解。
%
%   自己创建equation_func.m: 写系统的微分方程。
%       参数:
%           t(当前时刻),
%           x(当前时刻系统的值), x为列向量
%           xd(时延项的系统值), xd为列向量
%       返回值:为列向量。if nargin<5delay=0;endlen = length(ini_val);N = tfinal/h;t = linspace(0,N,N+1)*h;k = delay/h;y0 = ini_val;y = zeros(len,N);f0 = equation_func(0,y0,y0);x1=zeros(1,N);x2=zeros(1,N);x3=zeros(1,N);for n = 0:N-1disp(['运行次数: ',num2str(n),' t = ',num2str(n*h)]);b=@(j)  h^alpha/alpha*(    (n+1-j)^alpha-(n-j)^alpha  );s=zeros(len,1);for j = 0:nif j-k<=0x_j_k=y0;elsex_j_k=y(:,j-k);endif j==0x_j=y0;elsex_j=y(:,j);ends = s+b(j)*equation_func(j*h,x_j,x_j_k);endyp = y0+s/gamma(alpha);a=@(j) (n-j+2)^(alpha+1)+(n-j)^(alpha+1)-2*(n-j+1)^(alpha+1);S0=(n^(alpha+1)-(n-alpha)*(n+1)^alpha)*f0;S1 = zeros(len,1);for j = 1:nif j-k<=0x_j_k=y0;elsex_j_k=y(:,j-k);endx_j=y(:,j);S1 = S1+a(j)*equation_func(j*h,x_j,x_j_k);endS=S0+S1;if n+1-k<=0x_n_k=y0;elsex_n_k=y(:,n+1-k);endy(:,n+1) = y0+h^alpha/gamma(alpha+2)*equation_func(n*h,yp,x_n_k)+S*h^alpha/gamma(alpha+2);endy = [y0,y];end

有错误之处,请留言。带有时变时延的分数阶微分方程有没有大佬会的,跪求!!! !!!

分数阶微分方程求解--预估校正法相关推荐

  1. 分数阶微分方程c语言,第一讲分数阶微分方程.PDF

    第一讲分数阶微分方程 第一讲 分数阶微分方程 主要参考资料: [4, 5, 7]. 1.1 分数阶导数 分数阶导数(Fractional derivatives) 有多种定义方式, 常用的有Riema ...

  2. 基于C语言的分数阶微分方程,分数阶微分方程.PDF

    分数阶微分方程 第一讲 分数阶微分方程 主要参考资料: [4, 5, 7]. 1.1 分数阶导数 分数阶导数(Fractional derivatives) 有多种定义方式, 常用的有Riemann- ...

  3. 基于C语言的分数阶微分方程,基于分数阶C~α空间的积分微分方程的配置解法

    摘要: 分数阶积分微分方程是在处理实际问题时应运而生,在工程模型和物理现象中极其常见,比如化学反应扩散,弹性力学,热传导方面,种群生态模型,控制理论和生物化学等.近年来,随着科学技术的迅猛发展,分数阶 ...

  4. Caputo 分数阶微分方程-慢扩散方程初边值问题基于L1 逼近的空间二阶方法及其Matlab程序实现

    2.3.3 Caputo 分数阶一维问题基于 L1 逼近的空间二阶方法 考虑如下时间分数阶慢扩散方程初边值问题 { 0 C D t α u ( x , t ) =

  5. Caputo 分数阶微分方程-慢扩散方程初边值问题基于快速 L2-1σ 逼近的空间二阶方法及其Matlab程序实现

    2.3.6 Caputo 分数阶一维问题基于 L2-1σ逼近的快速差分方法 考虑如下时间分数阶慢扩散方程初边值问题 { 0 C D t α u ( x , t ) =

  6. 验证picard迭代c语言,分数阶微分方程边值问题的Picard's迭代法

    Picard's Iterative Method for the boundary value problem of a class of the Fractional order Differen ...

  7. Caputo 分数阶一维问题基于 L1 逼近的空间二阶方法(附Matlab代码)

    Caputo 分数阶一维问题基于 L1 逼近的空间二阶方法 Caputo 分数阶一维问题基于 L1 逼近的快速差分方法(附Matlab程序) 文章目录 Caputo 分数阶一维问题基于 L1 逼近的空 ...

  8. 基于Duffing系统的分数阶混沌研究【基于matlab的动力学模型学习笔记_5】

    /*仅当作学习笔记,若有纰漏欢迎友好交流指正,此外若能提供一点帮助将会十分荣幸*/ 前面的几篇博文我们提到提到的都是整数阶模型,这里我们将对分数阶模型进行一个简单的研究. 摘要:与整数阶混沌相比,分数 ...

  9. [常微分方程的数值解法系列三] 改进欧拉法(预估校正法)

    改进欧拉法 简介 预估-校正 截断误差 例子 在惯性导航以及VIO等实际问题中利用IMU求解位姿需要对IMU测量值进行积分得到需要的位置和姿态,其中主要就是求解微分方程.但之前求解微分方程的解析方法主 ...

最新文章

  1. win10 管理linux文件,Linux子系统文件可在未来的Win10发行版中通过资源管理器访问...
  2. 关于Java空指针的控制(转)
  3. Spark入门(十八)之多表关联
  4. Ubuntu Linux下通过TPM1.2芯片保护SSH私钥的安全
  5. 互联网+时代企业级应用新生态—— 2016年中国软件技术大会
  6. Android 开发中常见的Eclipse排版设置
  7. 【LeetCode 剑指offer刷题】动态规划与贪婪法题7:47:礼物的最大价值
  8. win7 自带计算机(for programmer)
  9. 家庭洗车APP --- Androidclient开展 之 网络框架包介绍(一)
  10. H5商城,纯前端静态页面
  11. AD20使用之用封装创建向导创建封装
  12. 3dmax:3dmax三维VR渲染设置(【DMC采样器】、【Vray默认置换】、【Vray系统】、【Vray日志】、杂项选项、灯光属性)之详细攻略
  13. 蓝桥杯 Java B组省赛真题【2017】
  14. android 省略号控件动起来,动画效果省略号
  15. 用图形编程编写国际象棋游戏
  16. 负熵作为非高斯的度量
  17. 注释大全,神兽护体,佛祖保佑,永无bug
  18. python3 tk_python3.5 安装python3-tk
  19. MD5算法的编程实现
  20. Transfer Learning Toolkit (TLT) + DeepStream (DS)快速部署深度学习模型(以口罩检测为例)

热门文章

  1. 如何确定Android设备唯一识别码
  2. Wi-Fi 6时代,华为的情怀和野心
  3. 示波器测量高频信号为什么要用x10档(二)
  4. Activity系列--初识Activity
  5. Java 设计模式情景分析——观察者模式
  6. 第4章 初识HbuilderX之移动前端App开发
  7. 运营活动效果评估模型
  8. 极客学院的前端课程(一)
  9. 三坐标检测之测针基础知识2021
  10. 用手机直接播放电脑本地的视频文件