數值分析范文

時間:2023-03-21 13:12:46

導語:如何才能寫好一篇數值分析,這就需要搜集整理更多的資料和文獻,歡迎閱讀由公務員之家整理的十篇范文,供你借鑒。

數值分析

篇1

關鍵詞:地下水,滲流場,穩定性

1 引言

擬建基坑工程坑深19.5m,場地范圍內地基土為軟弱土,地下水豐富,水位埋深約為3m。本文基于對該基坑工程的初步設計,應用浸潤線理論采用數值模擬分析的方法對基坑進行分部施工模擬,在開挖及降水的綜合影響作用下計算分析基坑的應力、位移狀態。

2 工程概況

基坑工程建設規模158127,擬建工程地下5層,地上42層。基坑周長315m,坑深19.5m。

3 工程地質、水文地質條件

3.1 地形地貌

擬建工程,建設場地地形平坦,相對高差不超過0.5m。歸屬于山前沖積平原地貌單元。

3.2 地層巖性

根據勘察鉆探資料,建設場地表部為較厚的第四系覆蓋層,詳述如下:

3.3 水文地質條件

根據勘察資料,建設場地內地下水水位埋深2.5m~3.0m,主要為①雜填土層中的上層滯水與2、3粉質粘土層中的孔隙潛水。1雜填土層中的上層滯水水量較少,地層透水性較強,滲透性系數K=1m/d,2、3粉質粘土層中的孔隙潛水水量豐富,滲透性相對較弱,滲透性系數K=0.1m/d。

4 基坑支護結構設計

4.1 支護方案

根據建設基坑工程特征,工程場地地質條件。支護方案采用排樁+錨索,降水方案選用坑內積水明排。

4.2 計算參數的選取及設計結果

5 數值分析

數值分析中通過模型的建立及分步施工過程(開挖、降水)的模擬充分考慮基坑工程在開挖、降水綜合作用下的應力與位移特征。

5.1 分步施工

將該基坑工程分解為12個分步工程:

1支護樁施工2基坑開挖至第1道錨索下0.5m,水位降至坑下0.5m3第1道錨索施工4基坑開挖至第2道錨索下0.5m,水位降至坑下0.5m5第2道錨索施工6基坑開挖至第3道錨索下0.5m,水位降至坑下0.5m7第3道錨索施工8基坑開挖至第4道錨索下0.5m,水位降至坑下0.5m9第4道錨索施工10基坑開挖至第5道錨索下0.5m,水位降至坑下0.5m11第5道錨索施工12基坑開挖至預定深度(19.5m),水位降至坑下0.5m。幾何模型建立如圖2。

5.2 地下水滲流分析

基坑場地范圍內地層主要為粉質粘土,透水性相對較弱,基坑開挖過程中擬采用積水明排的降水方法,分步施工階段基坑外側的地下水不能完全的從坑壁排出,勢必形成一定的水頭差,在基坑及基坑外一定范圍形成地下水滲流場。本文采用水位變化岸坡地下水位浸潤的計算方法確定分步工程中降水后的地下水位線。然后將其賦入數值分析模型中,進行地下水滲流計算。

地下水位浸潤線計算: , 施工中降水后的坑內水位, 施工中降水前的坑內水位, 、 降水前后計算點至坑壁的距離, 降水后計算點的地下水位, 降水前計算點的地下水位。

采用浸潤線理論模擬基坑開挖降水過程計算孔隙水壓力。降水后的水位線改變了基坑一定范圍內原有的滲流場,孔隙水壓力環境也隨之改變(圖3―5),樁后形成三角形的孔隙水壓力(圖6),最大孔隙水壓力約為178kN/。

5.3 基坑應力位移分析

用數值分析基坑開挖降水后,在主被動土壓力及孔隙水壓力的綜合作用下,計算坑壁的應力及變形狀態(圖7―10),坑壁應力呈三角形,最大應力約為417kN/,基坑外側2倍的基坑深度范圍內土體皆有不同程度的塑性變形,最大位移量約為130mm。

6 結論與建議

(1)基坑開挖降水作用改變了初始地下水環境,形成新的滲流場,最大孔壓可達178kN/;

(2)開挖完成后,基坑坑壁應力呈三角形,最大應力約為417kN/,基坑外側2倍的基坑深度范圍內土體皆有不同程度的塑性變形,最大位移量約為130mm;

(3)建議對基坑外3倍深度范圍的建構筑物進行位移監測。

參考文獻

(1)張力霆,土力學與地基基礎,高等教育出版社,2007年7月;

篇2

【關鍵詞】數值分析 科學計算 信息與計算科學 教學改革

【中圖分類號】G642.0 【文獻標識碼】A 【文章編號】1009-9646(2008)09(a)-0044-02

科學計算是伴隨計算機的出現而迅速發展并獲得廣泛應用的一門新興交叉學科,是數學及計算機實現其在高科技領域應用的必不可少的紐帶和工具。科學計算的方法和理論為科學研究與技術創新提供了新的重要手段和理論基礎,科學計算現已成為與實驗和理論并重的第三種科學研究方法。數值分析又稱數值計算方法,它作為介紹科學計算的基礎理論和數值方法的課程,對培養學生的科學計算能力,解決實際問題的能力以及創新能力起著非常重要的作用。數值分析現不僅是綜合性大學信息與計算科學專業、應用數學專業的必修課程,也是信息類專業、工科類專業(如土木工程,航天航空,機械工程等)的必修課程,因此在進入21世紀后,隨著計算機技術的飛速發展,社會對科學計算人才需求的變化,對數值分析課程進行教學改革,進一步提高數值分析的教學質量和教學效果,以適應新形勢下社會對人才的需求,變得尤為迫切。

1 課程的內容和特點

1.1 課程的內容

數值分析課程是以微積分、線性代數、常微分方程等課程的基本內容為基礎,以算法設計為手段,以計算機為工具實現算法,全面地介紹了科學研究及生產實踐中各領域所遇到的普遍的數學問題的數值方法和理論,因此它是所有與科學計算密切相關的專業的一門重要的基礎課程。

數值分析課程的基本概念有:誤差、收斂性、穩定性、插值、計算量、存儲量等,這些概念是用來刻畫數值方法的準確性、可靠性、效率以及計算復雜度;核心內容包括:代數問題數值計算、函數的數值逼近論、計算幾何、微分方程數值解、最優化方法、統計計算等方面[1]。

1.2 課程的特點

數值分析作為大學本科階段的一門數學基礎課程,它具有下面的一些主要特點:

1.2.1 實踐性強

上文已提到數值分析的核心內容是研究應用計算機對科學研究和實際應用中常見的數學問題進行數值求解的各種方法。這些方法除了理論上要正確可行外,還要求通過數值試驗證明是有效的、實用的。因此,與其它數學類基礎課程有所不同,數值分析課程很強調實踐,要求學生在學習了每個算法后用學過的計算機語言編程或借助于一些數學軟件,如Mathematica、Matlab,完成算法的計算機實現,這樣學生不僅知道理論上是如何計算,而且還能把結果真正地計算出來。有些算法盡管在理論上不夠嚴謹,但通過實際計算、對比分析等手段證明是行之有效的,在實際應用中也是可以采用的。

1.2.2 應用性強

數值分析中的理論與算法并不是都來源于純粹的微積分、線性代數、常微分方程等課程,很大程度也是由于科學研究和實際工程計算的需要,可以說它來源于實際又應用于實際。一方面,目前很多算法已經在物理力學、生物信息、計算機應用、土木工程、航天航空、石油勘探、環境工程、材料等領域得到了廣泛的應用;另一方面,數值方法在這些領域的應用過程中會產生一些新問題,為解決這些新問題,研究人員和技術人員深入研究、不斷攻關,從而又會促進數值分析理論和算法的發展。

1.2.3 計算公式多且復雜,不好記憶

數值分析課程的許多算法或是采用“構造性”的方法,把計算公式具體構造出來,如Lagrange插值,Hermite插值等;或是采用“遞推”方法,將復雜的計算過程化簡為簡單計算過程的多次重復,例如:求解線性方程組的Jacobi迭代法,Gauss-Seidel迭代法等,從而使得算法里出現的計算公式多且復雜,學生不好記憶。

2 數值分析課程教學中存在的問題

目前,在數值分析課程教學中普遍存在下面幾個問題:

2.1 內容多,學時少

數值分析的內容非常豐富,包含代數問題數值計算、函數的數值逼近論、計算幾何、微分方程數值解等,但學時數卻不多,一般只有64/54,教師使用傳統的教學方法講授這些知識時,由于計算公式多且復雜,推導繁瑣,不得不采用填鴨式教學,每節課都在講新課,拼命趕進度,這種做法既忽視了學生這個主體的作用,使學生處于被動學習的狀態,時間久了就會失去學習數值分析的興趣,產生厭學情緒;同時也扼殺了學生學習的主動性、積極性和創造性。

2.2 重理論,輕實踐

前面已提到數值分析是一門與計算機關系密切的實踐性很強的課程,但在傳統的教學模式中,教師通常只注重講授算法原理、誤差分析和收斂性證明等理論內容,忽略了上機實踐環節。學生動手實踐機會少,就會使學生不能徹底理解算法的原理與運用,只知道大概是“怎么算”,但不會真正把結果算出來,造成理論與實踐的脫節;同時也會使學生感到數值分析的學習很抽象、枯燥、難學,以致學習興趣不高。

2.3 缺乏帶有上機實驗內容的教材

數值分析課程是20世紀50年代末在我國一些綜合性大學開始開設的,由于當時計算機的應用在我國剛開始起步,所以當時使用的數值分析教材基本上都沒有上機實驗內容的。人類社會進入21世紀后,計算機技術發展迅猛,許多復雜的計算能以驚人的速度在計算機上得到滿意的計算結果,但作為介紹科學計算理論和數值方法的數值分析課程,其大部分教材沒能適應時代的變化,還是沿用舊教材的內容結構,沒有增加上機實驗內容,這給教學帶來很大的困難,直接影響了人才的培養。

3 課程教學改革

為全面貫徹落實科學發展觀,切實把高等教育重點放在提高質量上,教育部和財政部于2007年先后頒布了《教育部財政部關于實施高等學校本科教學質量與教學改革工程的意見》和《教育部關于進一步深化本科教學改革全面提高教學質量的若干意見》。在這些綱領性文件指導下,全國高校掀起了一輪新的教學改革活動,數值分析課程的教學改革也開展得如火如荼并已取得一定成效(見文[2,3])。很多專業開設了數值分析課程,不同專業有不同的要求,有些要求相差很大,下面談談我校信息與計算科學專業的數值分析課程教學改革的一些措施和想法。

我校信息與計算科學專業是2006年開始招生。2006級學生的數值分析課程安排在第四學期。為了做好數值分析課程的建設工作,我們專門成立了數值分析課程建設小組。以下就是我們在數值分析課程教學改革的一些措施和想法:

3.1 選擇合適的教材

對于信息與計算科學專業的學生來說數值分析是一門專業基礎課,要求比其它專業高,既要掌握算法的應用,也要掌握算法的原理、誤差分析、收斂性分析等理論知識,因此選取的教材應兼顧這兩方面。我們采用了林成森新編的《數值分析》4. 該教材內容全面,闡述嚴謹、詳細、深入淺出,且每個常用的算法都給出了偽程序。我們知道很多學生都怕編程,選擇了該教材將有助于學生動手編程上機實現算法。

3.2 內容選取合理,突出重點

信息與計算科學專業的數值分析課程的課時是64學時,在這有限的學時內要詳細地講授所有的內容是不現實的,也是不可能的。我們必須對教學內容重新優化設計,要有側重,以主帶次。在課堂上有限的時間里力求講明白一個主題,重點講授典型的、具有代表性的并能體現其思想方法的常用算法和理論,而對那些原理相近的內容則可留給學生課后自學,使課堂講授的內容真正做到“少而精”。例如:在講授解線性方程組的Gauss消去法時,我們在課堂上重點詳細地介紹了Gauss消去法和Gauss列主元消去法,學生在理解了這些方法的原理之后,再結合高等代數知識就很容易自學Gauss按比例列主元消去法和Gauss-Jordan消去法。

3.3 加強實踐環節,提高科學計算能力

數值分析有別于其它數學類基礎課程,它是一門與計算機結合密切的實踐性很強的課程。由于課時緊張,在2006級的培養計劃里數值分析課程沒有安排上機實驗課,但我們任課老師在講授完每一章后都會布置一些上機實驗題讓學生自己編程上機運算(注:學生在第二學期已經學了C語言),并且要求把程序和實驗結果交給老師批改。通過上機實驗,使學生加強了對課堂內容的理解,同時又和計算機語言結合起來,自己編程,動手計算,使學生較好地掌握常用的科學計算方法和技巧,積累了解決實際問題的能力,而且也培養了學生質疑問題的能力和實踐創新能力。這種做法很受學生歡迎。為了進一步提高上機實驗的質量,我們打算在新的培養計劃中增加9~12課時的上機實驗課。

3.4 采用現代化教學手段

由于數值分析內容豐富,計算公式多且復雜,推導過程繁瑣,所以我們采用了多媒體教學。這樣可節省板書、畫圖的大量時間,教師有充足的時間把基本概念,算法構造的原理等重點內容講透徹,而且在多媒體教學過程中還可以結合運用Mathematics,Matlab等數學軟件演示算法的計算過程和結果,使學生加深對抽象知識的直觀理解,從而提高了學生的學習興趣和學習積極性。

3.5 積極編寫新教材

由于在新的形勢下數值分析課程的教育觀念、教學要求以及教學內容已經發生了變化,所以教材的編寫也應跟上時展的步伐。現雖然已有一些數值分析的新教材嘗試了與計算機應用相結合,融進了Basic語言、C語言或Matlab數學軟件編程實現算法的新內容,但大家認同的精品教材不多,因此仍需從事數值分析教學的同行們繼續努力、不斷改革、勇于創新,編寫適合不同專業需求的新教材。由于合適的上機實驗輔導教材奇缺,所以我們的課程建設小組已開始編寫上機實驗輔導教材,以解燃眉之急。

3.6 改革考核方法

考核是評估教學質量和學習效果的重要手段。數值分析傳統的考試方法為筆試閉卷考試,主要是考察學生的識記能力,忽略了對學生編程上機實踐的要求。在新的形式下,為提高大學生的應用能力和創新能力,我們對數值分析的考核方法進行了改革,把上機實驗列入考核內容,即學生的期評成績由筆試成績、上機實驗和平時成績按比例確定。

4結語

我校信息與計算科學專業的數值分析課程建設起步晚,課程的教學改革仍需我們不斷的探索與實踐,我們也將繼續努力,并借鑒兄弟院校該課程的教學改革經驗,朝著精品課程目標建設數值分析課程。

參考文獻

[1] 伍渝江,尤傳華,丁方允.數值分析課程的繼承與改革 [J].高等理科教育,2000,8(1): 46-49.

[2] 杜廷松.關于數值分析課程教學改革研究的綜述和思考[J].大學數學,2007,23(2):8-15.

篇3

關鍵詞:MATLAB;數值分析;教學改革

中圖分類號:G421 文獻標識碼:A文章編號:1007-9599 (2011) 13-0000-01

Attempts to Strengthen the Teaching of Numerical Analysis by Matlab

Huang Cheng

(Foreign College Of Central South University of Forestry and Technology,Changsha410201,China)

Abstract:The combination of Matlab and Numerical Methods is a viable reform of teaching about Numerical Methods.This paper introduces the new teaching’s system and new curriculum.In order to solve the defects of curriculum,provides new ideas and approaches.

Keywords:MATLAB;Numerical Analysis;Teaching Reform

歷年本科學生對數值分析的反映可表達為:抽象、冗繁、枯燥,只是為了考試而學。這種狀況必須改變。

MATLAB在上世紀80年代推出后,已發展為一種功能全面的軟件。它問世后,一個“用軟件工具增強線性代數教學”的項目ATLAST在美國國家科學基金立項,并在90年代獲得成功。其后歐洲日本等國家快速跟進,并在相鄰學科中進一步拓展。

09年中南林業科技大學將“數值分析”改為“數值分析與MATLAB”,要求在教學領域有所創造和前進。我受教研究室的支持和幫助,在教學中進行了初步嘗試。本文討論該課程教學體系的改革和教學內容改變兩個問題。

一、教學體系的變革

國內“數值分析”的多數是沿著方法原理、計算步驟、計算框圖、計算速度、誤差、收斂和實例這樣一個體系展開A。這套體系成型于手工計算時代。在低級語言編程的時代作了一定改進,但仍顯繁瑣。目前在MATLAB下,各種方法已打包為指令,不再需要對各種方法進行編程。使用者只需知道方法原理、調用方法和指令即可。導致教學的立足點己經不同,這是一個根本性的改變。面對這樣情況的出現,課時與內容矛盾不斷加劇,國內計算器時代建立起來的教學體系到了必須改變的時候,也具備了改變的條件。

現在我們在“數值分析與MATLAB”課中講授數值分析是按:問題提法、解題理念與原理、解題指令與多指令的配合、計算結果表示、實例和實驗這樣一套教學體系進行的。

這樣有什么理由和好處呢?一個課程的教學體系與該學科體系、教學目的、學習者層次等因素有關。從教學目的、學習者層次角度而論,本科生學習“數值分析”課的目的是應用它來解工程和科學問題;從學科體系看,數值分析的學科發展與計算工具有著密切的關系[1]。可惜,目前教學領域未適應這種發展和變革。所以改革是很有必要的。MATLAB只是軟件發展的一個階段,但也引起了很多變化。它的影響表現為兩個方面:一可以把傳統分析方法、設計程式處理得更簡捷;二是推動新方法、新程式面世。例如在MATLAB中,用4階Runge-Kutta數值積分法解常微分方程,核心部份是[2]

〔t,Y〕=ode45(odefun,tspan,y0)

從應用角度看,詳細的講ode45內Runge-Kutta算法是不必要的。只需知道輸入量的意義、輸入方法,能看懂輸出量t,Y的意義,就可以了。換句話說,知道解題指令與多指令的配合、計算結果表示等就可以用了。但為保證正確使用,就必須了解其適用范圍、優缺點等。講授時就不必追求數學上的公式推導,而應著力闡述概念。其中包括:問題的數學提法,解題方法的實質理念、幾何概念和計算公式。而有關計算速度,因僅用計算次數來分析計算速度,顯得不適用。而在MATLAB中有計時器可測出指令計算問題的時間,從而得出該方法是否接受;也可對比不同方法的速度,從而給出評價。所以分三條途徑學習:一是在解線性方程組的章節中重點介紹用計時器進行實測和評價;二是以做習題的形式,要求用計時器對比各種方法的計算速度;三是在章節總結中,從原理和實算二方面進行歸納對比。有關誤差分為二條線:一是把誤差概念集中一章介紹;二是在講迭代法解微分方程和數值積分的指令時,介紹誤差控制和自適應性。這樣的好處是:立足應用,原理概念清晰,聯系實際。一定程度上克服了抽象、枯燥的問題,提高了學生實際使用能力。

二、教學內容改變

在新形勢下如何規范精選教學內容是個急待解決的問題。我們的原則是:摒棄部分原有的分析方法和設計程式,傳授以MATLAB為基礎的分析方法和設計程式。將課程內容設定為三部份:一是MATLAB基礎,含MATLAB語言基礎和數據可視化基礎;二是多項式運算、數值微積、插值逼近、誤差分析、解微分方程等傳統數值分析的內容;三是符號運算、線性系統分析和Simulink建模仿真介紹。較傳統意義上的數值分析內容更為廣泛。

課程中MATLAB語言基礎是最基本的。同時為加強形象思維和圖示計算結果,安排了數據可視化基礎。鑒于多項式運算在線性系統分析中的作用;插值逼近、解微分方程等為傳統數值分析中最基本內容,于以保留。數值微積在解微分方程中要用到,也選取了[3]。符號運算、線性系統分析和Simulink等應用面最廣泛,作為高端應用代表入選。

上述教學內容前兩部份數學基礎主要為線性代數、高等數學。線性系統分析和Simulink建模仿真等,則涉及運算微積、控制論、仿真等專業知識。各專業學生對于此類基礎概念參差不齊是個突出難題。此部分課內適當補充基礎,教師掌握好課程深淺是成敗的關鍵。因此對數值分析實行分類分級教學,不同專業和不同層次的學生采取不同的教學方式,從總體上提高教學質量是特別必要的。

通過教學實踐,我們形成了新教學體系。雖然這套體系尚不完整,但為解決“數值分析”課的蔽端,提供了一種新思路。但所選方法是否抓住了最基本、最有用的方法?能否反映學科前沿?頗值得討論。改革是個長期的過程,成效多大,更要通過社會與教學的長期考驗才會有結論。寫了上面的文字,希望能得到大家的指正。

參考文獻:

[1]馬昌風,林偉川.現代數值計算方法[M].北京:科學出版社,2008

[2]張志涌,楊祖櫻.MATLAB教程(R2010a)[M].北京:北京骯空航天大學出版社,2010

篇4

關鍵詞:數值分析;課程改革;開放式教學

中圖分類號:G64文獻標志碼:A文章編號:1673-291X(2010)31-0293-02

引言

大學畢業生是國家寶貴的人才資源,其就業問題關系到國家經濟建設、社會穩定和人民群眾的根本利益,關系到高等教育的持續健康協調發展。高等學校作為國家和社會培養高素質人力資源的主要陣地,要以市場需求為導向設置專業,變革教學方法,提高教育質量,培養能夠適應社會需要的復合型人才。

數值分析是一門理論與實踐相結合的課程,它是信息與計算科學專業學生的主干課程,我們在強調它的理論結構時,更注重它的實用價值。同時它也是各種計算性科學的共性基礎與聯系紐帶,實踐證明數值分析作為科學計算的基礎與核心,已被廣泛應用于科學技術和國民經濟的各個領域。如計算物理學、計算經濟學、天氣預報、大型水利工程的建設與設計等。如何根據市場需求改革數值分析課程的教學方法?如何提高教育質量,培養具有一定層次信息技術素養的大學生?如何提高學生的實際應用能力和創新能力?這些都是我們值得探討的問題。

一、傳統教學方法的不足

傳統教法是以教師的講授為主,課程記憶性內容太多。而課堂例題、課后作業和實驗題目又都是固定的、單一知識為主的題目,程序式的問題較多,問題的模仿性太大,高層次、開放性和思維性問題較少。傳統教法中主要以教材為主線,授課中多以演示法及互動法為主,并配備固定的實驗和作業。這樣教學雖然也能達到一定的效果,但缺點也很顯然。首先,教學以理論為主線,實踐性問題過少,學生只知道理論,不知道如何應用。其次,傳統教法不能夠體現出特優生、一般生和差生特點,更不能滿足到特優生想學多、學好和學深的要求。傳統教學方法忽略了學生的個性發展和對學生創造性思維的培養,不利于培養高層次的、可就業的IT人才。

二、課程改革的具體方案

為了彌補這些不足,在授課中應少講理論,多講實踐應用,讓學生在動手編制程序的過程中理會理論知識點,通過改正程序中出現的錯誤,細化知識,達到強化理論知識、精通程序編制的目的。其中有兩個重要的環節,一是作業題目、實驗題目的合理設計。讓有能力的學生做一些有深度、有廣度、有拓展的綜合性題目,讓差生做一些可獨立完成的單一知識點題目,分層次、分需求教學,分層次、分需求管理,這樣才能充分體現學生的自主學習能力和創新能力。二是教師要按學生的反饋信息、學生的需求合理修改、設置教學實踐例題,引導學生解決復雜問題,讓學生感受到問題的不同解法、程序編制的不同途徑、算法的優劣等方面給編制程序帶來的不同效果,影響學生形成好的編程習慣。我們的具體方案如下。

1.開放式作業

數值分析是一門集理論、抽象和設計于一身的計算機科學與技術專業的重要基礎課程,它主要研究用計算機解決數學問題的數值方法及其理論。數值分析既有純數學高度抽象性與嚴密科學性的特點,又有應用的廣泛性與實際實驗的高度技術性的特點,是一門與計算機使用密切結合的實用性很強的數學課程。通過本課程的學習,能使學生熟練掌握各種常用的數值算法的構造原理和過程分析,提高算法設計和理論分析能力,并且能夠根據實際問題建立數學模型,然后提出相應的數值計算方法,并能編出程序在計算機上算出結果。因此,在實際教學中我們采取開放式作業。

開放作業包含兩個方面的內容:一方面是作業內容的開放。教師依據教學要求,設計10道左右的作業題目,分為綜合性題目、單一知識點難題和單一知識點基礎題等類型,其中綜合性題目主要以工程上的實際問題為背景,要求學生建立相應的數學模型并求解。這些題目由學生自主選擇組合完成其中的2~3道題,每題有相應的難度系數,作為衡量作業質量的標準。另一方面是作業提交形式的開放。學生的作業可以寫在作業本上上交,也可以提交電子作業。電子作業需要學生把編制的程序運行無錯后提交,這種形式鍛煉了學生的動手能力、提高了學生解決實際問題的能力和糾錯的能力。作業成績由選題的難度系統和選題的個數決定。

2.開放式實驗

數值分析是數學的一個分支,但它不像純數學那樣只研究數學本身的理論,而是把理論與計算緊密結合,著重研究數學問題的數值方法及理論,并將這一理論在實踐中應用,以達到解決實際問題的目的。為了讓學生更好地理解他們所學 的知識在實際生活中的應用,我們必須重視實驗教學環節,在講述基本原理和基本操作方法的同時,應注重培養學生的創新能力和工程實踐能力,提高他們的程序設計能力和上機操作那個能力。因此在實際教學中我們采取開放式實驗。

開放實驗包含兩個方面的內容:一方面是題型的開放。實驗題型分為程序糾錯題、程序填空題、程序驗證題和程序編制題四類。另一方面是選題的開放。實驗題目有15道左右,難度、深度、廣度各不相同,學生自主選題組合,題目不固定,個數不固定。選什么程度的題目,選幾道題完成由學生全面決定。老師唯一約束的是學生要絕對獨立完成,教師可根據學生提交的實驗程序文件驗證。學生的實驗成績由選題的難度系統和選題的個數決定。

3.開放式教學

數值分析課介紹的數學方法大多數都有工程背景,對離散數據插值和對函數的數值逼近的方法來源于對實驗數據處理、產品外形設計等工程實際問題,樣條函數方法正是圖像處理技術等方面的關鍵部分,FFT 技術能夠快速處理數據,在機械、電子、信息、自動化工程中的實時信號處理中占有重要位置。因此,在實際教學過程中我們可以根據工程背景采取開放式教學。

開放教學包含兩個方面的內容:一方面是教學實例的設計。傳統教學中都以教課書中實例為主,教師在上面講,學生在下面邊聽邊看書上的程序,對照起多媒體投影中的程序和書本的程序一模一樣,學生對教師的演示也就提不起興趣了,感覺既枯燥又乏味。鑒于此,我們可以開放教學實例內容,由教師或學生提供實例題目,課上教師和同學共同分析問題、提供實例的數值解法,并給出相應的實現程序。教師可通過這種實例分析,引導學生解決多知識點綜合性題目。例如,在介紹三次樣條插值方法時,可以給出工程上飛機機翼型值線的實際問題,通過列舉機翼上緣輪線的數據,要求同學們自己編程用三次樣條函數畫出機翼曲線。這樣,不僅鍛煉了學生的動手能力,而且還能進一步加深學生對數值分析這門課的學習興趣。另一方面是基礎知識的實踐性教學。授課時教師精講基本知識點,做適當的演示,然后留有一定的時間給出一些基礎問題,讓學生扮演教師角色,講解具體的數值算法、編制程序,其他的學生可對程序進行優化、糾錯。學生由被動的聽講變成了主動的講解,角色的轉換激發了學生的熱情,吸引了學生的注意力。學生在講的過程中,也對所講內容有了更深層的認識。設計開放教學著重強化學生自我獲取知識的能力、組織和交流能力。

4.充分利用網絡資源,開放師生之間的交流

為了減少課程教學難度,提高教學質量,加強對學生自主學習的輔導力度,擴大輔導面,我們充分利用網絡資源,開展了多種形式的導學、網上討論咨詢答疑、學習輔導活動,具體方式有以下幾種:(1)網上討論、咨詢答疑。這種類型的咨詢答疑活動是利用網絡環境,由專業教師主持,通過BBS展開師生間、同學間的討論、信息交流,適宜于進行學習方法討論,教學信息的交流,簡單課程學習問題的咨詢答疑。(2)電話咨詢答疑。電話咨詢答疑,一般來說僅是單一的聲音媒體交流,因此多用于簡短信息的交流和簡單概念性問題的咨詢答疑,例如,確定考試或輔導的時間、地點等等。(3)E-mail信箱答疑輔導。E-mail信箱答疑輔導時純文字媒體的交流,常常用于解題示范,例題展示,信息交流等類型的問題答疑輔導。(4)運用現代信息技術。運用現代信息技術編寫并制作CAI教學課件和電子教案,在課件中的每一章明確本章的學習要求,課后有復習思考題。數值分析課程的教學大綱、試卷、試卷分析、標準答案也一律做成電子版的,以方便學生的查閱。

結語

數值分析是一門理論與實踐相結合的課程,它是信息與計算科學專業學生的主干課程。目前,用計算機進行科學與工程問題的科學計算,已成為與理論分析,科學實驗同樣重要的科學研究方法。在數值分析課程教學中,從內容編排到課堂教學,我們都本著提高學生應用能力的思想,簡化理論推導,重視實踐,極大增強了學生利用數值計算方法解決實際問題的信心,同時也提高了學生的市場競爭力,為學生更好的就業提供了保障。當然,數值分析課程的教學改革任務是長期的、艱巨的,以上的工作只是我們的一點嘗試。在今后的教學中,我們要時刻總結良好的教學經驗,為數值分析課程的教學改革多作貢獻,我們將廣采百家之長,不斷地改進我們的教學方式方法,爭取取得更好的教學效果,培養更多的合格人才。

參考文獻:

[1]王能超.數值分析簡明教程[M].北京:高等教育出版社,1984.

[2]姚傳義.面向應用提高數值分析課程教學效果[J].化工高等教育,2007,(2): 39-41.

篇5

關鍵詞 分解槽; Fluent;攪拌槳葉;數值分析

中圖分類號TQ13 文獻標識碼A 文章編號 1674-6708(2014)110-0048-02

Numerical Simulation of optimum designing for Stirring blade of Precipitator Tank

Wang You

Guiyang Aluminum-Magnesium Design & Research Institute Co.Ltd., Guiyang,Guizhou, China 550081

AbstractBased on the principle of hydromechanics similarity, this paper gives a numerical simulation analysis on the precipitator’s stirring blade (MIG)relevant design modification, and combined with the fluid analysis software Fluent. The paper competitively analyzes four aspects as the three dimensional flow field velocity distribution, solid content difference analysis, stirring power and the maximum shear stress, provides reference basis for design of stirring blade.

KeywordsPrecipitator Tank, Fluent, Stirring Blade, Numerical Simulation

0 引言

隨著氧化鋁生產大型化的發展,傳統的Φ14m分解槽已不能滿足生產要求,需要開發更大直徑型的分解槽。分解槽大型化設計的主要難點是攪拌裝置的設計,其攪拌在生產過程中既要滿足料漿充分的混合懸浮又不破壞晶種的長大,因而其攪拌有一定的特殊性。攪拌裝置設計的重點在于槳葉的選型,目前由于攪拌過程種類繁多,介質情況差異很大,實際使用的攪拌槳葉形式多種多樣。目前的選型方法多是根據實踐經驗,選擇習慣應用的槳型,再在常用范圍內決定攪拌器的各種參數。也有通過小型試驗,再進行放大的設計方法。隨著計算流體力學的發展,運用流體分析軟件對攪拌過程進行數值模擬技術已日趨成熟,本文就是在現有的氧化鋁生產上通用的MIG型攪拌器的基礎上,運用相似原理和Fluent軟件提供的穩態多重參考系法(MFR)對設計的三種攪拌器進行數值模擬,并與原有Φ14m分解槽的MIG型攪拌器進行對比分析,得到適合大型分解槽攪拌使用要求的槳葉形式,為設備改進優化提供設計參考依據。

1 研究對象及模型建立

1.1 物理模型

分解槽整體模型如圖1,槽體直徑16m,高42m,內設置6層攪拌槳、1組擋板、在擋板對面設置提料管,建模中忽略提料管內部流場,忽略攪拌槳厚度。三種不同槳葉結構形式見圖2,其中模型A是傳統MIG槳葉形式,槳葉與軸的夾角為60°,模型B是將模型A中內槳葉分為上內槳及下內槳兩部分,模型C是將模型A中槳葉與軸的夾角由60°增加到70°,具體結構尺寸見表1。

圖1 整體攪拌分解槽模型

圖2 槳葉模型圖

模型A 模型B 模型C

分解槽內徑(m) 16 16 16

液面高度(m) 38 38 38

槳葉層數 6 6 6

槳葉直徑(m) 底層 11.6 11.6 11.6

其它層 10 10 10

每層槳葉之間高度(m) 6 6 6

軸徑規格(mm) Φ610X26 Φ610X26 Φ610X26

槳葉與軸夾角(°) 60 60 70

內漿分段 1段 2段 1段

擋板數量(含出料管) 2 2 2

轉速(rpm) 4.4 4.4 4.4

表1 分解槽不同攪拌槳葉形式結構尺寸

1.2計算方法

本文選用Realizable k-ξ湍流模型,歐拉-歐拉多相流模型對分解槽內固液體系進行數值模擬。在模型中考慮相間作用力、虛擬質量力及升力對固體顆粒的影響,其中固-液兩相間阻力系數的理論計算采用相間相互碰撞的Gidaspow 模型。

采用穩態多重參考系法(MRF),將各個計算區域分成兩個或多個互不重疊的圓筒狀區域,整個分解槽分為旋轉區域和靜止區域兩部分,旋轉區域的幾何結構只有攪拌槳,靜止區域的幾何結構包括整個槽壁、擋板與提料管,旋轉區域創建旋轉坐標系,靜止區域創建靜止坐標系,攪拌槳相對內部子區域靜止,實現攪拌槳的旋轉。

1.3 工藝條件

表2是分解槽實際生產中的一組常用物性參數。

項目 料液的密度

kg/m3 料液的粘度

Pa.s 顆粒密度

kg/m3 固含

g/l 顆粒

大小

μm 含量

(質量分率)%

數值 1753 0.0038 2424 1000 70 10.25/31

表 2 物性參數

2 模擬結果分析

2.1 分解槽內物料的三維速度矢量

圖3為穿過攪拌槳葉中心X-Y平面的三維速度分布圖,模型A、B形成的流場相似,都只在每層槳葉之間形成了非常明顯的流體循環,流體在槽內基本是在每層槳葉之間流動,沒有形成槳葉之間的兩層流體循環,而模型C在每層漿之間形成明顯的槳間循環,內外槳葉有明顯地流體向上運動之后分別向內外槳葉的流場位置循環從而形成了明顯的兩層流體循環,導致顆粒在槽內提留時間要比模型A、B長,從而有利于顆粒的結晶長大,也同實際設計MIG型攪拌器的預期效果吻合。

圖3 流場(X-Y平面)三維速度分布圖

2.2流場內的均勻度

分解槽攪拌的主要目的之一還要保持溶液濃度均勻,保證晶種與溶液有良好的接觸以利于析出晶體。通過模擬可以得到顆粒相在整個流場中的分布狀況,以及確定顆粒相的高濃度區域。

圖4給出了70μm顆粒的體積相分布情況,從圖中可以看出,在分解槽底面上有比較明顯的沉積,說明底層槳附近區域是沉積高危區,且易沉積的區基本可以分為兩塊,就是攪拌軸附近區域以及槽底邊緣的區域。模型A、B的沉積區域明顯多于模型C。

圖4 70μm顆粒體積相分布圖(X-Y平面)

流場內的最大固含差,可以在一定程度上反映出整個攪拌的顆粒相分布的均勻程度,本文根據固體顆粒體積分數換算為固含量,進而得到固含差,表 3給出了三種槳葉形式的最大固含差的計算分析值。

從表中可以看出,模型C的最大固含差最小,模型A最大,工業生產要求固含差控制在5%∽8%以內,從計算結果看,模型B和C可以滿足。

模型 顆粒

直徑 體積分數/% 固含/g/l 最大固含差/%

最大 最小 差值 最大 最小 差值

A 70μm 31.38 28.93 2.53 1033.11 918.21 114.9 11.12

125μm 11.24 8.95 0.60

B 70μm 31.63 30.5 1.13 1046.2 968.4 77.8 7.45

125μm 11.53 9.45 2.08

C 70μm 31.39 30.43 0.68 1035 977.11 57.89 5.59

125μm 11.31 9.88 0.44

表3 三種槳葉形式的最大固含差

2.3攪拌功率

攪拌功率是攪拌中重要的參數,一定程度影響了生產成本和工業生產的現實可能性。

圖5給出了運用Fluent計算的三種槳葉形式各層槳葉消耗功率分布情況。模型A消耗的總功率為106.4 KW, 模型B消耗的總功率為137.1 KW, 模型C消耗的總功率為115.6 KW,通過比較分析,在滿足使用要求和經濟性方面綜合考慮,模型C的綜合性能最好。

圖5 功率分布圖

3 結論

1)本文建立了大型分解槽攪拌槳葉的三種計算模型,并采用穩態多重參考系法對三種槳葉的攪拌過程進行了數值模擬計算,結論是模型C相較于模型A和模型B,攪拌流動效果較好,沉積區最少,均勻度最好,綜合性能經濟指標亦能滿足生產需要;

2)通過與現有工業上使用的分解槽及其攪拌結構進行對比分析,運用Fluent計算所得的分解槽攪拌模型能滿足實際生產對分解槽攪拌結構和工藝性能的要求,能為分解槽的大型化工業生產提供可靠的理論設計依據。

參考文獻

[1]王凱,虞軍,等.攪拌設備[M].北京:化學工業出版社,2003.

[2]鐘麗,黃雄斌,賈志剛.用CFD研究攪拌器的功率曲線[J]. 北京化工大學學報,2003,30(5):5-8.

[3]李振花,何珊珊,萬茂榮,談遒.攪拌槽中的流體力學模型[J].高校化學工程學報,1996,10(1):22-29.

篇6

[關鍵詞]雷電;接閃;電場數值分析

中圖分類號:P427.32 文獻標識碼:A 文章編號:1009-914X(2014)47-0260-01

一、雷電

雷電是發生在大氣層中的聲、光、電等物理現象,通常認為是由于熱空氣上升,冷空氣下降過程中的熱交換,產生帶有正負電荷的小水滴積聚形成積雨云,在積雨云(雷云)形成過程中,由于大氣電場以及溫差起電效應、破碎起電效應的同時作用,正負電荷分別在云的不同部位積聚。當這些電荷積聚到一定程度時,就會在云與云之間或云與地之間發生放電,也就是人們平常所說的“閃電”。其中云與地之間產生的放電現象又稱為地閃,極容易對人類造成不可挽救的危害,也是我們進行雷電防護研究的主要對象。

雷電放電瞬間可產生數十千安,甚至數百千安的放電電流。雷電流能產生巨大的破壞力和很強的電磁干擾,給人類的生活、工作帶來很大的影響,它引起的災害是自然界十大災害之一。

隨著科學技術的不斷進步,各類電子信息產品得到廣泛應用,特別是電子信息系統的應用,極大的方便了人們的生活。但是,這些電子設備普遍存在著絕緣強度低、過電壓和過電流耐受能力差、對電磁干擾敏感等弱點,一旦建筑物受到直接雷擊或其附近區域發生雷擊,雷電過電壓、過電流和脈沖電磁場會通過供電線、通信線、接收天線、金屬管道和空間輻射等途徑侵入建筑物內,威脅室內電子設備的正常工作和安全運行。如防護不當,這些雷害輕則使電子設備誤動作,重則造成電子設備永久性損壞,嚴重時還可能造成人員傷亡。隨著全社會現代化水平的不斷提高,雷電對電子和通訊等設施的破壞,而造成的經濟損失及人員傷亡,遠遠超過了雷擊火災的損失,雷電災害已成為“電子化時代的一大公害”

雷電災害造成的損失的大小是牽扯到社會許多方面的十分復雜的問題。雷電能造成人員傷亡,即使得建筑物起火、擊毀、能對電力電話、計算機及其網絡等設備造成破壞,雷電又是年年重復發生的自然現象,在每年的七八月份是雷暴的高發期,尤其是在熱帶地區,雷電次數就更多。但是現在對于雷電災害及防雷知識,全社會缺少一定的認識,加上僥幸心理,所以極易造成雷擊事故。因此,必須進行深入的研究和采取必要的措施。

就減輕雷電造成的損害而言通常考慮的措施有:一是加強預報工作,在雷暴來之前就能像預報天氣一樣,讓人們做好準備,如拔掉電源插座等。第二就是加強新建建筑物的防雷擊的能力,在建筑物建成之前做好建筑物的防雷設計和施工。目前國家氣象部門很重視這個方面的工作,各個地區的氣象部門也都開展了這樣的業務。三是加強雷擊時的救援工作。所以目前普遍采用的是加強防雷工程的做法。

當雷電擊中建筑物時,由于雷電是具有高電壓、大電流,作用時間極短的瞬變過程,通常在瞬間釋放出巨大的能量,把被擊中金屬熔化,使物體水份受熱膨脹,產生強大的機械力,或分解成氫氣和氧氣,產生爆炸,使建筑物遭到破壞。雷擊產生的高溫引起建筑物燃燒構成火災,產生的高壓引起觸電。根據目前的防雷理論,無論采取哪種保護方法,都需要使用接閃器接閃,通過引下線將雷電流引下至接地裝置,由接地裝置散入大地中。在此過程中存在以下雷擊安全隱患:

1)雷電流沿引下線傳導過程中,在其周圍存在很強的電磁場,可能引起感應過電壓和過電流。

2)雷電流由散流裝置入地過程中形成的電位梯度過大會導致行人因跨步電壓而發生人身傷亡事故。

3)直接雷擊時,雷電流在泄放和散流過程中因電阻壓降和電感壓降導致高電位通過靜電感應在水平布設的信號線路和電源線路上產生的過電壓損壞設備接口,并有可能導致反擊及人身觸電傷亡事故。

二、感應雷的災害分析

1)散流時引起的過流(壓)損壞:當雷電擊中建筑物散流時,分流到配電系統、信號線路、其它金屬管道中的雷電流引起設備過壓(流)損壞或人身觸電導致傷亡事故。

2)發生直接雷擊,雷電流泄放時,建筑物內部分布著暫態電磁場,尤其以引下線周圍最為強烈。此電磁場將會對建筑物內各個系統產生作用,引起設備誤動作或損壞。

3)室內暫態磁場作用在信息系統環路上,將會產生感應過電壓(流),導致設備接口或設備本身損壞。

4)雷雨云(積雨云)引起的感應雷擊而發生損壞。當有雷雨云經過沿線上空或附近時,由于靜電感應會在電源線路、信號線路、控制線路上感應出極性相反的靜電荷,當雷云放電后,這些靜電荷由于不能及時入地會產生過電壓(流)損壞設備。

5)云內閃和云際閃對信息系統設備的影響。云內閃和云際閃產生的雷電電磁脈沖(LEMP)可引起內部設備因感應過電壓(流)損壞。

三、接閃桿接閃瞬間電場數值分析

圖1為本文研究對象:防護直擊雷的接閃桿。圖一

如圖2所示,由于接閃桿為軸對稱模型,所以本文只計算了其一個面。

圖3為ANSYS環境下對接閃桿進行1:1建模后,對其施加kV電壓,其X軸方向的電場強度分布圖。由圖3可知,其X軸方向的電場強度最大值及最小值均在接閃桿尖端。

篇7

關鍵詞:數值分析;MC模型;HS模型

PLAXIS deformation in the pit in the application of numerical analysis

Ye Haibo

Jiading District, Shanghai Real Estate (Group) Co., Ltd.

Abstract: The Excavation of a numerical analysis of the key issues is the use of appropriate soil constitutive model. [1] PLAXIS geotechnical finite element analysis software is used to solve geotechnical deformation, stability and common issues such as groundwater seepage finite element family of software, which provides a mole - Coulomb (MC), soil hardening (HS ), soft soil creep (SSC) and other soil material model. This departure from the Project to discuss the numerical analysis of pit deformation PLAXIS for calculating the parameters of thinking, comparative analysis of the MC and HS model results and monitoring results were compared with the pit, can provide a reference for similar projects.

Keywords: numerical analysis; MC model; HS model

1工程概況

上海某地鐵車站基坑工程為二地鐵線十字相交處,后建南北向車站被已建的東西向車站分隔為南北兩個區域,地質條件復雜,道路管線多,交通流量大,周圍建筑物密集。本文對其擬建的北側標準段區域進行分析,基坑南北長約65m、東西寬約25.2m~31.2m,基坑開挖深度約為24.0m,基坑保護等級定為一級。

1.1地質資料

基坑范圍內主要涉及雜填土、素填土、褐黃~灰黃色粉質粘土、灰色砂質粉土、灰色淤泥質粘土、灰色粘土、灰色粉質粘土、暗綠~草黃色粉質粘土、草黃色粘質粉土、草黃色粉砂、灰色粉砂、灰色粘土層土。

1.2水文資料

本工程地下水主要有淺部土層中的潛水,及深部粉性土、砂土層中的承壓水。上海年平均水位埋深在0.5~0.7m,低水位埋深1.50m。現場測得的地下水位埋深一般在1.15~1.25m之間。

1.3支護結構體系

1.3.1圍護結構

圍護結構采用1000mm厚地下連續墻,混凝土強度等級為水下C30。標準段地下連續墻深42米,入土比為0.74。

1.3.2支撐

基坑采用鋼支撐和混凝土支撐,標準段設9道支撐,第2、4和7道分別為800×1000、1000×1000和1200×1000混凝土支撐,其余均為Φ609×16鋼支撐,第3、5道支撐有移撐。

1.3.3地基加固

地基加固采用高壓旋噴樁局部抽條加固,標準段加固范圍為第六道鋼支撐中心以下3米及坑底下3米,加固強度為qu≥1.2MPa。

2數值模擬分析

2.1計算模型

結合監測點位置計算斷面取[M-7]軸×[14]軸處,此處基坑寬度為31.2m左右,最大開挖深度為24.00m。根據工程經驗,基坑開挖寬度影響范圍為開挖深度的3~4倍,基坑開挖深度的影響范圍為開挖深度的2~4倍。計算模型可按此取水平方向上長度為75.6m,豎直方向上深度取為60m。

2.2單元模擬

數值模擬中土體采用平面應變15節點2-D等參土體(soil)單元;圍護結構地下連續墻采用板樁墻(Plates)單元來模擬;支撐結構按照抗壓構件(Anchors)來考慮;土與結構按特殊接觸面(Interfaces)單元處理。

2.3邊界條件

基坑開挖過程中,數值模擬中的位移邊界條件:數值計算中地表為自由邊界條件;模型左右兩側邊界的側向位移限制為零;模型底部邊界的豎向位移和水平位移均限制為零。

2.4計算工況

①施工此范圍內的地下墻結構及地基加固、相應灌注樁、格構柱。

②沿基坑深度從上至下挖土至相應支撐頂部,然后及時掏槽開挖澆筑混凝土支撐或架設鋼支撐,直到挖至下一層板梁下,架設第三道鋼支撐,澆筑下一層部分板帶并架設鋼筋砼支撐,中部預留施工階段出土孔。

③待下一層板帶及其鋼筋砼支撐達到設計強度后,開挖至第四道鋼支撐處。

④及時架設第四道鋼支撐(將第三道鋼支撐移至第四道鋼支撐處),然后開挖至下二層板梁下,架設第五道鋼支撐(備一道鋼支撐),澆筑下二層部分板帶并架設鋼筋砼支撐,中部預留施工階段出土孔。

⑤待下二層板帶及其鋼筋砼支撐達到設計強度后,開挖至第六道支撐處。

⑥及時架設第六道鋼支撐(將第五道鋼支撐的備撐移至第六道鋼支撐處),然后開挖至坑底。

⑦做素砼墊層并澆筑砼底板,底板達到強度后不得拆除支撐。

2.5土體計算參數

由于本構模型的不同,土體主要計算參數的設置也不同。巖土工程分析計算中,MC本構模型經常使用,但其不能模擬土的一些特殊形為特性,而HS模型可以體現初次加載和卸載-再加載之間的剛度差別。本文分別采用以上兩種土體本構模型進行模擬計算。

2.5.1 MC土體模型

在PLAXIS程序當中MC模型,共需要五個參數楊氏模量E、泊桑比υ、內聚力С、內摩擦角φ、剪脹角ψ。根據PLAXIS材料手冊,粘土剪脹角ψ≈0,泊桑比С一般取0.15~0.25;內聚力С、內摩擦角ψ為土體強度參數,根據地質勘查報告取用;楊氏模量E為土體的剛度參數,可分為初始切線模量Ei、一點切線模量Etan、割線模量Esec和回彈模量Eur。其中,割線模量Esec代表土體平均剛度,多作為楊氏模量E。0

2.5.2 HS土體模型

Hardening-Soil模型采用Mohr-Coulomb破壞準則,主要涉及到剛度參數壓縮模量、參考割線剛度、參考卸荷再加荷模量、卸載再加載泊松比Vur等。

壓縮模量:根據地質勘察報告或相關技術標準結合經驗選取;

參考割線剛度:按照正常固結粘土,取 (1~2);

參考卸荷再加荷模量:根據相關工程經驗并結合Plaxis中默認缺省關系,取。

卸載再加載泊松比Vur:對砂性土取Vur=0.15,粘性土取Vur=0.20。 [2][3]

2.5.3水泥土加固土體參數

考慮到本工程坑底加固為局部抽條加固,計算模型可從安全角度出發不考慮土體加固。如為滿堂加固需考慮水泥土加固影響時加固后水泥土粘聚力c=0.2qu,內摩擦角φ取30°;初始割線模量Ei=E50=(60~154)qu。[2]0

2.6支護結構計算參數

2.6.1地下連續墻

因此HS模型的數據模擬結果更為真實。

3數值模擬計算結果評價

由2知,HS模型比MC模型可以給出更為符合實際情況的模擬結果,因此,對數值模擬計算結果的評價可僅比較HS模型計算得到結果與實際監測數據、規范經驗形式的結果。

3.1.1規范控制值與經驗預估0

基坑保護等級為一級時,(1)圍護結構最大側移控制指標為0.18%H,為43.2;(2)坑外地表最大沉降控制指標為0.15%H,為36.0。

3.1.2監測布置與監測數據

基坑部分監測項目與監測點開挖至基坑設計標高時,(1)坑內隆起(K1)監測結果為19.90;(2)坑外地表沉降監測數據結果最大值為19.90;(3)地下連續墻水平位移曲線最大值為50.61,已超過報警值。

3.1.3數值模擬計算(HS模型)結果的評價

(1)坑外地表沉降

根據HS模型數據模擬計算結果,由PLAXIS程序導出圖8(b)坑外地表沉降Uy的數據表,并形成曲線圖,疊加沉降監測點數據得到圖12。由圖可知,數值模擬坑外地表沉降曲線與監測數據點的分布比較吻合,且比較吻合規范經驗公式沉降曲線的形態。

坑外地表沉降數值模擬曲線與沉降監測點比較圖

(2)地下連續墻水平位移

采用HS模型數據模擬計算地下連續墻的水平位移小于實際監測值,原因:(1)數值模擬計算過程鋼筋混凝土支撐剛度按照設計值取用,實際基坑開挖施工時并非在結構梁板達到100%強度后才開始下層土施工;(2)數值模擬鋼支撐掏槽開挖較為理想狀態,實際掏槽開挖局部土層還是會產生短時的“局部缺撐”狀態。而地下連續墻的最大水平位移的位置,數值模擬(21.75m)與實際監測值(24.00m)略有差距,但其符合文獻[2]上海地區地鐵基坑統計結果,即“20m以上的基坑圍護最大變形值一般位于開挖面以上,平均值0.9h深度處”。

(3)坑內隆起

很明顯坑內隆起的實際監測值小于數值模擬結果(73.09m),主要原因是簡化計算時未考慮結構梁板局部逆作先行澆筑后自重以及局部土體加固附加荷載的壓土作用。

4結論

(1)以PLAXIS巖土工程軟件采用HS土體模型對上海軟土基坑工程進行數值模擬可以得到較為符合實際情況的結果,可以此評估基坑開挖的變形情況以及對周邊環境的影響。

(2)采用鋼筋混凝土支撐的板式支護體系圍護結構的基坑工程,施工過程中需要確保支撐達到設計要求強度方可進行下層土體開挖施工,否則可能引起圍護結構水平位移超限值。

(3)逆作法澆筑的結構梁板自重以及坑底加固作為附加荷載可以有效的抑制坑內隆起量,由于缺少具體先行澆筑結構范圍,故本文未作相關的比較計算。

參考文獻:

[1]上海市勘察設計行業協會,上海現代建筑設計(集團)有限公司,上海建工(集團)有限公司主編.DG/TJ08-61-2010.上海市工程建設規范《基坑工程技術規范》.上海,2010

[2]劉國彬,王衛東主編.基坑工程手冊(第二版).北京:中國建筑工業出版社,2009

[3]北京金土木軟件技術有限公司.PLAXIS巖土工程軟件使用指南.北京:人民交通出版社,2010

作者簡歷:

篇8

一、實驗3.1

題目:

考慮線性方程組,,,編制一個能自動選取主元,又能手動選取主元的求解線性代數方程組的Gauss消去過程。

(1)取矩陣,,則方程有解。取計算矩陣的條件數。分別用順序Gauss消元、列主元Gauss消元和完全選主元Gauss消元方法求解,結果如何?

(2)現選擇程序中手動選取主元的功能,每步消去過程都選取模最小或按模盡可能小的元素作為主元進行消元,觀察并記錄計算結果,若每步消去過程總選取按模最大的元素作為主元,結果又如何?分析實驗的結果。

(3)取矩陣階數n=20或者更大,重復上述實驗過程,觀察記錄并分析不同的問題及消去過程中選擇不同的主元時計算結果的差異,說明主元素的選取在消去過程中的作用。

(4)選取其他你感興趣的問題或者隨機生成的矩陣,計算其條件數,重復上述實驗,觀察記錄并分析實驗的結果。

1.

算法介紹

首先,分析各種算法消去過程的計算公式,

順序高斯消去法:

第k步消去中,設增廣矩陣中的元素(若等于零則可以判定系數矩陣為奇異矩陣,停止計算),則對k行以下各行計算,分別用乘以增廣矩陣的第行并加到第行,則可將增廣矩陣中第列中以下的元素消為零;重復此方法,從第1步進行到第n-1步,則可以得到最終的增廣矩陣,即;

列主元高斯消去法:

第k步消去中,在增廣矩陣中的子方陣中,選取使得,當時,對中第行與第行交換,然后按照和順序消去法相同的步驟進行。重復此方法,從第1步進行第n-1步,就可以得到最終的增廣矩陣,即;

完全主元高斯消去法:

第k步消去中,在增廣矩陣中對應的子方陣中,選取使得,若或,則對中第行與第行、第列與第列交換,然后按照和順序消去法相同的步驟進行即可。重復此方法,從第1步進行到第n-1步,就可以得到最終的增廣矩陣,即;

接下來,分析回代過程求解的公式,容易看出,對上述任一種消元法,均有以下計算公式:

2.

實驗程序的設計

一、輸入實驗要求及初始條件;

二、計算系數矩陣A的條件數及方程組的理論解;

三、對各不同方法編程計算,并輸出最終計算結果。

3.

計算結果及分析

(1)

先計算系數矩陣的條件數,結果如下,

可知系數矩陣的條件數較大,故此問題屬于病態問題,

b或A的擾動都可能引起解的較大誤差;

采用順序高斯消去法,計算結果為:

最終解為x=(1.000000000000000,

1.000000000000000,

1.000000000000000,

1.000000000000001,

0.999999999999998,

1.000000000000004,

0.999999999999993,

1.000000000000012,

0.999999999999979,

1.000000000000028)T

使用無窮范數衡量誤差,得到=2.842170943040401e-14,可以發現,采用順序高斯消元法求得的解與精確解之間誤差較小。通過進一步觀察,可以發現,按照順序高斯消去法計算時,其選取的主元值和矩陣中其他元素大小相近,因此順序高斯消去法方式并沒有對結果造成特別大的影響。

若采用列主元高斯消元法,則結果為:

最終解為x=(1.000000000000000,

1.000000000000000,

1.000000000000000,

1.000000000000000,

1.000000000000000,

1.000000000000000,

1.000000000000000,

1.000000000000000,

1.000000000000000,

1.000000000000000)T

同樣使用無窮范數衡量誤差,有=0;

若使用完全主元高斯消元法,則結果為

最終解x=(1.000000000000000,

1.000000000000000,

1.000000000000000,

1.000000000000000,

1.000000000000000,

1.000000000000000,

1.000000000000000,

1.000000000000000,

1.000000000000000,

1.000000000000000)T

同樣使用無窮范數衡量誤差,有=0;

(2)

若每步都選取模最小或盡可能小的元素為主元,則計算結果為

最終解x=(1.000000000000000

1.000000000000000

1.000000000000000

1.000000000000001

0.999999999999998

1.000000000000004

0.999999999999993

1.000000000000012

0.999999999999979

1.000000000000028)T

使用無窮范數衡量誤差,有為2.842170943040401e-14;而完全主元消去法的誤差為=0。

從(1)和(2)的實驗結果可以發現,列主元消去法和完全主元消去法都得到了精確解,而順序高斯消去法和以模盡量小的元素為主元的消去法沒有得到精確解。在后兩種消去法中,由于程序計算時的舍入誤差,對最終結果產生了一定的影響,但由于方程組的維度較低,并且元素之間相差不大,所以誤差仍比較小。

為進一步分析,計算上述4種方法每步選取的主元數值,并列表進行比較,結果如下:

第n次消元

順序

列主元

完全主元

模最小

1

6.000000000000000

8

8

6.000000000000000

2

4.666666666666667

8

8

4.666666666666667

3

4.285714285714286

8

8

4.285714285714286

4

4.133333333333333

8

8

4.133333333333333

5

4.064516129032258

8

8

4.064516129032258

6

4.031746031746032

8

8

4.031746031746032

7

4.015748031496063

8

8

4.015748031496063

8

4.007843137254902

8

8

4.007843137254902

9

4.003913894324853

8

8

4.003913894324853

10

4.001955034213099

0.015617370605469

0.015617370605469

4.001955034213099

從上表可以發現,對這個方程組而言,順序高斯消去選取的主元恰好事模盡量小的元素,而由于列主元和完全主元選取的元素為8,與4在數量級上差別小,所以計算過程中的累積誤差也較小,最終4種方法的輸出結果均較為精確。

在這里,具體解釋一下順序法與模最小法的計算結果完全一致的原因。該矩陣在消元過程中,每次選取主元的一列只有兩個非零元素,對角線上的元素為4左右,而其正下方的元素為8,該列其余位置的元素均為0。在這樣的情況下,默認的主元也就是該列最小的主元,因此兩種方法所得到的計算結果是一致的。

理論上說,完全高斯消去法的誤差最小,其次是列主元高斯消去法,而選取模最小的元素作為主元時的誤差最大,但是由于方程組的特殊性(元素相差不大并且維度不高),這個理論現象在這里并沒有充分體現出來。

(3)

時,重復上述實驗過程,各種方法的計算結果如下所示,在這里,仍采用無窮范數衡量絕對誤差。

順序高斯消去法

列主元高斯消去

完全主元高斯消去

選取模最小或盡可能小元素作為主元消去

X

1.000000000000000

1.000000000000000

1.000000000000000

1.000000000000001

0.999999999999998

1.000000000000004

0.999999999999993

1.000000000000014

0.999999999999972

1.000000000000057

0.999999999999886

1.000000000000227

0.999999999999547

1.000000000000902

0.999999999998209

1.000000000003524

0.999999999993179

1.000000000012732

0.999999999978173

1.000000000029102

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1.000000000000000

1.000000000000000

1.000000000000000

1.000000000000001

0.999999999999998

1.000000000000004

0.999999999999993

1.000000000000014

0.999999999999972

1.000000000000057

0.999999999999886

1.000000000000227

0.999999999999547

1.000000000000902

0.999999999998209

1.000000000003524

0.999999999993179

1.000000000012732

0.999999999978173

1.000000000029102

2.910205409989430e-11

2.910205409989430e-11

可以看出,此時列主元和完全主元的計算結果仍為精確值,而順序高斯消去和模盡可能小方法仍然產生了一定的誤差,并且兩者的誤差一致。與n=10時候的誤差比相比,n=20時的誤差增長了大約1000倍,這是由于計算過程中舍入誤差的不斷累積所致。所以,如果進一步增加矩陣的維數,應該可以看出更明顯的現象。

(4)

不同矩陣維度下的誤差如下,在這里,為方便起見,選取2-條件數對不同維度的系數矩陣進行比較。

維度

條件數

順序消去

列主元

完全主元

模盡量小

1.7e+3

2.84e-14

2.84e-14

1.8e+6

2.91e-11

2.91e-11

5.7e+7

9.31e-10

9.31e-10

1.8e+9

2.98e-08

2.98e-08

1.9e+12

3.05e-05

3.05e-05

3.8e+16

3.28e+04

3.88e-12

3.88e-12

3.28e+04

8.5e+16

3.52e+13

4.2e-3

4.2e-3

3.52e+13

從上表可以看出,隨著維度的增加,不同方法對計算誤差的影響逐漸體現,并且增長較快,這是由于舍入誤差逐步累計而造成的。不過,方法二與方法三在維度小于40的情況下都得到了精確解,這兩種方法的累計誤差遠比方法一和方法四慢;同樣地,出于與前面相同的原因,方法一與方法四的計算結果保持一致,方法二與方法三的計算結果保持一致。

4.

結論

本文矩陣中的元素差別不大,模最大和模最小的元素并沒有數量級上的差異,因此,不同的主元選取方式對計算結果的影響在維度較低的情況下并不明顯,四種方法都足夠精確。

對比四種方法,可以發現采用列主元高斯消去或者完全主元高斯消去法,可以盡量抑制誤差,算法最為精確。不過,對于低階的矩陣來說,四種方法求解出來的結果誤差均較小。

另外,由于完全選主元方法在選主元的過程中計算量較大,而且可以發現列主元法已經可以達到很高的精確程度,因而在實際計算中可以選用列主元法進行計算。

附錄:程序代碼

clear

clc;

format

long;

%方法選擇

n=input('矩陣A階數:n=');

disp('選取求解方式');

disp('1

順序Gauss消元法,2

列主元Gauss消元法,3

完全選主元Gauss消元法,4

模最小或近可能小的元素作為主元');

a=input('求解方式序號:');

%賦值A和b

A=zeros(n,n);

b=zeros(n,1);

for

i=1:n

A(i,i)=6;

if

i>1

A(i,i-1)=8;

end

if

i

A(i,i+1)=1;

end

end

for

i=1:n

for

j=1:n

b(i)=b(i)+A(i,j);

end

end

disp('給定系數矩陣為:');

A

disp('右端向量為:');

b

%求條件數及理論解

disp('線性方程組的精確解:');

X=(A\b)'

fprintf('矩陣A的1-條件數:

%f

\n',cond(A,1));

fprintf('矩陣A的2-條件數:

%f

\n',cond(A));

fprintf('矩陣A的無窮-條件數:

%f

\n',cond(A,inf));

%順序Gauss消元法

if

a==1

A1=A;b1=b;

for

k=1:n

if

A1(k,k)==0

disp('主元為零,順序Gauss消元法無法進行');

break

end

fprintf('第%d次消元所選取的主元:%g\n',k,A1(k,k))

%disp('此次消元后系數矩陣為:');

%A1

for

p=k+1:n

l=A1(p,k)/A1(k,k);

A1(p,k:n)=A1(p,k:n)-l*A1(k,k:n);

b1(p)=b1(p)-l*b1(k);

end

end

x1(n)=b1(n)/A1(n,n);

for

k=n-1:-1:1

for

w=k+1:n

b1(k)=b1(k)-A1(k,w)*x1(w);

end

x1(k)=b1(k)/A1(k,k);

end

disp('順序Gauss消元法解為:');

disp(x1);

disp('所求解與精確解之差的無窮-范數為');

norm(x1-X,inf)

end

%列主元Gauss消元法

if

a==2

A2=A;b2=b;

for

k=1:n

[max_i,max_j]=find(A2(:,k)==max(abs(A2(k:n,k))));

if

max_i~=k

A2_change=A2(k,:);

A2(k,:)=A2(max_i,:);

A2(max_i,:)=A2_change;

b2_change=b2(k);

b2(k)=b2(max_i);

b2(max_i)=b2_change;

end

if

A2(k,k)==0

disp('主元為零,列主元Gauss消元法無法進行');

break

end

fprintf('第%d次消元所選取的主元:%g\n',k,A2(k,k))

%disp('此次消元后系數矩陣為:');

%A2

for

p=k+1:n

l=A2(p,k)/A2(k,k);

A2(p,k:n)=A2(p,k:n)-l*A2(k,k:n);

b2(p)=b2(p)-l*b2(k);

end

end

x2(n)=b2(n)/A2(n,n);

for

k=n-1:-1:1

for

w=k+1:n

b2(k)=b2(k)-A2(k,w)*x2(w);

end

x2(k)=b2(k)/A2(k,k);

end

disp('列主元Gauss消元法解為:');

disp(x2);

disp('所求解與精確解之差的無窮-范數為');

norm(x2-X,inf)

end

%完全選主元Gauss消元法

if

a==3

A3=A;b3=b;

for

k=1:n

VV=eye(n);

[max_i,max_j]=find(A3(k:n,k:n)==max(max(abs(A3(k:n,k:n)))));

if

numel(max_i)==0

[max_i,max_j]=find(A3(k:n,k:n)==-max(max(abs(A3(k:n,k:n)))));

end

W=eye(n);

W(max_i(1)+k-1,max_i(1)+k-1)=0;

W(k,k)=0;

W(max_i(1)+k-1,k)=1;

W(k,max_i(1)+k-1)=1;

V=eye(n);

V(k,k)=0;

V(max_j(1)+k-1,max_j(1)+k-1)=0;

V(k,max_j(1)+k-1)=1;

V(max_j(1)+k-1,k)=1;

A3=W*A3*V;

b3=W*b3;

VV=VV*V;

if

A3(k,k)==0

disp('主元為零,完全選主元Gauss消元法無法進行');

break

end

fprintf('第%d次消元所選取的主元:%g\n',k,A3(k,k))

%disp('此次消元后系數矩陣為:');

%A3

for

p=k+1:n

l=A3(p,k)/A3(k,k);

A3(p,k:n)=A3(p,k:n)-l*A3(k,k:n);

b3(p)=b3(p)-l*b3(k);

end

end

x3(n)=b3(n)/A3(n,n);

for

k=n-1:-1:1

for

w=k+1:n

b3(k)=b3(k)-A3(k,w)*x3(w);

end

x3(k)=b3(k)/A3(k,k);

end

disp('完全選主元Gauss消元法解為:');

disp(x3);

disp('所求解與精確解之差的無窮-范數為');

norm(x3-X,inf)

end

%模最小或近可能小的元素作為主元

if

a==4

A4=A;b4=b;

for

k=1:n

AA=A4;

AA(AA==0)=NaN;

[min_i,j]=find(AA(k:n,k)==min(abs(AA(k:n,k))));

if

numel(min_i)==0

[min_i,j]=find(AA(k:n,k)==-min(abs(AA(k:n,k:n))));

end

W=eye(n);

W(min_i(1)+k-1,min_i(1)+k-1)=0;

W(k,k)=0;

W(min_i(1)+k-1,k)=1;

W(k,min_i(1)+k-1)=1;

A4=W*A4;

b4=W*b4;

if

A4(k,k)==0

disp('主元為零,模最小Gauss消元法無法進行');

break

end

fprintf('第%d次消元所選取的主元:%g\n',k,A4(k,k))

%A4

for

p=k+1:n

l=A4(p,k)/A4(k,k);

A4(p,k:n)=A4(p,k:n)-l*A4(k,k:n);

b4(p)=b4(p)-l*b4(k);

end

end

x4(n)=b4(n)/A4(n,n);

for

k=n-1:-1:1

for

w=k+1:n

b4(k)=b4(k)-A4(k,w)*x4(w);

end

x4(k)=b4(k)/A4(k,k);

end

disp('模最小Gauss消元法解為:');

disp(x4);

disp('所求解與精確解之差的無窮-范數為');

norm(x4-X,inf)

end

二、實驗3.3

題目:

考慮方程組的解,其中系數矩陣H為Hilbert矩陣:

這是一個著名的病態問題。通過首先給定解(例如取為各個分量均為1)再計算出右端的辦法給出確定的問題。

(1)選擇問題的維數為6,分別用Gauss消去法(即LU分解)、J迭代法、GS迭代法和SOR迭代法求解方程組,其各自的結果如何?將計算結果與問題的解比較,結論如何。

(2)逐步增大問題的維數,仍用上述的方法來解它們,計算的結果如何?計算的結果說明的什么?

(3)討論病態問題求解的算法。

1.

算法設計

對任意線性方程組,分析各種方法的計算公式如下,

(1)Gauss消去法:

首先對系數矩陣進行LU分解,有,則原方程轉化為,令,則原方程可以分為兩步回代求解:

具體方法這里不再贅述。

(2)J迭代法:

首先分解,再構造迭代矩陣,其中

,進行迭代計算,直到誤差滿足要求。

(3)GS迭代法:

首先分解,再構造迭代矩陣

,其中

,進行迭代計算,直到誤差滿足要求。

(4)SOR迭代法:

首先分解,再構造迭代矩陣

,其中,進行迭代計算,直到誤差滿足要求。

2.

實驗過程

一、根據維度n確定矩陣H的各個元素和b的各個分量值;

二、選擇計算方法(

Gauss消去法,J迭代法,GS迭代法,SOR迭代法),對迭代法設定初值,此外SOR方法還需要設定松弛因子;

三、進行計算,直至滿足誤差要求(對迭代法,設定相鄰兩次迭代結果之差的無窮范數小于0.0001;

對SOR方法,設定為輸出迭代100次之后的結果及誤差值),輸出實驗結果。

3.

計算結果及分析

(1)時,問題可以具體定義為

計算結果如下,

Gauss消去法

第1次消元所選取的主元是:1

第2次消元所選取的主元是:0.0833333

第3次消元所選取的主元是:0.00555556

第4次消元所選取的主元是:0.000357143

第5次消元所選取的主元是:2.26757e-05

第6次消元所選取的主元是:1.43155e-06

解得X=(0.999999999999228

1.000000000021937

0.999999999851792

1.000000000385369

0.999999999574584

1.000000000167680)T

使用無窮范數衡量誤差,可得=4.254160357319847e-10;

J迭代法

設定迭代初值為零,計算得到

J法的迭代矩陣B的譜半徑為4.30853>1,所以J法不收斂;

GS迭代法

設定迭代初值為零,計算得到GS法的迭代矩陣G的譜半徑為:0.999998<1,故GS法收斂,經過541次迭代計算后,結果為X=(1.001178105812706

0.999144082651860

0.968929093984902

1.047045569989162

1.027323158370281

0.954352032784608)T

使用無窮范數衡量誤差,有=0.047045569989162;

SOR迭代法

設定迭代初值為零向量,并設定,計算得到SOR法迭代矩陣譜半徑為0.999999433815223,經過100次迭代后的計算結果為

X=(1.003380614145078

0.962420297458423

1.031857023134559

1.061814901289881

1.014037815827164

0.917673642493527)T;

使用無窮范數衡量誤差,有=0.082326357506473;

對SOR方法,可變,改變值,計算結果可以列表如下

迭代次數

100

100

100

100

迭代矩陣的譜半徑

0.999999433815223

0.999998867083155

0.999996830135013

0.999982309342386

X

1.003653917714694

0.974666041209353

1.011814573842440

1.042837929171827

1.017190220902681

0.945462001336268

1.014676015634604

0.896636864424096

1.090444578936265

1.107070542628148

1.006315452225331

0.873244842279255

1.028022215505147

0.790604920509843

1.267167365524072

1.061689730857891

0.990084054872602

0.846005956774467

1.051857392323966

0.653408758549156

1.486449891152510

0.783650360698119

1.349665420488270

0.664202350634588

0.054537998663732

0.126755157720745

0.267167365524072

0.486449891152510

可以發現,松弛因子的取值對迭代速度造成了不同的影響,上述四種方法中,松弛因子=0.5時,收斂相對較快。

綜上,四種算法的結果列表如下:

算法

Gauss消去法

Jacobi法

GS法

SOR法(取)

迭代次數

--

不收斂

541

100

迭代矩陣的譜半徑

--

4.30853

0.999998

0.999999433815223

X

0.999999999999228

1.000000000021937

0.999999999851792

1.000000000385369

0.999999999574584

1.000000000167680

--

1.001178105812706

0.999144082651860

0.968929093984902

1.047045569989162

1.027323158370281

0.954352032784608

1.003380614145078

0.962420297458423

1.031857023134559

1.061814901289881

1.014037815827164

0.917673642493527

4.254160357319847e-10

--

0.047045569989162

0.082326357506473

計算可得,矩陣H的條件數為>>1,所以這是一個病態問題。由上表可以看出,四種方法的求解都存在一定的誤差。下面分析誤差的來源:

LU分解方法的誤差存在主要是由于Hilbert矩陣各元素由分數形式轉換為小數形式時,不能除盡情況下會出現舍入誤差,在進行LU分解時也存在這個問題,所以最后得到的結果不是方程的精確解

,但結果顯示該方法的誤差非常小;

Jacobi迭代矩陣的譜半徑為4.30853,故此迭代法不收斂;

GS迭代法在迭代次數為541次時得到了方程的近似解,其誤差約為0.05

,比較大。GS迭代矩陣的譜半徑為0.999998,很接近1,所以GS迭代法收斂速度較慢;

SOR迭代法在迭代次數為100次時誤差約為0.08,誤差較大。SOR迭代矩陣的譜半徑為0.999999,也很接近1,所以時SOR迭代法收斂速度不是很快,但是相比于GS法,在迭代速度方面已經有了明顯的提高;另外,對不同的,SOR方法的迭代速度會相應有變化,如果選用最佳松弛因子,可以實現更快的收斂;

(2)

考慮不同維度的情況,時,

算法

Gauss消去

J法

GS法

SOR法(w=0.5)

計算結果

0.999999999966269

1.000000001809060

0.999999976372676

1.000000127868103

0.999999655764116

1.000000487042164

0.999999653427125

1.000000097774747

--

0.997829221945349

1.037526203106839

0.896973261976015

1.020345136375036

1.069071166932576

1.051179995036612

0.996814757185364

0.926343237325536

1.012938972275634

0.939713836855171

0.988261805073081

1.064637090535154

1.083633345093974

1.045060177115514

0.970603024778469

0.880212649657655

迭代次數

--

--

356

100

譜半徑

--

6.04213

1

0.999999999208776

--

時,

算法

Gauss消去法

Jacobi法

GS法

SOR法(w=0.5)

計算結果

0.999999994751197

1.000000546746354

0.999985868343700

1.000157549468631

0.999063537004329

1.003286333127805

0.992855789229370

1.009726486881556

0.991930155925812

1.003729850349020

0.999263885025643

--

0.997442073306751

1.019069909358409

0.992278247786739

0.956441858313237

0.986420333361353

1.021301611956591

1.038701026806608

1.035942773498533

1.016693763149422

0.985716454946250

0.947181287500697

1.015776039786572

0.966429147064483

0.928674868157910

0.996931548482727

1.066737803913537

1.097792430596468

1.088030440855069

1.048110620811192

0.989919418572424

0.922840813704142

0.853252417221922

迭代次數

--

--

1019

100

譜半徑

--

8.64964

1

0.999999999999966

--

算法

Gauss消去法

Jacobi法

GS法

SOR法(w=0.5)

計算結果

0.999999968723799

1.000002417094896

0.999994922439769

0.998640261957706

1.025668111139297

0.781933485305194

2.066840925345890

-2.279036697492128

7.532393125791018

-7.355047567109081

7.380667063930484

-1.129041418095142

0.425748747257065

1.733284233971601

0.817952344733362

--

不收斂

1.004385740641590

1.046346067877554

0.907178347707729

0.905763455949053

0.972521802788457

1.043731445367903

1.091535169448764

1.110090020703944

1.103129684679768

1.077168651146056

1.038514736265176

0.992259990832041

0.942151390478003

0.890785366684065

0.839876442493220

迭代次數

--

--

262

100

譜半徑

--

6.04213

>1

1.000000000000000

8.355047567109082

--

--

0.160123557506780

分析以上結果可以發現,隨著n值的增加,Gauss消去法誤差逐漸增大,而且誤差增大的速度很快,在維數小于等于10情況下,Gauss消去法得到的結果誤差較小;但當維數達到15時,計算結果誤差已經達到精確解的很多倍;

J法迭代不收斂,無論n如何取值,其譜半徑始終大于1,因而J法不收斂,所以J迭代法不能用于Hilbert矩陣的求解;

對于GS迭代法和SOR迭代法,兩種方法均收斂,GS迭代法是SOR迭代法松弛因子取值為1的特例,SOR方法受到取值的影響,會有不同的收斂情況。可以得出GS迭代矩陣的譜半徑小于1但是很接近1,收斂速度很慢。雖然隨著維數的增大,所需迭代的次數逐漸減少,但是當維數達到15的時候,GS法已經不再收斂。因此可以得出結論,GS迭代方法在Hilbert矩陣維數較低時,能夠在一定程度上滿足迭代求解的需求,不過迭代的速度很慢。另外,隨著矩陣維數的增加,

SOR法的誤差水平基本穩定,而且誤差在可以接受的范圍之內。

經過比較可以得出結論,如果求解較低維度的Hibert矩陣問題,Gauss消去法、GS迭代法和SOR迭代法均可使用,且Gauss消去法的結果精確度較高;如果需要求解較高維度的Hibert矩陣問題,只有采用SOR迭代法。

(3)

系數矩陣的條件數較大時,為病態方程。由實驗可知,Gauss法在解上述方程時,結果存在很大的誤差。而對于收斂的迭代法,可以通過選取最優松弛因子的方法來求解,雖然迭代次數相對較多,但是結果較為精確。

總體來看,對于一般病態方程組的求解,可以采用以下方式:

1.

低維度下采用Gauss消去法直接求解是可行的;

Jacobi迭代方法不適宜于求解病態問題;

GS迭代方法可以解決維數較低的病態問題,但其譜半徑非常趨近于1,導致迭代算法收斂速度很慢,維數較大的時候,GS法也不再收斂;

SOR方法較適合于求解病態問題,特別是矩陣維數較高的時候,其優勢更為明顯。

2.

采用高精度的運算,如選用雙倍或更多倍字長的運算,可以提高收斂速度;

3.

可以對原方程組作某些預處理,從而有效降低系數矩陣的條件數。

4.

實驗結論

(1)對Hibert矩陣問題,其條件數會隨著維度的增加迅速增加,病態性會越來越明顯;在維度較低的時候,Gauss消去法、GS迭代法和SOR迭代法均可使用,且可以優先使用Gauss消去法;如果需要求解較高維度的Hibert矩陣問題,只有SOR迭代法能夠求解。

(2)SOR方法比較適合于求解病態問題,特別是矩陣維數較高的時候,其優點更為明顯。從本次實驗可以看出,隨著矩陣維數的增大,SOR方法所需的迭代次數減少,而且誤差基本穩定,是解決病態問題的適宜方法。

附錄:程序代碼

clear

all

clc;

format

long;

%矩陣賦值

n=input('矩陣H的階數:n=');

for

i=1:n

for

j=1:n

H(i,j)=1/(i+j-1);

end

end

b=H*ones(n,1);

disp('H矩陣為:');

H

disp('向量b:');

b

%方法選擇

disp('選取求解方式');

disp('1

Gauss消去法,2

J迭代法,3

GS迭代法,4

SOR迭代法');

a=input('求解方式序號:');

%Gauss消去法

if

a==1;

H1=H;b1=b;

for

k=1:n

if

H1(k,k)==0

disp('主元為零,Gauss消去法無法進行');

break

end

fprintf('第%d次消元所選取的主元是:%g\n',k,H1(k,k))

for

p=k+1:n

m5=-H1(p,k)/H1(k,k);

H1(p,k:n)=H1(p,k:n)+m5*H1(k,k:n);

b1(p)=b1(p)+m5*b1(k);

end

end

x1(n)=b1(n)/H1(n,n);

for

k=n-1:-1:1

for

v=k+1:n

b1(k)=b1(k)-H1(k,v)*x1(v);

end

x1(k)=b1(k)/H1(k,k);

end

disp('Gauss消去法解為:');

disp(x1);

disp('解與精確解之差的無窮范數');

norm((x1-a),inf)

end

D=diag(diag(H));

L=-tril(H,-1);

U=-triu(H,1);

%J迭代法

if

a==2;

%給定初始x0

ini=input('初始值設定:x0=');

x0(:,1)=ini*diag(ones(n));

disp('初始解向量為:');

x0

xj(:,1)=x0(:,1);

B=(D^(-1))*(L+U);

f=(D^(-1))*b;

fprintf('(J法B矩陣譜半徑為:%g\n',vrho(B));

if

vrho(B)

for

m2=1:5000

xj(:,m2+1)=B*xj(:,m2)+fj;

if

norm((xj(:,m2+1)-xj(:,m2)),inf)

break

end

end

disp('J法計算結果為:');

xj(:,m2+1)

disp('解與精確解之差的無窮范數');

norm((xj(:,m2+1)-diag(ones(n))),inf)

disp('J迭代法迭代次數:');

m2

else

disp('由于B矩陣譜半徑大于1,因而J法不收斂');

end

end

%GS迭代法

if

a==3;

%給定初始x0

ini=input('初始值設定:x0=');

x0(:,1)=ini*diag(ones(n));

disp('初始解向量為:');

x0

xG(:,1)=x0(:,1);

G=inv(D-L)*U;

fG=inv(D-L)*b;

fprintf('GS法G矩陣譜半徑為:%g\n',vrho(G));

if

vrho(G)

for

m3=1:5000

xG(:,m3+1)=G*xG(:,m3)+fG;

if

norm((xG(:,m3+1)-xG(:,m3)),inf)

break;

end

end

disp('GS迭代法計算結果:');

xG(:,m3+1)

disp('解與精確解之差的無窮范數');

norm((xG(:,m3+1)-diag(ones(n))),inf)

disp('GS迭代法迭代次數:');

m3

else

disp('由于G矩陣譜半徑大于1,因而GS法不收斂');

end

end

%SOR迭代法

if

a==4;

%給定初始x0

ini=input('初始值設定:x0=');

x0(:,1)=ini*diag(ones(n));

disp('初始解向量為:');

x0

A=H;

for

i=1:n

b(i)=sum(A(i,:));

end

x_star=ones(n,1);

format

long

w=input('松弛因子:w=');

Lw=inv(D-w*L)*((1-w)*D+w*U);

f=w*inv(D-w*L)*b;

disp('迭代矩陣的譜半徑:')

p=vrho(Lw)

time_max=100;%迭代次數

x=zeros(n,1);%迭代初值

for

i=1:time_max

x=Lw*x+f;

end

disp('SOR迭代法得到的解為');

x

disp('解與精確解之差的無窮范數');

norm((x_star-x),inf)

end

pause

三、實驗4.1

題目:

對牛頓法和擬牛頓法。進行非線性方程組的數值求解

(1)用上述兩種方法,分別計算下面的兩個例子。在達到精度相同的前提下,比較其迭代次數、CPU時間等。

(2)取其他初值,結果又如何?反復選取不同的初值,比較其結果。

(3)總結歸納你的實驗結果,試說明各種方法適用的問題。

1.

算法設計

對需要求解的非線性方程組而言,牛頓法和擬牛頓法的迭代公式如下,

(1)牛頓法:

牛頓法為單步迭代法,需要取一個初值。

(2)擬牛頓法:(Broyden秩1法)

其中,

擬牛頓法不需要求解的導數,因此節省了大量的運算時間,但需要給定矩陣的初值,取為。

2.

實驗過程

一、輸入初值;

二、根據誤差要求,按公式進行迭代計算;

三、輸出數據;

3.

計算結果及分析

(1)首先求解方程組(1),在這里,設定精度要求為,

方法

牛頓法

擬牛頓法

初始值

計算結果X

x1

0.905539609855914

0.905539493347151

x2

1.085219168370031

1.085218882394940

x3

0.672193668718306

0.672193293825304

迭代次數

3

13

CPU計算時間/s

3.777815

2.739349

可以看出,在初始值相同情況下,牛頓法和擬牛頓法在達到同樣計算精度情況下得到的結果基本相同,但牛頓法的迭代次數明顯要少一些,但是,由于每次迭代都需要求解矩陣的逆,所以牛頓法每次迭代的CPU計算時間更長。

之后求解方程組(2),同樣設定精度要求為

方法

牛頓法

擬牛頓法

初始值

計算結果X

x1

0.500000000009699

0.499999994673600

x2

0.000000001063428

0.000000572701856

x3

-0.523598775570483

-0.523598762908871

迭代次數

4

12

CPU計算時間/s

2.722437

3.920195

同樣地,可以看出,在初始值相同情況下,牛頓法和擬牛頓法在達到同樣計算精度情況下得到的結果是基本相同的,但牛頓法的迭代次數明顯要少,但同樣的,由于每次迭代中有求解矩陣的逆的運算,牛頓法每次迭代的CPU計算時間較長。

(2)對方程組(1),取其他初值,計算結果列表如下,同樣設定精度要求為

初始值

方法

牛頓法

擬牛頓法

計算結果

0.905539609855914

1.085219168370031

0.672193668718305

9.211852562357894

-5.574005400255346

18.118173639381205

迭代次數

4

58

CPU計算時間/s

3.907164

4.818019

計算結果

0.905539609855914

1.085219168370031

0.672193668718305

9.211849682114591

-5.573999165383549

18.118182491302807

迭代次數

4

2735

CPU計算時間/s

8.127286

5.626023

計算結果

0.905539609855914

1.085219168370031

0.672193668718306

0.905539493347151

1.085218882394940

0.672193293825304

迭代次數

3

13

CPU計算時間/s

3.777815

2.739349

計算結果

0.905539609855914

1.085219168370031

0.672193668718306

0.905548384395773

1.085220084502458

0.672219278250136

迭代次數

4

188

CPU計算時間/s

3.835697

2.879070

計算結果

9.211852448563722

-5.574005155684773

18.118173976918605

Matlab警告矩陣接近奇異值,程序進入長期循環計算中

迭代次數

19

--

CPU計算時間/s

4.033868

--

計算結果

0.905539609857335

1.085219168371536

0.672193668734922

Matlab警告矩陣接近奇異值,程序進入長期循環計算中

迭代次數

13

--

CPU計算時間/s

12.243263

--

從上表可以發現,方程組(1)存在另一個在(9.2,

-5.6,

18.1)T附近的不動點,初值的選取會直接影響到牛頓法和擬牛頓法最后的收斂點。

總的來說,設定的初值離不動點越遠,需要的迭代次數越多,因而初始值的選取非常重要,合適的初值可以更快地收斂,如果初始值偏離精確解較遠,會出現迭代次數增加直至無法收斂的情況;

由于擬牛頓法是一種近似方法,擬牛頓法需要的的迭代次數明顯更多,而且收斂情況不如牛頓法好(初值不夠接近時,甚至會出現奇異矩陣的情況),但由于牛頓法的求解比較復雜,計算時間較長;

同樣的,對方程組(2),取其他初值,計算結果列表如下,同樣設定精度要求為

初始值

方法

牛頓法

擬牛頓法

計算結果

0.500000000009699

0.000000001063428

-0.523598775570483

0.499999994673600

0.000000572701856

-0.523598762908871

迭代次數

4

12

CPU計算時間/s

2.722437

3.920195

計算結果

0.500000000011085

0.000000001215427

-0.523598775566507

0.331099293590753

-0.260080189442266

76.532092226437129

迭代次數

5

57

CPU計算時間/s

5.047111

5.619752

計算結果

0.500000000000916

0.000000000100410

-0.523598775595672

1.0e+02

*

-0.001221250784775

-0.000149282572886

1.754185881622843

迭代次數

6

62

CPU計算時間/s

3.540668

3.387829

計算結果

0.500000000000152

0.000000000016711

-0.523598775597862

1.0e+04

*

0.000026556790770

-0.000020396841295

1.280853105748650

迭代次數

7

55

CPU計算時間/s

2.200571

2.640901

計算結果

0.500000000000005

0.000000000000503

-0.523598775598286

矩陣為奇異值,無法輸出準確結果

迭代次數

8

--

CPU計算時間/s

1.719072

--

計算結果

0.500000000002022

0.000000000221686

-0.523598775592500

矩陣為奇異值,無法輸出準確結果

迭代次數

149

--

CPU計算時間/s

2.797116

--

計算結果

矩陣為奇異值,無法輸出準確結果

矩陣為奇異值,無法輸出準確結果

迭代次數

--

--

CPU計算時間/s

--

--

在這里,與前文類似的發現不再贅述。

從這里看出,牛頓法可以在更大的區間上實現壓縮映射原理,可以在更大的范圍上選取初值并最終收斂到精確解附近;

在初始值較接近于不動點時,牛頓法和擬牛頓法計算所得到的結果是基本相同的,雖然迭代次數有所差別,但計算總的所需時間相近。

(3)

牛頓法在迭代過程中用到了矩陣的求逆,其迭代收斂的充分條件是迭代滿足區間上的映內性,對于矩陣的求逆過程比較簡單,所以在較大區間內滿足映內性的問題適合應用牛頓法進行計算。一般而言,對于函數單調或者具有單值特性的函數適合應用牛頓法,其對初始值敏感程度較低,算法具有很好的收斂性。

另外,需要說明的是,每次計算給出的CPU時間與計算機當時的運行狀態有關,同時,不同代碼的運行時間也不一定一致,所以這個數據并不具有很大的參考價值。

4.

實驗結論

對牛頓法和擬牛頓法,都存在初始值越接近精確解,所需的迭代次數越小的現象;

在應用上,牛頓法和擬牛頓法各有優勢。就迭代次數來說,牛頓法由于更加精確,所需的迭代次數更少;但就單次迭代來說,牛頓法由于計算步驟更多,且計算更加復雜,因而每次迭代所需的時間更長,而擬牛頓法由于采用了簡化的近似公式,其每次迭代更加迅速。當非線性方程組求逆過程比較簡單時,如方程組1的情況時,擬牛頓法不具有明顯的優勢;而當非線性方程組求逆過程比較復雜時,如方程組2的情況,擬牛頓法就可以體現出優勢,雖然循環次數有所增加,但是CPU耗時反而更少。

另外,就方程組壓縮映射區間來說,一般而言,對于在區間內函數呈現單調或者具有單值特性的函數適合應用牛頓法,其對初始值敏感程度較低,使算法具有很好的收斂性;而擬牛頓法由于不需要在迭代過程中對矩陣求逆,而是利用差商替代了對矩陣的求導,所以即使初始誤差較大時,其倒數矩陣與差商偏差也較小,所以對初始值的敏感程度較小。

附錄:程序代碼

%方程1,牛頓法

tic;

format

long;

%%初值

disp('請輸入初值');

a=input('第1個分量為:');

b=input('第2個分量為:');

c=input('第3個分量為:');

disp('所選定初值為');

x=[a;b;c]

%%誤差要求

E=0.0001;

%%迭代

i=0;

e=2*E;

while

e>E

F=[12*x(1)-x(2)^2-4*x(3)-7;x(1)^2+10*x(2)-x(3)-11;x(2)^3+10*x(3)-8];

f=[12,-2*x(2),-4;2*x(1),10,-1;0,3*x(2)^2,10];

det_x=((f)^(-1))*(-F);

x=x+det_x;

e=max(norm(det_x));

i=i+1;

end

disp('迭代次數');

i

disp('迭代次數');

x

toc;

%方程1,擬牛頓法

tic;

format

long;

%%初值

%%初值

disp('請輸入初值');

a=input('第1個分量為:');

b=input('第2個分量為:');

c=input('第3個分量為:');

disp('所選定初值為');

x0=[a;b;c]

%%誤差要求

E=0.0001;

%%迭代

i=0;

e=2*E;

A0=eye(3);

while

e>E

F0=[12*x0(1)-x0(2)^2-4*x0(3)-7;x0(1)^2+10*x0(2)-x0(3)-11;x0(2)^3+10*x0(3)-8];

x1=x0-A0^(-1)*F0;

s=x1-x0;

F1=[12*x1(1)-x1(2)^2-4*x1(3)-7;x1(1)^2+10*x1(2)-x1(3)-11;x1(2)^3+10*x1(3)-8];

y=F1-F0;

A1=A0+(y-A0*s)*s'/(s'*s);

x0=x1;

A0=A1;

e=max(norm(s));

i=i+1;

end

disp('迭代次數');

i

disp('迭代次數');

x0

toc;

%方程2,牛頓法

tic;

format

long;

%%初值

disp('請輸入初值');

a=input('第1個分量為:');

b=input('第2個分量為:');

c=input('第3個分量為:');

disp('所選定初值為');

x=[a;b;c]

%%誤差要求

E=0.0001;

%%迭代

i=0;

e=2*E;

while

e>E

F=[3*x(1)-cos(x(2)*x(3))-0.5;x(1)^2-81*(x(2)+0.1)^2+sin(x(3))+1.06;exp(1)^(-x(1)*x(2))+20*x(3)+(10*pi-3)/3];

f=[3,x(3)*sin(x(2)*x(3)),x(2)*sin(x(2)*x(3));2*x(1),-162*x(2)-81/5,cos(x(3));-x(2)*exp(1)^(-x(1)*x(2)),-x(1)*exp(1)^(-x(1)*x(2)),20];

det_x=((f)^(-1))*(-F);

x=x+det_x;

e=max(norm(det_x));

i=i+1;

end

disp('迭代次數');

i

disp('迭代次數');

x

toc;

%方程2,擬牛頓法

tic;

format

long;

%%初值

%%初值

disp('請輸入初值');

a=input('第1個分量為:');

b=input('第2個分量為:');

c=input('第3個分量為:');

disp('所選定初值為');

x0=[a;b;c]

%%誤差要求

E=0.0001;

%%迭代

i=0;

e=2*E;

A0=eye(3);

while

e>E

F0=[3*x0(1)-cos(x0(2)*x0(3))-0.5;x0(1)^2-81*(x0(2)+0.1)^2+sin(x0(3))+1.06;exp(1)^(-x0(1)*x0(2))+20*x0(3)+(10*pi-3)/3];

x1=x0-A0^(-1)*F0;

s=x1-x0;

F1=[3*x1(1)-cos(x1(2)*x1(3))-0.5;x1(1)^2-81*(x1(2)+0.1)^2+sin(x1(3))+1.06;exp(1)^(-x1(1)*x1(2))+20*x1(3)+(10*pi-3)/3];

y=F1-F0;

A1=A0+(y-A0*s)*s'/(s'*s);

x0=x1;

A0=A1;

e=max(norm(s));

i=i+1;

end

disp('迭代次數');

i

disp('迭代次數');

篇9

關鍵詞:教學輔助;非線性方程求根;用戶圖形界面

中圖分類號:TP319文獻標識碼:A文章編號:1009-3044(2012)13-3140-03

The Application of MATLAB GUI in Numerical Analysis Course Teaching

CHEN Li-hong, ZHOU Zhi-gang

(Department of Mathematics and Computer College, Wuhan Textile University, Wuhan 430073, China)

Abstract:According to the difficult in numerical analysis course teaching, it is discussed that the MATLAB GUI(Graphical User Interfaces,GUI) application in numerical analysis course teaching with solving nonlinear equations as example. the view is proposed that designing MATLAB GUI for numerical analysis will fully arouse teachers and students both aspects of the enthusiasm to improve quality of numerical analysis course combined with MATLAB GUI function.

Key words:auxiliary teaching;solving nonlinear equations;MATLAB GUI

《數值分析》是理工科院校數學、力學、物理、計算機等專業的教材,它在專業課程體系中占有重要地位。該課程的主要任務是研究用計算機解決數學問題的數值方法及其理論,它的內容包括函數的數值逼近、數值微分與數值積分、非線性方程數值解、數值線性代數、微分方程數值解等,這些均與計算機緊密結合在一起。如果采用傳統的教學方式,一方面需要花大量的時間在黑板上繪圖和計算,在有限的學時內無法進行內容的擴展;另一方面學生理解和接授知識時感覺枯燥、難度大。MATLAB軟件的推出為該門課的教學提供了有利工具,利用MATLAB強大的繪圖及仿真功能,可以將抽象的內容以形象的圖形表示出來,既可演示復雜系統的未知結果,又可改變系統參數,演示系統隨參數變化的變化結果或變化趨勢,有助于學生對抽象理論的理解。然而在課堂上應用MATLAB演示所講授內容,需要臨時編程,這對于有限的課堂時間多有不便,而且界面也不直觀,若能將MATLAB的可開發的GUI功能結合數值計算中的典型算法構造開放式的用戶界面,既可充分發揮MATLAB的強大的計算功能,又可避免記憶繁瑣的命令,不僅方便老師在課堂直觀演示,而且便于學生課下自己設計系統,添加代碼實現更多的演示功能,將會充分調動教師和學生兩方面的積極性,全面提高課程的教學質量。

1圖形用戶界面設計簡介

圖形用戶界面是由窗口、光標、按鍵、菜單、文字說明等對象(Objects)構成的一個用戶界面,用戶通過一定的方法(如鼠標或鍵盤)選擇激活這些圖形對象,使計算機產生某種動作或變化,如實現計算或繪圖等。MATLAB的GUI編程可以用兩種方式實現。一是GUI設計工具GUIDE,它的優點是非常容易入手,風格很像VB,相關控件可以隨意拖動,GUI設計簡單、省時,但GUIDE的一個嚴重缺點是無法直接創建核心對象;二是利用M函數構建GUI,即M文件界面設計,這種方法需要解決數據傳遞問題,如何正確實現回調函數中用戶菜單或控件的句柄傳送是M文件成功創建GUI的關鍵。事實上,不管采用哪種設計方法,事先都要分析界面所要求實現的主要功能,明確設計任務,并站在使用者的角度審查界面功能及界面的控件布局,然后進行代碼編寫,對功能進行逐項檢查,調整完善界面功能。圖形用戶界面設計的一個基本原則要求具有簡單性,即設計界面時應力求簡潔、清晰地體現出界面的功能和特征,為此要盡量使用用戶所熟悉的標志和符號,盡量刪去可有可無的功能,盡量多采用圖形結果,盡量減少窗口數目,力避在不同窗口之間進行來回切換。

2實例仿真及分析

非線性方程的迭代解法求根是數值分析課程的一個重要內容,初始迭代點及迭代函數的正確選取是求根的關鍵,為了使學生對迭代法求根有清醒的認識,下面以非線性方程迭代法求根的GUI實現說明MATLAB GUI對數值分析課程的輔助教學功能。

不動點迭代法求根中需要選取迭代公式,確定迭代初始點、精度,不動點迭代法求根的界面如圖1。圖1不動點迭代法求根的GUI界面

界面中設置了五個edit控件,分別用于輸入方程f(x)、迭代公式、迭代初始點x0、精度tol和最大迭代次數;四個Push Button控件,分別用于繪圖、求解、重設參數和退出界面;一個axes控件,用于顯示函數f(x)的圖像;為體現設計的簡潔性,界面中只設置一個List? box控件,所有的結果都將在Listbox控件中顯示,這樣設計使界面更加合理化。系統能輸入任意的方程,通過huatu_pushbutton3控件得到其圖像,很容易判斷該方程在零點的大致位置,即迭代初始點x0。輸入方程后,單擊畫圖控件,可以得到函數f(x)的圖像,并顯示在界面中。用編制好的GUI演示求解程f(x)=x3-x-1=0在x0=1.5附近的根x*,并用兩種迭代公式求根,迭代公式分別為x= 3,初始點x0=1.5,精度tol=0.000001,最大迭代次數N=20,左鍵單擊不動點求解控件,得到求根運行界面,如圖2。在運行界面中得到運行結果,并且在函數圖像中標出了通過運行得到的方程的根。

選取迭代公式x=x3-1,初始點x0=1.5,精度tol=0.000001,最大迭代次數N=50的運行界面,左鍵單擊不動點求解控件,得到如圖3的求根界面。圖2,圖3分別為同一方程取不同迭代函數求根的運行界面,由此可以讓學生直觀的看出不動點迭代法求根在選取不同迭代函數時,得到的收斂效果不同,直觀的體現了迭代函數的重要性。

用Newton法來求方程f(x)=x3-x-1=0在x0=1.5附近的根,精度tol=0.000001,最大迭代次數N=20。編制的GUI演示結果可以讓學生感受到Newton法求根的收斂速度比不動點迭代法求根的收斂速度快。

學生通過以上非線性方程求根的GUI,很容易體會到不動點迭代求根選取迭代函數的重要性及不動點迭代與Newton法求方程根的區別。同時設計的GUI具有開放性,可以讓學生課后添加控件與代碼,實現GUI更多的功能,這樣不僅能夠提高學生對數值算法的理解,而且極大提高學生學習數值分析課程的興趣及編程解決實際問題的能力。

3結束語

將MATLAB GUI與數值分析課程結合起來,教師可以現場演示數值方法,開闊了學生學習數值分析課程的思路。若針對數值分析課程的所有教學重點內容編制一個輔助教學仿真軟件,這對于數值分析課程的可視化教學、學生的數值實驗更有意義。

參考文獻:

[1]張志涌.精通MATLAB [M].北京:北京航空航天大學出版社,2000.

[2]陳垚光,王正林,毛濤濤.精通MATLAB GUI設計[M].北京:電子工業出版社,2008.

[3]尚濤,石端偉,安寧,等.工程計算可視化與MATLAB實現[M].武漢:武漢大學出版社,2002.

篇10

關鍵詞: 改善; 模擬;氣流組織; 分析; 比較;

中圖分類號: F407.474文獻標識碼: A

1 機艙物理模型

機艙內設備及管線眾多,結構復雜,建立模型時必須進行簡化來使模型適合數值模擬計算,模型簡化的基本原則是: 對空間氣流場產生作用較小且溫度影響不大的設備管線進行移除; 對結構形狀復雜,簡化后對模擬結果影響較小的設備規則化; 對厚度邊界做無厚度壁面處理; 忽略風管,在風口段用立方體代替,底面為風口;抽風圍阱對流場影響小,以風口面代替等;該船舶機艙模型空間大小為: 長 21m,寬 13m,高 10m,主要設備有汽輪機、鍋爐、渦輪增壓機組、高溫除氧器、等離子過濾器、部分煙氣管道等;該艙底層為鋪板層,沿高度方向分別為第 1、2 格柵層,頂部為甲板層,風口均布置在第1、2 格柵層下方,為防止送風直吹發熱表面,造成較大熱應力,風口均采用矩形風口,風向垂直向下,尺寸大小為0.4m×0.2m 的風口55個,尺寸0.4m×0.28m 的風口 4 個 ( 側 45°方向增加局部繞流) 。機艙簡化后幾何模型如圖 1 所示。

圖 1 機艙幾何模型

2 流體數學模型及邊界條件

2.1 流體數學模型

CFD 技術經過長時間的發展,在計算流體流動傳熱傳質方面已經非常成熟,本文通過 Fluent軟件CFD技術模擬機艙內氣流組織分布,機艙內通風為湍流對流換熱問題,本文選用圖1模型,為獲得較好的模擬結果,提高模擬效率,對模擬進行如下假設和簡化:

1) 機艙內流體為不可壓流體,密度符合假設;

2) 艙內流體流動及傳熱視為穩態過程;

3) 各壁面的輻射傳熱不計;

2.2 邊界條件設置

利用開局讓棋法進行幾何建模及劃分網格,因機艙內結構復雜,模型網格采用非結構化網格,對風口及重要發熱面進行局部加密,網格數量為 88 萬.

艙內通風是采用典型的置換通風與自然通風相結合的形式,邊界條件設置如下:

1) 送、回風口邊界條件: 送風及機械抽風口為速度入口邊界,送風方向與出風口面垂直;

2) 自然排風口邊界條件: 通風時保證艙內正壓,因此自然排風口采用壓力出口邊界;

3) 固體壁面邊界條件: 艙內發熱固體壁面采用定熱流密度,壁面厚度為0.

3 設計方案及模擬結果分析

3.1 設計方案

機艙內送風口位置相對固定,采用下送上回的通風方式,回風進入抽風圍阱后通過管道與各風機相通;本文設計鍋爐燃燒空氣量占總送風量50% 左右,從艙內吸入會造成內部各區域氣流壓力梯度過大,因此采用獨立系統從外界抽進燃燒空氣。根據《ISO8861-1998造船--柴油機船舶機艙通風設計要求和計算基準》進行熱負荷及通風量估算,得到該通風系統排除艙內余熱所需風量為160000m3/h,艙內設計溫度54℃,送風溫度39℃,風機開度 100%時,送風口的設置送風速度為9.4m/s,考慮到送風量對氣流組織及艙內溫度的影響,設定送風開度來進行分析,分別為 100%,85%,70%.機艙環境的優化可通過改變送抽風口位置形狀、面積及送風量等來實現,為獲得最佳氣流組織形式,該艙通過增大抽風圍阱及隔屏來增加艙內空氣擾流,防止大漩渦及通風死角,理論上,機械抽風口分布越多,抽風圍阱尺寸越大,會有效改善艙內氣流組織,但是機艙內空間狹小,因風口而增加的風管會減少艙內可用空間; 且過多地增加隔屏會給工作人員管理維護帶來不便,經過分析給定 4 種調整方案來進行研究,見表 1

3.2 模擬結果分析

3.2.1 氣流組織分析

計算收斂后,選取典型截面進行分析,由圖 1可以看出,兩鍋爐間至主機右側面區域散熱面積最大,流場也最復雜,因此截取y=﹣0.5m 面進行氣流組織分析,y=﹣0.5m 截面如圖 2所示.

在假定機艙送風口位置固定情況下,要消除漩渦和通風死角,一般采用下列方法: 一是設置障礙物,障礙物對室內氣流組織有顯著影響; 二是布置空氣射流通風系統,由于氣流至底層后從下至上流動,障礙物迎風面不存在滯留區,同時考慮經濟成本問題,對主機右側安裝隔屏作為障礙物來消除此漩渦,隔屏位置如圖 2 所示"

4 結 語

模擬結果表明,利用CFD技術對機艙氣流組織進行模擬分析是一種高效簡潔的方法,獲得的結果是可信的,且通過模擬分析可知:

1) 合理的布置機械抽風口能有效地改進艙內流場,在艙內增加隔屏作為障礙物并非完全是負面影響,在不影響艙內設備運行和人員工作情況下,增加隔屏能有效改變艙內氣流組織

2) 自上而下的通風方式能使各工作面溫度得到較好的控制,人員活動區域溫度符合設計要求

3) 風機開度直接影響艙內溫度,通過改變風機開度能節省通風資源,機艙內環境的優化有很多方式,可通過改變風口數量大小、形式、位置等,這些還需要進一步的研究和補充

參考文獻:

[1] 向立平,王漢青空調客車內氣流組織與污染物濃度場數值模擬[c]中南大學學報( 自然科學版) ,