程培澄 程培聰 王 萌 邵宇辰 亓路寬
1(北京工業(yè)大學(xué)材料科學(xué)與工程學(xué)院 北京 100124) 2(北京交通大學(xué)計算機與信息技術(shù)學(xué)院 北京100044) 3(北京工業(yè)大學(xué)生命科學(xué)與生物工程學(xué)院 北京 100124) 4(北京工業(yè)大學(xué)建筑工程學(xué)院 北京 100124)
非線性方程組的求解是科學(xué)計算領(lǐng)域里最基本也是最重要問題之一,不論是理工科類還是社會人文科學(xué)類,很多問題都最終歸結(jié)為方程組求解問題。方程組求解一般分解析解和數(shù)值解兩種類型,能得到解析解自然是最好的結(jié)果。但現(xiàn)實中,基于問題的復(fù)雜性和目前的技術(shù),很多時候非線性方程組都是無法得到解析解的,此時只能通過數(shù)值計算方法得到數(shù)值解。當(dāng)前非線性方程組數(shù)值計算最常用的方法有牛頓算法、共軛梯度算法、最速下降法等,這些算法實際上都是一種優(yōu)化迭代算法,因此方程組數(shù)值求解問題也可以視為優(yōu)化求解問題,式(1)可以轉(zhuǎn)換成等價的優(yōu)化問題,即求函數(shù)最小值問題,式(2)為一標準的無約束函數(shù)最小值優(yōu)化問題。
(1)
(2)
非線性優(yōu)化問題所涉及到的優(yōu)化算法一般可分為局部和全局最優(yōu)算法兩種。局部最優(yōu)算法效率高但對參數(shù)初值依賴嚴重,迭代起始初值的質(zhì)量好壞決定了計算是否收斂從而得到正確結(jié)果,而要猜測給出合理的初值并非易事,基本是運氣加經(jīng)驗,對復(fù)雜點的優(yōu)化問題很多時候即使經(jīng)過多次嘗試,計算仍然無法收斂,因此初值依賴癥是局部最優(yōu)算法的最大缺點,前述牛頓算法等均屬局部最優(yōu)算法;相對局部最優(yōu)算法的則是全局最優(yōu)算法,其最大特點是不依賴于初值,也即無須再猜測初值,即可獲得全局最優(yōu)解,典型代表算法有遺傳算法[1]、模擬退火算法[2]及一大批啟發(fā)式仿生智能算法如粒子群算法[3]、蟻群算法[4]等。如果僅從上述概念描述來看,全局優(yōu)化算法相比局部最優(yōu)算法無疑有巨大的優(yōu)勢,但實際卻并非如此。全局優(yōu)化算法有兩大不足,一是計算量大,其尋優(yōu)特性決定了計算資源的高消耗,雖然硬件能力的提升及并行算法等可以進行一些彌補;二是任何全局最優(yōu)算法,至少到目前為止也僅是從理論上證明可以不依賴初值而全局收斂,而實際應(yīng)用當(dāng)中卻與理論相差甚遠,很難保證每個優(yōu)化問題都百分之百收斂到全局最優(yōu)。
正因為全局最優(yōu)算法在理論層面完美而實際表現(xiàn)差強人意,存在改進完善的巨大空間,因此國內(nèi)外眾多研究者都投入其中[5]。僅國內(nèi)看,從同方知網(wǎng)分別以“遺傳算法”全文檢索并含“優(yōu)化”以及“優(yōu)化算法”全文檢索并含“全局”關(guān)鍵字進行查詢,如圖1所示。從2008年至2018年這11年間,以遺傳算法或全局優(yōu)化算法為研究內(nèi)容的論文數(shù)每年平均都上萬篇,并呈逐年增加的趨勢。在全局優(yōu)化算法研究中,尤其以啟發(fā)式智能仿生優(yōu)化算法最為熱門,如粒子群算法、蟻群算法、蛙跳算法、蝙蝠算法、布谷鳥算法、根生算法、魚群算法等,共有數(shù)百種之多,每一種算法的提出者均稱該算法相對于其他算法取得了更好的全局優(yōu)化結(jié)果,然而這些算法要么沒有編譯成通用軟件求解器而導(dǎo)致用戶無法應(yīng)用驗證,要么用戶按介紹自己實現(xiàn)原算法編譯求解,但計算結(jié)果卻遠達不到原作者所宣稱的效果。同時通過調(diào)研了解,國外被眾多用戶廣泛認可的著名通用優(yōu)化計算平臺如GAMS[6]和AMPL[7]等,其內(nèi)含的數(shù)十種知名優(yōu)化求解器幾乎都沒有采用上述任何一種智能仿生進化優(yōu)化算法,著名的數(shù)值和符號計算軟件MATLAB及Mathematical,在其附帶的全局優(yōu)化工具箱中雖然包含有一些基于上述啟發(fā)式仿生進化算法如粒子群算法的全局優(yōu)化求解器,但其實際應(yīng)用效果遠不如專業(yè)優(yōu)化計算的GAMS或AMPL平臺所包含的求解器,尤其是全局優(yōu)化求解器Baron、Antigone、Couenne和Lingo,這4種求解器均已被證明在全局優(yōu)化求解方面處于世界頂級[8-10],然而遺憾的是國內(nèi)卻少有研究涉及對這些全局優(yōu)化求解器相對全面的對比研究,因此本次研究選擇這4款全局優(yōu)化求解器,再外加唯一國產(chǎn)優(yōu)化數(shù)值計算軟件1stOpt共5款軟件作為研究的對比對象,而數(shù)學(xué)領(lǐng)域應(yīng)用極廣的MATLAB和Mathematical雖然都有現(xiàn)成的非線性方程求解功能,但都是基于局部最優(yōu)算法的,而其附帶的全局優(yōu)化求解功能與選擇的5款專用優(yōu)化軟件相比,不論效果還是易用性方面都有很大的差距,因此不在本次評價之列。
Baron求解器是現(xiàn)任美國卡耐基梅隆大學(xué)教授Sahinidis最先于1996年在伊利諾伊大學(xué)任教時研發(fā)出的全局優(yōu)化求解器,歷經(jīng)二十余年的持續(xù)改進升級,已被公認為當(dāng)今最先進強大的全局優(yōu)化求解器[11]。Antigone求解器是美國普林斯頓大學(xué)Floudas教授和英國帝國理工學(xué)院Misener教授共同研發(fā)并于2013年首次發(fā)表的優(yōu)化求解器,專注于連續(xù)及整數(shù)規(guī)劃全局求解,業(yè)界享有極高的聲譽。Couenne求解器是美國COIN-OR公司開發(fā)的非線性全局最優(yōu)化求解器,起源于2006年IBM與卡耐基梅隆大學(xué)的一個合作項目,該求解器開源,有多種不同編程語言接口,方便使用。Lingo是美國Lindo公司于1981年開發(fā)出的優(yōu)化計算平臺,具有自己的模型語言,使用簡單且用戶廣,世界500強公司中的一半以上都在使用。該軟件國內(nèi)知名度也很高,幾乎是國內(nèi)各種數(shù)模競賽的缺省推薦軟件。1stOpt是唯一一款國產(chǎn)通用數(shù)值優(yōu)化計算軟件,國內(nèi)各大高校、科研院所及許多公司都在使用,該軟件最大特點就是其特有的UGO全局優(yōu)化算法以及其易用性,短時間內(nèi)就贏得了眾多用戶的認可與推崇[12-13]。
GAMS是通用的優(yōu)化計算平臺,上述四款全局優(yōu)化求解器Baron、Antigone、Couenne和LingoGlobal均包含在GAMS優(yōu)化計算平臺之中。GAMS提供統(tǒng)一的應(yīng)用界面和語言,底層調(diào)用上述求解器,用戶只需掌握GAMS語言而不需分別了解各個求解器的特有語言,極大提升易用性。本次采用的GAMS版本是25.1.3,最新試用版可從GAMS官方網(wǎng)站免費下載;1stOpt使用的版本是8.0。各求解器都有眾多的選項設(shè)置,不同的設(shè)置對計算結(jié)果會有一定的影響[8],方便起見本次研究中各求解器均采用適合于大多數(shù)情況的缺省設(shè)置。
檢驗全局優(yōu)化算法或全局優(yōu)化求解器的最佳方法就是采用相應(yīng)的測試題進行實際計算比較。國內(nèi)不少學(xué)者采用典型案例在全局優(yōu)化算法求解非線性方程組方面進行了不少有益的探索[14-17],此外目前世界上已有不少經(jīng)典的全局優(yōu)化測試題集,如著名的GLOBALLib[18]和MINLPLib[19]。然而采用上述已有經(jīng)典測試題集存在以下三個問題:1) 這些測試題集已被眾多相關(guān)研究者進行了廣泛和深入的研究對比,并在此基礎(chǔ)上對優(yōu)化算法進行了針對性的改進,這有可能會導(dǎo)致這些算法或求解器對這些測試題集產(chǎn)生一定的“免疫”功效,由此導(dǎo)致無法對各種優(yōu)化求解器進行嚴謹、客觀及公正的測評。2) 這些經(jīng)典測試題集不少都是五年甚至十多年前提出的,在當(dāng)時確實具有一定的難度和代表性,是開發(fā)檢驗優(yōu)化算法的極佳案例,但隨著科技的快速發(fā)展,這些測試題集中的不少問題對當(dāng)今優(yōu)秀的最優(yōu)化求解器來說已過于簡單,獲得正解已是非常輕松簡單的事,因此也基本失去了其算法測試、驗證與挑戰(zhàn)的功能。3) 相對于局部優(yōu)化算法,全局最優(yōu)算法主要側(cè)重于效果,一般而言計算消耗較大,因此維數(shù)低但難度高的問題才是測試驗證全局最優(yōu)化算法的最佳選擇,而已有的測試問題要么維數(shù)太高導(dǎo)致計算時間太長,不利于對問題的高效驗證,要么難度太低而無法有效檢驗不同優(yōu)化求解器的優(yōu)劣。
基于上述分析,本次研究沒有選擇已有的測試題集,而是采用了作者收集整理或?qū)嶋H應(yīng)用所遇到的14道非線性方程組問題,均屬首次公開發(fā)表。這些問題求解規(guī)模都不大,求解參數(shù)在3到6個之間,屬于低維小規(guī)模優(yōu)化求解問題,但求解難度卻非常高,比之絕大部分流行的優(yōu)化測試題集難度要大很多,但正如前述,規(guī)模小但求解難度大,這正是驗證全局最優(yōu)化算法或軟件求解器的最佳案例。這14道測試題案例分述如下。
案例1:五元非線性方程組。
(3)
式中:n=5,a=[80.003 1,202.536 7,251.145 5,340.013 0,352.013 6],b=[0.55,1.45,1.55,2.75,3.15]。
案例2:四元非線性方程組。
i=1,2,…,n
(4)
式中:n=4,a=[283.15,298.15,313.15,328.15],b=[0.208 7,0.205 9,0.203 4,0.200 8]。
案例3:五元非線性方程組。
x1exp(-x2(ai-x3)2)+x1exp(-x4(ai-x5)2)-
bi=0i=1,2,…,n
(5)
式中:n=5,a=[50.86,25.17,8.53,4.39,3.15],b=[48.24,96.53,274.65,508.44,683.08]。
案例4:六元非線性方程組。
(6)
式中:n=6,a=[9,18,36,54,72,108],b=[1,0.89,0.84,0.78,0.6,0.39]。
案例5:三元非線性方程組。
(7)
式中:n=3,a=[1 990,2 002,2 005],b=[0.22,0.31,0.33]。
案例6:五元非線性方程組。
(8)
案例7:三元非線性方程組。
(9)
案例8:五元非線性方程組。
(10)
式中:c=1.300 5。
案例9:四元非線性方程組。
(11)
式中:n=4,a=[915,909,898,895],b=[1 200,1 212,1 234,1 240],c=[1.6,3.54,5.43,5.683]。
案例10:六元非線性方程組。
(12)
案例11:三元非線性方程組。
(13)
案例12:六元非線性方程組。
(14)
案例13:三元非線性方程組。
(15)
式中:b0=0.029 2,b1=6.17,b2=7.86,u=5 028。
案例14:四元非線性方程組。
ai=x1(1-exp(x2bi))+x3(exp(x4ci)-1)
i=1,2,…,n
(16)
式中:n=4,a=[3.8,27.9,23.5,13.7],b=[8.2,63,59.5,35.7],c=[8.1,35.667,59.5,35.7]。
所有非線性方程求解案例問題均轉(zhuǎn)換成如式(2)的最小值優(yōu)化問題。Baron、Antigone、Couenne和Lingo Global四個求解器均在GAMS平臺執(zhí)行,除了求解器選擇不同,其他代碼均相同;1stOpt采用其獨立的桌面平臺實現(xiàn)。每個求解器均采用缺省設(shè)置,系統(tǒng)運行環(huán)境及硬件配置相同;對每個測試題都獨立運行10次;對不同的求解器結(jié)果評估時,如果具體參數(shù)值基本一樣而目標函數(shù)值雖都趨近于0,但比值相差較大,仍視為結(jié)果相同,如案例4中Couenne與1stOpt,二者目標函數(shù)值分別為5.12495E-7和7.482169E-14,比值相差巨大但都趨近于0,而且參數(shù)組具體值基本一樣,因此視為相同結(jié)果。
測試指標主要有兩個:一是目標函數(shù)值,對解方程問題而言,獲得正解時的目標函數(shù)值理論上應(yīng)該為0,實際數(shù)值計算中一般為趨近于0;二是計算時間。這兩個指標也分別代表效果和效率,是判斷一個優(yōu)化求解器好壞的兩個最重要指標。
對于優(yōu)化計算而言,非線性方程組的目標函數(shù)是非常復(fù)雜和高度非線性的,圖2和圖3是典型的兩個示意圖。圖2展示最優(yōu)點位于整體梯度平緩的“深井”之中,而圖3則是在“起伏山坡的密林”之中搜索最低點,全局求解難度非常大。詳細計算結(jié)果見表1及表2。
表1 案例1-案例7測試結(jié)果
續(xù)表1
表2 案例8-案例14測試結(jié)果
續(xù)表2
案例1,它是一個方程形式完全一樣的四元四次方程組,1stOpt能以超過90%的概率得到最優(yōu)解,且用時短;其他求解器均只能獲得局部最優(yōu)解,同時計算時間很長。
案例2,雖然從目標函數(shù)值看五種求解器的結(jié)果均趨近于零,但只有1stOpt結(jié)果精度最高且穩(wěn)定,其余四種求解器所得參數(shù)結(jié)果千差萬別。
案例3,Antigone和1stOpt均取得了相同的正解,Antigone用時較長,是1stOpt的7倍之多,其他三個求解器的結(jié)果與目標函數(shù)值為0的理論正解相比,誤差巨大。
案例4,求解難度較大,1stOpt能以約50%的概率求得正解,Baron、Antigone和Lingo結(jié)果與正解相差甚遠,反而是開源的Couenne表現(xiàn)最為出色,幾乎能以百分之百概率得到正解,令人驚嘆。
案例5,雖然只有三個未知參數(shù),但想得到最優(yōu)解卻十分不易。Baron很快能得出結(jié)果,但卻是錯誤的;Antigone和Couenne計算時間很長但最終結(jié)果也不對;1stOpt能以40%的概率得到最優(yōu)解;Lingo結(jié)果從目標函數(shù)值看相對Baron、Antigone和Couenne好一些,但具體參數(shù)值與1stOpt的相比,明顯也只是一個局部最優(yōu)解。
案例6,Antigone和1stOpt都可以很快得出正確結(jié)果,二者目標函數(shù)值雖然有較大差距,但應(yīng)該是參數(shù)取值精度引起的。Lingo目標函數(shù)值雖然也較小,但具體參數(shù)值與最優(yōu)解相比完全不對;Baron和Couenne耗時長但計算結(jié)果也不對,僅是局部最優(yōu)解。
案例7,雖然只有三個未知參數(shù),所有5個求解器,不論計算時間長短,所得結(jié)果基本一致,但可判斷都不是目標函數(shù)趨近于0的正解,難道該方程本身就無解?
案例8,Lingo和1stOpt都可求出正解,但前者耗時較長;Antigone、Baron和Couenne所得結(jié)果誤差很大。
案例9,1stOpt結(jié)果最好且穩(wěn)定唯一,其余求解器雖然目標函數(shù)都趨近于0,但具體參數(shù)值差別巨大,應(yīng)該均為局部最優(yōu)解。
案例10,所有求解器的結(jié)果都差強人意,從目標函數(shù)值看Baron結(jié)果最好,1stOpt的結(jié)果次之,但有的參數(shù)值達到了1E+305的數(shù)量級,令人困惑;其他三個求解器結(jié)果均與理想值0相差甚遠。難道該方程組也無精確解?
案例11,Baron、Lingo和1stOpt均可獲得正解,Antigone和Couenne結(jié)果僅為局部最優(yōu)且與正解相差甚遠。
案例12,方程組從形式上看非常簡單,但實際求解計算,Antigone無法給出結(jié)果,其余四款求解器所得結(jié)果也均非正解,難道該方程組本身同樣無解?
案例13,1stOpt僅能以大約10%的概率得到正解(有兩組解,另一組x=[0.149 818 6,-0.329 753 6,-4 626.947 171 4]),其余求解器均無法獲得正解,雖然Couenne的目標函數(shù)值趨近于0。如何提高正解獲得率?
案例14源自于美國Matlab官方論壇一個問題,該論壇里的解答是該方程組無實數(shù)解,從Baron、Antigone、Couenne和Lingo所得結(jié)果看的確是無精確解,但1stOpt的結(jié)果顯示解是存在的。
基于前述計算結(jié)果,從效果(目標函數(shù)值)與效率(計算時間)兩方面可對五種求解器的總體優(yōu)劣進行綜合量化評估,具體是每個案例如果有解,則目標函數(shù)值和計算時間按從小到大,對應(yīng)評分按5到1賦分;如果無解則得分均按0計。五種求解器的賦分表及最終得分見表3。綜合得分越高表明該求解器綜合能力越強。
一共14道測試題,滿分最高分是140分,由上面賦分表可看出,綜合得分最高的是1stOpt,其后依次為Antigone、Baron、Couenne和Lingo。五種求解器求解效果、求解效率及綜合求解能力示意圖分別見圖4、圖5及圖6。
表3 求解器綜合賦分表
(17)
A=BC
(18)
(19)
60x=2 664(x-0.85)
(20)
(21)
(22)
通過上述案例可以看出,導(dǎo)致理論上正確但實際錯誤的“罪魁禍首”就是“除法”,對比式(17)、式(19)和式(21)以及等效轉(zhuǎn)換后的式(18)、式(20)和式(22),前者均含有未知數(shù)在分母的除法,后者經(jīng)過等效乘法轉(zhuǎn)換后消去了除法項。
再看前面測試案例7、10、12和13。其中案例7、10和12的式(9)、式(12)和式(14),通過等式乘除法變換,去掉方程中含有待求參數(shù)的分母項,修改后等價方程分別如式(23)、式(24)和式(25)所示。
(23)
(24)
(25)
表4 案例7、10、12、13形式變換后測試結(jié)果
上述方程五種求解器計算結(jié)果如表4所示。案例7的方程進行形式變換成式(23)形式后,Antigone和1stOpt可分別以100%和50%的概率得到正解;Couenne所得具體參數(shù)值與正解近似,但目標函數(shù)值相差巨大;Baron和Lingo維持原狀,相比方程形式變換前沒有任何改進。該方程組的特點就是其中一個參數(shù)值x3的數(shù)值非常小,達到1E-25的量級,但又不能等于0。
案例10方程形式變換后,1stOpt能以幾乎100%概率獲得正解,Baron和Antigone的結(jié)果也可視為正解雖然精度稍差;Couenne和Lingo結(jié)果仍然不對。此方程組最大的特點就是,不論哪個求解器,計算出的參數(shù)x4均等于-1.47,而在變換前的方程組中有分母項x4+1.47,因此會導(dǎo)致被0除的邏輯錯誤,從而導(dǎo)致無法得到正確結(jié)果。
案例12方程形式變換后全部五種求解器均可快速得到正解(該方程組是多解)。
案例13原方程組中不存在除法項,但仔細觀察可發(fā)現(xiàn)方程中有“冗余”項,比如方程組中第二個方程可以通過等式兩邊同除以x1x2,同樣第三個方程等式兩邊同除x3,簡化后方程如下:
(26)
上述方程組1stOpt和Antigone求得正解的成功率分別從去除“冗余”項前的20%和0%提升至100%,其余3個求解器仍然無法獲得正解。
通過上述四個實際案例可看出,方程組中如果存在除法項且除法項分母含有待求解未知參數(shù)時,應(yīng)盡可能通過等效乘法變換去掉除法項,從而避免除法可能引起的“陷阱”;此外如果公式中存在“冗余”項也盡量將其消除簡化。通過這樣的變換,方程組正解求解率可大幅提高。
Baron、Antigone、Couenne和Lingo均采用基于分支定界的確定性優(yōu)化算法(Deterministic Global Optimization Algorithms)。采用確定性優(yōu)化算法的求解器的特點之一就是每次計算都能得到穩(wěn)定相同的結(jié)果,同時號稱在一般情況下均能保證輸出結(jié)果為全局最優(yōu),但在本文實際應(yīng)用測試中卻遠遠達不到所稱結(jié)果為全局最優(yōu)的水準;1stOpt采用自行研發(fā)的全局通用優(yōu)化算法(Universal Global Optimization-UGO),大部分情況都能得到比前述四個求解器更好的結(jié)果,雖然不清楚UGO算法的具體實現(xiàn)方法,但從實際計算看,該算法明顯不同于確定性算法,而是含有“隨機”因子,其具體表現(xiàn)為:雖然對大多數(shù)問題都能計算獲得穩(wěn)定最優(yōu)結(jié)果,但對少部分非常復(fù)雜或多解的問題,每次計算結(jié)果有可能不同或得到不同的解。
論文中首次提出的14道非線性方程組測試題集,具有規(guī)模小但非線性程度高及求解難度大的特點,非常適合用于檢驗測試和評估全局優(yōu)化算法及相關(guān)求解器的計算效果和效率。
科學(xué)數(shù)值計算軟件傳統(tǒng)上基本是歐美產(chǎn)品占絕對統(tǒng)治壟斷地位,但本次測試對比研究結(jié)果表明,至少在非線性全局優(yōu)化求解領(lǐng)域,五款優(yōu)化求解器中,測試綜合排名由高到低依次為1stOpt、Antigone、Baron、Couenne和Lingo。開源免費的Couenne并非最差,反而是非常人氣的商業(yè)求解器Lingo排名最后,而整體綜合表現(xiàn)最好的是國產(chǎn)的1stOpt,不論是效果還是效率,均綜合排名第一。
對比研究的五款求解器,除1stOpt為唯一的國產(chǎn)外,其余四款均來自美國,而令人驚訝的是這四款軟件中的三款又都與卡耐基梅隆大學(xué)有關(guān),Baron的創(chuàng)始人是現(xiàn)任卡耐基梅隆大學(xué)的Sahinidis教授,Antigone求解器的兩位主要創(chuàng)始人之一的普林斯頓大學(xué)Floudas教授其博士學(xué)位于1986年在卡耐基梅隆大學(xué)獲得,開源的Couenne求解器起源于2006年IBM與卡耐基梅隆大學(xué)的一個合作項目??突仿〈髮W(xué)的計算機學(xué)科常年排行美國第一,僅通過本次研究的求解器也可窺一斑。
Baron的開發(fā)者Sahinidis教授和Antigone的開發(fā)者Floudas教授,他們本身的專業(yè)都是化學(xué)工程而非計算機或應(yīng)用數(shù)學(xué)類,Lingo所屬公司的CEO專業(yè)是環(huán)境工程,1stOpt的主要開發(fā)者據(jù)了解是土木工程,優(yōu)秀的數(shù)學(xué)類計算軟件卻都是由非計算機和非數(shù)學(xué)專業(yè)的“行業(yè)外”人士開發(fā)或掌控,這一“跨行業(yè)”現(xiàn)象非常值得思考。
除了算法和求解器外,非線性方程組全局優(yōu)化求解過程中一定要注意盡量避免“除法陷阱”這一問題,同時方程形式能簡化的一定要先簡化,只有這樣才能確保大概率獲得最優(yōu)正解。此外,鑒于非線性全局優(yōu)化問題的多樣性和復(fù)雜性,測試所得五款求解器的綜合求解能力僅僅基于本文的案例題集,期待將來更多研究者基于更多案例問題的測試結(jié)果。
最后還有兩點需要說明,一是本次研究僅探討了低維無約束非線性方程組全局優(yōu)化求解問題,更高維數(shù)且含有約束條件的情況有待下一步實施進行;二是五款求解器均使用缺省設(shè)置,對于基于GAMS平臺的四款求解器,參數(shù)求解的起始初值均為0,有可能導(dǎo)致被0除的錯誤現(xiàn)象發(fā)生,應(yīng)特別注意。