計算機輔助數值分析

計算機輔助數值分析(Computer-aided numerical analysis,CAA) 是以電子計算機為主要工具的一種分析與設計方法。它是以計算技術、套用數學與模擬理論為基礎發展起來的一門新興學科,目前已成為計算機套用領域中一個重要分支。

簡介

計算機輔助數值分析(簡稱CAA)與計算機輔助設計(簡稱CAD)是以電子計算機為主要工具的一種分析與設計方法,它是以計算技術、套用數學與模擬理論為基礎發展起來的一門新興學科,目前已成為計算機套用領域中一個重要分支。科學技術的飛速發展,使得科學理論研究、新產品開發及工程設計中所建立的數學模型越來趨複雜,對此類模型套用傳統的方法進行分折與研究已日益困難,甚至完全不可能。比如,半導體積體電路的集成度近二十年中差不多每隔一至兩年就會翻上一番,據統計晶片密度平均每年增加40%,電路規模之大t結構之複雜,單靠^力是無法完成設計的。在系統分析與設計中,實驗的分折與計算是一種重要的手段,但對某些真實的系統進行實驗既不經擠也不安全,甚至無法實現。象宇航系統、核反應堆系統等,直接實驗往往很危險,費用高昂。

由於計算機的出現與迅速發展,這一狀況得到了根本性的改變。利用計算機對產品的數學模型進行分析與設計,不僅極大的提高了設計速度,而且提高了產品的質量。計算機套用與系統設計,不僅能完成人工無法完成的設計,而且周期短性能佳,尤其在性能模擬上,計算機模擬充分顯示了經濟、安全、速度快而且非常之方便的特性。使得計算機輔助數值分析在現代科學與工程研究中已成為不可缺少的重要手段,無論是從事理論研究還是進行工程設計,掌握它都是非常有益的。

CAA的基本原理

由實際問題簡歷數學模型

首先要把實際問題經過抽象簡化成為確定的數學問題,也就是建立描述實際問題的數學模型.如微分方程、積分方程、線性代數方程和方程組等。

建立算法模型

由於計算機只能對離散型數據進行算術運算和邏輯運算,而實際數學模型中所涉及到的數學運算範圍是極為廣泛的,既有算術運算、代數運算,也有微分和積分運算及各種各樣的函式運算等。所以實際工作中提出的各種問題,在建立了勢擘模型以後一般還不能直接用計算機求解,需要先對數學棱型做一些頂處理:將連續變數離散化為數字量,將複雜的運算方程分解轉化為簡單的代數運算以適於計算機處理。處理以後得到的運算關係式就是數學模型對應的算法模型。目前各種函式運算、微分與積分運算都有成熟的算法可以直接套用,如果我們在實際工作中遇到的數學模型無現成的算法可用t就需要我們去建立新的算法。

分析誤差

產生這個誤差的主要原因有以下兩方面。

截段誤差

對於某一問題問題的散學模型,一般是很難找到準確的散值算法模型。如圖 中連續量u(r)的積分運算,求數值解只能採用近似的方法,取梯形近似或矩形近似等等。這種由於算法模型本身的近似性產生的數值解與數學模型準確解之問的誤差,稱為截段誤差。同一散學模型往往可以用許多不同的算法求解由於不同的算法誤差不一樣,所以數值解的精確度也不同。比較圖中給定的兩種算法,明顯可見梯形算法要比矩形算法精度高誤差小。但另一方面,模型精度井不是唯一要考慮的因素,因為精度太高必然會占用更多的計算機記憶體,計算時間更長。所以算法模型的選取要根據精確度要求和計算機硬體條件綜合考慮。

捨入誤差

在實際計算中遇到的散可瞻位散很多,甚至是無窮小散,而計算機的計算位散是有限的,對超過位散的敦字就要進行舍人,這種舍人引起的誤差稱為舍人誤差。目前,由於計算機的計算速度和散據處理精度已相當高,當算法運算量不大時,舍人誤差很小,可以不考慮。

算法穩定性分析

在運用算法模型計算時,初始散據的誤差和計算誤差(包括截段{昊差和舍人謾差)總是存在的,所有這些誤差都台在計算中傳播下去,對以後的結果產生影響如果計算結果對韌始誤差和計算謾差不敏感,也就是說在運算中韌始誤差和計算誤差不增大,那么就認為該算法是穩定的,否則就是不穩定的,只有穩定的算法才瞻給出可靠的計算結果,不穩定的算法毫無意義。

算法的實現

算法確定之後,根據初始條件或邊界條件及算法步驟編製程序,並上機運行,通過對運行結果的分析,調整步長參數到一合理值。

MATLAB是一種面向科學與工程計算的高級語言,同時也是適用於科學和工程計算的數學軟體系統。作為數值軟體的MATLAB,對計算數學領域的特定問題類型,如數值線性代數、微分方程數值解、數值逼近、最最佳化方法、數值積分等進行求解,可以得到問題的離散解或近似的解析表達式。針對每一類問題的求解,MATLAB都能給出該類問題的各種高效算法。例如,求解非線性規劃問題,MATLAB給出了單純形搜尋法、最速下降法、DFP變尺度法、BFGS擬牛頓法和最小二乘法等算法,其中既有解析算法,又有直接算法,而且與每個算法相匹配的還有一維搜尋法。MATLAB具有一個陣容強大、範圍廣泛的基本運算體系。此外,MATLAB極其簡潔的語言結構支持結構化程式設計,且具有超過任一高級語言系統的調試技術。MATLAB高度智慧型化的調試技術是用戶開發MATLAB程式的有力工具。基於上述思想,為了把MATLAB矩陣運算的優點更好地套用於工程和教學實踐中,作者在MATLAB軟體環境下研製了CANAC軟體包。採用CANAC軟體包,利用計算機及其特有的功能不僅能準確、快速地實現數值分析與計算中所涉及到的逼近問題、線性代數問題、非線性方程及方程組的數值解法問題以及常微分方程的數值解法等,而且可把這些數值分析與計算的結果直接套用於實際套用中。相比用C、Basic或Fortran等語言研製的類似軟體包,CANAC軟體包的開發工作量相對小了很多,而且該軟體包還具有功能強大、操作簡便、形式靈活、界面美觀而簡潔、實用性強等優點,滿足快速高效的現代生活和工作節奏。CANAC軟體包的研製能使工程技術人員從繁重的手工數值計算與分析中解脫出來,把有限的時間和精力投入到更重要的工作中。基於MATLAB語言編制的CANAC軟體包具有很強的推廣意義和使用價值。

MATLAB在計算機輔助數值分析的套用

MATLAB是一種面向科學與工程計算的高級語言,同時也是適用於科學和工程計算的數學軟體系統。作為數值軟體的MATLAB,對計算數學領域的特定問題類型,如數值線性代數、微分方程數值解、數值逼近、最最佳化方法、數值積分等進行求解,可以得到問題的離散解或近似的解析表達式。針對每一類問題的求解,MATLAB都能給出該類問題的各種高效算法。例如,求解非線性規劃問題,MATLAB給出了單純形搜尋法、最速下降法、DFP變尺度法、BFGS擬牛頓法和最小二乘法等算法,其中既有解析算法,又有直接算法,而且與每個算法相匹配的還有一維搜尋法。MATLAB具有一個陣容強大、範圍廣泛的基本運算體系。此外,MATLAB極其簡潔的語言結構支持結構化程式設計,且具有超過任一高級語言系統的調試技術。

MATLAB高度智慧型化的調試技術是用戶開發MATLAB程式的有力工具。基於上述思想,為了把MATLAB矩陣運算的優點更好地套用於工程和教學實踐中,作者在MATLAB軟體環境下研製了CANAC軟體包。採用CANAC軟體包,利用計算機及其特有的功能不僅能準確、快速地實現數值分析與計算中所涉及到的逼近問題、線性代數問題、非線性方程及方程組的數值解法問題以及常微分方程的數值解法等,而且可把這些數值分析與計算的結果直接套用於實際套用中。相比用C、Basic或Fortran等語言研製的類似軟體包,CANAC軟體包的開發工作量相對小了很多,而且該軟體包還具有功能強大、操作簡便、形式靈活、界面美觀而簡潔、實用性強等優點,滿足快速高效的現代生活和工作節奏。CANAC軟體包的研製能使工程技術人員從繁重的手工數值計算與分析中解脫出來,把有限的時間和精力投入到更重要的工作中。基於MATLAB語言編制的CANAC軟體包具有很強的推廣意義和使用價值。

相關詞條

熱門詞條

聯絡我們