非線性方程求根_第1頁
非線性方程求根_第2頁
非線性方程求根_第3頁
非線性方程求根_第4頁
非線性方程求根_第5頁
已閱讀5頁,還剩22頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

非線性方程求根第1頁,課件共27頁,創作于2023年2月MATLAB命令例1:解方程解:在MATLAB里輸入命令:

X=solve(‘8*x^9+17*x^3-3*x=-1’)可解出9個解。例2:解方程解:X=solve(‘sin(x)=0’),很可惜運行后只輸出一個根x=0.缺點:用solve命令不能求出周期函數所對應的全部根。第2頁,課件共27頁,創作于2023年2月例3:解非線性方程組解:在MATLAB命令窗口輸入命令:E1=sym('x^x-4=0');E2=sym('2*x*y+x=1');[x,y]=solve( E1,E2)x1=double(x),y1=double(y)出來的結果為:x=log(4)/lambertw(log(4))y=-1/2*(log(4)-lambertw(log(4)))/log(4)

第3頁,課件共27頁,創作于2023年2月

x1=2y1=-0.2500注:MATLAB系統只能做數值運算,并沒有符號運算功能,符號運算工具箱(symbolicmathtoolbox)則擴充了MATLAB這方面的功能,它是由Maple的核心來完成。第4頁,課件共27頁,創作于2023年2月例4:解方程解:將方程化為,在matlab窗口輸入命令>>fa=[8,0,0,0,0,0,17,0,-3,1];>>xk=roots(fa)運行后得所有根。缺點:命令roots只能求為多項式時方程的根。

第5頁,課件共27頁,創作于2023年2月一、圖解法求方程的正根,設分別畫出的圖形,兩條曲線的交點即為原方程的根,從圖中觀察,根大約為0.38。第6頁,課件共27頁,創作于2023年2月二、二分法對于求解給定區間的根,二分法是一種既簡單又穩健的方法,可以與圖解法結合使用。第7頁,課件共27頁,創作于2023年2月最終解經過n步迭代后,區間長度變為:即為可能的最大誤差第8頁,課件共27頁,創作于2023年2月當給定容許誤差時,所需最小迭代步數為:用于二分法計算的函數bisec_n.functionbisec_n(f_name,a,c)tolerance=0.000001;it_limit=30;fprintf('It.abcf(a)');fprintf('f(b)f(c)\n');it=0;Ya=feval(f_name,a);Yc=feval(f_name,c);if(Ya*Yc>0)fprintf('\n\nStoppedbecausef(a)f(c)>0\n');第9頁,課件共27頁,創作于2023年2月elsewhile1it=it+1;b=(a+c)/2;Yb=feval(f_name,b);fprintf('%3.0f%10.6f,%10.6f',it,a,b);fprintf('%10.6f,%10.6f,%10.6f,%10.6f\n',c,Ya,Yb,Yc);if(abs(c-a)<=tolerance)fprintf('Toleranceissatisfied.\n');breakendif(it>it_limit)fprintf('Iterationlimitexceeded.\n');breakendif(Ya*Yb<=0)c=b;Yc=Yb;elsea=b;Ya=Yb;endendfprintf('Finalresult:Root=%12.6f\n',b);end第10頁,課件共27頁,創作于2023年2月例1求函數的零點。bisec_n('fun_ex2',0.8,1.0)functionf=fun_ex2(x)f=sqrt(1+x.^2)-tan(x);解答:首先通過畫圖,根約為0.9,然后調用函數。結果為:Root=0.941462第11頁,課件共27頁,創作于2023年2月三、迭代法改寫方程:建立迭代格式:若收斂,則必收斂到的根,即則,得到序列第12頁,課件共27頁,創作于2023年2月迭代過程的幾何表示y第13頁,課件共27頁,創作于2023年2月x0=1.5;err=1;fprintf('%f',x0);whileabs(err)>0.000001x1=(x0+1).^(1/3);fprintf('%f',x1);err=x1-x0;x0=x1;end迭代收斂。第14頁,課件共27頁,創作于2023年2月x0=1.5;err=1;fprintf('%f',x0);fori=1:3x1=x0.^3+1;fprintf('%f',x1);err=x1-x0;x0=x1;end第15頁,課件共27頁,創作于2023年2月收斂充分性定理

第16頁,課件共27頁,創作于2023年2月第17頁,課件共27頁,創作于2023年2月自動生成的一個方法為:則迭代格式變為:其中為常數,可由如下方式確定:因時收斂,則也即當時,迭代收斂。其中必須與同號,當時,收斂速度最快。若在每一步迭代中,令,得到Newton迭代公式。第18頁,課件共27頁,創作于2023年2月例3求方程在內的根。解答:令的近似值為:取則迭代公式為:第19頁,課件共27頁,創作于2023年2月給出迭代法的一個M文件:function[k,piancha,xdpiancha,xk]=diedai(x0,k)%輸入量--x0是初始值,k是迭代次數x(1)=x0;fori=1:kx(i+1)=fun(x(i));%程序中調用的fun.m文件

piancha=abs(x(i+1)-x(i));xdpiancha=piancha/abs(x(i+1)+eps);i=i+1;xk=x(i);[(i-1)pianchaxdpianchaxk]endif(piancha>1)&(xdpiancha>0.5)&(k>3)disp('請用戶注意:此迭代序列發散,請重新輸入新的迭代公式')return;end第20頁,課件共27頁,創作于2023年2月if(piancha<0.001)&(xdpiancha<0.0000005)&(k>3)disp('祝賀你!此迭代序列收斂,且收斂速度較快')return;endp=[(i-1)pianchaxdpianchaxk]’例:求方程的在區間根。解:建立M文件fun.mfunctiony1=fun(x)y1=(10-x^2)/2;在窗口輸入第21頁,課件共27頁,創作于2023年2月

[k,piancha,xdpiancha,xk]=diedai(2,5)結果為:請用戶注意:此迭代序列發散,請重新輸入新的迭代公式若重新建立M文件:

functiony1=fun(x)y1=x-(x^2+2*x-10)/(2*x+2)在窗口輸入:[k,piancha,xdpiancha,xk]=diedai(2,5)運行結果為:祝賀你!此迭代序列收斂,且收斂速度較快第22頁,課件共27頁,創作于2023年2月四、Newton迭代法設求解方程的一個根,關于初值的一階Taylor展開為:將其看做的近似,并令為0,得到近似解:重復操作,一般地:第23頁,課件共27頁,創作于2023年2月幾何解釋:第24頁,課件共27頁,創作于2023年2月計算給定函數的一階導數可能會很繁,可用差分近似代替,如:或其中h取得很小上兩式分別為向前和向后差分近似。差分近似中的誤差很小,對于牛頓迭代法的收斂性沒有很明顯的影響,然而當根的附近有奇點時使用差分近似要小心。第25頁,課件共27頁,創作于2023年2月例4推導立方根的牛頓迭代公式,并求的立方根。解:問題等價于求的零點。Newton迭代法:令,迭代3次達到精確解。n

x055.45.3718345.371686第26頁,課件共27頁,創作于2023年2月Newton迭代公式可由函數Newt_n實現。functionx=Newt_n(f_name,x0)x=x0;xb=x-999;n=0;del_x=0.01;whileabs(x-xb)>0.0001n=n+1;xb=x;ifn>300break;endy=feval(f_

溫馨提示

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

評論

0/150

提交評論