资源描述:
《计算方法上机实验报告-MATLAB》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、《计算方法》实验报告指导教师:学院:班级:团队成员:例2.7应用恥wa迭代法求方程"-无-1=0在兀=1附近的数值解耳,并使其满足
2、x,-x,_J<10-8原理:在方程/(对=0解的隔离区间[⑦可上选取合适的迭代初值勺,过曲线y=/(x)的点(心/(兀°))引切线厶:,=/(兀0)+广(如)(兀-兀。)其与兀轴相交于点:石=兀_丿黒/U)进一步,过曲线y=/(无)的点(心/(西))引切线〔2:歹=/(兀
3、)+广(召)(兀一兀])其与兀轴相交于点:如此循环往复,可得一列逼近方程/(兀)=0精确解F的点兀0,西,,耳,,其一般表达式为:广(和)该公式所表述的求解方法称为〃迭代法或切
4、线法。程序:f.mf1.mXnewton」teration.mfunctiony二f(x)%定义原函数y=x3-x-l;endf.mf1.mnewton」teration.m+functionyl=f1(xO)%求导函数在xO点的值symsx;t二diff(f(x),x);yl二subs(t,x,xO);enduIf.mXf1.mxnewton」teratior)・m"Ifunctionnewton_iteration(xO,tol)%输入初始迭代点xO及精度tolxl=xO-f(xO)/fl(xO);k=l;%调用f函数和fl函数whileabs(xl~xO)>=tolxO=
5、xl;xl=xO-f(xO)/fl(xO);k二k+1;endfprintf(,满足精度要求的数值为x(%d)=%1.16g,,k,xl);fprintfC迭代次数为k=%d,,k);end结果:命令行窗口»newton_iteration(1,10*(-8))满足精度要求的数值为x(6)=l.324717957244746迭代次数为k=6A»二、题目例3.7试利用%co勿迭代公式求解方程组P-1-1_1]/X-110-1-1兀212-1-15-1x38、一1-1-1io丿H丿<34,要求数值解X⑷满足卜-X%§10巴其中X=(1,2,3,4/为方程组的精确解。'原理:
6、a2将线性方程组的系数矩阵A=°21。22分解为当对角阵D可逆时,<0500000、0<00a20Q]3a23气、a2nL=。31°3200,u=000an-X.n宀1an20丿><0000丿A=L+D+U,其中D=diag(au,a22,,anu),方程组AX=b可等价地写成X=_D'(L+U)X+D]b,据此可得Jacobi迭代公式为X(e)=—⑷+D'b,比=0,1,其中X⑷二(屮,於),,)TeRn,该迭代公式也可以写成如下的分量形式严)=bi~£aqx'jZ戶1,丿缶,心1,2,IIjacobi.m—X^~+[functionjacobi()%输入矩阵A、b、精度
7、tol%A=[5-1-1-1;-110-1-1;-1-15-1;-1-1-110];b二[-412834]';tol二1(T-4;%A=input('系数矩阵A二');%输入矩阵A%b二input('矩阵b二’);%输入矩阵b%tol=inputC精度要求tol=,);%输入精度tolX=inv(A)*b;[n,〜]二size(A);D=diag(diag(A));L二tr订(A)-D;U=triu(A)-D;X0=zeros(n,1);Xl=inv(D)*b—inv(D)*(L+U)*X0;XO=X1;X2=X-X0;k=l;whi1eabs(norm(X2,2))>=tol
8、Xl=inv(D)*b-inv(D)*(L+U)*X0;XO=X1;X3=X-X0;%收敛性判断%ifnorm(X3,2)>norm(X2,2)break;elseX2=X3;k二k+1;endend%结果输出%ifX2〜二X3fprintfC应用jacobi迭代法不收敛');elsefprintfC应用jacobi迭代公式迭代k=%d次后可得满足精度要求的数值解X(%d)=k,k);fori二l:nfprintf(J%1.15f',XI(i));endfprintf且其满足计算精度norm(abs(X-X(%d)),2)=%1.15g<%.le,,k
9、,norm(abs(X-Xl),2),tol);end结果:命令行窗口»jacobiI应用jacobi迭代公式迭代k=14次后可得满足精度要求的数值解X(14)=0.9999695540620401.9999819433188202.9999695537343603.999981943318800且其满足计算楕度norm(abs(X-X(14)),2)=5.00601408390694e-05