數值分析實驗報告——方程求根_第1頁
數值分析實驗報告——方程求根_第2頁
數值分析實驗報告——方程求根_第3頁
數值分析實驗報告——方程求根_第4頁
數值分析實驗報告——方程求根_第5頁
已閱讀5頁,還剩1頁未讀, 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、精選優質文檔-傾情為你奉上數值分析實驗報告班級 信科1501 學號 姓名 梁恩昊 日期 2017.10.3 學 院數學科學學院專 業信息與計算科學課程名稱數值分析成 績實驗一 方程求根 一、 實驗目的: 掌握二分法、Newton法、不動點迭代法、弦截法求方程的根的各種計算方法、并實施程序調試和運行,學習應用這些算法于實際問題。二、 實驗內容: 二分法、Newton法、不動點迭代法、弦截法求方程的根、程序的調試和運行,給出實例的計算結果。觀察初值對收斂性的影響。三、 實驗步驟: 、二分法:定義:對于區間a,b上連續不斷且f(a)·f(b)<0的函數y=f(x),通過不斷地把函數f

2、(x)的零點所在的區間一分為二,使區間的兩個端點逐步逼近零點,進而得到零點近似值的方法叫二分法。實現方法:首先我們設一方程400*(x4)-300*(x3)+200*(x2)-10*x-1=0,并求其在區間0.1,1上的根,誤差限為e=10-4。PS:本方法應用的軟件為matlab。disp('二分法') a=0.1;b=1; tol=0.0001; n0=100; fa=400*(a.4)-300*(a.3)+200*(a.2)-10*a-1; for i=1:n0 p=(a+b)/2;fp=400*(p.4)-300*(p.3)+200*(p.2)-10*p-1; if f

3、p=0|(abs(b-a)/2)<tol) disp('用二分法求得方程的根p=') disp(p) disp('二分迭代次數為:') disp(i) break; end; if fa*fp>0 a=p; else b=p; end;end; if i=n0&&(fp=0|(abs(b-a)/2)<tol) disp(n0)disp('次二分迭代后沒有求出方程的根') end;程序調試:運行結果:用二分法求得方程的根p= 0.1108二分迭代次數為: 14 Newton法定義:取定初值x0,找到函數對應的點,然

4、后通過該點作函數切線,交x軸,得到新的橫坐標值,然后找函數對應的點,做切線,得到新的橫坐標值,重復上述步驟,多次迭代,直到收斂到需要的精度。實現方法:我們與二分法一樣,先設一方程400*(x4)-300*(x3)+200*(x2)-10*x-1=0,并求其在區間0.1,1上的根。PS:本方法應用的軟件為matlab。syms x;diff(400*(x.4)-300*(x.3)+200*(x.2)-10*x-1) %求導方程函數文件:function Newton=fun(a)Newton=400*(a.4)-300*(a.3)+200*(a.2)-10*a-1;endfunction New

5、ton2=dfun(b)Newton2=1600*b3-900*b2+400*b-10; %fun函數的導數end 主程序:x0=1;while 1x1=x0-fun(x0)/dfun(x0);if abs(x1-x0)<1e-8 | abs(fun(x1)<1e-10break;endx0=x1;enddisp('用牛頓法求得的方程的根為:x=')disp(x1)程序調試:運行結果:用牛頓法求得的方程的根為: x=0.1108 、不動點迭代法:采用不動點迭代法計算x3+4x2-10=0,在區間1,2上的一個根。PS:本方法應用的軟件為matlab。不動點迭代法程序

6、:函數文件:function y,n=BDD(x,eps)if nargin=1eps=1.0e-6;elseif nargin<1errorreturnendx1=gg(x);n=1;while (norm(x1-x)>=1e-6)&&(n<=10000)x=x1;x1=gg(x);n=n+1;endy=x;M函數:function f=gg(x)f(1)=sqrt(2.5-(x3)/4);結果如下:>> BDD(1)n =21ans =1.3652 、弦截法:定義:弦截法是求非線性方程近似根的一種線性近似方法。它是以與曲線弧AB對應的弦AB與x

7、軸的交點橫坐標作為曲線弧AB與x軸的交點橫坐標的近似值來求出方程的近似解。該方法一般通過計算機編程來實現。弦截法的原理是以直代曲即用弦(直線)代替曲線求方程的近似解,也就是利用對應的弦 與 軸的交點橫坐標來作為曲線弧 與 軸的交點橫坐標 的近似值。實現方法:我們與二分法一樣,先設一方程400*(x4)-300*(x3)+200*(x2)-10*x-1=0,并求其在區間0.1,1上的根。PS:本方法應用的軟件為matlab。函數文件:functionp1,err,k,y=secant(f,p0,p1,delta,max1)% f是非線性函數 %p0,p1是初始值 %delta是給定允許誤差 %m

8、ax1是迭代次數的上限 %p1是所求得的方程的近似解 %err是p1-p0的誤差估計 %k是所需要的迭代次數 %y=f(p1) K=0,p0,p1,feval('f',p0),feval('f',p1) for k=1:max1p2=p1-feval('f',p1)*(p1-p0)/(feval('f',p1)-feval('f',p0);err=abs(p2-p1); p0=p1; p1=p2; k,p1,err,y=feval('f',p1) if(err<delta)|(y=0), break,endendendM文件:secant('400*(x4)-300*(x3)+200*(x2)-10*x-1=0',0,1,1.0e-4,100);disp('用弦截法求得的方程的根為:x=')disp(p1)運行結果:用弦截法求得的方程的根為: x=0.1108四、 實驗中遇到的問題及解決方法:MATLAB運用不熟練,于是翻開以前的課本與ppt,并結合網上查閱的資料,才又掌握了一些基礎的運用方法。一開始

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論