網(wǎng)站開(kāi)發(fā)建設(shè)賺錢嗎大兵seo博客
譜方法學(xué)習(xí)筆記📒
譜方法學(xué)習(xí)筆記-上(超詳細(xì))
聲明:鑒于CSDN
使用 K a T e X KaTeX KaTeX 渲染公式, KaTeX \KaTeX KATE?X 與 L a T e X LaTeX LaTeX 不同,不支持直接的交叉引用命令,如\label
和\eqref
。 KaTeX \KaTeX KATE?X專注于數(shù)學(xué)公式的呈現(xiàn),而不提供完整的文檔生成功能。因此,為了保證顯示正常,本文中所有公式均已刪除編號(hào)和交叉引用。由此可能導(dǎo)致一些可讀性上的不便,請(qǐng)讀者諒解。
文章目錄
- 譜方法學(xué)習(xí)筆記📒
- 傅里葉譜方法求解基本偏微分方程---二維 Schnakenberg 模型
- Matlab 將計(jì)算結(jié)果制作成 gif 動(dòng)畫
- 引言
- 函數(shù)介紹
- Matlab源代碼
- 譜求導(dǎo)矩陣
- 譜求導(dǎo)矩陣的導(dǎo)出和應(yīng)用
- 譜方法插值
- 譜求導(dǎo)矩陣
- 用譜求導(dǎo)矩陣求解偏微分方程的步驟
- 收斂階說(shuō)明
傅里葉譜方法求解基本偏微分方程—二維 Schnakenberg 模型
Schnakenberg模型是一種描述化學(xué)反應(yīng)動(dòng)力學(xué)的數(shù)學(xué)模型,旨在研究化學(xué)反應(yīng)中自組織現(xiàn)象和空間模式的形成。
該模型最早由德國(guó)化學(xué)家Heinrich Otto Wieland提出,后由德國(guó)數(shù)學(xué)家Theodor Schnakenberg在其博士論文中進(jìn)行了推導(dǎo)和解析,并得到了該模型的名字。
Schnakenberg模型的意義在于,它可以模擬一系列反應(yīng)中出現(xiàn)的自組織現(xiàn)象,例如化學(xué)波、化學(xué)斑圖、化學(xué)分叉等。這些現(xiàn)象是由于反應(yīng)物濃度分布在空間上的不均勻性導(dǎo)致的,通過(guò)Schnakenberg模型可以更好地理解這些現(xiàn)象,并為實(shí)驗(yàn)提供一定的指導(dǎo)和驗(yàn)證。
此外,Schnakenberg模型還可以應(yīng)用于其他領(lǐng)域,例如生物學(xué)、物理學(xué)、生態(tài)學(xué)等。在這些領(lǐng)域中,該模型可以用于研究許多自組織現(xiàn)象,例如細(xì)胞分裂、病毒傳播、生態(tài)系統(tǒng)演化等。
這個(gè)模型描述的是兩種化學(xué)物質(zhì)之間的反應(yīng)過(guò)程。具體來(lái)說(shuō),化學(xué)物質(zhì) u u u 會(huì)被消耗掉,同時(shí)生成化學(xué)物質(zhì) v v v。反應(yīng)速率的大小取決于 u u u 和 v v v的濃度,而擴(kuò)散系數(shù)則描述了物質(zhì)在空間中的擴(kuò)散速度。
Schnakenberg模型有許多有趣的特性和行為。例如,在某些參數(shù)范圍內(nèi),這個(gè)模型的解可以顯示出空間上的分布和時(shí)間上的演化,形成有序的斑圖(patterns)。這些斑圖包括靜態(tài)和動(dòng)態(tài)的形態(tài),它們的形狀和數(shù)量取決于模型參數(shù)的取值。這種有序結(jié)構(gòu)的出現(xiàn)和演化,可以通過(guò)Schnakenberg模型來(lái)解釋和理解實(shí)驗(yàn)室中觀察到的許多化學(xué)反應(yīng)和生物學(xué)現(xiàn)象。具體來(lái)說(shuō),當(dāng)模型的參數(shù)取值適當(dāng)時(shí),Schnakenberg模型的解會(huì)形成一個(gè)包含不同濃度級(jí)別的周期性結(jié)構(gòu)。這種周期性結(jié)構(gòu)被稱為Turing結(jié)構(gòu),是由Alan Turing在1952年提出的一種理論模型。Turing結(jié)構(gòu)是許多自組織系統(tǒng)中的一種普遍現(xiàn)象,例如斑馬條紋、蝴蝶翅膀上的斑點(diǎn)等。
在Schnakenberg模型中,Turing結(jié)構(gòu)的出現(xiàn)是由反應(yīng)和擴(kuò)散之間的相互作用所導(dǎo)致的。具體來(lái)說(shuō),當(dāng)擴(kuò)散系數(shù)足夠大時(shí),化學(xué)物質(zhì)可以在空間上擴(kuò)散,使得濃度分布均勻。但當(dāng)反應(yīng)速率較慢時(shí),這些化學(xué)物質(zhì)在局部區(qū)域內(nèi)聚集起來(lái),并且在一定的空間尺度上發(fā)生反應(yīng)。這個(gè)過(guò)程會(huì)導(dǎo)致局部區(qū)域內(nèi)的濃度發(fā)生變化,從而形成周期性的結(jié)構(gòu)。
需要注意的是,Turing結(jié)構(gòu)的出現(xiàn)是非線性動(dòng)力學(xué)的一個(gè)重要特征。這種結(jié)構(gòu)的產(chǎn)生和演化需要考慮多個(gè)因素之間的相互作用,因此通常需要使用數(shù)值計(jì)算和數(shù)學(xué)分析的方法來(lái)研究其性質(zhì)和行為。
需要注意的是,Schnakenberg模型是一種簡(jiǎn)化的模型,它假設(shè)了化學(xué)物質(zhì)的濃度在空間和時(shí)間上均勻分布,沒(méi)有考慮一些具體的生物或化學(xué)體系的細(xì)節(jié)和復(fù)雜性。因此,這個(gè)模型只能作為一種基本的參考模型,而不是具體體系的精確描述。
近年來(lái),Schnakenberg模型被廣泛應(yīng)用于不同領(lǐng)域的研究中,包括流體力學(xué)、生物學(xué)、材料科學(xué)等。這個(gè)模型的理論和數(shù)值分析方法也在不斷地發(fā)展和完善,為我們深入理解和探究復(fù)雜動(dòng)態(tài)系統(tǒng)的性質(zhì)和行為提供了有力的工具和平臺(tái)。
斑圖(pattern)是一類普遍存在于自然界、在時(shí)間或空間上具有某種規(guī)律的非均勻宏觀結(jié)構(gòu)。反應(yīng)-擴(kuò)散系統(tǒng) (reaction-diffusion system) 是斑圖理論中研究得最為廣 泛的系統(tǒng), 它起源于化學(xué)反應(yīng)系統(tǒng), 但又不局限于此, 還廣泛應(yīng)用于生物學(xué)、物理學(xué)、醫(yī)學(xué)、金融學(xué)等。Schnakenberg 模型是反應(yīng)-擴(kuò)散系統(tǒng)中的一個(gè)有趣的模型, 數(shù)學(xué)形式如下:
{ ? u ? t = ( ? 2 ? x 2 + ? 2 ? y 2 ) u + γ ( a ? u + u 2 v ) ? v ? t = d ( ? 2 ? x 2 + ? 2 ? y 2 ) v + γ ( b ? u 2 v ) \left\{\begin{array}{l} \frac{\partial u}{\partial t}=\left(\frac{\partial^2}{\partial x^2}+\frac{\partial^2}{\partial y^2}\right) u+\gamma\left(a-u+u^2 v\right) \\ \frac{\partial v}{\partial t}=d\left(\frac{\partial^2}{\partial x^2}+\frac{\partial^2}{\partial y^2}\right) v+\gamma\left(b-u^2 v\right) \end{array}\right. ? ? ???t?u?=(?x2?2?+?y2?2?)u+γ(a?u+u2v)?t?v?=d(?x2?2?+?y2?2?)v+γ(b?u2v)?
其中, u u u 和 v v v 可看做兩種化學(xué)反應(yīng)物質(zhì)的濃度, x 、 y x 、 y x、y 為空間坐標(biāo), t t t 為時(shí)間, a 、 b 、 d a 、 b 、 d a、b、d 、 γ \gamma γ 為常數(shù)。對(duì)式 (3-38) 做二維傅里葉變換, 可將其轉(zhuǎn)化為偏微分方程組:
{ ? u ^ ? t = ? ( k x 2 + k y 2 ) u ^ ^ + γ ? F { a ? F ? 1 [ u ^ ] + F ? 1 [ u ^ ] 2 F ? 1 [ v ^ ] } ? v ^ ? t = ? d ( k x 2 + k y 2 ) v ^ + γ ? F { b ? F ? 1 [ u ^ ] 2 F ? 1 [ v ^ ] } \left\{\begin{array}{l} \frac{\partial \hat{u}}{\partial t}=-\left(k_x^2+k_y^2\right) \hat{\hat{u}}+\gamma \cdot F\left\{a-F^{-1}[\hat{u}]+F^{-1}[\hat{u}]^2 F^{-1}[\hat{v}]\right\} \\ \frac{\partial \hat{v}}{\partial t}=-d\left(k_x^2+k_y^2\right) \hat{v}+\gamma \cdot F\left\{b-F^{-1}[\hat{u}]^2 F^{-1}[\hat{v}]\right\} \end{array}\right. {?t?u^?=?(kx2?+ky2?)u^^+γ?F{a?F?1[u^]+F?1[u^]2F?1[v^]}?t?v^?=?d(kx2?+ky2?)v^+γ?F{b?F?1[u^]2F?1[v^]}?
參數(shù)取值為: a = 0.1 , b = 0.8 , d = 26 , γ = 100 a=0.1, b=0.8, d=26, \gamma=100 a=0.1,b=0.8,d=26,γ=100 。為了得到靶型波, 將初始條件設(shè)置為: u u u 在 x ? y x-y x?y 平面原點(diǎn)處為 1 , 在其他位置為 0 , v 0, v 0,v 在整個(gè) x ? y x-y x?y 平面上均為 1 。利用傅里葉譜方法 求解該模型的代碼如下。
主程序代碼
clear all; close all;
L=16; N=64;
kx=2*pi/L*[0:N/2-1 -N/2:-1]; ky=kx;
[kX,kY]=meshgrid(kx,ky);
K2=kX.^2+kY.^2;
%初始條件
u=zeros(N); u(N/2,N/2)=1; v=ones(N);
ut=fft2(u); vt=fft2(v);
uvt=[ut(:); vt(:)];
%求解
a=0.1; b=0.8; d=26; gamma=100; t=[0:0.1:0.3];
[t,uvtsol]=ode45('schnakenberg',t,uvt,[],K2,N,gamma,a,b,d);
%畫圖
for n=1:4subplot(2,2,n)gca=pcolor(ifft2(reshape(uvtsol(n,1:N^2),N,N))); axis offset(gca,'LineStyle','none'), shading interptitle(['t=' num2str(t(n))]), axis('square'),
% colormap('gray')
end
程序輸出的結(jié)果如圖所示,這與化學(xué)實(shí)驗(yàn)中觀察到的靶型波一致。
Matlab 將計(jì)算結(jié)果制作成 gif 動(dòng)畫
引言
求解包含時(shí)間的偏微分方程 (組) 將得到隨著時(shí)間變化的數(shù)值結(jié)果, 把這樣的數(shù)據(jù)制作成 gif
動(dòng)畫并結(jié)合到幻燈片中, 在畢業(yè)答辯、小組討論、課堂教學(xué)等場(chǎng)合有著廣泛的應(yīng)用。生動(dòng)的彩色 gif
動(dòng)畫具有很強(qiáng)的表現(xiàn)力, 令人刮目相看, 大大提高了報(bào)告人所講述理論結(jié)果的直觀性、生動(dòng)性、觀賞性。
函數(shù)介紹
生成 gif
動(dòng)畫主要用到 4 4 4 個(gè)函數(shù): getframe
、frame2im
、rgb2ind
、imwrite
。
-
getframe
函數(shù)的一般調(diào)用形式為:F=getframe(h)
, 其作用是截取句柄為h
的窗口內(nèi)的一幀圖像。 -
frame2im
函數(shù)的作用是把一幀截圖轉(zhuǎn)為圖像數(shù)據(jù)。 -
rgb2ind
函數(shù)的作用是將RGB
圖像轉(zhuǎn)換為索引圖像, 一般調(diào)用形式為:[X, map]= rgb2ind(RGB,n)
。其中,X
、map
分別為轉(zhuǎn)換后的圖像數(shù)據(jù)和顏色表數(shù)據(jù),RGB
為轉(zhuǎn)換前的圖像數(shù)據(jù),n
指定map
中的顏色數(shù)。 -
imwrite
函數(shù)的作用是將圖像數(shù)據(jù)寫入圖像文件, 一般調(diào)用形式為:imwrite(X,map,filename,fmt,Param1,Val1,Param2,Val2...)
。其中,X
、map
意義同上,filename
為文件名,fmt
為文件格式,Param1
,Val1
,Param2
,Val2...
為若干可選參數(shù)及其取值。如:參數(shù)LoopCount
為動(dòng)畫的循環(huán)播放次數(shù), 這里設(shè)為inf
, 即無(wú)窮大。參數(shù)DelayTime
為每幀間隔時(shí)間, 單位秒。參數(shù)WriteMode
為寫入文件的模式, 有覆蓋overwrite
(默認(rèn)) 和追加append
兩種選擇。
Matlab源代碼
生成 gif
動(dòng)畫的示例代碼如下:
clear
clc
close
x=-1:0.02:1;y=x;
[X,Y]=meshgrid(x,y);
filename='test.gif';
for a=1:10u=a*exp(-10*(X.^2+Y.^2));mesh(x,y,u),axis([-1 1 -1 1 0 10]),drawnowim=frame2im(getframe(gcf));[A,map]=rgb2ind(im,256);if a==1%先以覆蓋模式寫入指定的gif文件imwrite(A,map,filename,'gif','LoopCount',Inf,'DelayTime',0.1);else%再以追加模式將每一幀寫入gif文件imwrite(A,map,filename,'gif','WriteMode','append','DelayTime',0.1);end
end
運(yùn)行代碼之后在當(dāng)前目錄下生成 gif
文件, 該動(dòng)畫顯示了一個(gè)三維高斯函數(shù)的峰值逐漸增大的過(guò)程。
為了更加直觀的感受求解 Schnakenberg 模型得到的靶型波,此處結(jié)合上述操作將計(jì)算結(jié)果制作成如下 gif 動(dòng)畫。
修改后的程序源代碼:
clear all; close all;
L=16; N=64;
kx=2*pi/L*[0:N/2-1 -N/2:-1]; ky=kx;
[kX,kY]=meshgrid(kx,ky);
K2=kX.^2+kY.^2;
%初始條件
u=zeros(N); u(N/2,N/2)=1; v=ones(N);
ut=fft2(u); vt=fft2(v);
uvt=[ut(:); vt(:)];
%求解
a=0.1; b=0.8; d=26; gamma=100; t=[0:0.01:1];
[t,uvtsol]=ode45('schnakenberg',t,uvt,[],K2,N,gamma,a,b,d);
%畫圖
filename = 'output.gif'; % 設(shè)置保存的gif文件名
for n = 1:length(t)gca=pcolor(ifft2(reshape(uvtsol(n,1:N^2),N,N))); axis offset(gca,'LineStyle','none'), shading interptitle(['t=' num2str(t(n))]), axis('square'),% colormap('gray')% 捕捉當(dāng)前子圖并轉(zhuǎn)換為gif圖像幀frame = getframe(gcf);im=frame2im(getframe(gcf));[A,map]=rgb2ind(im,256);% 寫入gif圖像文件if n == 1%先以覆蓋模式寫入指定的gif文件imwrite(A,map,filename,'gif','LoopCount',Inf,'DelayTime',0.01);else%再以追加模式將每一幀寫入gif文件imwrite(A,map,filename,'gif','WriteMode','append','DelayTime',0.01);end
end
譜求導(dǎo)矩陣
譜求導(dǎo)矩陣的導(dǎo)出和應(yīng)用
在生產(chǎn)實(shí)踐過(guò)程中, 某些函數(shù)關(guān)系的具體表達(dá)式是未知的, 只能通過(guò)實(shí)驗(yàn)測(cè)量得到該函數(shù)上的一些離散的數(shù)據(jù)點(diǎn).所以, 人們希望通過(guò)這些離散的數(shù)據(jù)點(diǎn)構(gòu)造一個(gè)已知函數(shù)來(lái)近似地描述并替代未知函數(shù).此外, 盡管有些函數(shù)的表達(dá)式是已知的, 但由于太過(guò)復(fù)雜繁瑣, 不便對(duì)其進(jìn)行理論計(jì)算和數(shù)值分析, 所以也有必要構(gòu)造一個(gè)簡(jiǎn)單函數(shù)來(lái)替代它.
上述問(wèn)題用數(shù)學(xué)語(yǔ)言表達(dá)為: 已知在區(qū)間 [ a , b ] [a, b] [a,b] 上的 N N N 個(gè)位置 x 1 , x 2 , … , x N x_{1}, x_{2}, \ldots, x_{N} x1?,x2?,…,xN? 的函數(shù)值 u 1 u_{1} u1?, u 2 , … , u N u_{2}, \ldots, u_{N} u2?,…,uN?, 求一個(gè)函數(shù) p ( x ) p(x) p(x) 通過(guò)所有已知點(diǎn) ( x 1 , u 1 ) , ( x 2 , u 2 ) , … , ( x N , u N ) \left(x_{1}, u_{1}\right),\left(x_{2}, u_{2}\right), \ldots,\left(x_{N}, u_{N}\right) (x1?,u1?),(x2?,u2?),…,(xN?,uN?), 即:
u j = p ( x j ) , j = 1 , 2 , … , N u_{j}=p\left(x_{j}\right), \quad j=1,2, \ldots, N uj?=p(xj?),j=1,2,…,N
其中, 用 p ( x ) p(x) p(x) 近似未知函數(shù)的方法稱為插值法 (interpolation), p ( x ) p(x) p(x) 稱為插值函數(shù).下面介紹用譜方法確定插值函數(shù) p ( x ) p(x) p(x) 的過(guò)程, 并將其用于計(jì)算離散數(shù)據(jù)的各階導(dǎo)數(shù)、偏微分方程 (組) 的數(shù)值求解.
譜方法插值
考慮在區(qū)間 [ 0 , 2 π ] [0,2 \pi] [0,2π] 上、具有周期性邊界條件的插值問(wèn)題.在此區(qū)間上間距為 h h h 的 N N N 個(gè)位置 x 1 , x 2 , … , x N x_{1}, x_{2}, \ldots, x_{N} x1?,x2?,…,xN? 對(duì)應(yīng)的函數(shù)值為 u 1 , u 2 , … , u N u_{1}, u_{2}, \ldots, u_{N} u1?,u2?,…,uN? .其中, x j = j h , h = 2 π / N x_{j}=j h, h=2 \pi / N xj?=jh,h=2π/N, 即:
π h = N 2 \frac{\pi}{h}=\frac{N}{2}% \label{4-2} hπ?=2N?
在推導(dǎo)前先做 3 點(diǎn)說(shuō)明:
(1) 選擇區(qū)間 [ 0 , 2 π ] [0,2 \pi] [0,2π] 是為了方便討論, 在該區(qū)間上得出的結(jié)論同樣適用于對(duì)其平移得到的其他區(qū)間 (如 [ ? π , π ] [-\pi, \pi] [?π,π] ), 并可以通過(guò)乘以縮放因子方便地將結(jié)論轉(zhuǎn)化到其他長(zhǎng)度非 2 π 2 \pi 2π的任意區(qū)間上 (如 [ ? L , L ] ) [-L, L]) [?L,L]) .
(2) 所謂周期性邊界條件, 是指 N N N 個(gè)函數(shù)值 u 1 , u 2 , … , u N u_{1}, u_{2}, \ldots, u_{N} u1?,u2?,…,uN? 可等效地看做是無(wú)窮多個(gè)函數(shù)值 … , u ? 1 , u 0 , u 1 , … , u N ? 1 , u N , u N + 1 , … \ldots, u_{-1}, u_{0}, u_{1}, \ldots, u_{N-1}, u_{N}, u_{N+1}, \ldots …,u?1?,u0?,u1?,…,uN?1?,uN?,uN+1?,… 的一部分, 并存在 u j + m N = u j u_{j+m N}=u_{j} uj+mN?=uj? 的關(guān)系 ( m m m 為任意整數(shù)).這里把討論的函數(shù)當(dāng)做周期為 2 π 2 \pi 2π 的周期函數(shù)處理.
(3) N N N 的奇偶會(huì)導(dǎo)致接下來(lái)的推導(dǎo)細(xì)節(jié)有所差異, 但過(guò)程是相似的, 所以此處只分析 N N N 為偶數(shù)的情況.
若對(duì)序列 u 1 , u 2 , … , u N u_{1}, u_{2}, \ldots, u_{N} u1?,u2?,…,uN? 做離散傅里葉變換, 那么空域(時(shí)域)上的間隔 h h h 決定了頻域上的區(qū)間為 [ ? π / h , π / h ] [-\pi / h, \pi / h] [?π/h,π/h] .由式 % \eqref{4-2} , 該區(qū)間也可寫為 [ ? N / 2 , N / 2 ] [-N / 2, N / 2] [?N/2,N/2] .本部分中的離散傅里葉變換對(duì)定義為:
u ^ k = h ∑ j = 1 N e ? i k x j u j , k = ? N 2 + 1 , … , N 2 u j = 1 2 π ∑ k = ? N / 2 + 1 N / 2 e i k x j u ^ k , j = 1 , … , N \begin{align} \hat{u}_{k}=h \sum_{j=1}^{N} \mathrm{e}^{-\mathrm{i} k x_{j}} u_{j}, \quad k=-\frac{N}{2}+1, \ldots, \frac{N}{2} % \label{4-3}\\ u_{j}=\frac{1}{2 \pi} \sum_{k=-N / 2+1}^{N / 2} \mathrm{e}^{\mathrm{i} k x_{j}} \hat{u}_{k}, \quad j=1, \ldots, N% \label{4-4} \end{align} u^k?=hj=1∑N?e?ikxj?uj?,k=?2N?+1,…,2N?uj?=2π1?k=?N/2+1∑N/2?eikxj?u^k?,j=1,…,N??
這與前面給出的 Matlab
中離散傅里葉變換對(duì)的定義略有不同, 但實(shí)質(zhì)是一樣的.注意到式 % \eqref{4-4} 中的頻率分量并不是完全對(duì)稱的, k k k 中有 0 、 ± 1 、 ± 2 、 ? ? 、 ± ( N / 2 ? 1 ) 、 N / 2 0 、 \pm 1 、 \pm 2 、 \cdots \cdots 、 \pm(N / 2-1) 、 N / 2 0、±1、±2、??、±(N/2?1)、N/2,卻沒(méi)有 ? N / 2 -N / 2 ?N/2, 這在求解插值函數(shù)時(shí)會(huì)引起一些小小的問(wèn)題.所以, 令 u ^ ? N / 2 = u ^ N / 2 \hat{u}_{-N / 2}=\hat{u}_{N / 2} u^?N/2?=u^N/2?, 并重新定義離散傅里葉逆變換為:
u j = 1 2 π ∑ k = ? N / 2 N / 2 ′ e i k x j u ^ k , j = 1 , … , N u_{j}=\frac{1}{2 \pi} \sum_{k=-N / 2}^{N / 2}{}^{\prime}\mathrm{e}^{\mathrm{i} k x_{j}} \hat{u}_{k}, \quad j=1, \ldots, N% \label{4-5} uj?=2π1?k=?N/2∑N/2?′eikxj?u^k?,j=1,…,N
其中, “ Σ ′ \Sigma^{\prime} Σ′ 代表求和時(shí)在 k = ± N / 2 k= \pm N / 2 k=±N/2 的項(xiàng)上乘以 1 / 2 1 / 2 1/2 .需要強(qiáng)調(diào)的是, 式 % \eqref{4-3} 和式 % \eqref{4-4} 仍然是離散傅里葉變換對(duì)的定義, 式 % \eqref{4-5} 僅是用于確定插值函數(shù) p ( x ) p(x) p(x) 的.求 p ( x ) p(x) p(x) 時(shí)需要把式 % \eqref{4-5} 中的 x j = j h x_{j}=j h xj?=jh 推廣到 [ 0 , 2 π ] [0,2 \pi] [0,2π] 上的任意實(shí)數(shù) x x x, 即:
p ( x ) = 1 2 π ∑ k = ? N / 2 N / 2 ′ e i k x u ^ k , x ∈ [ 0 , 2 π ] p(x)=\frac{1}{2 \pi} \sum_{k=-N / 2}^{N / 2} {}^{\prime}\mathrm{e}^{\mathrm{i} k x} \hat{u}_{k}, \quad x \in[0,2 \pi]% \label{4-6} p(x)=2π1?k=?N/2∑N/2?′eikxu^k?,x∈[0,2π]
確定插值函數(shù)的步驟是這樣的:先用式 % \eqref{4-3} 將序列 u 1 , u 2 , … , u N u_{1}, u_{2}, \ldots, u_{N} u1?,u2?,…,uN? 變換為 u ^ ? N / 2 + 1 \hat{u}_{-N / 2+1} u^?N/2+1?, u ^ ? N / 2 + 2 , … , u ^ N / 2 \hat{u}_{-N / 2+2}, \ldots, \hat{u}_{N / 2} u^?N/2+2?,…,u^N/2?, 令 u ^ ? N / 2 = u ^ N / 2 \hat{u}_{-N / 2}=\hat{u}_{N / 2} u^?N/2?=u^N/2?, 再根據(jù)序列 u ^ ? N / 2 , u ^ ? N / 2 + 1 , … , u ^ N / 2 \hat{u}_{-N / 2}, \hat{u}_{-N / 2+1}, \ldots, \hat{u}_{N / 2} u^?N/2?,u^?N/2+1?,…,u^N/2? 通過(guò)式 % \eqref{4-6} 得到 p ( x ) p(x) p(x) .這樣得到的插值函數(shù) p ( x ) p(x) p(x) 可用來(lái)求序列 u 1 , u 2 , … , u N u_{1}, u_{2}, \ldots, u_{N} u1?,u2?,…,uN? 在 x j x_{j} xj? 處的各階導(dǎo)數(shù), 即:
? n p ( x ) ? x n ∣ x = x j \left.\frac{\partial^{n} p(x)}{\partial x^{n}}\right|_{x=x_{j}}% \label{4-7} ?xn?np(x)? ?x=xj??
上面介紹的是通過(guò)譜方法計(jì)算插值函數(shù) p ( x ) p(x) p(x) 來(lái)估算序列 u 1 , u 2 , … , u N u_{1}, u_{2}, \ldots, u_{N} u1?,u2?,…,uN? 在 x j x_{j} xj? 處的導(dǎo)數(shù)的基本原理.接下來(lái), 為了把上述過(guò)程轉(zhuǎn)化為方便的矩陣運(yùn)算, 采用如下思路: 首先求出周期 δ \delta δ 函數(shù)的插值函數(shù) S N ( x ) S_{N}(x) SN?(x), 然后將任意序列 u 1 , u 2 , … , u N u_{1}, u_{2}, \ldots, u_{N} u1?,u2?,…,uN? 寫為周期 δ \delta δ 函數(shù)的線性組合, 進(jìn)而可把它的插值函數(shù) p ( x ) p(x) p(x) 寫為 S N ( x ) S_{N}(x) SN?(x) 的線性組合, 最后找到 p ( x ) p(x) p(x) 和 S N ( x ) S_{N}(x) SN?(x) 在 x 1 , x 2 , … , x N x_{1}, x_{2}, \ldots, x_{N} x1?,x2?,…,xN? 處導(dǎo)數(shù)的關(guān)系并寫為矩陣形式, 給出針對(duì)任意序列 u 1 , u 2 , … , u N u_{1}, u_{2}, \ldots, u_{N} u1?,u2?,…,uN? 的譜求導(dǎo)矩陣.
譜求導(dǎo)矩陣
周期 δ \delta δ 函數(shù)定義為:
δ j = { 1 , ( j % N = 0 ) 0 , ( j % N ≠ 0 ) \delta_{j}= \begin{cases}1, & (j \% N=0) \\ 0, & (j \% N \neq 0)\end{cases}% \label{4-8} δj?={1,0,?(j%N=0)(j%N=0)?
其中, 百分號(hào) “ % \% % ” 代表求余運(yùn)算, 周期 δ \delta δ 函數(shù)在 j = m N j=m N j=mN ( m m m 為任意整數(shù)) 時(shí)取值為 1 ,其他情況為 0 , 它所對(duì)應(yīng)的橫坐標(biāo)為 x j = j h x_{j}=j h xj?=jh .利用式 % \eqref{4-3} 求周期 δ \delta δ 函數(shù)的離散傅里葉變換, 結(jié)果為一常數(shù) h h h :
δ ^ k = h ∑ j = 1 N e ? i k x j δ j = h , k = ? N 2 + 1 , … , N 2 \hat{\delta}_{k}=h \sum_{j=1}^{N} \mathrm{e}^{-\mathrm{i} k x_{j}} \delta_{j}=h, \quad k=-\frac{N}{2}+1, \ldots, \frac{N}{2}% \label{4-9} δ^k?=hj=1∑N?e?ikxj?δj?=h,k=?2N?+1,…,2N?
再利用式 % \eqref{4-6} 求周期 δ \delta δ 函數(shù)的插值函數(shù):
p ( x ) = h 2 π ∑ k = ? N / 2 N / 2 ′ e i k x = h 2 π ( 1 2 ∑ k = ? N / 2 N / 2 ? 1 e i k x + 1 2 ∑ k = ? N / 2 + 1 N / 2 e i k x ) = h 2 π ( 1 2 e ? i 2 x ∑ k = ? N / 2 + 1 / 2 N / 2 ? 1 / 2 e i k x + 1 2 e i 2 x ∑ k = ? N / 2 + 1 / 2 N / 2 ? 1 / 2 e i k x ) = h 2 π cos ? ( x / 2 ) ∑ k = ? N / 2 + 1 / 2 N / 2 ? 1 / 2 e i k x = h 2 π cos ? ( x / 2 ) e i ( ? N / 2 + 1 / 2 ) x ? e i ( N / 2 + 1 / 2 ) x 1 ? e i x = h 2 π cos ? ( x / 2 ) e ? i ( N / 2 ) x ? e i ( N / 2 ) x e ? i x / 2 ? e i x / 2 = h 2 π cos ? ( x / 2 ) sin ? ( N x / 2 ) sin ? ( x / 2 ) \begin{aligned} p(x) & =\frac{h}{2 \pi} \sum_{k=-N / 2}^{N / 2}{}^{\prime} \mathrm{e}^{\mathrm{i} k x} \\ & =\frac{h}{2 \pi}\left(\frac{1}{2} \sum_{k=-N / 2}^{N / 2-1} \mathrm{e}^{\mathrm{i} k x}+\frac{1}{2} \sum_{k=-N / 2+1}^{N / 2} \mathrm{e}^{\mathrm{i} k x}\right) \\ & =\frac{h}{2 \pi}\left(\frac{1}{2} \mathrm{e}^{-\frac{\mathrm{i}}{2} x} \sum_{k=-N / 2+1 / 2}^{N / 2-1 / 2} \mathrm{e}^{\mathrm{i} k x}+\frac{1}{2} \mathrm{e}^{\frac{\mathrm{i}}{2} x} \sum_{k=-N / 2+1 / 2}^{N / 2-1 / 2} \mathrm{e}^{\mathrm{i} k x}\right) \\ & =\frac{h}{2 \pi} \cos (x / 2) \sum_{k=-N / 2+1 / 2}^{N / 2-1 / 2} \mathrm{e}^{\mathrm{i} k x} \\ & =\frac{h}{2 \pi} \cos (x / 2) \frac{\mathrm{e}^{\mathrm{i}(-N / 2+1 / 2) x}-\mathrm{e}^{\mathrm{i}(N / 2+1 / 2) x}}{1-\mathrm{e}^{\mathrm{i} x}} \\ & =\frac{h}{2 \pi} \cos (x / 2) \frac{\mathrm{e}^{-\mathrm{i}(N / 2) x}-\mathrm{e}^{\mathrm{i}(N / 2) x}}{\mathrm{e}^{-\mathrm{i} x / 2}-\mathrm{e}^{\mathrm{i} x / 2}} \\ & =\frac{h}{2 \pi} \cos (x / 2) \frac{\sin (N x / 2)}{\sin (x / 2)} \end{aligned}% \label{4-10} p(x)?=2πh?k=?N/2∑N/2?′eikx=2πh? ?21?k=?N/2∑N/2?1?eikx+21?k=?N/2+1∑N/2?eikx ?=2πh? ?21?e?2i?xk=?N/2+1/2∑N/2?1/2?eikx+21?e2i?xk=?N/2+1/2∑N/2?1/2?eikx ?=2πh?cos(x/2)k=?N/2+1/2∑N/2?1/2?eikx=2πh?cos(x/2)1?eixei(?N/2+1/2)x?ei(N/2+1/2)x?=2πh?cos(x/2)e?ix/2?eix/2e?i(N/2)x?ei(N/2)x?=2πh?cos(x/2)sin(x/2)sin(Nx/2)??
由式 % \eqref{4-2} , 最終得到的周期 δ \delta δ 函數(shù)的插值函數(shù)為周期 sinc 函數(shù) S N S_{N} SN? :
S N ( x ) = sin ? ( π x / h ) ( 2 π / h ) tan ? ( x / 2 ) S_{N}(x)=\frac{\sin (\pi x / h)}{(2 \pi / h) \tan (x / 2)}% \label{4-11} SN?(x)=(2π/h)tan(x/2)sin(πx/h)?
可以證明, S N ( x ) ∣ x → 0 = 1 \left.S_{N}(x)\right|_{x \rightarrow 0}=1 SN?(x)∣x→0?=1 .下圖(曲線為周期 sinc ? \operatorname{sinc} sinc 函數(shù), 黑點(diǎn)為周期 δ \delta δ 函數(shù), 上下兩圖分別對(duì)應(yīng) N = 4 N=4 N=4 和 N = 16 N=16 N=16) 顯示了周期 δ \delta δ 函數(shù)以及它的插值函數(shù)一一周期 sinc 函數(shù) S N ( x ) S_{N}(x) SN?(x), 二者的周期均為 2 π 2 \pi 2π, 無(wú)論 N N N 取值為 4 還是 16 , 后者都精確、巧妙地經(jīng)過(guò)了前者的所有離散點(diǎn).
若將區(qū)間 [ 0 , 2 π ] [0,2 \pi] [0,2π] 上的序列 u 1 , u 2 , … , u N u_{1}, u_{2}, \ldots, u_{N} u1?,u2?,…,uN? 寫為周期 δ \delta δ 函數(shù)的線性疊加, 即:
u j = ∑ m = 1 N u m δ j ? m u_{j}=\sum_{m=1}^{N} u_{m} \delta_{j-m}% \label{4-12} uj?=m=1∑N?um?δj?m?
那么, 將其中的周期 δ \delta δ 函數(shù)替換為周期 sinc ? \operatorname{sinc} sinc 函數(shù) S N S_{N} SN?, 就得到序列 u 1 , u 2 , … , u N u_{1}, u_{2}, \ldots, u_{N} u1?,u2?,…,uN? 的插值函數(shù) p ( x ) p(x) p(x) :
p ( x ) = ∑ m = 1 N u m S N ( x ? x m ) p(x)=\sum_{m=1}^{N} u_{m} S_{N}\left(x-x_{m}\right)% \label{4-13} p(x)=m=1∑N?um?SN?(x?xm?)
注意到 p ( x ) p(x) p(x) 就是 S N ( x ) S_{N}(x) SN?(x) 的線性組合,如果用 p ( x ) p(x) p(x) 來(lái)估算序列 u 1 , u 2 , … , u N u_{1}, u_{2}, \ldots, u_{N} u1?,u2?,…,uN? 在 x j = j h x_{j}=j h xj?=jh 處的 1 階導(dǎo)數(shù), 則有:
p ′ ( x j ) = ∑ m = 1 N u m S N ′ ( x j ? x m ) p^{\prime}\left(x_{j}\right)=\sum_{m=1}^{N} u_{m} S_{N}^{\prime}\left(x_{j}-x_{m}\right)% \label{4-14} p′(xj?)=m=1∑N?um?SN′?(xj??xm?)
其中, x j ? x m = ( j ? m ) h x_{j}-x_{m}=(j-m) h xj??xm?=(j?m)h .將上式寫為矩陣形式:
( p ′ ( x 1 ) p ′ ( x 2 ) p ′ ( x 3 ) ? p ′ ( x N ) ) = ( S N ′ ( 0 ) S N ′ ( ? h ) S N ′ ( ? 2 h ) ? S N ′ ( ( 1 ? N ) h ) S N ′ ( h ) S N ′ ( 0 ) S N ′ ( ? h ) S N ′ ( 2 h ) S N ′ ( h ) S N ′ ( 0 ) ? ? S N ′ ( ( N ? 1 ) h ) ) ( u 1 u 2 u 3 ? u N ) \left(\begin{array}{c} p^{\prime}\left(x_{1}\right) \\ p^{\prime}\left(x_{2}\right) \\ p^{\prime}\left(x_{3}\right) \\ \vdots \\ p^{\prime}\left(x_{N}\right) \end{array}\right)=\left(\begin{array}{ccccc} S_{N}^{\prime}(0) & S_{N}^{\prime}(-h) & S_{N}^{\prime}(-2 h) & \cdots & S_{N}^{\prime}((1-N) h) \\ S_{N}^{\prime}(h) & S_{N}^{\prime}(0) & S_{N}^{\prime}(-h) & & \\ S_{N}^{\prime}(2 h) & S_{N}^{\prime}(h) & S_{N}^{\prime}(0) & & \\ \vdots & & & \ddots &\\ S_{N}^{\prime}((N-1) h) \end{array}\right)\left(\begin{array}{c} u_{1} \\ u_{2} \\ u_{3} \\ \vdots \\ u_{N} \end{array}\right)% \label{4-15} ?p′(x1?)p′(x2?)p′(x3?)?p′(xN?)? ?= ?SN′?(0)SN′?(h)SN′?(2h)?SN′?((N?1)h)?SN′?(?h)SN′?(0)SN′?(h)?SN′?(?2h)SN′?(?h)SN′?(0)????SN′?((1?N)h)? ? ?u1?u2?u3??uN?? ?
因此, 只需在向量 ( u 1 , u 2 , … , u N ) T \left(u_{1}, u_{2}, \ldots, u_{N}\right)^{\mathrm{T}} (u1?,u2?,…,uN?)T 上乘以一個(gè) N N N 階方陣即可得到由它的譜方法插值函數(shù) p ( x ) p(x) p(x)的導(dǎo)數(shù)組成的向量 ( p ′ ( x 1 ) , p ′ ( x 2 ) , … , p ′ ( x N ) ) T \left(p^{\prime}\left(x_{1}\right), p^{\prime}\left(x_{2}\right), \ldots, p^{\prime}\left(x_{N}\right)\right)^{\mathrm{T}} (p′(x1?),p′(x2?),…,p′(xN?))T, 這個(gè) N N N 階方陣就是譜求導(dǎo)矩陣 (spectral differentiation matrix).下文用 D N \boldsymbol{D}_{N} DN? 來(lái)表示 1 階 N × N N \times N N×N 譜求導(dǎo)矩陣, D N ( n ) \boldsymbol{D}_{N}^{(n)} DN(n)? 表示 n n n 階 N × N N \times N N×N 譜求導(dǎo)矩陣.周期 sinc ? \operatorname{sinc} sinc 函數(shù) S N ( x ) S_{N}(x) SN?(x) 在 x j = j h x_{j}=j h xj?=jh 處的 1 階導(dǎo)數(shù)為:
S N ′ ( x j ) = { 0 , ( j % N = 0 ) ( ? 1 ) j / 2 ? cot ? ( j h / 2 ) , ( j % N ≠ 0 ) S_{N}^{\prime}\left(x_{j}\right)=\left\{\begin{array}{cc} 0, & (j \% N=0) \\ (-1)^{j} / 2 \cdot \cot (j h / 2), & (j \% N \neq 0) \end{array}\right.% \label{4-16} SN′?(xj?)={0,(?1)j/2?cot(jh/2),?(j%N=0)(j%N=0)?
將其代入到式 % \eqref{4-15} 中的 N N N 階方陣, 得到 1 階譜求導(dǎo)矩陣:
D N = ( 0 ? cot ? ( 1 h / 2 ) 2 ? cot ? ( 1 h / 2 ) 2 ? ? cot ? ( 2 h / 2 ) 2 cot ? ( 2 h / 2 ) 2 ? ? cot ? ( 3 h / 2 ) 2 ? cot ? ( 3 h / 2 ) 2 ? ? ? ? ? cot ? ( 1 h / 2 ) 2 cot ? ( 1 h / 2 ) 2 0 ) \boldsymbol{D}_{N}=\left(\begin{array}{ccccc} 0 & & & & -\frac{\cot (1 h / 2)}{2} \\ -\frac{\cot (1 h / 2)}{2} & \ddots & & \ddots & \frac{\cot (2 h / 2)}{2} \\ \frac{\cot (2 h / 2)}{2} & \ddots & & -\frac{\cot (3 h / 2)}{2} \\ -\frac{\cot (3 h / 2)}{2} & & \ddots & & \vdots \\ \vdots & \ddots & \ddots & \frac{\cot (1 h / 2)}{2} \\ \frac{\cot (1 h / 2)}{2} & & & & 0 \end{array}\right)% \label{4-17} DN?= ?0?2cot(1h/2)?2cot(2h/2)??2cot(3h/2)??2cot(1h/2)???????????2cot(3h/2)?2cot(1h/2)???2cot(1h/2)?2cot(2h/2)??0? ?
類似地, 還可以得到高階譜求導(dǎo)矩陣.周期 sinc ? \operatorname{sinc} sinc 函數(shù) S N ( x ) S_{N}(x) SN?(x) 在 x j = j h x_{j}=j h xj?=jh 處的 2 階導(dǎo)數(shù)為:
S N ′ ′ ( x j ) = { ? π 2 3 h 2 ? 1 6 , ( j % N = 0 ) ? ( ? 1 ) j csc ? 2 ( j h / 2 ) 2 , ( j % N ≠ 0 ) S_{N}^{\prime \prime}\left(x_{j}\right)=\left\{\begin{array}{cc} -\frac{\pi^{2}}{3 h^{2}}-\frac{1}{6}, & (j \% N=0) \\ -\frac{(-1)^{j} \csc ^{2}(j h / 2)}{2}, & (j \% N \neq 0) \end{array}\right.% \label{4-18} SN′′?(xj?)={?3h2π2??61?,?2(?1)jcsc2(jh/2)?,?(j%N=0)(j%N=0)?
那么, 2 階譜求導(dǎo)矩陣為:
D N ( 2 ) = ( ? ? ? ? 1 2 csc ? 2 ( 2 h 2 ) ? 1 2 csc ? 2 ( 1 h 2 ) ? π 2 3 h 2 ? 1 6 1 2 csc ? 2 ( 1 h 2 ) ? ? 1 2 csc ? 2 ( 2 h 2 ) ? ? ? ) D_{N}^{(2)}=\left(\begin{array}{ccc} \ddots & \vdots \\ \ddots & -\frac{1}{2} \csc ^{2}\left(\frac{2 h}{2}\right) & \\ \ddots & \frac{1}{2} \csc ^{2}\left(\frac{1 h}{2}\right) & \\ & -\frac{\pi^{2}}{3 h^{2}}-\frac{1}{6} & \\ & \frac{1}{2} \csc ^{2}\left(\frac{1 h}{2}\right) & \ddots \\ & -\frac{1}{2} \csc ^{2}\left(\frac{2 h}{2}\right) & \ddots \\ & \vdots & \ddots \end{array}\right)% \label{4-19} DN(2)?= ???????21?csc2(22h?)21?csc2(21h?)?3h2π2??61?21?csc2(21h?)?21?csc2(22h?)?????? ?
周期 sinc 函數(shù) S N ( x ) S_{N}(x) SN?(x) 在 x j = j h x_{j}=j h xj?=jh 處的 3 階導(dǎo)數(shù)為:
S N m ( x j ) = { 0 , ( j % N = 0 ) ( ? 1 ) j cot ? ( j h 2 ) [ 3 4 csc ? 2 ( j h 2 ) ? π 2 2 h 2 ] , ( j % N ≠ 0 ) S_{N}^{m}\left(x_{j}\right)=\left\{\begin{array}{cc} 0, & (j \% N=0) \\ (-1)^{j} \cot \left(\frac{j h}{2}\right)\left[\frac{3}{4} \csc ^{2}\left(\frac{j h}{2}\right)-\frac{\pi^{2}}{2 h^{2}}\right], & (j \% N \neq 0) \end{array}\right.% \label{4-20} SNm?(xj?)={0,(?1)jcot(2jh?)[43?csc2(2jh?)?2h2π2?],?(j%N=0)(j%N=0)?
同樣得到 3 階譜求導(dǎo)矩陣:
D N ( 3 ) = ( 0 ? cot ? ( 1 h 2 ) [ 3 4 cos ? 2 ( 1 h 2 ) ? π 2 2 h 2 ] ? cot ? ( 1 h 2 ) [ 3 4 csc ? 2 ( 1 h 2 ) ? π 2 2 h 2 ] ? ? cot ? ( 2 h 2 ) [ 3 4 csc ? 2 ( 2 h 2 ) ? π 2 2 h 2 ] cot ? ( 2 h 2 ) [ 3 4 csc ? 2 ( 2 h 2 ) ? π 2 2 h 2 ] ? ? cot ? ( 3 h 2 ) [ 3 4 csc ? 2 ( 3 h 2 ) ? π 2 2 h 2 ] ? cot ? ( 3 h 2 ) [ 3 4 csc ? 2 ( 3 h 2 ) ? π 2 2 h 2 ] ? ? ? ? ? cot ? ( 1 h 2 ) [ 3 4 csc ? 2 ( 1 h 2 ) ? π 2 2 h 2 ] cot ? ( 1 h 2 ) [ 3 4 csc ? 2 ( 1 h 2 ) ? π 2 2 h 2 ] 0 ) D_{N}^{(3)}=\left.\left(\begin{array}{cccc}0&&&-\cot\left(\frac{1h}2\right)\left[\frac34\cos^2\left(\frac{1h}2\right)-\frac{\pi^2}{2h^2}\right]\\-\cot\left(\frac{1h}2\right)\left[\frac34\csc^2\left(\frac{1h}2\right)-\frac{\pi^2}{2h^2}\right]&\ddots&\ddots&\cot\left(\frac{2h}2\right)\left[\frac34\csc^2\left(\frac{2h}2\right)-\frac{\pi^2}{2h^2}\right]\\\cot\left(\frac{2h}2\right)\left[\frac34\csc^2\left(\frac{2h}2\right)-\frac{\pi^2}{2h^2}\right]&&\ddots&-\cot\left(\frac{3h}2\right)\left[\frac34\csc^2\left(\frac{3h}2\right)-\frac{\pi^2}{2h^2}\right]\\-\cot\left(\frac{3h}2\right)\left[\frac34\csc^2\left(\frac{3h}2\right)-\frac{\pi^2}{2h^2}\right]&\ddots&&\vdots\\\vdots&\ddots&\ddots&\cot\left(\frac{1h}2\right)\left[\frac34\csc^2\left(\frac{1h}2\right)-\frac{\pi^2}{2h^2}\right]\\\cot\left(\frac{1h}2\right)\left[\frac34\csc^2\left(\frac{1h}2\right)-\frac{\pi^2}{2h^2}\right]&&&0\end{array}\right.\right)% \label{4-21} DN(3)?= ?0?cot(21h?)[43?csc2(21h?)?2h2π2?]cot(22h?)[43?csc2(22h?)?2h2π2?]?cot(23h?)[43?csc2(23h?)?2h2π2?]?cot(21h?)[43?csc2(21h?)?2h2π2?]??????????cot(21h?)[43?cos2(21h?)?2h2π2?]cot(22h?)[43?csc2(22h?)?2h2π2?]?cot(23h?)[43?csc2(23h?)?2h2π2?]?cot(21h?)[43?csc2(21h?)?2h2π2?]0? ?
構(gòu)造 n n n 階譜求導(dǎo)矩陣 D N ( n ) \boldsymbol{D}_{N}^{(n)} DN(n)? 的一般方法為:
(1) 求周期 sinc 函數(shù) $S_{N}(x)$ 在 $x_{j}=j h$ 處的 $n$ 階導(dǎo)數(shù) $S_{N}^{(n)}\left(x_{j}\right)$ .(2) $\boldsymbol{D}_{N}^{(n)}$ 的第 1 列為 $\left(S_{N}^{(n)}\left(x_{N}\right), S_{N}^{(n)}\left(x_{1}\right), S_{N}^{(n)}\left(x_{2}\right), \ldots, S_{N}^{(n)}\left(x_{N-1}\right)\right)^{\mathrm{T}}$, 第 2 列為 $\left(S_{N}^{(n)}\left(x_{N-1}\right)\right.$, $\left.S_{N}^{(n)}\left(x_{N}\right), S_{N}^{(n)}\left(x_{1}\right), \ldots, S_{N}^{(n)}\left(x_{N-2}\right)\right)^{\mathrm{T}}$, 第 3 列為 $\left(S_{N}^{(n)}\left(x_{N-2}\right), S_{N}^{(n)}\left(x_{N-1}\right), S_{N}^{(n)}\left(x_{N}\right), \ldots, S_{N}^{(n)}\left(x_{N-3}\right)\right)^{\mathrm{T}} \cdots \cdots$依此類推.
此外, 周期函數(shù) S N ( n ) ( x ) S_{N}^{(n)}(x) SN(n)?(x) 的奇偶性是由 n n n 的奇偶決定的, 這在構(gòu)造 D N ( n ) \boldsymbol{D}_{N}^{(n)} DN(n)? 時(shí)可以產(chǎn)生一些便利:
? n S N ( x ) ? x n ∣ x = x j = ( ? 1 ) n ? n S N ( x ) ? x n ∣ x = x N ? j \left.\frac{\partial^{n} S_{N}(x)}{\partial x^{n}}\right|_{x=x_{j}}=\left.(-1)^{n} \frac{\partial^{n} S_{N}(x)}{\partial x^{n}}\right|_{x=x_{N-j}}% \label{4-22} ?xn?nSN?(x)? ?x=xj??=(?1)n?xn?nSN?(x)? ?x=xN?j??
當(dāng) n n n 為奇數(shù)時(shí), 必有:
? n S N ( x ) ? x n ∣ x = x j = 0 , j % N = 0 \left.\frac{\partial^{n} S_{N}(x)}{\partial x^{n}}\right|_{x=x_{j}}=0, \quad j \% N=0% \label{4-23} ?xn?nSN?(x)? ?x=xj??=0,j%N=0
當(dāng) n n n 為偶數(shù)時(shí), S N ( n ) ( x ) S_{N}^{(n)}(x) SN(n)?(x) 在 x = x j x=x_{j} x=xj? 處 ( j % N = 0 ) (j \% N=0) (j%N=0) 的取值是無(wú)窮小/無(wú)窮小的形式, 需要用洛必達(dá)法則求它的極限, 即:
? n S N ( x ) ? x n ∣ x = x j = lim ? x → 0 ? n S N ( x ) ? x n , j % N = 0 \left.\frac{\partial^{n} S_{N}(x)}{\partial x^{n}}\right|_{x=x_{j}}=\lim _{x \rightarrow 0} \frac{\partial^{n} S_{N}(x)}{\partial x^{n}}, \quad j \% N=0% \label{4-24} ?xn?nSN?(x)? ?x=xj??=x→0lim??xn?nSN?(x)?,j%N=0
人工計(jì)算 S N ( x ) S_{N}(x) SN?(x) 的 n n n 階導(dǎo)數(shù)的工作量隨著階數(shù) n n n 的增大而顯著增加, 比較省時(shí)省力的方法是利用 Matlab
的符號(hào)運(yùn)算功能, 調(diào)用 diff
函數(shù)和 limit
函數(shù)求導(dǎo)、求極限, 并結(jié)合 toeplitz 函數(shù), 可實(shí)現(xiàn)程序自動(dòng)生成 D N ( n ) \boldsymbol{D}_{N}^{(n)} DN(n)?, 有興趣的讀者可以自行嘗試.
由于譜求導(dǎo)矩陣 D N ( n ) \boldsymbol{D}_{N}^{(n)} DN(n)? 是在計(jì)算區(qū)間長(zhǎng)度為 2 π 2 \pi 2π 的前提下構(gòu)造的, 所以若實(shí)際的計(jì)算區(qū)間長(zhǎng)度為 L L L, 則必須在 D N ( n ) \boldsymbol{D}_{N}^{(n)} DN(n)? 上乘以縮放系數(shù)才可保證結(jié)果正確, 即: ( 2 π / L ) n D N ( n ) (2 \pi / L)^{n} \boldsymbol{D}_{N}^{(n)} (2π/L)nDN(n)? .
下面給出使用譜求導(dǎo)矩陣 D N 、 D N ( 2 ) 、 D N ( 3 ) \boldsymbol{D}_{N} 、 \boldsymbol{D}_{N}^{(2)} 、 \boldsymbol{D}_{N}^{(3)} DN?、DN(2)?、DN(3)? 對(duì) u ( x ) = e sin ? ( π x ) u(x)=\mathrm{e}^{\sin (\pi x)} u(x)=esin(πx) 求 1 、 2 、 3 1 、 2 、 3 1、2、3 階導(dǎo)數(shù), 并與精確解
u ′ ( x ) = π cos ? ( π x ) e sin ? ( π x ) u^{\prime}(x)=\pi \cos (\pi x) \mathrm{e}^{\sin (\pi x)} u′(x)=πcos(πx)esin(πx)
$u^{\prime \prime}(x)=\pi^{2} \mathrm{e}^{\sin (\pi x)}\left[\cos ^{2}(\pi x)-\sin (\pi x)\right] $
$ u^{\prime \prime \prime}(x)=\pi^{3} \mathrm{e}^{\sin (\pi x)} \cos (\pi x)\left[\cos ^{2}(\pi x)-3 \sin (\pi x)-1\right]$
比較的實(shí)例.代碼如下:
clear all; close all;
L=2; N=32;
x=L/N*[-N/2:N/2-1]';
%構(gòu)造譜求導(dǎo)矩陣
h=2*pi/N; column=[0 0.5*(-1).^(1:N-1).*cot((1:N-1)*h/2)]';
D=(2*pi/L)*toeplitz(column,column([1 N:-1:2]));
column=[-pi^2/(3*h^2)-1/6 -0.5*(-1).^(1:N-1)./sin(h*(1:N-1)/2).^2];
D2=(2*pi/L)^2*toeplitz(column);
column=[0 (-1).^(1:N-1).*cot((1:N-1)*h/2).*( ...-pi^2/(2*h^2)+3/4*csc((1:N-1)*h/2).^2)]';
D3=(2*pi/L)^3*toeplitz(column,column([1 N:-1:2]));
%導(dǎo)數(shù)的精確解
u=exp(sin(pi*x));
du_exact(:,1)=pi*cos(pi*x).*u;
du_exact(:,2)=pi^2*(cos(pi*x).^2-sin(pi*x)).*u;
du_exact(:,3)=pi^3*cos(pi*x).*(cos(pi*x).^2-3*sin(pi*x)-1).*u;
%譜方法求導(dǎo)
du_Fourier(:,1)=D*u;
du_Fourier(:,2)=D2*u;
du_Fourier(:,3)=D3*u;
error=max(abs(du_exact-du_Fourier));
%畫圖
labels={'u''(x)','u''''(x)','u''''''(x)'};
for n=1:4subplot(2,2,n)if n==1plot(x,u,'k','LineWidth',1.5)xlabel x, ylabel u(x), title('u(x)=e^{sin(\pix)}')elseplot(x,du_exact(:,n-1),'k',x,du_Fourier(:,n-1),'.r' ...,'MarkerSize',13,'LineWidth',1.5)title(['Error_{max}=' num2str(error(n-1))])xlabel x, ylabel(labels(n-1))end
end
如下圖(用譜求導(dǎo)矩陣計(jì)算 u ( x ) = e sin ? ( π x ) u(x)=\mathrm{e}^{\sin (\pi x)} u(x)=esin(πx) 的 1 、 2 、 3 1 、 2 、 3 1、2、3 階導(dǎo)數(shù)(點(diǎn))并與精確解(曲線)比較)所示, 曲線為精確的 u ( x ) 、 u ′ ( x ) 、 u ′ ′ ( x ) u(x) 、 u^{\prime}(x) 、 u^{\prime \prime}(x) u(x)、u′(x)、u′′(x) 和 u ′ ′ ′ ( x ) u^{\prime \prime \prime}(x) u′′′(x), 點(diǎn)為利用譜求導(dǎo)矩陣計(jì)算得到的 u ′ ( x j ) 、 u ′ ′ ( x j ) u^{\prime}\left(x_{j}\right) 、 u^{\prime \prime}\left(x_{j}\right) u′(xj?)、u′′(xj?) 和 u ′ ′ ′ ( x j ) u^{\prime \prime \prime}\left(x_{j}\right) u′′′(xj?) .在 N N N 的取值僅為 32 的情況下, 用譜求導(dǎo)矩陣計(jì)算 u ( x ) = e sin ? ( π x ) u(x)=\mathrm{e}^{\sin (\pi x)} u(x)=esin(πx) 的 1 、 2 、 3 1 、 2 、 3 1、2、3 階導(dǎo)數(shù)與精確解的最大誤差分別在 1 0 ? 14 、 1 0 ? 12 、 1 0 ? 10 10^{-14} 、 10^{-12} 、 10^{-10} 10?14、10?12、10?10數(shù)量級(jí).
用譜求導(dǎo)矩陣求解偏微分方程的步驟
與之前一樣, 待求解的偏微分方程的普遍形式為:
? n u ? t n = L u + N ( u ) \frac{\partial^{n} u}{\partial t^{n}}=L u+N(u)% \label{4-25} ?tn?nu?=Lu+N(u)
其中, u ( x , t ) u(x, t) u(x,t) 為 x 、 t x 、 t x、t 的函數(shù), L L L 代表線性算符, N ( u ) N(u) N(u) 為非線性項(xiàng).通過(guò)函數(shù)代換可將等號(hào)左邊的 n n n 階導(dǎo)數(shù) ? n / ? t n \partial^{n} / \partial t^{n} ?n/?tn 降到 1 階, 所以下面分析式 % \eqref{4-26} 的求解過(guò)程, 這與式 % \eqref{4-25} 降階后得到的方程組的解法是一樣的.
? u ? t = L u + N ( u ) \frac{\partial u}{\partial t}=L u+N(u)% \label{4-26} ?t?u?=Lu+N(u)
用譜求導(dǎo)矩陣數(shù)值求解式 % \eqref{4-26} 的步驟如下:
(1) 在 x x x 軸上的計(jì)算區(qū)間內(nèi), 將 x x x 離散化為 N N N 個(gè)等間距的位置 x = ( x 1 , x 2 , … , x N ) T \boldsymbol{x}=\left(x_{1}, x_{2}, \ldots, x_{N}\right)^{\mathrm{T}} x=(x1?,x2?,…,xN?)T, 相應(yīng)地, 將函數(shù) u u u 離散化為 N N N 維向量 u = ( u 1 , u 2 , … , u N ) T \boldsymbol{u}=\left(u_{1}, u_{2}, \ldots, u_{N}\right)^{\mathrm{T}} u=(u1?,u2?,…,uN?)T .
(2) 在等號(hào)右邊,將線性算符 L L L 和非線性項(xiàng) N ( u ) N(u) N(u) 里所有對(duì)函數(shù) u u u 的求導(dǎo)運(yùn)算替換為譜求導(dǎo)矩陣與向量 u \boldsymbol{u} u 的乘運(yùn)算, 即: ? n u / ? x n → D N ( n ) u \partial^{n} u / \partial x^{n} \rightarrow \boldsymbol{D}_{N}^{(n)} \boldsymbol{u} ?nu/?xn→DN(n)?u, 并將 L L L 和 N ( u ) N(u) N(u) 都寫成矩陣形式, 得到形如式 % \eqref{4-27} 的微分方程組.注意, 若計(jì)算區(qū)間長(zhǎng)度不是 2 π 2 \pi 2π, 則必須在 D N ( n ) \boldsymbol{D}_{N}^{(n)} DN(n)? 上乘以縮放系數(shù).
(3) 用時(shí)間步進(jìn)法(歐拉法、龍格-庫(kù)塔法等)數(shù)值計(jì)算式 % \eqref{4-27} 等號(hào)左邊的 ? / ? t \partial / \partial t ?/?t,在周期性邊界條件下,得到不同 t t t 處的向量 u \boldsymbol{u} u .
? ? t ( u 1 u 2 u 3 ? u N ) = ( L 11 L 12 L 13 ? L 1 N L 21 L 22 L 23 ? L 2 N L 31 L 32 L 33 ? L 3 N ? ? ? ? ? L N 1 L N 2 L N 3 ? L N N ) ( u 1 u 2 u 3 ? u N ) + N [ ( u 1 u 2 u 3 ? u N ) ] \frac{\partial}{\partial t}\left(\begin{array}{c} u_{1} \\ u_{2} \\ u_{3} \\ \vdots \\ u_{N} \end{array}\right)=\left(\begin{array}{ccccc} L_{11} & L_{12} & L_{13} & \cdots & L_{1 N} \\ L_{21} & L_{22} & L_{23} & \cdots & L_{2 N} \\ L_{31} & L_{32} & L_{33} & \cdots & L_{3 N} \\ \vdots & \vdots & \vdots & \ddots & \vdots \\ L_{N 1} & L_{N 2} & L_{N 3} & \cdots & L_{N N} \end{array}\right)\left(\begin{array}{c} u_{1} \\ u_{2} \\ u_{3} \\ \vdots \\ u_{N} \end{array}\right)+N\left[\left(\begin{array}{c} u_{1} \\ u_{2} \\ u_{3} \\ \vdots \\ u_{N} \end{array}\right)\right]% \label{4-27} ?t?? ?u1?u2?u3??uN?? ?= ?L11?L21?L31??LN1??L12?L22?L32??LN2??L13?L23?L33??LN3????????L1N?L2N?L3N??LNN?? ? ?u1?u2?u3??uN?? ?+N ? ?u1?u2?u3??uN?? ? ?
針對(duì)步驟 2 , 這里以 L = a ? ? 2 / ? x 2 + b ? ? / ? x + c 、 N ( u ) = u 3 + u 3 ? ? 2 u / ? x 2 + f ( x ) ? ? u / ? x L=a \cdot \partial^{2} / \partial x^{2}+b \cdot \partial / \partial x+c 、 N(u)=u^{3}+u^{3} \cdot \partial^{2} u / \partial x^{2}+f(x) \cdot \partial u / \partial x L=a??2/?x2+b??/?x+c、N(u)=u3+u3??2u/?x2+f(x)??u/?x 為例進(jìn)行說(shuō)明, a 、 b a 、 b a、b 和 c c c 分別為常數(shù).對(duì)線性算符 L L L, 除了將 ? n / ? x n \partial^{n} / \partial x^{n} ?n/?xn 替換為 D N ( n ) \boldsymbol{D}_{N}^{(n)} DN(n)? 之外,還必須在線性算符的常數(shù) c c c 上乘以 N N N 階單位矩陣 I N \boldsymbol{I}_{N} IN?, 得到 N N N 階方陣 L \boldsymbol{L} L, 即: L = a D N ( 2 ) + b D N + c I N \boldsymbol{L}=a \boldsymbol{D}_{N}^{(2)}+b \boldsymbol{D}_{N}+c \boldsymbol{I}_{N} L=aDN(2)?+bDN?+cIN? .注意: Matlab 對(duì)矩陣與常數(shù)之間的加法是有特殊定義的, 如果忘記在 c c c 上乘以 I N \boldsymbol{I}_{N} IN? 會(huì)導(dǎo)致錯(cuò)誤, 因?yàn)榫€性算符矩陣 L \boldsymbol{L} L 與向量 u \boldsymbol{u} u 相乘 L u = ( a D N ( 2 ) + b D N + c I N ) u = a D N ( 2 ) u + b D N u + c u ≠ ( a D N ( 2 ) + b D N + c ) u \boldsymbol{L} \boldsymbol{u}=\left(a \boldsymbol{D}_{N}^{(2)}+b \boldsymbol{D}_{N}+c \boldsymbol{I}_{N}\right) \boldsymbol{u}=a \boldsymbol{D}_{N}^{(2)} \boldsymbol{u}+b \boldsymbol{D}_{N} \boldsymbol{u}+c \boldsymbol{u} \neq\left(a \boldsymbol{D}_{N}^{(2)}+b \boldsymbol{D}_{N}+c\right) \boldsymbol{u} Lu=(aDN(2)?+bDN?+cIN?)u=aDN(2)?u+bDN?u+cu=(aDN(2)?+bDN?+c)u .對(duì)非線性項(xiàng) N ( u ) N(u) N(u), 替換 ? n ? x n \partial^{n} \partial x^{n} ?n?xn 為 D N ( n ) \boldsymbol{D}_{N}^{(n)} DN(n)? 時(shí), D N ( n ) \boldsymbol{D}_{N}^{(n)} DN(n)? 與向量 u \boldsymbol{u} u 之間的乘法是矩陣乘法, 在 Matlab
中用 *
表示.而 u 3 u^{3} u3 應(yīng)理解為向量 u \boldsymbol{u} u 中的每個(gè)元素的立方, 這在 Matlab 中用 . ^3
表示.類似地, f ( x ) ? ( D N u ) f(\boldsymbol{x}) \cdot\left(\boldsymbol{D}_{N} \boldsymbol{u}\right) f(x)?(DN?u) 也應(yīng)處理為 f ( x ) f(\boldsymbol{x}) f(x) 和向量 D N u \boldsymbol{D}_{N} \boldsymbol{u} DN?u 中的每個(gè)對(duì)應(yīng)元素的相乘, 在 Matlab
中用 .*
表示.所以此時(shí) L u + N ( u ) L u+N(u) Lu+N(u) 在 Matlab
中應(yīng)寫為:
(a*D2+b*D1+c*I)*u+u.^3+u.^3.*(D2*u)+f.*(D1*u)
換句話說(shuō), 只有譜求導(dǎo)矩陣 D N ( n ) \boldsymbol{D}_{N}^{(n)} DN(n)? 與向量 u \boldsymbol{u} u 之間的乘法是矩陣運(yùn)算, 其余的運(yùn)算均是在矩陣或向量的元素之間進(jìn)行的.但也有一個(gè)例外,由于線性算符 L L L 中的常數(shù) c c c 在矩陣化時(shí)乘了單位矩陣 I N \boldsymbol{I}_{N} IN?, 所以實(shí)際上 c I N c \boldsymbol{I}_{N} cIN? 與向量 u \boldsymbol{u} u 之間也是矩陣乘法, 這樣才能將其與線性算符 L L L 中的其他項(xiàng)相加: L = a D N ( 2 ) + b D N + c I N \boldsymbol{L}=a \boldsymbol{D}_{N}^{(2)}+b \boldsymbol{D}_{N}+c \boldsymbol{I}_{N} L=aDN(2)?+bDN?+cIN? .
若方程式 % \eqref{4-26} 再增加一個(gè)維度, 等號(hào)右邊包含了 u ( x , y , t ) u(x, y, t) u(x,y,t) 的 ? n / ? x n \partial^{n} / \partial x^{n} ?n/?xn 和 ? n / ? y n \partial^{n} / \partial y^{n} ?n/?yn, 那么求解步驟中的一些細(xì)節(jié)就需要推廣到二維空間上.在 x x x 軸、 y y y 軸上的計(jì)算區(qū)間內(nèi)分別取等間距的 N N N 個(gè)位置 x = ( x 1 , x 2 , … , x N ) T \boldsymbol{x}=\left(x_{1}, x_{2}, \ldots, x_{N}\right)^{\mathrm{T}} x=(x1?,x2?,…,xN?)T 以及 y = ( y 1 , y 2 , … , y N ) T \boldsymbol{y}=\left(y_{1}, y_{2}, \ldots, y_{N}\right)^{\mathrm{T}} y=(y1?,y2?,…,yN?)T, 于是在 x ? y x-y x?y 平面上的計(jì)算區(qū)域內(nèi)就得到了 N 2 N^{2} N2 個(gè)位置的坐標(biāo) ( x 1 , y 1 ) , ( x 1 , y 2 ) , … , ( x 1 , y N ) , ( x 2 , y 1 ) , … , ( x 2 , y N ) , … , ( x N , y N ) \left(x_{1}, y_{1}\right),\left(x_{1}, y_{2}\right), \ldots,\left(x_{1}, y_{N}\right),\left(x_{2}, y_{1}\right), \ldots,\left(x_{2}, y_{N}\right), \ldots,\left(x_{N}, y_{N}\right) (x1?,y1?),(x1?,y2?),…,(x1?,yN?),(x2?,y1?),…,(x2?,yN?),…,(xN?,yN?) .相應(yīng)地, 函數(shù) u u u 可以被離散化為 N N N 階方陣(第一種形式)或 N 2 N^{2} N2 維列向量(第二種形式), 如式 % \eqref{4-28} 、式 % \eqref{4-29} 所示:
u N × N = ( u 11 u 12 ? u 1 N u 21 u 22 ? u 2 N ? ? ? ? u N 1 u N 2 ? u N N ) \begin{aligned} & \boldsymbol{u}_{N \times N}=\left(\begin{array}{cccc} u_{11} & u_{12} & \cdots & u_{1 N} \\ u_{21} & u_{22} & \cdots & u_{2 N} \\ \vdots & \vdots & \ddots & \vdots \\ u_{N 1} & u_{N 2} & \cdots & u_{N N} \end{array}\right) \end{aligned}% \label{4-28} ?uN×N?= ?u11?u21??uN1??u12?u22??uN2???????u1N?u2N??uNN?? ??
u N 2 × l = ( u 11 , u 21 , … , u N 1 , u 12 , u 22 , … , u N 2 , … , u N N ) T \boldsymbol{u}_{N^2\times\mathbf{l}}=\begin{pmatrix}u_{11},&u_{21},&\ldots,&u_{N1},&u_{12},&u_{22},&\ldots,&u_{N2},&\ldots,&u_{NN}\end{pmatrix}^\mathrm{T}% \label{4-29} uN2×l?=(u11?,?u21?,?…,?uN1?,?u12?,?u22?,?…,?uN2?,?…,?uNN??)T
式 % \eqref{4-28} 中, 第 i i i 行 j j j 列的元素 u i j u_{i j} uij? 對(duì)應(yīng)的坐標(biāo)是 ( x j , y i ) \left(x_{j}, y_{i}\right) (xj?,yi?) .列向量 % \eqref{4-29} 的第 1 到第 N N N個(gè)元素對(duì)應(yīng)于式 % \eqref{4-28} 的第 1 列, 第 N + 1 N+1 N+1 到第 2 N 2 N 2N 個(gè)元素對(duì)應(yīng)于式 % \eqref{4-28} 的第 2 列……依此類推. 另外, 可以通過(guò) Matlab 中的 reshape 函數(shù)在二者間進(jìn)行轉(zhuǎn)換.
收斂階說(shuō)明
收斂階定義
o r d e r = { log ? 2 [ E ( τ ) / E ( τ / 2 ) ] , in?time? log ? 2 [ E ( N ) / E ( 2 N ) ] , in?space.? order =\left\{\begin{array}{c}\log _2[E(\tau) / E(\tau / 2)], \text { in time } \\ \log _2[E(N) / E(2 N)], \text { in space. }\end{array}\right. order={log2?[E(τ)/E(τ/2)],?in?time?log2?[E(N)/E(2N)],?in?space.??
時(shí)間方向 | 空間方向 |
---|---|
斜率含義 | 斜率含義 |
k = log ? 2 E ( τ ) ? log ? 2 E ( τ 2 ) log ? 2 τ ? log ? 2 τ 2 = log ? 2 E ( τ ) E ( τ 2 ) log ? 2 τ τ 2 = log ? 2 E ( τ ) E ( τ 2 ) = order? \begin{aligned} k & =\frac{\log _2 E(\tau)-\log _2 E\left(\frac{\tau}{2}\right)}{\log _2 \tau-\log _2 \frac{\tau}{2}} \\ & =\frac{\log _2 \frac{E(\tau)}{E\left(\frac{\tau}{2}\right)}}{\log _2 \frac{\tau}{\frac{\tau}{2}}} \\ & =\log _2 \frac{E(\tau)}{E\left(\frac{\tau}{2}\right)} \\ & =\text { order }\end{aligned} k?=log2?τ?log2?2τ?log2?E(τ)?log2?E(2τ?)?=log2?2τ?τ?log2?E(2τ?)E(τ)??=log2?E(2τ?)E(τ)?=?order?? | k = log ? 2 E ( N ) ? log ? 2 E ( 2 N ) N ? 2 N = ? 1 N log ? 2 E ( N ) E ( 2 N ) = ? 1 N order? \begin{aligned} k & =\frac{\log _2 E(N)-\log _2 E\left(2N\right)}{N-2 N} \\ & =-\frac{1}{N} \log _2 \frac{E(N)}{E\left(2N\right)} \\ & =-\frac{1}{N} \text { order } \end{aligned} k?=N?2Nlog2?E(N)?log2?E(2N)?=?N1?log2?E(2N)E(N)?=?N1??order?? |
時(shí)間步長(zhǎng) τ \tau τ與誤差 E ( τ ) E(\tau) E(τ)的關(guān)系 | 空間剖分 N N N與誤差 E ( N ) E(N) E(N)的關(guān)系 |
log ? 2 E ( τ ) = k log ? 2 τ + b log ? 2 E ( τ ) = log ? 2 τ k + log ? 2 2 b log ? 2 E ( τ ) = log ? 2 2 b τ k E ( τ ) = 2 b τ k \begin{aligned} \log _2 E(\tau) & = k\log _2\tau + b \\ \log _2 E(\tau) &=\log _2\tau^k + \log _22^b\\\log _2 E(\tau) &=\log _22^b\tau^k\\E(\tau)&=2^b\tau^k\end{aligned} log2?E(τ)log2?E(τ)log2?E(τ)E(τ)?=klog2?τ+b=log2?τk+log2?2b=log2?2bτk=2bτk? | log ? 2 E ( N ) = k N + b log ? 2 E ( N ) = log ? 2 2 k N + b E ( N ) = 2 k N + b E ( N ) = 2 b 2 k N \begin{aligned} \log _2 E(N) & = kN + b \\ \log _2 E(N) &=\log _2 2^{kN + b}\\E(N)&=2^{kN + b}\\E(N)&=2^b2^{kN}\end{aligned} log2?E(N)log2?E(N)E(N)E(N)?=kN+b=log2?2kN+b=2kN+b=2b2kN? |