資源描述:
《數(shù)值分析中求解非線性方程的MATLAB求解程序(6種).doc》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、數(shù)值分析中求解非線性方程的MATLAB求解程序(6種)1.求解不動點(diǎn)function[k,p,err,P]=fixpt(g,p0,tol,max1)%求解方程x=g(x)的近似值,初始值為p0%迭代式為Pn+1=g(Pn)%迭代條件為:在迭代范圍內(nèi)滿足
2、k
3、<1(根及附近且包含初值)k為斜率P(1)=p0;fork=2:max1P(k)=feval(g,P(k-1));err=abs(P(k)-P(k-1));relerr=err/(abs(P(k))+eps);p=P(k);if(err4、(relerr5、了最長的迭代次數(shù)')endP=P';2.二分法function[c,err,yc]=bisect(f,a,b,delta)%二分法求解非線性方程ya=feval(f,a);yb=feval(f,b);ifya*yb>0break;endmax1=1+round((log(b-a)-log(delta))/log(2));fork=1:max1c=(a+b)/2;yc=feval(f,c);ifyc==0a=c;b=c;elseifyb*yc>0b=c;yb=yc;elsea=c;ya=yc;endifb-a6、a);yc=feval(f,c);3.試值法function[c,err,yc]=regula(f,a,b,delta,epsilon,max1)%試值法求解非線性方程%f(a)和飛(b)異號ya=feval(f,a);yb=feval(f,b);ifya*yb>0disp('Note:f(a)*f(b)>0');endfork=1:max1dx=yb*(b-a)/(yb-ya);c=b-dx;ac=c-a;yc=feval(f,c);ifyc==0break;elseifyb*yc>0b=c;yb=yc;elsea=c;ya=yc;enddx=min(abs(dx),ac);if
7、abs(dx)8、abs(yc)9、f(xk)
10、足夠小且曲線y=f(x)的斜率在%(xk,f(xk))附近改變符號。Y=f(X);yrange=max(Y)-min(Y);epsilon2=yrange*epsilon;
11、n=length(X);m=0;X(n+1)=X(n);Y(n+1)=Y(n);fork=2:nifY(k-1)*Y(k)<0m=m+1;R(m)=(X(k-1)+X(k))/2;ends=(Y(k)-Y(k-1))*(Y(k+1)-Y(k));if(abs(Y(k))12、:max1p1=p0-feval(f,p0)/feval(df,p0);err=abs(p1-p0);relerr=2*err/(abs(p1)+delta);p0=p1;y=feval(f,p0);if(err13、(relerr14、(abs(y)15、r=abs(p2-p1);relerr=2*err/(abs(p2)+delta);p0=p1;p1=p2;y=feval(f,p1);if(err16、(relerr17、(abs(y)