计算方法大作业机械电子工程系老师:廖福成注:本文本只有程序题,证明题全部在手写已交到理化楼204了。,并用二分法求这个根。要求。请给出程序和运行结果。证明:设f(x)=x3-x-1则f(1)=-1,f(2)=5,f(1)*f(2)=-5<0因此,方程在[1,2]上必有一实根。二分法求解程序:%:functionlc=homework2(x)lc=x^3-x-1;在MALAB窗口运行:cleara=1;b=2;tol=10^(-3);N=10000;k=0;fa=homework2(a);%f需事先定义fork=1:Np=(a+b)/2;fp=homework2(p);if(fp==0||(b-a)/2<tol)breakendiffa*fp<0b=p;elsea=p;endendk,p程序运行结果:k=10p=,:取迭代初值,并设,:Matlab程序如下:%=zuoye3(fname,dfname,x0,e,N)ifnargin<5,N=500;endifnargin<4,e=1e-7;endx=x0;x0=x+2*e;k=0;whileabs(x0-x)>e&k<N,k=k+1;x0=x;x=x0-feval(fname,x0)/feval(dfname,x0);disp(x)endifk==N,warning('已达上限次数');end在Matlab窗口中执行:zuoye3(inline('x^3+2*x^2+10*x-20'),inline('3*x^2+4*x+10'),1,1e-7)结果如下:=:令:,:Matalb程序如下:%=zuoye4(fname,dfname,x0,e,N)ifnargin<5,N=500;endifnargin<4,e=1e-7;endx=x0;x0=x+2*e;k=0;whileabs(x0-x)>e&k<N,k=k+1;x0=x;x=x0-feval(fname,x0)/feval(dfname,x0);disp(x)endifk==N,warning('已达上限次数');end在Matlab窗口执行:zuoye4(inline('x^3-x-1'),inline('3*x^2-1'),1,1e-7)结果如下:=,并求解解:Matlab程序如下:A=[2-14-31;-11213;4233-1;-31324;13-144]b=[111441618]functionx=zuoye6(A,b)[n,v]=size(b);D=[A,b;eye(n),zeros(n,v)],[s1,m]=size(D);fork=1:(n-1)s=abs(A(k,k));p=k;q=k;fori=k:nforj=k:nifabs(A(i,j))>ss=abs(A(i,j));p=i;q=j;endendendifp>kt=D(k,:);D(k,:)=D(p,:);D(p,:)=t;endifq>kt1=D(:,k);D(:,k)=D(:,q);D(:,q)=t1;endh=D(k+1:n,k)/D(k,k);D(k+1:n,k+1:m)=D(k+1:n,k+1:m)-h*D(k,k+1:m);D(k+1:n,k)=zeros(n-k,1);endfork=n:-1:1D(k,k:m)=D(k,k:m)/D(k,k);forr=1:k-1D(r,:)=D(r,:)-D(r,k)*D(k,:);endendP=D(n+1:2*n,1:n);Q=D(1:n,n+1:m);x=P*Q在Matlab窗口中执行:A=[-14-31;-11213;4233-1;-31324;13-144];b=[111441618]';zuoye6(A,b)运行结果如下:x=-:于是有求解Ax=b即为求解,式中b=(10000)T据y=据=x=Matlab程序如下:%=zuoye7(a,b,c,d)a1=[0;a];n=length(b);q=ze
北京科技大学计算方法大作业概要 来自淘豆网m.daumloan.com转载请标明出处.