版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、數(shù)值計算方法課程設(shè)計設(shè)計題目: 非線性方程(組)的解法 設(shè)計時間: 2010-6-11至2010-6-18 姓名學(xué)號成績 指導(dǎo)教師: 題目 非線性方程(組)的數(shù)值解法 -求解非線性方程組的幾種方法問題的提出分析比較Newton法、Newton法的變形格式。然后分別用Newton 法、簡化Newton 法、選取不同的初值求解下面方程組,對于相同的精度要求,比較這兩種方法的運行時間。背景分析牛頓法是一種重要迭代法,他是逐步線性化方法的典型代表,牛頓法的特點是每一步都需要計算以及,其計算量比較大,為了減少計算量,提出簡化牛頓法。算法思想1、牛頓法設(shè)有非線性方程組 其中 由偏導(dǎo)數(shù)作成的矩陣記為,稱為的
2、雅克比矩陣 設(shè)為的解,且設(shè)為的近似解?,F(xiàn)利用多元函數(shù)在點的泰勒公式有其中,在與的所連的線段內(nèi)。如果用上式中的線性函數(shù)近似替代,并將線性方程組 .(1)的解作為的第次近似解記為將(1)式寫成矩陣形式,即 為非奇異矩陣,則牛頓迭代公式: (2 )求解非線性方程組牛頓方法為2、簡化牛頓法在牛頓法的基礎(chǔ)上,為了減少計算量,將均取為,得如下簡化牛頓公式: (3 )其中(2)(3)式均為線性收斂的。算法設(shè)計將一個非線性方程組寫成向量的形式有: F(x) = 0 牛頓迭代法的公式就是: x(k+1)=x(k)-F(x(k)-1F(x(k)
3、60; 其中F(x(k)為Jacobi矩陣,我寫的這段程序就是根據(jù)這個公式來的。運用MATLAB中的jacobian求出F的雅克比矩陣,用inv求逆matrix=(varargin)varargin:構(gòu)造迭代函數(shù)在比較牛頓法和簡化牛頓法運行時間方面,我們主要是通過比較迭代次數(shù)。程序清單牛頓法源程序:function x=newton_solve(F,v,x0,e) if (ischar(F) | ischar(v) %定義類型 error('Parameter F and v should be char type!'); end
4、 if (isnumeric(x0) | isnumeric(e) error('Parameter x0 and e should be numeric type!'); end F=sym(F);v=sym(v);dF=jacobian(F,v);tF=inv(dF)*Ffor index=1:numel(v) tF=subs(tF,v(index),'x(' num2str(index) ')'); %把x分量化,把x1變成x(1),把x2變成x(2)end matrix=(varargin)varargin:.' %構(gòu)造迭代函數(shù)p
5、hi='x-' char(tF); eval('phi=(x)' phi ''); err=inf; %無窮大xold=phi(x0); n=0; while err>e xnew=phi(xold); %用本次結(jié)果與上次結(jié)果差的范數(shù)來衡量誤差 err=norm(xnew-xold); xold=xnew; n=n+1; %迭代次數(shù)大于10000是退出循環(huán) if (n>10000) break; end n%迭代次數(shù)end x=xold;簡化牛頓法的源程序:function x=simnewton_solve (F,v,x0,e) i
6、f (ischar(F) | ischar(v) %定義類型 error('Parameter F and v should be char type!'); end if (isnumeric(x0) | isnumeric(e) error('Parameter x0 and e should be numeric type!'); end F=sym(F);v=sym(v);dF=jacobian(F,v);tF=inv(dF)% dF的逆矩陣tF11= -x0(2)/(-x0(2)+4*x0(1);tF12=1/(-x0(2)+4*x0(1);tF21=
7、 2*x0(1)/(-x0(2)+4*x0(1);tF22=-1/2/(-x0(2)+4*x0(1);tF=tF11,tF12;tF21, tF22 % 把dF的逆矩陣用初始值x0代入,得到一常數(shù)矩陣,(簡化牛頓法的思想)tF=tF*F;for index=1:numel(v) tF=subs(tF,v(index),'x(' num2str(index) ')'); %把x分量化,把x1變成x(1),把x2變成x(2)end matrix=(varargin)varargin:.' %構(gòu)造迭代函數(shù)phi='x-' char(tF); e
8、val('phi=(x)' phi ''); err=inf; %無窮大xold=phi(x0); n=0; while err>e xnew=phi(xold); %用本次結(jié)果與上次結(jié)果差的范數(shù)來衡量誤差 err=norm(xnew-xold); xold=xnew; n=n+1; %迭代次數(shù)大于10000是退出循環(huán) if (n>10000) break; end n%迭代次數(shù)end x=xold;運行結(jié)果分析newton_solve('x1+2*x2-3;2*x12+x22-5','x1;x2',1.5;1,0.0
9、001)n = 2ans = 1.4880 0.7560simnewton_solve('x1+2*x2-3;2*x12+x22-5','x1;x2',1.5;1,0.0001) n = 3ans = 1.48800.7560newton_solve('x1+2*x2-3;2*x12+x22-5','x1;x2',100;56,0.0001)n = 10ans = 1.48800.7560simnewton_solve('x1+2*x2-3;2*x12+x22-5','x1;x2',100;56,0
10、.0001)n = 388ans =1.49380.7531上面的結(jié)果是牛頓法和簡化牛頓法同精度同初值的解法以及不同初值同精度得出來的,我們利用迭代次數(shù)來比較它們運行的快慢(即運行的時間),我們本題的初值和精度可以任意取值,從而得出迭代次數(shù)以及結(jié)果。從結(jié)果可以看出,簡化牛頓法相比起牛頓法迭代次數(shù)要多一些,而且簡化牛頓法的值誤差較大,因此用牛頓法解非線性方程組要比簡化牛頓法要好。問題分析在我們參考了MATLAB相關(guān)書籍之后,通過在網(wǎng)上的查閱,基本編寫出牛頓法解非線性方程組的程序,在這個程序的基礎(chǔ)上我們來改進用以實現(xiàn)簡化牛頓法解非線性方程組,我們主要遇到的是要怎么使它可以在程序中賦初值之后直接生成
11、,最后這個沒有解決,所以我們選擇了賦初值后,直接把求出來,再把的值作為常量帶入程序中求解??偨Y(jié)本次的程序設(shè)計,我們用MATLAB編寫了牛頓法解非線性方程以及簡化的牛頓法解非線性方程的程序。牛頓法是通過牛頓迭代法的公式:x(k+1)=x(k)-F(x(k)-1F(x(k) ,帶入初值及給定精度的范圍,得出方程組的解。簡化牛頓法,實在牛頓法的基礎(chǔ)上,把雅可比矩陣的逆的初始矩陣算出來,再通過迭代的出的解。我們選取了不同的初值解非線性方程組。并且對于同初值同精度問題,分別用牛頓法和簡化的牛頓法解得簡化的牛頓法迭代的次數(shù)更多。說明簡化的牛頓法迭代精度更低而且求的的解誤差較大。這與理論是相符合的。牛頓法和
12、簡化牛頓法都有優(yōu)點也有缺點,我們在解決問題的時候,要結(jié)合自己的實力和自己所需的選擇恰當(dāng)?shù)姆椒āN覀儚牟欢蕉眠@個過程讓我們收獲很多,通過不斷地學(xué)習(xí),查閱資料以及修改程序,一個從無到有的積累,我們不僅僅是在做題,也是在學(xué)習(xí)處理任何問題的方法。遇到困難不要輕易放棄,要善于利用和整合資源,這都是生活必不可少的。參考文獻數(shù)值計算方法鄭繼明 重慶大學(xué)出版社 2005數(shù)值分析翟瑞彩和謝偉松 天津大學(xué)出版社2000matlab 工程數(shù)學(xué)應(yīng)用許波和劉征 清華大學(xué)出版社 2000心得體會何靖(08120304):為期一周的數(shù)值計算方法的課程設(shè)計結(jié)束了,與其說是一個星期,實質(zhì)只有四天,中間有三天放假,所以我們在
13、上機設(shè)計的時間里抓得很緊。通過兩年來的學(xué)習(xí),我覺得這樣的課程設(shè)計是非常有意義的。數(shù)值計算方法是一門應(yīng)用范圍很廣的課程,是信息與計算科學(xué)專業(yè)的一門主要專業(yè)基礎(chǔ)課程,通過這次實驗上機才知道原來我們可以運用MATLAB和C語言以及其他的相關(guān)匯編語言來編輯程序解決數(shù)值計算方法里面的很多問題。在學(xué)習(xí)了理論知識之后,如何去具體的處理數(shù)學(xué)中的問題,如何把我們的理論運用到實踐中去,這樣的課程設(shè)計為我們提供了這樣一個實踐平臺。通過這次實驗,我收獲頗多。首先是對MATLAB軟件的認(rèn)識有了進一步的提升。它簡單易學(xué)、計算功能強等。MATLAB具有強大的矩陣運算、數(shù)據(jù)處理的功能,它輸出的結(jié)果可視化。編程效率高,比C語言
14、簡單,讓我們比較容易接受,所以我們在解決這道題的時候選擇了使用matlab這種高級編程語言。我們也通過這次上機實驗對數(shù)值計算方法有了更進一步的鞏固。其次,通過這次上機實驗,我對牛頓法有了更深一層的理解。牛頓法是一種重要迭代法,他是逐步線性化方法的典型代表。為了減少計算量,牛頓法還衍生出許多的變格形式,比如下降牛頓法、阻尼牛頓法、簡化牛頓法、修正牛頓法、擬牛頓法等等,這里我們主要是用了牛頓法和簡化牛頓法來解非線性方程組,并對這兩種方法做了一個比較,通過精度的分析,迭代次數(shù)的比較得出牛頓法迭代次數(shù)比較少,但計算量大;簡化的牛頓法迭代次數(shù)多但計算量相對較少。所以是各有所長,都能解決我們的問題。在做本
15、次課程設(shè)計的過程中我感觸最深的當(dāng)屬查閱了很多書籍,為了讓自己的設(shè)計更加完善,更加符合標(biāo)準(zhǔn),一次次翻閱相關(guān)書籍書是十分必要的,同時也是必不可少的。通過這次實驗讓我了解到合作的重要性,在處理問題的時候,當(dāng)自己冥思苦想也想不出來解決方案的時候,不妨選擇請教老師,和同學(xué)討論??梢赃_到事半功倍的效果。我們的工作是一個團隊的工作,團隊需要個人,個人也離不開團隊,必須發(fā)揚團結(jié)協(xié)作的精神。某個人的離群都可能導(dǎo)致導(dǎo)致整項工作的失敗。實習(xí)中只有一個人知道原理是遠遠不夠的,必須讓每個人都知道,否則一個人的錯誤,就有可能導(dǎo)致整個工作失敗。團結(jié)協(xié)作是我們實習(xí)成功的一項非常重要的保證。而這次實習(xí)也正好鍛煉了我們的這一點,
16、這對于我們的整個人生來說,都是非常寶貴的。 通過這一個星期數(shù)值計算方法上機實驗,我對數(shù)值計算方法有了進一步的鞏固,我們不僅掌握數(shù)值計算方法的基本概念,數(shù)值求解數(shù)學(xué)問題的基本方法,更進一步為學(xué)習(xí)和解決科學(xué)與工程中的實際問題打好基礎(chǔ),使我們具備基本的算法分析、設(shè)計能力和一定的編程能力。當(dāng)然,若要是得自己在這一方面更有能力,僅僅一個星期的上機實驗是遠遠不夠的,還需要自己課下的多多努力,不過通過這次實驗為我們進一步更好的學(xué)習(xí)引進了一個方向,我相信,這次上機實驗之后,我能夠更有方向性的、目的性去更深的學(xué)習(xí)數(shù)值計算方法以及其他的數(shù)學(xué)相關(guān)的學(xué)科的學(xué)習(xí)。最后,謝謝老師在這次上機實驗中給予的指導(dǎo)和幫助。宋程靜(
17、08120306)本學(xué)期我們08級信息與計算科學(xué)專業(yè)開設(shè)了數(shù)值計算方法課程和該課程的上機實踐課。要做好上機實驗,首先在理論知識的學(xué)習(xí)中必須先打好基礎(chǔ)。經(jīng)過預(yù)習(xí)、聽課、復(fù)習(xí)、作業(yè)四個環(huán)節(jié)的學(xué)習(xí),我對于這門課的理論知識有了一定了解。我們組抽到的是用牛頓法以及簡化的牛頓法解非線性方程組的問題。要求選取不同的初值求解非線性方程組,對于相同的精度要求,比較它們運行的時間。剛拿到這道題,我們就在數(shù)值計算方法教材上找到了牛頓法解非線性方程組的迭代原理以及迭代公式。之后查閱相關(guān)的資料找到了簡化的牛頓法的迭代公式。通過理論的分析,牛頓法解非線性方程組比簡化的牛頓法解非線性方程組更強大。于是我們開始了最具挑戰(zhàn)的編
18、程環(huán)節(jié)。編寫程序需要扎實的matlab語言功底和較強的邏輯思維能力及一定的編程技巧。在剛開始編程的時候,我們所編寫的程序大都有問題,雖然根據(jù)提示只有很少的幾處錯誤,但修正以后也未能調(diào)試成功,這說明程序本身就存在很大的邏輯上的問題。后面的幾次上機實驗我們借鑒了部分別人編寫的現(xiàn)成程序,但是這些程序一樣有問題,經(jīng)過無數(shù)次的調(diào)試與修改。最后我們得到了牛頓法解非線性方程組的程序。經(jīng)過對迭代公式的分析,我們發(fā)現(xiàn)簡化的牛頓法迭代過程與牛頓法十分相似,只有部分內(nèi)容沒有參與迭代。只需要將這部分內(nèi)容用矩陣表示出來,然后不參與迭代就可以了。思想是有了,可是修改程序的時候怎么改怎么錯。最后在指導(dǎo)老師的幫助下,經(jīng)歷無數(shù)
19、次的失敗以后我們寫出了簡化的牛頓法的迭代程序。選取相同的初值相同的精度,牛頓法比簡化的牛頓法迭代次數(shù)更少,這與理論是符合的。經(jīng)過這次上機,我對matlab進一步熟悉起來,發(fā)現(xiàn)它很多強大的功能我以前都沒有用到。并且對于很多數(shù)值計算算法很簡單,可是要用程序代碼寫出來,中間就會出現(xiàn)很多問題。但是解決問題,編寫好程序以后的心情是十分開心的。其實運用計算機編程,把大量的運算過程交給計算機去做,正是計算方法學(xué)科的意義:把算法簡單化,做大量可重復(fù)的工作,發(fā)揮計算機的強大功能。這就是我們?yōu)槭裁匆獙W(xué)計算方法的原因。 經(jīng)過這一段時間的學(xué)習(xí)的實踐,我們已經(jīng)開始對本課程有所了解,有
20、了這樣實驗課程經(jīng)驗對于以后的學(xué)習(xí)我心更加充足了。在這次上機實驗中,老師親和友善,教學(xué)經(jīng)驗豐富,讓我受益匪淺,在此向老師表示敬意和感謝! 祝老師工作順利萬事如意!朱卉妍(08120324):本次上機實驗,我們通過MATLAB用牛頓法和簡化牛頓法來編程解出非線性方程組的解使得我對MATLAB軟件有了進一步的認(rèn)識。它的功能強大,計算精度高而且簡單易學(xué)。MATLAB具有強大的矩陣運算、數(shù)據(jù)處理的功能,它輸出的結(jié)果可視化。編程效率高,比C語言簡單,讓我們比較容易接受,所以我們在解決這道題的時候選擇了使用matlab這種高級編程語言。其次,通過這次上機實驗,鍛煉我們實踐能力并且讓我對牛頓法有了更深一層的理解。原來從牛頓法,人們還得出了許多的變形公式(比如下降牛頓法、阻尼牛頓法、簡化牛頓法、修正牛頓法、擬牛頓法等等)來不斷的使求解非線性方程組的解更簡便,運算時間和迭代次數(shù)盡量的少。由于所學(xué)的知識比較少,通過上網(wǎng)搜索資料和翻閱書本,最終只能找到比較完整牛頓法和簡化牛頓法的解法思想,所以經(jīng)過詢問老師,最終只用這兩種算法來求解并進行比較。我們用的牛頓迭時通過雅可比矩陣和其逆矩陣,通過迭代收斂成方程組的解,而簡化牛頓法先把初始值的雅可比的逆矩陣算出來,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025版互聯(lián)網(wǎng)企業(yè)員工勞動合同意向書
- 2025版旅游安全責(zé)任協(xié)議書標(biāo)準(zhǔn)模板3篇
- 2024年食品零售商零食采購協(xié)議示例
- 2024年綜合運輸服務(wù)協(xié)議范本集版B版
- 2024年跨國教育合作辦學(xué)具體合同范本版B版
- 課題申報書:大學(xué)生志愿服務(wù)參與第三次分配的路徑探索及成效檢驗
- 2025版綠色建筑公司股權(quán)收購與轉(zhuǎn)讓合同3篇
- 課題申報書:促進制造業(yè)數(shù)字化創(chuàng)新的差異性減稅政策精準(zhǔn)調(diào)節(jié)理論與實現(xiàn)路徑研究
- 2024年度企業(yè)并購擔(dān)保合同執(zhí)行與交易安全協(xié)議3篇
- 2025版B101、B201型號教育培訓(xùn)機構(gòu)合作辦學(xué)合同3篇
- 北京郵電大學(xué)《數(shù)據(jù)庫系統(tǒng)》2023-2024學(xué)年期末試卷
- 職業(yè)技術(shù)學(xué)院《智能化成本核算與管理》課程標(biāo)準(zhǔn)
- 《如果超載電梯?!方虒W(xué)設(shè)計
- 防火門工程施工組織設(shè)計方案
- 期末(試題)-2024-2025學(xué)年北師大版(三起)(2024)英語三年級上冊
- 大連市2024年數(shù)學(xué)四上期末統(tǒng)考試題含解析
- 《數(shù)據(jù)挖掘技術(shù)》教學(xué)大綱
- 靜療規(guī)范課件
- 國家開放大學(xué)《初級經(jīng)濟學(xué)》形考任務(wù)1-3參考答案
- 個人賬戶課程設(shè)計
- 2024屆高考英語作文復(fù)習(xí)專項 讀后續(xù)寫語料庫清單
評論
0/150
提交評論