数值计算方程式求根篇.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
數值計算 方程式求根篇 陳鴻智 有關於本教材 數值計算是件很好玩的事,可以用很精簡的程式完成 並且可以將它用圖形的方式展示出來。 Matlab可以讓我們作到。 教材內容 數值計算介紹 試圖告訴你數值計算是件很棒的事 為啥需要數值計算? 工程需求— 資料探索分析 “透過觀察讓科學大幅進展”—牛頓 “數學就是要求嚴密、美感和結構” -- 高斯 歷史故事Matlab(MATrix LABoratory) 由 Cleve Moler 研發將EISPACK LINPACK包裝成一種容易操控的介面 1957: Moler到Caltech. 研究數值分析 1961:到史丹佛大學講演. 與 G. Forsythe 合作研究Laplacian eigenvalues. 1977: 第1版 Matlab; 2,000條Fortran語法程式碼 80 個函數 (現已超過 8000個函數 ) 1979: 在史丹佛與 Jack Little 相遇,開始將源碼轉換成C 1984: Mathworks 成立 Matlab與Mathworks現況 Matlab, Simulink, Stateflow Matlab 2009b 各種領域的運用 航太,國防, 電腦,通信, 測繪… Mathworks 公司 3,500 以上的大學使用,500,000以上的用戶,100以上國家使用 2008年收益: 3億美元以上. 2008員工: 2,000人以上 價錢: ~2,000$ (商務版價), ~100$ (學生版價) 誰需要? 研發單位 老師 實驗室軟體設備之一 Matlab 著重在演算法而不是程式語言探討 學生 批次處理檔案 不必再需要另外學其他的語言! 給你一個測試概念的好環境 把概念很快轉換成程式碼, 然後轉成 C或Java 等 易懂的視覺圖 應具備的課程知識 微積分 常微分方程 矩陣 計算機程式編寫經驗 二分法 是求實數自變量、實值函數f(x)=0的解之較慢但很考靠的算法 f(x)是個連續函數,且在[a,b]區間內會改變正負號,則可以找到一個x*,使得f(x*)=0 MATLAB k = 0; while abs(b-a) eps*abs(b) x = (a + b)/2; if sign(f(x)) == sign(f(b)) b = x; else a = x; end k = k + 1; end 牛頓法 公式xn+1= xn-f(xn)/f’(xn) MATLAB k = 0; while abs(x - xprev) eps*abs(x) xprev = x; x = x - f(x)/fprime(x) k = k + 1; end 以計算為 例 while abs(x - xprev) eps*abs(x) xprev = x; x = 0.5*(x + M/x); end 缺點 當f(x)不連續、無有界的一階、二皆導數,或者初始值不接近準確解時就無法使用本方法 割線法 用兩次迭代解構造出的有限差分近似,替代牛頓法中的求導 公式 MATLAB while abs(b - a) eps*abs(b) c = a; a=b; b = b + (b-c)/f(c)/f(b)-1); k = k + 1; end 優點 不需要顯式計算f’(x) ,而有類似收斂的性質。en+1=O(enen-1),是超線性收斂,事實上en+1=O(enΦ) Φ=(1+√5)/2 逆二次插值 既然割線法使用前兩個近似解得到下一個解,那麼何不利用前三個近似解呢? 作法: 用三個點a,b,c及其函數值f(a), f(b), f(c),組一個2次曲線 對數據進行插值,然後另其與x軸的交點為下一個迭代點 MATLAB k=0; while abs(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 缺點 速度不穩定,需要好好馴服(人工多次反復測試) Zeroin算法(一種綜合算法,結合它法的優點) 結合二分法的可靠性與割線法及逆二次差值法(IQI)算法的收斂速度 演算法: 選取初始值a和b,使得f(a)和f(b)的正負號正好相反 使用一步割線法,得到a和b之間的一個值 重復下面的步驟,直到|b -a|ε|b|或者f(b) =0 重新排列a、b和c(可能要經過兩輪),使得 f(a)和

文档评论(0)

beoes + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档