呂 娜,紀(jì) 紅
(1. 長(zhǎng)春電子科技學(xué)院光電科學(xué)學(xué)院,吉林 長(zhǎng)春 130012;2. 北華大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院,吉林 吉林 132000)
目前計(jì)算機(jī)軟硬件的發(fā)展速度較快,圖形處理能力迅速提升,在此背景下,人們對(duì)可視化軟件仿真效果的需求逐漸增多,且要求也越發(fā)嚴(yán)格[1]?;诠こ碳夹g(shù)領(lǐng)域,可視化技術(shù)能夠完成虛擬樣機(jī)、飛行、測(cè)試等工作,可視化軟件仿真技術(shù)可保證工程設(shè)計(jì)人員能夠及時(shí)識(shí)別設(shè)計(jì)中存在的異常問(wèn)題[2]??梢暬浖抡婕夹g(shù)的應(yīng)用目的是:為用戶提供多視點(diǎn)、多樣化分析仿真過(guò)程的人機(jī)交互界面,使界面的操作效果更直觀[3-5]。
偏微分方程是目前科學(xué)研究領(lǐng)域、工程技術(shù)研究領(lǐng)域常用的數(shù)學(xué)工具。比如固體穩(wěn)恒、非穩(wěn)恒的熱傳導(dǎo)問(wèn)題處理、可滲透介質(zhì)中流動(dòng)與擴(kuò)散等問(wèn)題在求解時(shí),經(jīng)常使用橢圓型方程、拋物型方程。聲波、電磁波等傳播問(wèn)題分析也經(jīng)常使用雙曲型方程[6]。偏微分方程的數(shù)值求解屬于數(shù)值分析的核心環(huán)節(jié),偏微分方程數(shù)值求解問(wèn)題在科學(xué)研究領(lǐng)域占據(jù)不可撼動(dòng)的地位。本文將四階偏微分方程數(shù)值解法應(yīng)用于可視化軟件仿真研究中,主要使用MATLAB編程求解四階偏微分方程,獲取仿真目標(biāo)可視化三維圖形繪制的屬性值,繪制仿真目標(biāo)的可視化三維圖形,完成仿真目標(biāo)在可視化軟件的仿真研究。
設(shè)置仿真目標(biāo)在可視化軟件中繪制可視化仿真圖像時(shí),其屬性精確值求解的一類非線性四階偏微分方程是
(ku+λu3)xx+μutt+cuxuxx+uxtt=
fuuxxx+guuxxxxhuxuxxxx
(1)
式中,k、λ、μ、c、f、g、h屬于固定不變的數(shù)值。
設(shè)置u(x,t)=φ(x,t)+R,將其導(dǎo)進(jìn)式(1)后存在

(2)
將上式約簡(jiǎn),則

(3)


此時(shí)將式(3)轉(zhuǎn)換成:
-kΦxx+2λφxΦx+2λφΦxx-Φtt+kΦxx+λφxxxxΦ=0
(4)
對(duì)式(1)求解時(shí),主要從2個(gè)角度分析:
1)角度1
如果λ≠0,則方程Φ=0,則φ-φx=0。此時(shí)屬性精確值的解組設(shè)計(jì)為:φ(x,t)=A(t)ex,其中,A(t)屬于隨機(jī)函數(shù)。
2)角度2
如果λ=0,k≠0,那么上式轉(zhuǎn)換成
-kΦxx-Φtt+kΦxxx=0
(5)
此時(shí)介紹三種屬性精確值的求解過(guò)程:
如果Φ=φ-φx,φ-φx=cx+dt,則屬性精確值的基本解組是φ(x,t)=A(t)ex+cx+dt,其中,c、d屬于固定不變的數(shù)值。
如果Φ=φ-φx,φ-φx=x2-kt2,則屬性精確值的基本解組是φ(x,t)=A(t)ex+x2-kt2。
如果Φ=φ-φx,Φ=φ-φx=x3-3k(x-1)t2,則屬性精確值的基本解組是φ(x,t)=A(t)ex+x2-3k(x-1)t2。
目前初等函數(shù)學(xué)習(xí)過(guò)程中,需要先繪制函數(shù)圖形,通過(guò)圖形可以實(shí)現(xiàn)函數(shù)的直觀性。但針對(duì)偏微分方程來(lái)講,此類方程的圖形繪制存在一定難度,特別是不存在解析解的偏微分方程,圖形繪制的難度更加顯著[7]。偏微分方程屬于數(shù)學(xué)物理方程的核心方程。因此,本文使用MATLAB數(shù)值解法求解2.1小節(jié)所建立仿真目標(biāo)屬性求解的四階偏微分方程后,結(jié)合獲取的屬性精確信息數(shù)值制作為三維可視化仿真圖像。
MATLAB具有工程與科學(xué)數(shù)據(jù)可視化仿真需要應(yīng)用的所有圖形工具與功能,其核心功能分別是三維繪圖函數(shù)設(shè)計(jì)、交互圖形設(shè)計(jì)。此類設(shè)計(jì)功能使用后,便可輸出各種圖形格式。除此之外,MATLAB還具有用于可視化仿真的函數(shù),此類函數(shù)類型主要微分三維標(biāo)量、三維繪圖函數(shù)等[8-10]。MATLAB的微分方程工具箱針對(duì)平時(shí)常用的偏微分方程都具有較好的求解能力,屬于實(shí)用性顯著的數(shù)值運(yùn)算工具[11]。特別是邊界條件難度不大的前提下,用戶即使不會(huì)編程技術(shù),也可以在圖形窗口,獲取方程的數(shù)值解完成可視化仿真設(shè)計(jì)[12]。
使用MATLAB求解偏微分方程時(shí),需要設(shè)計(jì)屬性精確值求解的邊界條件:
1)邊界條件1-Dirichlet 邊界條件
hu=r
(6)
2)邊界條件2-Generalized Neumann 邊界條件
n·(c?u)+qu=g
(7)
式中,邊界外法向單位向量是n;邊界中仿真目標(biāo)屬性精確值的復(fù)函數(shù)是q、r。針對(duì)仿真目標(biāo)屬性值求解問(wèn)題來(lái)講,g的數(shù)值是0。針對(duì)非線性問(wèn)題來(lái)講,g、q、h與u存在緊密聯(lián)系。針對(duì)拋物型方程與雙曲類方程來(lái)講,g、q、h、r與時(shí)間存在緊密聯(lián)系。
偏微分方程工具箱具備操作界面,且此界面簡(jiǎn)單易懂,使用此工具箱的指令便可實(shí)現(xiàn)任務(wù)的靈活、快速處理。例如快速繪制復(fù)雜的幾何圖形,設(shè)置不標(biāo)準(zhǔn)的邊界條件等[13]。差異的指令需要使用差異的數(shù)據(jù),所以想要準(zhǔn)確使用指令便需要分析數(shù)據(jù)結(jié)構(gòu)與指令之間的關(guān)聯(lián)性。
圖1是求解四階偏微分方程的流程圖。如圖1所示,指令都以矩形框顯示,矩陣、M文件都以圓形框顯示。

圖1 四階偏微分方程求解流程圖
在求解過(guò)程中,仿真目標(biāo)的四階偏微分方程的矩陣、公式、空間矩陣都可以用幾何區(qū)域模式顯示,幾何區(qū)域模式的應(yīng)用指令是Decsg,而屬性精確值求解過(guò)程中需要分解幾何區(qū)域時(shí),分解的幾何區(qū)域結(jié)構(gòu)主要分為幾何矩陣、幾何M文件,此操作也應(yīng)用指令Decsg完成,并在圖形用戶界面反饋給用戶[14]。
MATLAB在設(shè)計(jì)式(6)條件與式(7)條件時(shí),需要使用矩陣模式、M文件模式描述相關(guān)變量,矩陣在圖形用戶界面輸出,M文件需要使用指令Wbound設(shè)計(jì)。
MATLAB在求解仿真目標(biāo)的四階偏微分方程時(shí),使用系數(shù)矩陣或者系數(shù)M文件代表各個(gè)方程的k、λ、μ、c、f、g、h。
運(yùn)用MATLAB求解式(1)時(shí),仿真目標(biāo)的全部信息都會(huì)變換成網(wǎng)格數(shù)據(jù)分布在自己所屬的網(wǎng)格區(qū)間內(nèi),將網(wǎng)格區(qū)間劃分為多個(gè)子區(qū)域,這一操作需要使用指令I(lǐng)nitmesh完成,然后使用指令Refinemesh將仿真目標(biāo)網(wǎng)格數(shù)據(jù)進(jìn)行精細(xì)化處理。
運(yùn)用MATLAB求解四階偏微分方程時(shí),求解結(jié)果為解矢量,其為各個(gè)獨(dú)立變量在網(wǎng)格節(jié)點(diǎn)中的數(shù)值。解矢量可通過(guò)指令A(yù)ssempde完成提取。主要結(jié)合網(wǎng)格、邊界條件與方程系數(shù)求解四階偏微分方程,因?yàn)榻馐噶颗c對(duì)應(yīng)的數(shù)據(jù)網(wǎng)絡(luò)存在緊密聯(lián)系,二者缺一不可。
結(jié)合四階偏微分方程數(shù)值解的獲取,仿真目標(biāo)可視化圖像繪制步驟如下:
1)建立參數(shù)域
構(gòu)建仿真目標(biāo)的三維圖形參數(shù)域,所輸入的已知參數(shù)屬于仿真目標(biāo)的散亂數(shù)據(jù)點(diǎn),此類數(shù)據(jù)點(diǎn)不存在規(guī)律性,把它投影在二維平面中,結(jié)合坐標(biāo)值設(shè)置四階偏微分方程的參數(shù)域,并對(duì)其實(shí)施網(wǎng)格分解。
2)設(shè)計(jì)初始曲面
初始曲面屬于一種拓?fù)浣Y(jié)構(gòu),圖形凹凸且光滑性較差。設(shè)計(jì)參數(shù)域之后,各個(gè)網(wǎng)格點(diǎn)僅存在橫、縱坐標(biāo),但不具有屬性值l。求解過(guò)程中都是根據(jù)目前時(shí)間段的屬性估計(jì)后續(xù)時(shí)刻屬性,所以必須設(shè)置各個(gè)網(wǎng)格點(diǎn)的初始值,因?yàn)榫W(wǎng)格點(diǎn)的屬性值需要在初始值的基礎(chǔ)上執(zhí)行加權(quán)平均操作才可獲取,所以將已知點(diǎn)設(shè)成控制點(diǎn),屬性固定化,剩下網(wǎng)格點(diǎn)的屬性值需要結(jié)合控制點(diǎn)的具體情況設(shè)置。為了優(yōu)化操作效率,需要保證網(wǎng)格點(diǎn)初始值更為精確化。本文使用Voronoi圖區(qū)域賦值法,將各個(gè)控制點(diǎn)Voronoi圖內(nèi)部的網(wǎng)格點(diǎn)設(shè)成此控制點(diǎn)的值。求解四階偏微分方程時(shí),網(wǎng)格點(diǎn)的屬性值存在不可變動(dòng)特征[15-17]。
3)屬性值求解
設(shè)計(jì)初始曲面之后,求解四階偏微分方程的穩(wěn)定解,求解時(shí),若初始曲面某個(gè)網(wǎng)格屬于已知點(diǎn),代表控制點(diǎn),此網(wǎng)格點(diǎn)的屬性便無(wú)須求解,控制點(diǎn)的屬性固定,不會(huì)出現(xiàn)變動(dòng),此模式條件下設(shè)計(jì)的曲面主要插值在控制點(diǎn)。如果目前時(shí)刻求解結(jié)果和后續(xù)時(shí)刻求解結(jié)果的最大誤差較小,便表示求解的屬性值屬于穩(wěn)定解,利用此屬性解,使用指令 Pdeintrp 和 Pdeprtni 完成函數(shù)變換,通過(guò)Plot指令在初始曲面基礎(chǔ)之上繪制三維可視化圖像,從而實(shí)現(xiàn)仿真目標(biāo)的可視化圖像繪制[18,19]。
為了測(cè)試本文方法的仿真效果,使用Visual J++6.0工具,通過(guò)MATLAB編程設(shè)定實(shí)驗(yàn)測(cè)試環(huán)境。本文方法使用MATLAB數(shù)值解法求解某仿真目標(biāo)的四階偏微分方程時(shí),若φ(x,t)=A(t)ex+x2-3k(x-1)t2為仿真目標(biāo)四階偏微分方程的屬性解,A(t)=sin(t)+cos(t),x=-2,t=[-10,10]時(shí),函數(shù)A(t)的波形圖如圖2所示。


圖2 四階偏微分方程的數(shù)值解波形圖
如圖2所示,x=-2,t=[-10,10]時(shí),此條件下A(t)函數(shù)的波動(dòng)不穩(wěn)定,x=[-1,1],t=50時(shí),A(t)函數(shù)的波動(dòng)穩(wěn)定,為此,在后續(xù)實(shí)驗(yàn)中,設(shè)置條件,x=[-1,1],t=50。
設(shè)置邊界條件1中hu的值依次是為0.55、1.05,則求解仿真目標(biāo)四階偏微分方程時(shí),數(shù)值擬合與絕對(duì)誤差的結(jié)果如圖3、圖4所示。

圖3 數(shù)值擬合效果

圖4 絕對(duì)誤差
如圖3、圖4所示,若φ(x,t)=A(t)ex+x2-3k(x-1)t2為仿真目標(biāo)四階偏微分方程的屬性解,邊界條件1中hu的值是0.55時(shí),四階偏微分方程數(shù)值解高度擬合,數(shù)值解絕對(duì)誤差極小,由此驗(yàn)證,本文方法在求解仿真目標(biāo)四階偏微分方程數(shù)值解時(shí),hu=0.55,此時(shí)具有求解數(shù)值精準(zhǔn)度高的優(yōu)勢(shì)。
本文方法應(yīng)用后,仿真目標(biāo)屬性信息求解的可視化軟件仿真界面如圖5所示。

圖5 本文方法應(yīng)用下可視化軟件仿真界面
如圖5所示,用戶點(diǎn)擊繪圖后便可得到三維圖像結(jié)果如圖中左下方三維函數(shù)圖所示。使用此函數(shù)表達(dá)的屬性信息進(jìn)行三維圖像重構(gòu),其中網(wǎng)格點(diǎn)信息如圖6所示,可視化仿真效果圖如圖7所示。

圖6 仿真目標(biāo)網(wǎng)格化示意圖

圖7 可視化仿真效果圖
如圖6、圖7所示,本文方法能夠使用四階偏微分方程數(shù)值求解的模式,提取仿真目標(biāo)的網(wǎng)格點(diǎn)屬性值,實(shí)現(xiàn)仿真目標(biāo)的可視化圖像繪制,繪制后的可視化仿真圖像畫面光滑,原因是本文方法能夠結(jié)合仿真目標(biāo)的參數(shù)域設(shè)計(jì)匹配的非線性四階偏微分方程,準(zhǔn)確提取仿真目標(biāo)的屬性精確信息,從而優(yōu)化仿真目標(biāo)可視化圖像繪制效果。
求解偏微分方程是目前科學(xué)與工程計(jì)算的重要環(huán)節(jié),很多大型計(jì)算任務(wù)都必須使用偏微分方程數(shù)值解的形式分析問(wèn)題。MATLAB是一種集技術(shù)研發(fā)、數(shù)據(jù)可視化等技術(shù)于一身的編程技術(shù),所以本文提出基于四階偏微分方程數(shù)值解法的可視化軟件仿真方法,構(gòu)建仿真目標(biāo)的四階偏微分方程之后,使用基于MATLAB數(shù)值解法的偏微分方程求解與可視化仿真顯示方法,完成仿真目標(biāo)屬性數(shù)據(jù)提取,從而制作為仿真目標(biāo)的三維圖像,完成可視化仿真。在實(shí)驗(yàn)中,本文方法被證實(shí)具有可用性,但數(shù)學(xué)分析技術(shù)都需要分析大量數(shù)據(jù),操作過(guò)程難免煩瑣,在日后的研究工作中,會(huì)引入機(jī)器學(xué)習(xí)類技術(shù)優(yōu)化其應(yīng)用效率。