分数阶微分方程求解--预估校正法
带有时延的分数阶微分方程求解---预估校正法
由于分数阶工具箱不会用,自己写了个分数阶微分方程求解的代码。数值求解常用的预估-校正法,对于带有时延的分数阶微分方程,《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
有错误之处,请留言。带有时变时延的分数阶微分方程有没有大佬会的,跪求!!! !!!
分数阶微分方程求解--预估校正法相关推荐
- 分数阶微分方程c语言,第一讲分数阶微分方程.PDF
第一讲分数阶微分方程 第一讲 分数阶微分方程 主要参考资料: [4, 5, 7]. 1.1 分数阶导数 分数阶导数(Fractional derivatives) 有多种定义方式, 常用的有Riema ...
- 基于C语言的分数阶微分方程,分数阶微分方程.PDF
分数阶微分方程 第一讲 分数阶微分方程 主要参考资料: [4, 5, 7]. 1.1 分数阶导数 分数阶导数(Fractional derivatives) 有多种定义方式, 常用的有Riemann- ...
- 基于C语言的分数阶微分方程,基于分数阶C~α空间的积分微分方程的配置解法
摘要: 分数阶积分微分方程是在处理实际问题时应运而生,在工程模型和物理现象中极其常见,比如化学反应扩散,弹性力学,热传导方面,种群生态模型,控制理论和生物化学等.近年来,随着科学技术的迅猛发展,分数阶 ...
- Caputo 分数阶微分方程-慢扩散方程初边值问题基于L1 逼近的空间二阶方法及其Matlab程序实现
2.3.3 Caputo 分数阶一维问题基于 L1 逼近的空间二阶方法 考虑如下时间分数阶慢扩散方程初边值问题 { 0 C D t α u ( x , t ) =
- Caputo 分数阶微分方程-慢扩散方程初边值问题基于快速 L2-1σ 逼近的空间二阶方法及其Matlab程序实现
2.3.6 Caputo 分数阶一维问题基于 L2-1σ逼近的快速差分方法 考虑如下时间分数阶慢扩散方程初边值问题 { 0 C D t α u ( x , t ) =
- 验证picard迭代c语言,分数阶微分方程边值问题的Picard's迭代法
Picard's Iterative Method for the boundary value problem of a class of the Fractional order Differen ...
- Caputo 分数阶一维问题基于 L1 逼近的空间二阶方法(附Matlab代码)
Caputo 分数阶一维问题基于 L1 逼近的空间二阶方法 Caputo 分数阶一维问题基于 L1 逼近的快速差分方法(附Matlab程序) 文章目录 Caputo 分数阶一维问题基于 L1 逼近的空 ...
- 基于Duffing系统的分数阶混沌研究【基于matlab的动力学模型学习笔记_5】
/*仅当作学习笔记,若有纰漏欢迎友好交流指正,此外若能提供一点帮助将会十分荣幸*/ 前面的几篇博文我们提到提到的都是整数阶模型,这里我们将对分数阶模型进行一个简单的研究. 摘要:与整数阶混沌相比,分数 ...
- [常微分方程的数值解法系列三] 改进欧拉法(预估校正法)
改进欧拉法 简介 预估-校正 截断误差 例子 在惯性导航以及VIO等实际问题中利用IMU求解位姿需要对IMU测量值进行积分得到需要的位置和姿态,其中主要就是求解微分方程.但之前求解微分方程的解析方法主 ...
最新文章
- win10 管理linux文件,Linux子系统文件可在未来的Win10发行版中通过资源管理器访问...
- 关于Java空指针的控制(转)
- Spark入门(十八)之多表关联
- Ubuntu Linux下通过TPM1.2芯片保护SSH私钥的安全
- 互联网+时代企业级应用新生态—— 2016年中国软件技术大会
- Android 开发中常见的Eclipse排版设置
- 【LeetCode 剑指offer刷题】动态规划与贪婪法题7:47:礼物的最大价值
- win7 自带计算机(for programmer)
- 家庭洗车APP --- Androidclient开展 之 网络框架包介绍(一)
- H5商城,纯前端静态页面
- AD20使用之用封装创建向导创建封装
- 3dmax:3dmax三维VR渲染设置(【DMC采样器】、【Vray默认置换】、【Vray系统】、【Vray日志】、杂项选项、灯光属性)之详细攻略
- 蓝桥杯 Java B组省赛真题【2017】
- android 省略号控件动起来,动画效果省略号
- 用图形编程编写国际象棋游戏
- 负熵作为非高斯的度量
- 注释大全,神兽护体,佛祖保佑,永无bug
- python3 tk_python3.5 安装python3-tk
- MD5算法的编程实现
- Transfer Learning Toolkit (TLT) + DeepStream (DS)快速部署深度学习模型(以口罩检测为例)