資源描述:
《非線性方程和常微分方程的解法》由會員上傳分享,免費在線閱讀,更多相關內(nèi)容在工程資料-天天文庫。
1、實驗8非線性方程和常微分方程的解法一、實驗目的學會用MATLAB軟件求解非線性方程和常微分方程。二、實驗內(nèi)容與要求1.非線性方程的整值解(1)最小二乘法格式:fsolve(,fuif,Xo)%求方程fun二0在估計值x附近的近似解。[例1.72]求方程x—曠=()的解。?fc=inline(tx-exp(-x)?);?xl=fsolve(fc,0)xl=0.5671問題1.28:求解方程5x2sinx-ex=察知有多解,如何求之?先用命令fplot(,5*xA2*sin(x)-exp(-x),0],,[0,10])作圖1.13,注意5*
2、xA2*sin(x)-exp(-x),0]中的“[…,0]”是作y=0直線,即X軸。方程在[0,10]區(qū)間從圖中可看出有4個解,分別在0,3,6,9附近,所以用命令:?fun=inline(,5*xA2*sin(x)-exp(-x)>);>>fsolve(fun,[0,3,6,9],le?6)得出結(jié)果:ans=0.59183.14076.28329.4248【例1.73]求解方程組x-0.7sinx-0.2cosy=0y-0.7cosx+0.2siny=Q先編制函數(shù)文件fu.m:functiony=fu(x)y(l)=x(1)-0.7*
3、sin(x⑴).0.2*cos(x(2));y(2)=x(1)-0.7*cos(x(1))+0.2*sin(x(2));y=[yd),y(2)];在命令窗口調(diào)用fu運算:?xl=fsolve('fu',[0.5,0.5])xl=0.52650.5079(2)零點法格式:fzero(1funx0)%求函數(shù)/i加在x()附近的零點。說明:估計值X。若為標蚩時,則在?!愀浇檎伊泓c,x0=fxpx2l向量時,則首先要求函數(shù)值fun(x})<0f然后將嚴格在[西人]區(qū)間內(nèi)零點,若找不到,系統(tǒng)將給出提示。【例1.74]求函數(shù)/(x)=sinx2
4、/x+xeY-4的零點。?fn=inline('sin(xA2)/x+x*exp(x)-4');?x=fzero(fn,[1,2])%這里的fn不要加單引號x=1.0748注意:方程解的估計值可用fplot作圖看出;用function建立函數(shù)文件fn,求解調(diào)用時fn兩邊要加單引號,而用inline吋fn兩邊不要加單引號;這兩種方法也可解線性方程組。2?代數(shù)方程的符號解格式:g=solve(^)%求解方程0今=0,輸入?yún)⒘縲g可是符號表達式或字符表達式。g=solve(旳,var)%對eq屮指定的變量var求解方程^(var)=0。g=s
5、olved%,函2,eq)%求解方程組eq}=0,eq2=0,??*eqn=0□g=solve(eq},?-eqn,va^,var2varw)%對方程組紹eq2,--eqtt中指定的n個變量加vaq,var2??-varn求解【例1.75]?solve('a*xA2+b*x+c')?solve('a*xA2+b*x+c','b')?[x,y]=solve('x+y=1','x-1l*y=5')?[a,u,v]=solve(ra*uA2+vA2','u-v=17aA2-5*a+6')計算結(jié)果為:ans=[1/2Za*(-b+(bA2-4*
6、a*c)A(l/2))][l/2/a*(-b-(bA2-4*a*c)A(l/2))]ans=-(a*xA2+c)/xx=4/3y=-1/3a=⑵[2]⑶⑶u=[l/3+l/3*i*2A(l/2)][l/3-l/3*i*2A(l/2)][l/4+l/4*i*3A(l/2)][l/4-l/4*i*3A(l/2)1v=[-2/3+l/3*i*2A(l/2)][-2/3-l/3*i*2A(l/2)][-3/4+l/4*i*3A(l/2)][-3/4-l/4*i*3A(1/2)]注意:對于單個的方程或方程組,若不存在符號解,則返回方程(組)的數(shù)值
7、解。問題1.29:用符號法求解問題1.28中的方程,結(jié)果不對,所以要驗根,多用幾種方法相互驗證,用符號法解方程3x2-eA=0,解的表達式不易懂,怎么辦?x二solve('3*xA2?exp(x)')x=[-2*lambertw(-l/6*3A(l/2))][-2*lambertw(-1,-1/6*3A(1/2))JI?2*lambertw(l/6*3A(l/2))]再用命令:?vpa(x,3)ans=[.912][3.72][-.460]3.常微分方程數(shù)值解法格式:[T,Y]=solver((7tspcm,y0)%區(qū)間tspan=[心
8、心I上,用初始條件}?0求解顯示微分方程y'=f(t,y)說明:solver為命令ode45,ode23,odel13,odel5s,ode23s,ode23t,ode23tb,之一。odefun為顯示常微