孫定浩,趙長春
(1.北京控制工程研究所,北京100190;2.北京圣業(yè)科技發(fā)展有限公司,北京100190)
構(gòu)建有理函數(shù)逼近式的一種新方法*
孫定浩1,趙長春2
(1.北京控制工程研究所,北京100190;2.北京圣業(yè)科技發(fā)展有限公司,北京100190)
為超越函數(shù)提出一種構(gòu)建有理函數(shù)逼近式的方法.與Pad'e法不同,這種新方法利用超越函數(shù)的值與其逼近式的值相互逼近這個條件,較少地依賴超越函數(shù)的泰勒展開式.以兩個超越函數(shù)為例,敘述了用這種方法構(gòu)建的逼近式與Pad'e逼近式的不同.用這種方法構(gòu)建了一系列適合在單片機上運行的超越函數(shù)的有理函數(shù)逼近式.
有理函數(shù)逼近式;Pad'e逼近式
實時計算超越函數(shù)的值,在機器人﹑實時圖像處理和實時語言處理等技術(shù)領(lǐng)域均有廣泛的應(yīng)用.硬件實現(xiàn)超越函數(shù)計算的算法有查表法﹑基于查表的多項式結(jié)合法﹑有理函數(shù)逼近法等.可根據(jù)允許的最大相對誤差﹑允許的計算時間和占用存儲空間這3個因素適當(dāng)選用.
本文討論有理函數(shù)逼近法.文獻[1-2]敘述了用Pad'e法構(gòu)建有理函數(shù)逼近式(以下簡稱“逼近式”)的基本思想.
這表明,對于一個超越函數(shù)f(x),首先要把它展開成泰勒級數(shù)至“盡可能多的項”,然后才能用這種方法;并知,當(dāng)要求逼近的最大相對誤差愈小,則要求f(x)的泰勒級數(shù)展開到愈高的冪次.這一要求,當(dāng)面臨一個較為復(fù)雜﹑未知其泰勒展開式時,頗感不便.
更重要的是,Pad'e法[1-2]只注意超越函數(shù)f(x)與其逼近式兩者泰勒展開式“盡可能多的項”相同,忽視了可以利用f(x)與其逼近式兩者的值“相互逼近”這一條件.筆者認(rèn)為,從實用考慮,在構(gòu)建逼近式時,可利用這個條件來降低為減少逼近式最大相對誤差而要求將f(x)展開到更高冪次的依賴(相對誤差的定義:f(x)的真值與逼近式的值的差,與逼近式的值的比值).
本文提出一種構(gòu)建逼近式的方法:
(1)它只利用超越函數(shù)f(x)的f(0)、f(1)(0) (當(dāng)f(1)(0)=0時則需f(2)(0)),以這些值構(gòu)建一個給定形式的,但包括了一個或多個待定常數(shù)的逼近式(式(3)),稱為“一次逼近式”.
(2)再令x在某一點或多點上,f(x)與其逼近式的值相等,以確定這個逼近式中的待定常數(shù).
(3)驗算所得逼近式在給定的x區(qū)間[0,1]的最大相對誤差,若不滿足設(shè)定的值,則改變前次設(shè)定的一點或多點,重復(fù)上述過程.當(dāng)斷定不能找到這樣的一點或多點,則轉(zhuǎn)移到更高次的逼近式(式(16)或式(27)),重復(fù)類似的搜索過程.
我們將本文構(gòu)造的逼近式分為3個層次,分別稱為一次﹑二次﹑三次逼近式,現(xiàn)說明如下.
超越函數(shù)f(x)的泰勒級數(shù)的一般形式為
將給定的f(x)的泰勒展開式中實際存在(f(n)(0)≠0)的前四項(其后諸項x冪次的增量均為k)表示成
其中f(0)為常數(shù)項,m為f(m)(0)≠0的最低冪次,k為m冪次以后再次出現(xiàn)f(m+k)(0)≠0的x的冪次的增量.將f(0)﹑m﹑f(m)(0)和k作為f(x)的4個特征參數(shù).
用這4個特征參數(shù)構(gòu)建一個新的函數(shù),它由f(0)和x的有理函數(shù)式之和組成,用符號表示:
其中A、B為待定常數(shù).
(1)對于基本的對數(shù)函數(shù)、三角函數(shù)和反三角函數(shù),可設(shè)A=1.在x區(qū)間[0,1]選定一點x0(根據(jù)表3(a),這個x0一般在0.7~1之間).按前述方法令
將A、B代入式(3)得.在x的給定區(qū)間,以一定步長逐點驗算的相對誤差.表3(a)的結(jié)果表明,可以搜索到一個x0值,使的最大相對誤差max|Er|<1%.
(2)對于指數(shù)函數(shù)ex以及其他用式(5)未能得到max|Er|<1%的函數(shù),可將式(3)中A、B均作為待定常數(shù).選定兩點x0,x1(根據(jù)表3(a),這個x0,x1一般在0.7~1之間).令
將式(6)、(7)聯(lián)立求解得A、B值代入式(3)得.按上述相似的搜索法,一般能找到最大相對誤差小于1%的逼近式.
例1
得知f(0)=0,m=1,f(1)(0)=1,k=1.將這些值代入式(3)(不包括f(2)(0),f(3)(0))得
搜索得到x0=0.8代入式(5)得B=0.451 3,此時式(9)的最大相對誤差小于1%.
用Pad'e法構(gòu)建f(x)=ln(1+x)的有理函數(shù)逼近式(用Rm,k(f(x))表示這類逼近式,其中m是逼近式中分子多項式的冪次,k是分母多項式的冪次)R1,1(ln(1+x)),則需f(0)=0,f(1)(0)=1,f(2)(0)=-1,構(gòu)成的逼近式為
若用Pad'e法構(gòu)建R2,1(ln(1+x)),則還需要f(3)(0)=2,構(gòu)成的逼近式為
表1示出式(9)~(11)各自的相對誤差,用符號Er{…}表示.結(jié)果表明,以本文方法所得的逼近式(9)的最大相對誤差最小.
例2
式中,f(0)=1,m=1,f(1)(0)=1,k=1.按式(3)構(gòu)建的一次逼近式為
x在區(qū)間[0,1],搜索到x0=0.7,x1=0.9,求得A= 0.949 2,B=0.369 5時,式(13)的最大相對誤差小于1%.
表1 相對誤差(式(9)~(11))Tab.1 Relative errors
若用Pad'e法構(gòu)造逼近式R1,1(ex),需要f(0)= 1,f(1)(0)=1,f(2)(0)=1.
若用Pad'e法構(gòu)造逼近式R2,1(ex),還需要f(3)(0)=1.
表2示出式(13)~(15)各自的相對誤差.結(jié)果表明,以本文方法所得的逼近式(13)的最大相對誤差最小.
表2 相對誤差(式(13)~(15))Tab.2 Relative errors
表3(a)示出本文構(gòu)建的一系列超越函數(shù)f(x)的一次逼近式;表3(b)列出在單片機At89c52(晶振24 MHz)上的執(zhí)行時間.
表3(a) 一系列適用于單片機的超越函數(shù)的一次逼近式,0≤x≤1Tab.3(a) An approximation of transcendental function,0≤x≤1
表3(b) 函數(shù)f(x)及其一次逼近式的執(zhí)行時間Tab.3(b) The execution time forf(x)and its one time approximation
其中A、B、C為待定常數(shù).其構(gòu)造原則和一次逼近式相同.
令A(yù)=1,在x區(qū)間選擇兩點x0、x1,令
聯(lián)立求解得出B、C表達式代入式(16)(A=1)得.按上述相同的搜索法,一般能找到最大相對誤差約0.1%的逼近式.
當(dāng)A也作為待定常數(shù),則需選擇3點x0、x1、x2,對x2建式(19)
將式(17)、(18)(令其分母中常數(shù)1改為A)與式(19)聯(lián)列,解此3個未知數(shù)的線性代數(shù)方程組得A、B、C的值.
例3
針對式(8),設(shè)A=1,則二次逼近式為
搜索到x0=0.45,x1=1時,得到B=0.490 7,C=-0.049 02,可使逼近式(20)的最大相對誤差小于0.1%.
用Pad'e法構(gòu)建R1,2(ln(1+x)),則需知
用Pad'e法構(gòu)建R2,2(ln(1+x)),則還需知f(4)(0)= -6.
表4示出式(20)~(22)各自的相對誤差,逼近式(20)的最大相對誤差最小.
例4
針對式(12),按式(16)(令A(yù)=1)得
搜索到x0=0.6,x1=1時,得到B=-0.498 7,C= 0.080 7,可使逼近式(23)的最大相對誤差小于0.01%.
用Pad'e法構(gòu)建R1,2(ex)),則需知f(0)=f(1)(0)=f(2)(0)=f(3)(0)=1.
用 Pad'e 法 構(gòu)建R2,2(ex),則 還 需 知f(4)(0)=1.
表5示出式(23)~(25)的相對誤差.式(23)的最大相對誤差最小.
表4 相對誤差(式(20)~(22))Tab.4 Relative errors
表5 相對誤差(式(23)~(25))Tab.5 Relative errors
式(2)可改寫成
將式(26)中括號內(nèi)的冪級數(shù),用式(16)來逼近,得
其中A、B、C為待定常數(shù).
令A(yù)=1,現(xiàn)作以下推導(dǎo).
按前述方法,在x區(qū)間[0,1]內(nèi)選擇兩點x0、x1,令
聯(lián)立求解得出B、C代入式(27)(A=1)得.用上述相同的搜索法,一般能找到最大相對誤差約0.01% 的逼近式.
當(dāng)A也作為待定常數(shù),則搜索3點x0、x1、x2,按前述方法得3個線性方程,解此方程得A、B、C,從而確定三次逼近式.
例5
針對式(8),取f(0)=0,m=1,f(1)(0)=1,k= 1,f(2)(0)=-1,由這些值構(gòu)建A=1的三次逼近式(27)得
搜索到x0=0.65,x1=1,得到的B=0.658 1,C= 0.028 6,可使式(30)的最大相對誤差約0.01%.
用Pad'e法構(gòu)建R3,2(ln(1+x)),則需知f(0)=0,f(1)(0)=1,… ,f(5)(0)=24.
R3,2(ln(1+x)))的最大相對誤差為0.027%.
表6示出式(30)、(31)的相對誤差值.式(30)的最大相對誤差比式(31)的小.
表6 相對誤差(式(30)、(31))Tab.6 Relative errors
例6
針對式(12),取f(0)=1,m=1,f(1)(0)=1,k=1,f(2)(0)=1,由這些值構(gòu)建A=1的三次逼近式得
搜索到x0=0.6,x1=1,B=-0.334 3,C=0.030 4,可使三次逼近式(32)的最大相對誤差約0.000 8%.
由文獻[1]知用 Pad'e[1]法構(gòu)建R3,2(ex)和R2,3(ex),需知f(0),f(1)(0),…,f(5)(0)的值.
表7示出(32)~(34)的相對誤差.式(32)的最大相對誤差最小.
文獻[3]給出下列復(fù)合超越函數(shù)的泰勒展開式.
例7
式(35)的f(0)=e,m=2,f(2)(0)=-e,k=2由這些值構(gòu)建A=1的一次逼近式,
表7 相對誤差(式(32)~(34))Tab.7 Relative errors
搜索到x=1,得到B=0.356 8,可使式(36)的最大相對誤差約0.15%.
用Pad'e法構(gòu)建R2,2(ecosx)需用到f(0)=e,f(2)(0)= -e,f(4)(0)=4e.
表8示出式(36)、(37)的相對誤差.式(36)的最大相對誤差比式(37)的小.
表8 相對誤差(式(36)、(37))Tab.8 Relative errors
例8
由式(38)知
對式(39)括號內(nèi)冪級數(shù)用A=1的式(3)逼近,得搜索到x0=1時,由式(5)所得的B=-0.279 3可使式(40)的最大相對誤差約0.05%.
用Pad'e法構(gòu)建R4,2(ln(cosx))得
表9示出式(40)、(41)的相對誤差值.式(40)的最大相對誤差比式(41)的小.
表9 相對誤差(式(40)、(41))Tab.9 Relative errors
本文表3及8個舉例說明,在構(gòu)建有理函數(shù)逼近式時利用超越函數(shù)f(x)與其逼近式的值“相互逼近”這一條件,可減少推導(dǎo)f(x)更高階的導(dǎo)數(shù),計算其在x=0的值;并使所得的逼近式的最大相對誤差更小.
可按不同方式利用“相互逼近”這一條件.本文設(shè)x在一點或多點上誤差等于零.實際上,也可設(shè)誤差等于某個值;或以其它方式利用這一條件.
構(gòu)建有理函數(shù)逼近式已有近百年的歷史,擁有豐富的內(nèi)容.筆者謹(jǐn)以此文供讀者參考.
[1]徐獻瑜,李家楷,徐國良.Pad'e逼近概論[M].上海:上??茖W(xué)技術(shù)出版社,1990:1-30.
[2]切尼E W.逼近論導(dǎo)引[M].徐獻瑜,譯.上海:上海科學(xué)技術(shù)出版社,1981:192-230.
[3]《數(shù)學(xué)手冊》編寫組.數(shù)學(xué)手冊[M].北京:高等教育出版社,1979:225-231.
A New Kind of Method for Constructing Rational Function Approximations
SUN Dinghao1,ZHAO Changchun2
(1.Beijing Institute of Control Engineering,100190;2.Beijing Shengye Science and Tech.Development Co.Ltd,100190)
A new kind of method for constructing the rational function approximations for transcendental functions is provided.Differing from Pad'e method,the new method utilizes the conditions which the values of the transcendental function and its approximation approximate each other,less depending the Taylor expansion of the transcendental function.Taking both of transcendental functions for examples,the differences between the approximations derived with the method and Pad'e approximations are discussed.Using the method,we construct a series of approximations suitable to operate on microcontroller.
rational function approximation;Pad'e approximation
O174.41
:A
:1674-1579(2016)01-0057-06
10.3969/j.issn.1674-1579.2016.01.011
孫定浩(1934—),男,高級工程師,研究方向為電功率變換技術(shù);趙長春(1976—),男,工程師,研究方向為電功率變換技術(shù).
*十二五民用航天資助項目.
2014-12-20