数值计算方程式求根篇

数值计算方程式求根篇

ID:40501752

大小:536.60 KB

页数:25页

时间:2019-08-03

数值计算方程式求根篇_第1页
数值计算方程式求根篇_第2页
数值计算方程式求根篇_第3页
数值计算方程式求根篇_第4页
数值计算方程式求根篇_第5页
资源描述:

《数值计算方程式求根篇》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、數值計算方程式求根篇陳鴻智1有關於本教材數值計算是件很好玩的事,可以用很精簡的程式完成並且可以將它用圖形的方式展示出來。Matlab可以讓我們作到。2教材內容數值計算介紹試圖告訴你數值計算是件很棒的事3為啥需要數值計算?工程需求—資料探索分析“透過觀察讓科學大幅進展”—牛頓“數學就是要求嚴密、美感和結構”--高斯牛頓高斯4GeorgeForsythe於1960年代後期在Stanford大學開創了數值方法的課程。Forsythe,Malcolm和Moler合寫了一本教材。那時的課程都是以Fortran語言編寫的程式庫為主。為解決『線性代數』課程中矩陣運算問題,CleveMoler博士

2、於1980年開發出一套簡單易用的矩陣運算工具,Matlab於是誕生。MATLAB語言的發展CleveMoler5歷史故事Matlab(MATrixLABoratory)由CleveMoler研發將EISPACK&LINPACK包裝成一種容易操控的介面1957:Moler到Caltech.研究數值分析1961:到史丹佛大學講演.與G.Forsythe合作研究Laplacianeigenvalues.1977:第1版Matlab;2,000條Fortran語法程式碼80個函數(現已超過8000個函數)1979:在史丹佛與JackLittle相遇,開始將源碼轉換成C1984:Mathwo

3、rks成立6Matlab與Mathworks現況Matlab,Simulink,StateflowMatlab2009b各種領域的運用航太,國防,電腦,通信,測繪…Mathworks公司3,500以上的大學使用,500,000以上的用戶,100以上國家使用2008年收益:3億美元以上.2008員工:2,000人以上價錢:~2,000$(商務版價),~100$(學生版價)7誰需要?研發單位老師實驗室軟體設備之一Matlab著重在演算法而不是程式語言探討學生批次處理檔案不必再需要另外學其他的語言!給你一個測試概念的好環境把概念很快轉換成程式碼,然後轉成C或Java等易懂的視覺圖8應具備

4、的課程知識微積分常微分方程矩陣計算機程式編寫經驗9二分法是求實數自變量、實值函數f(x)=0的解之較慢但很考靠的算法f(x)是個連續函數,且在[a,b]區間內會改變正負號,則可以找到一個x*,使得f(x*)=0MATLAB>>k=0;>>whileabs(b-a)>eps*abs(b)>>x=(a+b)/2;>>ifsign(f(x))==sign(f(b))>>b=x;>>else>>a=x;>>end>>k=k+1;>>end10牛頓法公式xn+1=xn-f(xn)/f’(xn)MATLAB>>k=0;>>whileabs(x-xprev)>eps*abs(x)>>xprev=

5、x;>>x=x-f(x)/fprime(x)>>k=k+1;>>end以計算為例>>whileabs(x-xprev)>eps*abs(x)>>xprev=x;>>x=0.5*(x+M/x);>>end缺點當f(x)不連續、無有界的一階、二皆導數,或者初始值不接近準確解時就無法使用本方法無限循環的牛頓法需要推導公式11割線法用兩次迭代解構造出的有限差分近似,替代牛頓法中的求導公式MATLAB>>whileabs(b-a)>eps*abs(b)>>c=a;>>a=b;>>b=b+(b-c)/f(c)/f(b)-1);>>k=k+1;>>end優點不需要顯式計算f’(x),而有類似收斂

6、的性質。en+1=O(enen-1),是超線性收斂,事實上en+1=O(enΦ)Φ=(1+√5)/212逆二次插值既然割線法使用前兩個近似解得到下一個解,那麼何不利用前三個近似解呢?作法:用三個點a,b,c及其函數值f(a),f(b),f(c),組一個2次曲線對數據進行插值,然後另其與x軸的交點為下一個迭代點MATLAB>>k=0;>>whileabs(c-b)>eps*abs(c)>>x=ployinterp([f(a),f(b),fc©],[a,b,c],0)>>a=b;>>b=c>>c=x;>>k=k+1;>>end缺點速度不穩定,需要好好馴服(人工多次反復測試)13Zero

7、in算法(一種綜合算法,結合它法的優點)結合二分法的可靠性與割線法及逆二次差值法(IQI)算法的收斂速度演算法:選取初始值a和b,使得f(a)和f(b)的正負號正好相反使用一步割線法,得到a和b之間的一個值重復下面的步驟,直到

8、b-a

9、<ε

10、b

11、或者f(b)=0重新排列a、b和c(可能要經過兩輪),使得f(a)和f(b)的正負號相反

12、f(b)

13、≦

14、f(a)

15、c的值為上一個b值如果c≠a,執行IQI算法中的一步疊代如果c=a,執行割線法中的一步如果執行IQI算法或割線法

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。