帕德近似

帕德近似

帕德近似(Pade approximation)是有理函式逼近的一種方法。帕德近似就是是法國數學家亨利·帕德發明的有理多項式近似法。帕德近似往往比截斷的泰勒級數準確,而且當泰勒級數不收斂時,帕德近似往往仍可行,所以多用於在計算機數學中。

基本介紹

  • 中文名:帕德近似
  • 外文名:Pade approximation
  • 提出者:法國數學家亨利·帕德
  • 學科:計算機科學、數學
  • 定義:有理函式逼近的一種方法
  • 套用:大系統頻域、控制系統
泰勒級數,套用,代碼實現,
簡介
帕德近似(Pade approximation)是有理函式逼近的一種方法。帕德近似就是是法國數學家亨利·帕德發明的有理多項式近似法。帕德近似往往比截斷的泰勒級數準確,而且當泰勒級數不收斂時,帕德近似往往仍可行,所以多用於在計算機數學中。
可用於大規模系統在頻域的降階.設G(s)是系統的傳遞函式,對G(s)進行冪級數展開得G(s)=
帕德近似
圖示
比較直到p+二次冪的係數,得到關於Gr S)係數的線性代數方程,求解得到Gr(s)的帕德近似計算簡單,對次數低於p+r的多項式類型輸人,簡化模型和原系統輸出相同。但它不能保持原系統的穩定性,因此有不少修改方案,以克服這個缺點。

泰勒級數

在數學中,泰勒級數(英語:Taylor series)用無限項連加式——級數來表示一個函式,這些相加的項由函式在某一點的導數求得。泰勒級數是以於1715年發表了泰勒公式的英國數學家布魯克·泰勒(Sir Brook Taylor)來命名的。通過函式在自變數零點的導數求得的泰勒級數又叫做邁克勞林級數,以蘇格蘭數學家科林·麥克勞林的名字命名。
拉格朗日在1797年之前,最先提出帶有餘項的形式的泰勒定理。實際套用中,泰勒級數需要截斷,只取有限項,可以用泰勒定理估算這種近似的誤差。一個函式的有限項的泰勒級數叫做泰勒多項式。一個函式的泰勒級數是其泰勒多項式的極限(如果存在極限)。即使泰勒級數在每點都收斂,函式與其泰勒級數也可能不相等。開區間(或複平面開片)上,與自身泰勒級數相等的函式稱為解析函式。
定義:如果f(x)在點x=x0具有任意階導數,則冪級數
稱為f(x) 在點x0處的泰勒級數。
在泰勒公式中,取x0=0,得到的級數。
稱為麥克勞林級數。函式f(x)的麥克勞林級數是x的冪級數,那么這種展開是唯一的,且必然與f(x)的麥克勞林級數一致。

套用

自然界中多種媒質屬於色散媒質;它們的色散特性也不盡相同,尚未發現統一的規律迄今,已提出幾種經驗模型描述這些特性,其中較著名的有:用於人體組織、土壤等媒質的 Debye 模型用於電漿、金屬等媒質的 Drude 模型;用於光學材料的 Lorentz 模型;用於生物組織、高分子材料等媒質的 Cole- Cole(C- C)模型;用於甘油、丙二醇等媒質的 Davidson- Cole(D- C)模型;用於聚合物的 Havril-iak- Negami(H- N)模型。
為了引入媒質的色散特性,近幾年來,時域有限差分(Finite- Difference Time- Domain, FDTD)法的建模對象已從常規媒質拓展到色散媒質。針對前述的第一大類媒質,已提出好幾種 FDTD 方案,主要思路有:引入輔助微分方程(Auxiliary Differential Equation, ADE) 、利用遞歸卷積(RecursiveConvolution,RC)、定義移位運算元(ShiftOperator,SO) 等。然而,分數階導數仍是 FDTD 建模第二大類媒質面臨的主要困難為此,Rekanos 等人利用帕德(Padé)近似法。
本文提出了一種 ADE- FDTD- CPML 統一實現方案,該方案具有適用範圍廣、實現複雜度低等優勢,可用於統一處理射頻、微波、紅外和毫米波等工程中一般電色散媒質的電磁問題,媒質可以是一維或多維的、單極或多極的、無耗或有耗的。幾個算例的初步結果顯示:在超寬頻頻譜範圍,該方案具有較高的數值精度。今後,該方案有望進一步推廣到磁色散媒質。

代碼實現

程式原始碼如下:
①在m檔案中編寫實現函式的Pade逼近的代碼如下:functionf=Pade(y,n,x0)
%用帕德形式的有理分式逼近已知函式%已知函式:y
%帕德有理分式的分母多項式的最高次數:n%逼近點的坐標:x0
%求得的帕德有理分式或在x0處的逼近值:f
symst;
A=zeros(n,n);q=zeros(n,1);p=zeros(n+1,1);
b=zeros(n,1);
yy=0;
a(1:2*n)=0.0;for(i=1:2*n)
yy=diff(sym(y),findsym(sym(y)),n);
a(i)=subs(sym(yy),findsym(sym(yy)),0.0)/factorial(i);
end;
for(i=1:n)for(j=1:n)
A(i,j)=a(i+j-1);end;
b(i,1)=-a(n+i);
end;
q=A\b;
p(1)=subs(sym(y),
findsym(sym(y)),0.0);
for(i=1:n)
p(i+1)=a(n)+q(i)*subs(sym(y),findsym(sym(y)),0.0);
for(j=2:i-1)
p(i+1)=p(i+1)+q(j)*a(i-j);end
end
f_1=0;f_2=1;
for(i=1:n+1)
f_1=f_1+p(i)*(t^(i-1));
end
for(i=1:n)
f_2=f_2+q(i)*(t^i);end
if(nargin==3)
f=f_1/f_2;
f=subs(f,'t',x0);
else
f=f_1/f_2;
f=vpa(f,6);end

相關詞條

熱門詞條

聯絡我們