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

上传人:wuy****n92 文档编号:92012616 上传时间:2023-05-30 格式:PPT 页数:25 大小:477.50KB
返回 下载 相关 举报
数值计算方程式求根篇.ppt_第1页
第1页 / 共25页
数值计算方程式求根篇.ppt_第2页
第2页 / 共25页
点击查看更多>>
资源描述

《数值计算方程式求根篇.ppt》由会员分享,可在线阅读,更多相关《数值计算方程式求根篇.ppt(25页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、教材-應用MATLAB於數值計算方程式求根方程式求根方程式求根方程式求根數值計算數值計算方程式求根篇方程式求根篇陳鴻智1教材-應用MATLAB於數值計算方程式求根方程式求根方程式求根方程式求根有關於本教材有關於本教材u數值計算是件很好玩的事數值計算是件很好玩的事,可以用很精簡的程式完成,可以用很精簡的程式完成 並且可以將它用圖形的方式展示出來。並且可以將它用圖形的方式展示出來。uMatlab可以讓我們作到。可以讓我們作到。2教材-應用MATLAB於數值計算方程式求根方程式求根方程式求根方程式求根教材內容教材內容u數值計算介紹數值計算介紹試圖告訴你數值計算是件很棒的事3教材-應用MATLAB於數

2、值計算方程式求根方程式求根方程式求根方程式求根為啥需要為啥需要數值計算數值計算?u工程需求工程需求 資料探索分析 “透過觀察讓科學大幅進展”牛頓 “數學就是要求嚴密、美感和結構”-高斯牛頓牛頓高斯高斯4教材-應用MATLAB於數值計算方程式求根方程式求根方程式求根方程式求根uGeorge Forsythe 於於1960年代後期在年代後期在 Stanford 大學開創了數值方法的課程大學開創了數值方法的課程。uForsythe,Malcolm和和 Moler合寫了一合寫了一本教材本教材。u那時的課程都是以那時的課程都是以Fortran語言編寫語言編寫的程式庫為主的程式庫為主。u為解決為解決線性代

3、數線性代數課程中矩陣運算課程中矩陣運算問題問題,Cleve Moler博士博士於於1980年開年開發發出一套簡單易用的矩陣運算工具出一套簡單易用的矩陣運算工具,Matlab於是誕生於是誕生。MATLABMATLAB語言的發展語言的發展Cleve Moler5教材-應用MATLAB於數值計算方程式求根方程式求根方程式求根方程式求根歷史故事歷史故事Matlab(MATrix LABoratory)由由 Cleve Moler 研發將研發將EISPACK&LINPACK包裝成包裝成一種容易操控的介面一種容易操控的介面u1957:Moler到到Caltech.研究數值分析研究數值分析u1961:到史丹

4、佛大學講演到史丹佛大學講演.與與 G.Forsythe 合作研究合作研究Laplacian eigenvalues.u1977:第第1版版 Matlab;2,000條條Fortran語法程式碼語法程式碼80 個函數個函數(現已超過現已超過 8000個函數個函數)u1979:在史丹佛與在史丹佛與 Jack Little 相遇,開始將源碼轉換成相遇,開始將源碼轉換成Cu1984:Mathworks 成立成立6教材-應用MATLAB於數值計算方程式求根方程式求根方程式求根方程式求根Matlab與與Mathworks現況現況uMatlab,Simulink,Stateflowu Matlab 2009

5、bu 各種領域的運用各種領域的運用航太,國防,電腦,通信,測繪u Mathworks 公司公司u3,500 以上的大學使用以上的大學使用,500,000以上的用戶以上的用戶,100以上國家使用以上國家使用u2008年收益年收益:3億美元以上億美元以上.u2008員工員工:2,000人以上人以上u 價錢價錢:2,000$(商務版價),100$(學生版價)7教材-應用MATLAB於數值計算方程式求根方程式求根方程式求根方程式求根誰需要誰需要?u研發單位研發單位u老師老師實驗室軟體設備之一實驗室軟體設備之一 Matlab 著重在著重在演算法演算法而不是而不是程式語言程式語言探討探討u學生學生批次處理

6、檔案批次處理檔案u不必再需要另外學其他的語言不必再需要另外學其他的語言!給你一個測試概念的好環境給你一個測試概念的好環境u把概念很快轉換成程式碼把概念很快轉換成程式碼,然後轉成然後轉成 C或或Java 等等易懂的視覺圖易懂的視覺圖8教材-應用MATLAB於數值計算方程式求根方程式求根方程式求根方程式求根應具備的課程知識應具備的課程知識u微積分微積分u常微分方程常微分方程u矩陣矩陣u計算機程式編寫經驗計算機程式編寫經驗9教材-應用MATLAB於數值計算方程式求根方程式求根方程式求根方程式求根二分法二分法u是求實數自變量、實值函數是求實數自變量、實值函數f(x)=0的解之較慢的解之較慢但很考靠的算

7、法但很考靠的算法uf(x)是個連續函數是個連續函數,且在,且在 a,b 區間內會改變正區間內會改變正負號,則可以找到一個負號,則可以找到一個x*,使得,使得f(x*)=0uMATLABk=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;end10教材-應用MATLAB於數值計算方程式求根方程式求根方程式求根方程式求根牛頓法牛頓法u公式公式xn+1=xn-f(xn)/f(xn)uMATLAB k=0;while abs(x-xprev)eps*abs(x)xprev=x;x=x-f(

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

9、c)/f(b)-1);k=k+1;endu優點優點不需要顯式計算f(x),而有類似收斂的性質。en+1=O(enen-1),是超線性收斂,事實上en+1=O(en)=(1+5)/212教材-應用MATLAB於數值計算方程式求根方程式求根方程式求根方程式求根逆二次插值逆二次插值u既然割線法使用前兩個近似解得到下一個解,那麼何既然割線法使用前兩個近似解得到下一個解,那麼何不利用前三個近似解呢不利用前三個近似解呢?u作法:作法:用三個點a,b,c及其函數值f(a),f(b),f(c),組一個2次曲線對數據進行插值,然後另其與x軸的交點為下一個迭代點uMATLAB k=0;while abs(c-b)

10、eps*abs(c)x=ployinterp(f(a),f(b),fc,a,b,c,0)a=b;b=c c=x;k=k+1;endu缺點缺點速度不穩定,需要好好馴服(人工多次反復測試)13教材-應用MATLAB於數值計算方程式求根方程式求根方程式求根方程式求根Zeroin算法算法(一種綜合算法一種綜合算法,結合它法的優點結合它法的優點)u結合二分法的可靠性與割線法及逆二次差值法結合二分法的可靠性與割線法及逆二次差值法(IQI)算算法的收斂速度法的收斂速度u演算法:演算法:選取初始值a和b,使得f(a)和f(b)的正負號正好相反使用一步割線法,得到a和b之間的一個值重復下面的步驟,直到|b-a|

11、function b=fzerotx(F,ab,varargin)if ischar(F)&exist(F)=2 F=inline(F);elseif isa(F,sym)F=inline(char(F);end a=ab(1);b=ab(2);fa=feval(F,a,varargin:);fb=feval(F,b,varargin:);if sign(fa)=sign(fb)error(Function must change sign on the interval)end c=a;fc=fa;d=b-c;e=d;15教材-應用MATLAB於數值計算方程式求根方程式求根方程式求根方程式求

12、根Zeroin算法算法 while fb=0 if sign(fa)=sign(fb)a=c;fa=fc;d=b-c;e=d;end if abs(fa)c=b;b=a;a=c;fc=fb;fb=fa;fa=fc;end m=0.5*(a-b);tol=2.0*eps*max(abs(b),1.0);if(abs(m)break end if(abs(e)tol)|(abs(fc)d=m;e=m;else s=fb/fc;16教材-應用MATLAB於數值計算方程式求根方程式求根方程式求根方程式求根Zeroin算法算法 if(a=c)p=2.0*m*s;q=1.0-s;else q=fc/fa;

13、r=fb/fa;p=s*(2.0*m*q*(q-r)-(b-c)*(r-1.0);q=(q-1.0)*(r-1.0)*(s-1.0);end;if p 0,q=-q;else p=-p;end;if(2.0*p 3.0*m*q-abs(tol*q)&(p e=d;d=p/q;else d=m;e=m;end;end 17教材-應用MATLAB於數值計算方程式求根方程式求根方程式求根方程式求根Zeroin算法算法 c=b;fc=fb;if abs(d)tol b=b+d;else b=b-sign(b-a)*tol;end fb=feval(F,b,varargin:);end18教材-應用MA

14、TLAB於數值計算方程式求根方程式求根方程式求根方程式求根Zeroin算法算法uMATLABfor n=1:10 z(n)=fzerotx(besselj(0,x),(n-1)n*pi);end x=0:pi/50:10*pi;y=besselj(0,x);plot(z,zeros(1,10),o,x,y,-)line(0 10*pi,0 0,color,black)axis(0 10*pi-0.5 1.0)輸入:基本函數、搜索區間19教材-應用MATLAB於數值計算方程式求根方程式求根方程式求根方程式求根fzerogui-fzerogui-看圖識看圖識zeroinzeroin演算法演算法二分

15、點IQI點割線點20教材-應用MATLAB於數值計算方程式求根方程式求根方程式求根方程式求根尋找函數為某個值的解和反向插值尋找函數為某個值的解和反向插值1.給定一個函數給定一個函數F(x)和值和值,求,求使得使得F()=;2.給定對未知函數給定對未知函數F(x)採樣得到的一些數據點採樣得到的一些數據點(xk,yk)和值和值,求,求使使得得F()=;u解:解:1.f(x)=F(x)-=0,可以求得x=2.f(x)=P(x)-,P(x)是某個插值函數(可以用pchiptx(xk,yk,x)或splinetc(xk,yk,x)得到P(x),其缺點為:計算代價大,需要反復計算插值。u使用反復插值法使用

16、反復插值法,用的是,用的是pchip和和spline算法算法,將,將xk和和yk角色互調角色互調yk需具單調性,或者至少yk的某個包含目標值的子集單調。生出另一個分段多項式Q(yk)=xk。y=,=Q(y)。21教材-應用MATLAB於數值計算方程式求根方程式求根方程式求根方程式求根最優化和最優化和fmintxuf(x),),和它所在的區間和它所在的區間 a,b ,求,求x使得使得f(x)為極小為極小(或極大或極大)u作法作法:黃金分割搜索+拋物線法區間步長會以-10.618的比例縮小,經過-52/log2(-1)75步後,區間步長大致減小為原始長度的eps倍。經過開始的一些步後,通常有足夠的

17、歷史訊息,給出區間內3個不同的點,以及對應的函數值。如果這3個點產生的拋物線的極小(大)值落在區間內,那麼下一點通常選擇這個極小點,而不是而不是黃金分割點黃金分割點。22教材-應用MATLAB於數值計算方程式求根方程式求根方程式求根方程式求根最優化和最優化和fmintxu求求 的極大值的極大值F=inline(-humps(x);fmintx(F,-1,2,1.e-4)Step x f(x)init:0.1458980337-25.2748253202gold:0.8541019662-20.9035150009gold:-0.2917960675 2.5391843579para:0.449

18、2755129-29.0885282699para:0.4333426114-33.8762343193para:0.3033578448-96.4127439649gold:0.2432135488-71.7375588319para:0.3170404333-93.8108500149para:0.2985083078-96.4666018623para:0.3003583547-96.5014055840para:0.3003763623 -96.5014085540para:0.3003756221 -96.5014085603極大值23教材-應用MATLAB於數值計算方程式求根方程式

19、求根方程式求根方程式求根進一步閱讀進一步閱讀uR.P.Brent,Algorithms for Minimization Without Derivatives,Prentice Hall,Englewood Cliffs,1973.uG.Dahlquest and A.Bjorck,Numerical Methods,Prentice Hall,Englewood Cliffs,1974.uT.J.Dekker,Finding a Zero by Means of Successive Linear Interpolation,Constructive Aspects of the Fundamental Theorem of Algebra,B.Dejon and P.uHenrici(editors),Wiley-Interscience,New York,1969.uEric Weisstein,World of Mathematics Stirlings Approximation,http:/24教材-應用MATLAB於數值計算方程式求根方程式求根方程式求根方程式求根25

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 大学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁