参考文献
薛定宇《分数阶微积分学与分数阶控制》
数值实现
Matlab 2019a 主要基于薛定宇开发的FOTF工具箱
蜜酒厅通讯社 固体地球物理学部
封面及文中照片感谢 @CycleUser 友情提供
前情回顾
形式主义的居士:分数阶微积分和分数阶微分方程数值实验(5)——超几何函数zhuanlan.zhihu.comMittag-Leffler函数
一、单参数Mittag-Leffler函数
1.定义:
其中
,
为复数集合,且无穷级数的收敛条件为
。
2.Matlab实现
mittag_leffler.m
function f = mittag_leffler(v,z)
v = [v,1];
a = v(1);
b = v(2);
syms k;
f = symsum(z^k/gamma(a*k+b),k,0,inf); % symsum 符号求和
end
(1)用符号运算的方式推导几个Mittag-Leffler公式
1)调用函数
% 薛定宇《分数阶微积分学与分数阶控制》 p21 例2.14
% example_2_13.m
% 早期版本的Matlab符号运算工具箱调用Maple引擎可以正常推导出结果。
clear;
clc;
% 使用新版本时,有几个会表示成超几何函数的形式
syms z;
E_1 = expand(mittag_leffler(1,z));
E_1
E_2 = expand(mittag_leffler(2,z));
E_2
E_1_2 = expand(mittag_leffler(1/2,z));
E_1_2
E_1_3 = expand(mittag_leffler(1/sym(3),z));
E_1_3
E_3 = expand(mittag_leffler(3,z));
E_3
E_4 = expand(mittag_leffler(4,z));
E_4
E_5 = expand(mittag_leffler(5,z));
E_5
窗口
E_1 =
exp(z)
E_2 =
cosh(z^(1/2))
E_1_2 =
2*symsum(z^k/(k*gamma(k/2)), k, 0, Inf)
E_1_3 =
3*symsum(z^k/(k*gamma(k/3)), k, 0, Inf)
E_3 =
hypergeom([], [1/3, 2/3], z/27)
E_4 =
hypergeom([], [1/4, 1/2, 3/4], z/256)
E_5 =
hypergeom([], [1/5, 2/5, 3/5, 4/5], z/3125)
2)累加计算
mittag_leffler_function.m
% 累加计算Mittag-Leffler函数的数值解
% 可直接用于多参数Mittag-Leffler函数及其n阶导数的数值求解
% mittag_leffler_function.m
function f = mittag_leffler_function(aa,z,n,eps0)
% 这个函数支持多至4个参数的Mittag-Leffler函数的数值解
aa = [aa,1,1,1];
a = aa(1);
b = aa(2);
c = aa(3); % 常系数
q = aa(4); % k的系数
f = 0;
k = 0;
fa = 1;
if nargin < 4
eps0 = eps;
end
if nargin < 3
n = 0; % 输入参数只有两个时,默认 n = 0
end
if n == 0
while norm(fa,1) >= eps0
if q == 1 && c == 1
fa = 1/gamma(a*k + b)*z