每卡普托实现分数阶导数的定义
17日视图(30天)
显示旧的评论
我有下面的代码实现了一个每卡普托分数阶导数的定义。我把它从一个稍微老书,它看起来像代码不是最新的,MATLAB抛出一个错误说10号线变量“dy”变化大小与每个迭代。我想通过一个方法来修正这个错误或代码更新,因为我需要计算分数阶导数的函数。
函数dy =卡普托(t0, f, gam)
m =地板(gam);一个= gam-m;dy = 0;
如果gam > 0,信谊t;fd = diff (f t m + 1);其他的;一个= gam;结束
为t1 = t0(2:结束)
如果gam > 0
f = @ (x)潜艇(fd t x) / (t1-x)。^γ(1 a);
其他的
f = @ (x)潜艇(f t x) / (t1-x)。^ (1 a) /γ(一个);
结束
dy = [dy;积分(f, 0, t1)];
结束
结束
> > sym t;f =罪(3 * t + 1);t0 = 0:0.01:5;dy =卡普托(t0, f, 0.3);情节(t0) dy)
0评论
接受的答案
Torsten
2022年10月21日
编辑:Torsten
2022年10月21日
信谊t
f =罪(3 * t + 1);
t0 = 0:0.01:5;
dy =卡普托(t0, f, 0.3);
情节(t0) dy)
函数dy =卡普托(t0, f, gam)
m =地板(gam);一个= gam-m;dy = 0(1,元素个数(t0));
如果gam > 0,信谊t;fd = diff (f t m + 1);其他的;一个= gam;结束
指数= 1;
为t1 = t0(2:结束)
指数=指数+ 1;
如果gam > 0
f = matlabFunction (fd / (t1-t) ^ /γ(1 a));
其他的
f = matlabFunction (f / (t1-t) ^ (1 a) /γ(a));
结束
dy(指数)=积分(f, 0, t1);
结束
结束