資源描述:
《數(shù)值分析matlab編程之非線性方程求根.docx》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫。
1、1.二分法function[x,k]=bisect(a,b,f,emg)digits(8);ifnargin<4emg=1e-5;endmax1=round((log(b-a)-log(emg))/log(2));N=zeros(max1,2);k=0;whileabs(b-a)>emgfa=feval(f,a);fab=feval(f,(a+b)/2);iffab==0x=(a+b)/2;return;elseiffa*fab<0b=(a+b)/2;elsea=(a+b)/2;endN(k+1,
2、1)=a;N(k+1,2)=b;k=k+1;endx=vpa((a+b)/2);vpa(N)2.牛頓法function[x]=Newton(fun2,x0,err)digits(10);[f0,df]=feval(fun2,x0);ifnargin<3;err=1e-6;endifdf==0;error('df=0無解');endd=f0/df;i=1;whileabs(d)>err;x1=x0-d;[f0,df]=feval(fun2,x1);ifdf==0;error('df=0無解');en
3、dx0=x1;d=f0/df;fprintf('x(%d)=%.10ferr(%d)=%.10f',i,x1,i,d);i=i+1;endx=x1;3.不動點(diǎn)迭代function[p0,i,err,p]=NMPiteration(f,p0,tol,max1)P(1)=p0;fori=1:max1P(i+1)=feval(f,P(i));%formatcompacterr=abs(P(i+1)-P(i));fprintf('err(%d)=%f',i,err);p=P(i);if(err4、ol)break;endifi==max1disp(‘達(dá)到最大迭代次數(shù),退出迭代');endendx=P'4.Steffensen迭代function[p0,i,err,p]=Steffensen(f,p0,tol,max1)P(1)=p0;fori=1:max1y=feval(f,P(i));z=feval(f,y);P(i+1)=P(i)-(y-P(i)).^2/(z-2*y+P(i));%formatcompacterr=abs(P(i+1)-P(i));fprintf('err(%d)=%
5、f',i,err);p=P(i);if(err