Caputo 分数阶一维问题基于 L1 逼近的快速差分方法(附Matlab代码)

Caputo 分数阶一维问题基于 L1 逼近的快速差分方法

Caputo 分数阶一维问题基于 L1 逼近的空间二阶方法(附Matlab程序)

考虑如下时间分数阶慢扩散方程初边值问题
{ 0 C D t α u ( x , t ) = u x x ( x , t ) + f ( x , t ) , x ∈ ( 0 , L ) , t ∈ ( 0 , T ] u ( x , 0 ) = φ ( x ) , x ∈ ( 0 , L ) u ( 0 , t ) = μ ( t ) , u ( L , t ) = ν ( t ) , t ∈ [ 0 , T ] \left\{\begin{array}{l} { }_{0}^{C} D_{t}^{\alpha} u(x, t)=u_{x x}(x, t)+f(x, t), \quad x \in(0, L), t \in(0, T] \\ u(x, 0)=\varphi(x), \quad x \in(0, L) \\ u(0, t)=\mu(t), \quad u(L, t)=\nu(t), \quad t \in[0, T] \end{array}\right. 0CDtαu(x,t)=uxx(x,t)+f(x,t),x(0,L),t(0,T]u(x,0)=φ(x),x(0,L)u(0,t)=μ(t),u(L,t)=ν(t),t[0,T]
其中 α ∈ ( 0 , 1 ) , f , φ , μ , ν \alpha \in(0,1), f, \varphi, \mu, \nu α(0,1),f,φ,μ,ν 为已知函数, 且 φ ( 0 ) = μ ( 0 ) , φ ( L ) = ν ( 0 ) \varphi(0)=\mu(0), \varphi(L)=\nu(0) φ(0)=μ(0),φ(L)=ν(0).

设解函数 u ∈ C ( 4 , 2 ) ( [ 0 , L ] × [ 0 , T ] ) u \in C^{(4,2)}([0, L] \times[0, T]) uC(4,2)([0,L]×[0,T]).

本文给出求解上述时间分数阶慢扩散方程初边值问题基于 L1 逼近的快速差分方法.

差分格式的建立

在结点 ( x i , t n ) \left(x_{i}, t_{n}\right) (xi,tn) 处考虑微分方程, 得到
0 C D t α u ( x i , t n ) = u x x ( x i , t n ) + f i n , 1 ⩽ i ⩽ M − 1 , 1 ⩽ n ⩽ N . { }_{0}^{C} D_{t}^{\alpha} u\left(x_{i}, t_{n}\right)=u_{x x}\left(x_{i}, t_{n}\right)+f_{i}^{n}, \quad 1 \leqslant i \leqslant M-1, \quad 1 \leqslant n \leqslant N . 0CDtαu(xi,tn)=uxx(xi,tn)+fin,1iM1,1nN.
对上式中时间分数阶导数应用快速的 L1 公式离散、空间二阶导数 应用二阶中心差商离散, 可得
{ 1 Γ ( 1 − α ) [ ∑ l = 1 N exp ⁡ ω l F l , i n + a ^ 0 ( α ) ( U i n − U i n − 1 ) ] = δ x 2 U i n + f i n + ( r 4 ) i n , 1 ⩽ i ⩽ M − 1 , 1 ⩽ n ⩽ N , F l , i 1 = 0 , F l , i n = e − s l τ F l , i n − 1 + B l ( U i n − 1 − U i n − 2 ) , 1 ⩽ l ⩽ N exp ⁡ , 1 ⩽ i ⩽ M − 1 , 2 ⩽ n ⩽ N , \left\{\begin{array}{c} \frac{1}{\Gamma(1-\alpha)}\left[\sum\limits_{l=1}^{N_{\exp }} \omega_{l} F_{l, i}^{n}+\hat{a}_{0}^{(\alpha)}\left(U_{i}^{n}-U_{i}^{n-1}\right)\right]=\delta_{x}^{2} U_{i}^{n}+f_{i}^{n}+\left(r_{4}\right)_{i}^{n}, \\ 1 \leqslant i \leqslant M-1, \quad 1 \leqslant n \leqslant N, \\ F_{l, i}^{1}=0, \quad F_{l, i}^{n}=\mathrm{e}^{-s_{l} \tau} F_{l, i}^{n-1}+B_{l}\left(U_{i}^{n-1}-U_{i}^{n-2}\right), \\ 1 \leqslant l \leqslant N_{\exp }, 1 \leqslant i \leqslant M-1,2 \leqslant n \leqslant N, \end{array}\right. Γ(1α)1[l=1NexpωlFl,in+a^0(α)(UinUin1)]=δx2Uin+fin+(r4)in,1iM1,1nN,Fl,i1=0,Fl,in=eslτFl,in1+Bl(Uin1Uin2),1lNexp,1iM1,2nN,

且存在正常数 c 4 c_{4} c4 使得
∣ ( r 4 ) i n ∣ ⩽ c 4 ( τ 2 − α + h 2 + ϵ ) , 1 ⩽ i ⩽ M − 1 , 1 ⩽ n ⩽ N . \left|\left(r_{4}\right)_{i}^{n}\right| \leqslant c_{4}\left(\tau^{2-\alpha}+h^{2}+\epsilon\right), \quad 1 \leqslant i \leqslant M-1,1 \leqslant n \leqslant N . (r4)inc4(τ2α+h2+ϵ),1iM1,1nN.
注意到初边值条件, 有
{ U i 0 = φ ( x i ) , 1 ⩽ i ⩽ M − 1 , U 0 n = μ ( t n ) , U M n = ν ( t n ) , 0 ⩽ n ⩽ N . \begin{cases}U_{i}^{0}=\varphi\left(x_{i}\right), & 1 \leqslant i \leqslant M-1, \\ U_{0}^{n}=\mu\left(t_{n}\right), & U_{M}^{n}=\nu\left(t_{n}\right), \quad 0 \leqslant n \leqslant N .\end{cases} {Ui0=φ(xi),U0n=μ(tn),1iM1,UMn=ν(tn),0nN.
在上式中略去小量项 ( r 4 ) i n \left(r_{4}\right)_{i}^{n} (r4)in, 并用数值解 u i n u_{i}^{n} uin 代替精确解 U i n U_{i}^{n} Uin, 可得求解问题的如下差分格式:
{ 1 Γ ( 1 − α ) [ ∑ l = 1 N exp ⁡ ω l F l , i n + a ^ 0 ( α ) ( u i n − u i n − 1 ) ] = δ x 2 u i n + f i n 1 ⩽ i ⩽ M − 1 , 1 ⩽ n ⩽ N F l , i 1 = 0 , F l , i n = e − s l τ F l , i n − 1 + B l ( u i n − 1 − u i n − 2 ) 1 ⩽ l ⩽ N exp ⁡ , 1 ⩽ i ⩽ M − 1 , 2 ⩽ n ⩽ N u i 0 = φ ( x i ) , 1 ⩽ i ⩽ M − 1 , u 0 n = μ ( t n ) , u M n = ν ( t n ) , 0 ⩽ n ⩽ N \left\{\begin{array}{l} \frac{1}{\Gamma(1-\alpha)}\left[\sum\limits_{l=1}^{N_{\exp }} \omega_{l} F_{l, i}^{n}+\hat{a}_{0}^{(\alpha)}\left(u_{i}^{n}-u_{i}^{n-1}\right)\right]=\delta_{x}^{2} u_{i}^{n}+f_{i}^{n} \\ 1 \leqslant i \leqslant M-1,1 \leqslant n \leqslant N \\ F_{l, i}^{1}=0, \quad F_{l, i}^{n}=\mathrm{e}^{-s_{l} \tau} F_{l, i}^{n-1}+B_{l}\left(u_{i}^{n-1}-u_{i}^{n-2}\right) \\ 1 \leqslant l \leqslant N_{\exp }, 1 \leqslant i \leqslant M-1,2 \leqslant n \leqslant N \\ u_{i}^{0}=\varphi\left(x_{i}\right), \quad 1 \leqslant i \leqslant M-1, \\ u_{0}^{n}=\mu\left(t_{n}\right), \quad u_{M}^{n}=\nu\left(t_{n}\right), \quad 0 \leqslant n \leqslant N \end{array}\right. Γ(1α)1[l=1NexpωlFl,in+a^0(α)(uinuin1)]=δx2uin+fin1iM1,1nNFl,i1=0,Fl,in=eslτFl,in1+Bl(uin1uin2)1lNexp,1iM1,2nNui0=φ(xi),1iM1,u0n=μ(tn),uMn=ν(tn),0nN

{ u i k ∣ 0 ⩽ i ⩽ M , 0 ⩽ k ⩽ n − 1 } \left\{u_{i}^{k} \mid 0 \leqslant i \leqslant M, 0 \leqslant k \leqslant n-1\right\} {uik0iM,0kn1} 已知时, 得到 { F l , i n ∣ 1 ⩽ l ⩽ N exp ⁡ , 1 ⩽ i ⩽ M − 1 } \left\{F_{l, i}^{n} \mid 1 \leqslant l \leqslant N_{\exp }, 1 \leqslant i \leqslant M-1\right\} {Fl,in1lNexp,1iM1}, 并将其代入差分格式的左端, 得到关于 { u i n ∣ 0 ⩽ i ⩽ M } \left\{u_{i}^{n} \mid 0 \leqslant i \leqslant M\right\} {uin0iM} 的线性方程组, 其运算量为 O ( M N exp ⁡ ) O\left(M N_{\exp }\right) O(MNexp). 用追赶法解三对角方程组的运算量为 O ( M ) O(M) O(M). 因而此快速算法的总运算量为 O ( M N N exp ⁡ ) O\left(M N N_{\exp }\right) O(MNNexp).

由传统的基于 L1 逼近得到关于 { u i n ∣ 0 ⩽ i ⩽ M } \left\{u_{i}^{n} \mid 0 \leqslant i \leqslant M\right\} {uin0iM} 的线性方程组, 其运算量为 O ( M n ) O(M n) O(Mn). 其算法的总运算量为 O ( M ∑ n = 1 N n ) = O ( M N 2 ) O\left(M \sum\limits_{n=1}^{N} n\right)=O\left(M N^{2}\right) O(Mn=1Nn)=O(MN2).

N ≫ N exp ⁡ N \gg N_{\exp } NNexp 时, O ( M N 2 ) ≫ O ( M N N exp ⁡ ) O\left(M N^{2}\right) \gg O\left(M N N_{\exp }\right) O(MN2)O(MNNexp). 我们将上述算法称为基于 L1 逼近的快速算法或快速的 L1 差分格式.

分数阶微分方程数值算例

数值算例

考虑问题:
0 C D t α u ( x , t ) = ∂ 2 u ∂ x 2 ( x , t ) + f ( x , t ) , ( x , t ) ∈ ( 0 , 1 ) × ( 0 , 1 ) , { }_{0}^{C} D_{t}^{\alpha} u(x, t)=\frac{\partial^{2} u}{\partial x^{2}}(x, t)+f(x, t),(x, t) \in(0,1) \times(0,1), 0CDtαu(x,t)=x22u(x,t)+f(x,t),(x,t)(0,1)×(0,1),

其中 0 < α < 1 0<\alpha<1 0<α<1, 右端源项 f ( x , t ) f(x, t) f(x,t) 和相应的初边值条件由真解 u ( x , t ) = sin ⁡ ( x ) t 2 u(x, t)=\sin (x) t^{2} u(x,t)=sin(x)t2 确定.

源项和初边值条件

由真解 u ( x , t ) = sin ⁡ ( x ) t 2 . u(x, t)=\sin (x) t^{2}. u(x,t)=sin(x)t2.
则有
{ u x = t 2 cos ⁡ x u x x = − t 2 sin ⁡ x { u t = 2 t sin ⁡ x u t t = 2 sin ⁡ x . \left\{\begin{array}{l}u_{x}=t^{2} \cos x \\ u_{x x}=-t^{2} \sin x\end{array} \quad\left\{\begin{array}{l}u_{t}=2 t \sin x \\ u_{t t}=2 \sin x .\end{array}\right.\right. {ux=t2cosxuxx=t2sinx{ut=2tsinxutt=2sinx.

将真解对应部分带入微分方程从而反解右端源项 f ( x , t ) f(x, t) f(x,t)

0 c D t α u ( x , t ) = 1 Γ ( 1 − α ) ∫ 0 t 2 s sin ⁡ x ( t − s ) α d s = − 2 sin ⁡ x Γ ( 1 − α ) ∫ 0 t ( t − s − t ) ( t − s ) − α d s = − 2 sin ⁡ x Γ ( 1 − α ) ∫ 0 t [ ( t − s ) 1 − α − t ( t − s ) − α ] d s = − 2 sin ⁡ x Γ ( 1 − α ) [ ∫ 0 t − ( t − s ) 1 − α d ( t − s ) + ∫ 0 1 t ( t − s ) − α d ( t − s ) ] = − 2 sin ⁡ x Γ ( 1 − α ) [ 1 2 − α ( t − s ) 2 − α ∣ t 0 + t 1 − α ( t − s ) 1 − α ∣ 0 t ] = − 2 sin ⁡ x Γ ( 1 − α ) [ t 2 − α 2 − α + t 1 − α ⋅ ( − t 1 − α ) ] = − 2 sin ⁡ x Γ ( 1 − α ) ⋅ − t 2 − α ( 2 − α ) ( 1 − α ) = 2 sin ⁡ x Γ ( 3 − α ) t 2 − α \begin{aligned} { }_{0}^{c} D_{t}^{\alpha} u(x, t)&=\frac{1}{\Gamma(1-\alpha)} \int_{0}^{t} \frac{2s \sin x}{(t-s)^{\alpha}} d s\\ &=\frac{-2 \sin x}{\Gamma(1-\alpha)} \int_{0}^{t}(t-s-t)(t-s)^{-\alpha} d s\\ &=\frac{-2 \sin x}{\Gamma(1-\alpha)} \int_{0}^{t}\left[(t-s)^{1-\alpha}-t(t-s)^{-\alpha}\right] d s\\ &=\frac{-2 \sin x}{\Gamma(1-\alpha)}\left[\int_{0}^{t}-(t-s)^{1-\alpha} d(t-s)+\int_{0}^{1} t(t-s)^{-\alpha} d(t-s)\right]\\ &=\frac{-2 \sin x}{\Gamma(1-\alpha)}\left[\left.\frac{1}{2-\alpha}(t-s)^{2-\alpha}\right|_{t} ^{0}+\left.\frac{t}{1-\alpha}(t-s)^{1-\alpha}\right|_{0} ^{t}\right]\\ &=\frac{-2 \sin x}{\Gamma(1-\alpha)}\left[\frac{t^{2-\alpha}}{2-\alpha}+\frac{t}{1-\alpha} \cdot\left(-t^{1-\alpha}\right)\right]\\ &=\frac{-2 \sin x}{\Gamma(1-\alpha)} \cdot \frac{-t^{2-\alpha}}{(2-\alpha)(1-\alpha)}\\ &=\frac{2 \sin x}{\Gamma(3-\alpha)} t^{2-\alpha} \end{aligned} 0cDtαu(x,t)=Γ(1α)10t(ts)α2ssinxds=Γ(1α)2sinx0t(tst)(ts)αds=Γ(1α)2sinx0t[(ts)1αt(ts)α]ds=Γ(1α)2sinx[0t(ts)1αd(ts)+01t(ts)αd(ts)]=Γ(1α)2sinx[2α1(ts)2α t0+1αt(ts)1α 0t]=Γ(1α)2sinx[2αt2α+1αt(t1α)]=Γ(1α)2sinx(2α)(1α)t2α=Γ(3α)2sinxt2α

由于 0 C D t α u ( x , t ) = ∂ 2 u ∂ x 2 ( x , t ) + f ( x , t ) { }_{0}^{C} D_{t}^{\alpha} u(x, t)=\frac{\partial^{2} u}{\partial x^{2}}(x, t)+f(x, t) 0CDtαu(x,t)=x22u(x,t)+f(x,t)
于是 f ( x , t ) = 0 C D t α u ( x , t ) − ∂ 2 u ∂ x 2 ( x , t ) = 2 sin ⁡ x Γ ( 3 − α ) t 2 − α + t 2 sin ⁡ x . \begin{aligned} f(x, t)&={ }_{0}^{C} D_{t}^{\alpha} u(x, t)-\frac{\partial^{2} u}{\partial x^{2}}(x, t)\\ &=\frac{2 \sin x}{\Gamma(3-\alpha)} t^{2-\alpha}+t^{2} \sin x. \end{aligned} f(x,t)=0CDtαu(x,t)x22u(x,t)=Γ(3α)2sinxt2α+t2sinx.

综上所述, 完整的数值算例为:

{ 0 C D t α u ( x , t ) = u x x ( x , t ) + 2 sin ⁡ x Γ ( 3 − α ) t 2 − α + t 2 sin ⁡ x , x ∈ ( 0 , L ) , t ∈ ( 0 , T ] u ( x , 0 ) = 0 , x ∈ ( 0 , L ) u ( 0 , t ) = 0 , u ( L , t ) = t 2 sin ⁡ L , t ∈ [ 0 , T ] \left\{\begin{array}{l} { }_{0}^{C} D_{t}^{\alpha} u(x, t)=u_{x x}(x, t)+\frac{2 \sin x}{\Gamma(3-\alpha)} t^{2-\alpha}+t^{2} \sin x, \quad x \in(0, L), t \in(0, T] \\ u(x, 0)=0, \quad x \in(0, L) \\ u(0, t)=0, \quad u(L, t)=t^2\sin L, \quad t \in[0, T] \end{array}\right. 0CDtαu(x,t)=uxx(x,t)+Γ(3α)2sinxt2α+t2sinx,x(0,L),t(0,T]u(x,0)=0,x(0,L)u(0,t)=0,u(L,t)=t2sinL,t[0,T]

代数系统

由差分格式:
1 Γ ( 1 − α ) [ ∑ l = 1 N exp ⁡ ω l F l , i n + a ^ 0 ( α ) ( u i n − u i n − 1 ) ] = δ x 2 u i n + f i n \frac{1}{\Gamma(1-\alpha)}\left[\sum\limits_{l=1}^{N_{\exp }} \omega_{l} F_{l, i}^{n}+\hat{a}_{0}^{(\alpha)}\left(u_{i}^{n}-u_{i}^{n-1}\right)\right]=\delta_{x}^{2} u_{i}^{n}+f_{i}^{n} Γ(1α)1 l=1NexpωlFl,in+a^0(α)(uinuin1) =δx2uin+fin
得到如下代数系统:
A ( u 1 n u 2 n ⋮ u M − 2 n u M − 1 n ) = b \mathbf{A}\left(\begin{array}{c}u_{1}^{n} \\ u_{2}^{n} \\ \vdots \\ u_{M-2}^{n} \\ u_{M-1}^{n}\end{array}\right)=\mathbf{b} A u1nu2nuM2nuM1n =b
其中
A = ( 1 Γ ( 1 − α ) a ^ 0 ( α ) + 2 h 2 − 1 h 2 − 1 h 2 1 Γ ( 1 − α ) a ^ 0 ( α ) + 2 h 2 − 1 h 2 ⋱ ⋱ 1 Γ ( 1 − α ) a ^ 0 ( α ) + 2 h 2 − 1 h 2 ) \mathbf{A}=\left(\begin{array}{cccc}\frac{1}{\Gamma(1-\alpha)} \hat{a}_{0}^{(\alpha)}+\frac{2}{h^{2}}&-\frac{1}{h^{2}} & & \\ -\frac{1}{h^{2}} & \frac{1}{\Gamma(1-\alpha)} \hat{a}_{0}^{(\alpha)}+\frac{2}{h^{2}}& -\frac{1}{h^{2}} & \\ & \ddots & \ddots & \\ & & \frac{1}{\Gamma(1-\alpha)} \hat{a}_{0}^{(\alpha)}+\frac{2}{h^{2}}& -\frac{1}{h^{2}}\end{array}\right) A= Γ(1α)1a^0(α)+h22h21h21Γ(1α)1a^0(α)+h22h21Γ(1α)1a^0(α)+h22h21

b = 1 h 2 ⋅ ( u 0 n 0 ⋮ 0 u M n ) + a ^ 0 ( α ) Γ ( 1 − α ) ⋅ ( u 1 n − 1 u 2 n − 1 ⋮ u M − 2 n − 1 u M − 1 n − 1 ) − 1 Γ ( 1 − α ) ∑ l = 1 N e x p ω l F l , i n + f i n \mathbf{b}=\frac{1}{h^{2}} \cdot\left(\begin{array}{c}u_{0}^{n} \\ 0 \\ \vdots \\ 0 \\ u_{M}^{n}\end{array}\right)+\frac{\hat{a}_0^{(\alpha)}}{\Gamma(1-\alpha)} \cdot\left(\begin{array}{c}u_{1}^{n-1} \\ u_{2}^{n-1} \\ \vdots \\ u_{M-2}^{n-1}\\ u_{M-1}^{n-1}\end{array}\right)-\frac{1}{\Gamma(1-\alpha)} \sum\limits_{l=1}^{N_{exp}} \omega_{l} F_{l, i}^{n}+f_{i}^{n} b=h21 u0n00uMn +Γ(1α)a^0(α) u1n1u2n1uM2n1uM1n1 Γ(1α)1l=1NexpωlFl,in+fin

数值结果

时间方向参数选取:
FL1参数设置-时间方向-

时间方向数值结果:
FL1数值结果-时间方向-

空间方向参数选取:
FL1参数设置-空间方向-

空间方向数值结果:
FL1数值结果-空间方向-

程序运行时间:

时间步长为 0.000100 空间步长为 0.012500 时快速 L1 插值逼近历时 4.104740 秒.

误差Error =6.9887e-07

而相同的网格剖分及精度下, 传统的基于 L1 逼近需历时 122.812862 秒.

误差Error =6.9845e-07

源代码

主程序:

clc,clear
tic
%% 初始化定解问题
alpha=0.2;
epsilon=1e-8;
tau_hat=1e-6;
tau=1/10000;   T_a=0;      T_b=1;  
h=1/80;     L_a=0;      L_b=1;                
M=(L_b-L_a)/h;  
N=(T_b-T_a)/tau;       
x=L_a:h:L_b;        t=T_a:tau:T_b; 

u=zeros(M+1,N+1);          %   @u 初始化数值解
u(:,1)=f_ic(x,T_a,0,0);    %   定义初值条件
u(1,:)=f_bc(L_a,t,0,0);    %   定义左边界条件
u(M+1,:)=f_bc(L_b,t,0,0);  %   定义右边界条件

[xs,ws,nexp] = sumofexpappr2new(alpha,epsilon,tau_hat,T_b);
%% 两层格式(启动层)
n=2;
% 创建代数系统 
F_l=zeros(M-1,nexp);
% 系数矩阵 Coefficient_Matrix_A
Coefficient_Matrix_A=toeplitz([2/h^2+1/gamma(1-alpha)*a_hat(0,alpha,tau),-1/h^2,zeros(M-3,1)']);
% 右端 Right_Term_B
Right_Term_B=1/gamma(1-alpha)*a_hat(0,alpha,tau)*u(2:M,n-1)...
    +f_source(x(2:M),t(n),alpha)'...
    +1/h^2.*[u(1,n);zeros(M-3,1);u(M+1,n)]...
    -1/gamma(1-alpha)*F_l*ws;
% 求解迭代系统(由0层求第1层的值)
u(2:M,n)=Coefficient_Matrix_A\Right_Term_B;
fprintf('进程:\t%d/%d\n',n,N+1)

%% 三层格式
B_l=1./(-xs*tau).*(exp(1).^(-2*xs*tau)-exp(1).^(-xs*tau));
for n=3:N+1
    % 创建代数系统
    F_l=F_l*diag(exp(1).^(-xs*tau))+((u(2:M,n-1)-u(2:M,n-2)))*B_l';
    % 系数矩阵 Coefficient_Matrix_A
    Coefficient_Matrix_A=toeplitz([2/h^2+1/gamma(1-alpha)*a_hat(0,alpha,tau),-1/h^2,zeros(M-3,1)']);
    % 右端 Right_Term_B1
    Right_Term_B1=1/gamma(1-alpha)*a_hat(0,alpha,tau)*u(2:M,n-1)...
        +f_source(x(2:M),t(n),alpha)'...
        +1/h^2.*[u(1,n);zeros(M-3,1);u(M+1,n)]...
        -1/gamma(1-alpha)*F_l*ws;
    % 求解代数系统(由 k-2 层及第 k-1 层求第 k 层的值)
    u(2:M,n)=Coefficient_Matrix_A\Right_Term_B1;
    fprintf('进程:\t%d/%d\n',n,N+1)
end
% clc
fprintf(['时间步长为 %f 空间步长为 %f 时快速 L1 插值逼近 %d\n'],tau,h)
toc
%% 误差分析
U=zeros(size(u));
for m=1:M+1
    for n=1:N+1
        U(m,n)=u_exact(x(m),t(n),0,0);
    end
end
Error=max(max(abs(u-U)))

%% 绘图
figure
plot(t,u(7,:))
hold on
plot(t,U(7,:))
legend('数值解','精确解')

创作不易,此处仅展示了主程序代码部分, 绘图及误差分析等完整代码请查看专栏Matlab偏微分方程系列编程,感谢支持.

参考文献

孙志忠,高广花.分数阶微分方程的有限差分方法(第二版).北京:科学出版社,2021.


本人水平有限, 若有不妥之处, 恳请批评指正.

作者:图灵的猫

作者邮箱: turingscat@126.com

作者: 程金发 出版社: 厦门大学出版社 出版年: 2011-3 页数: 283 定价: 45.00元 丛书: 厦门大学南强丛书 ISBN: 9787561538470 内容简介 · · · · · · 《分数差分方程理论》的目的和内容是:首次独立提出了一种新的分数差分分数和分,以及分数差分方程的定义,建立了分数差分方程的系统理论,需要特别指出的是,运用我们的这种定义,使得系统求解分数差分方程得以成功实现,当我们把分数差分方程看作是整数差分方程的推广时,自然期望经典差分方程理论的一些重要结果都尽可能地推广到分数差分方程中去,事实上,我们系统地完成了许多相应的工作。 目录 · · · · · · 总序 序言 前言 第一章 分数差分分数和分的概念及其性质,莱及尼兹公式 第二章 分数和分及分数差分的Z变换公式 第三章 分数差分方程解的存在唯一性,解对初值的依赖性 第四章 显示解分数差分方程的方法 第五章 用待定系数法解(2,q)分数差方程 第六章 (k,q)分数差分方程的Z变换方法求解 第七章 Z变换法解线性常系数分数差分方程 第八章 序列差分方程理论 第九章 分数差分方程组(约当矩阵法) 第十章 分数Green函数 第十一章 用Adomian分解法解线性分数差分方程及方程组 第十二章 Weyl型分数差分分数和分的概念及其性质,莱布尼兹公式 第十三章 实变量的分数差分方程 参考文献 后记
评论 24
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

图灵猫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值