您好,欢迎访问三七文档
当前位置:首页 > 机械/制造/汽车 > 汽车理论 > 中南大学数值分析(计算方法)实验报告完整版
第1页计算方法实验报告姓名:学号:专业班级:指导老师:易昆南第2页实验一学号班级姓名指导教师易昆南实验题目非线性方程与方程组的数值解法评分1、实验目的:2、实验内容:第3页3、详细设计:symsxy1=1+1/x^2;y2=(1+x^2)^(1/3);y3=1/sqrt(x-1);a1=diff(y1);a2=diff(y2);a3=diff(y3);w1=subs(a1,1.5);w2=subs(a2,1.5);w3=subs(a3,1.5);ifabs(w1)1disp('y1是收敛的');elsedisp('y1是发散的');endifabs(w2)1disp('y2是收敛的');elsedisp('y2是发散的');第4页endifabs(w3)1disp('y3是收敛的');elsedisp('y3是发散的');endk=input('输入迭代次数')x1=1.5;x2=1.5;x3=1.5;fori=1:kx1(i+1)=1+1/(x1(i))^2x2(i+1)=(1+x2(i)^2)^(1/3)x3(i+1)=1/sqrt(x3(i)-1)end4、实验结果:第5页diedai1y1是收敛的y2是收敛的y3是发散的输入迭代次数1k=1x1=1.50001.4444x2=1.50001.4812x3=第6页1.50001.41425、实验总结:第7页实验二学号班级姓名指导教师易昆南实验题目非线性方程与方程组的数值解法(2)评分1、设计目的:2、实验内容:3、详细设计:(1)symsx第8页y=exp(x)+10*x-2;f=solve('exp(x)+10*x-2=0');a=0;b=1;k=input('设置检验次数')fori=1:kl(i)=subs(y,0)%l(1)为负值k(i)=subs(y,1)%k(i)为正值m=subs(y,(a+b)/2);ifm0a=(a+b)/2elseb=(a+b)/2endend(2)clearallformatlongk=input('请输入迭代次数');x(1)=0fori=1:k第9页x(i+1)=(2-exp(x(i)))/10end4、实验结果:(1)erfenfa设置检验次数3k=3l=-1k=10.718281828459045b=第10页0.500000000000000l=-1-1k=10.71828182845904510.718281828459045b=0.250000000000000l=-1-1-1第11页k=10.71828182845904510.71828182845904510.718281828459045b=0.125000000000000(2)diedai2请输入迭代次数2x=0第12页x=00.100000000000000x=00.1000000000000000.0894829081924355、实验总结:第13页实验三学号班级姓名指导教师易昆南实验题目牛顿下山法评分1、实验目的:2、实验内容:用牛顿下山法0.6附近的根。第14页3、详细设计:此程序有一个主函数,储存在一个M文件中,实验时调用函数完成。主函数一(niudunxiashan1)clearallx(1)=0.6;fori=1:infx(i+1)=x(i)-(x(i)^3-x(i)^2-1)/(3*x(i)^2-2*x(i));y(i)=x(i)^3-x(i)^2-1;y(i+1)=x(i+1)^3-x(i+1)^2-1;ifabs(y(i+1))abs(y(i))fork=1:50x(i+1)=x(i)-(1/2^(k-1))*(x(i)^3-x(i)^2-1)/(3*x(i)^2-2*x(i));y(i+1)=x(i+1)^3-x(i+1)^2-1;ifabs(y(i+1))abs(y(i))breakendendendiffloor(y(i+1)*10000)==0j=i+1;第15页breakendenddisp(['迭代次数为:'])disp(j)x4、实验结果:输入niudunxiashan1输出迭代次数为:8x=0.60000.0042-0.00321.21031.56091.47341.46561.4656第16页5、实验总结:第17页实验四学号班级姓名指导教师易昆南实验题目史蒂芬孙迭代法评分1、设计目的:第18页2、实验内容:求01xx23在0.6附近的根,迭代公式为(1)2k1kx/11x(2)32k1kx1x(3)1x/1xk1k3、详细设计:此程序有两个主函数,储存在两个M文件中,实验时分别调用函数完成。主函数一(steffensen1)clearallx(1)=0.6;fori=1:infy(i)=1+1/x(i)^2;z(i)=1+1/y(i)^2;x(i+1)=x(i)-(y(i)-x(i))^2/(z(i)-2*y(i)+x(i));iffloor(x(i+1)*1000)==floor(x(i)*1000)j=i+1;break第19页endendy(j)=0;z(j)=0;A=['k','x','y','z'];M=zeros(j,4);fori=1:jM(i,1)=i-1;M(i,2)=x(i);M(i,3)=y(i);M(i,4)=z(i);endxlswrite('E:\ProgramFiles\MATLAB\bin\迭代加速\steffensen.xls',A,'sheet1','A1:D1');xlswrite('E:\ProgramFiles\MATLAB\bin\迭代加速\steffensen.xls',M,'sheet1','A2:D7');主函数二(diedai)clearallx(1)=0.6;fori=1:infy(i)=(1+x(i)^2)^(1/3);第20页z(i)=(1+y(i)^2)^(1/3);x(i+1)=x(i)-(y(i)-x(i))^2/(z(i)-2*y(i)+x(i));iffloor(x(i+1)*1000)==floor(x(i)*1000)j=i+1;breakendendy(j)=0;z(j)=0;A=['k','x','y','z'];M=zeros(j,4);fori=1:jM(i,1)=i-1;M(i,2)=x(i);M(i,3)=y(i);M(i,4)=z(i);endxlswrite('E:\ProgramFiles\MATLAB\bin\迭代加速\steffensen.xls',A,'sheet2','A1:D1');xlswrite('E:\ProgramFiles\MATLAB\bin\迭代加速\steffensen.xls',M,'sheet2','A2:D5');第21页4、实验结果:输入steffensen1输出输入steffensen2输出5、实验总结:第22页第23页实验五学号班级姓名指导教师易昆南实验题目迭代法的计算评分1、实验目的:2、实验内容:用列主元高斯法解下列线性方程组:3.01006.03001.9900x11第24页1.27004.1600-1.2300x2=10.9870-4.81009.3400x313.00006.03001.9900x111.27004.1600-1.2300x2=10.9900-4.81009.3400x31用雅可比迭代法和高斯-塞得尔迭代法解下列线性方程组并检查收敛性:5x1+2x2+x3=-12-x1+4x2+2x3=20+2x1-3x2+10x3=33、详细设计:(1)functionx=gauss_lie(A,b)n=length(b);p=1:n;lu=A;y=[];fork=1:n[c,i]=max(abs(lu(k:n,k)));ik=i+k-1;ifik~=km=p(k);p(k)=p(ik);p(ik)=m;第25页ck=lu(k,:);lu(k,:)=lu(ik,:);lu(ik,:)=ck;endifk==nbreak;endlu(k+1:n,k)=lu(k+1:n,k)/lu(k,k);lu(k+1:n,k+1:n)=lu(k+1:n,k+1:n)-lu(k+1:n,k)*lu(k,k+1:n);endl=diag(ones(n,1))+tril(lu,-1);u=triu(lu);y(1)=b(p(1));fori=2:ny(i)=b(p(i))-l(i,1:i-1)*y(1:i-1)';endx(n)=y(n)/u(n,n);fori=n-1:-1:1x(i)=(y(i)-u(i,i+1:n)*x(i+1:n)')/u(i,i);endAbdetA=det(A)第26页x=x';end(2)functionx=gauss_seidel(A,b,x0,tol)if(nargin==2)x0=ones(size(b));tol=1e-6;elseif(nargin==3)tol=1e-6;elsesprintf('USAGE:Gauss_Seidel(A,b,x0,tol)')endD=diag(diag(A));U=triu(A,1);L=tril(A,-1);G=-(D+L)\U;d1=(D+L)\b;x=G*x0+d1;n=1;whilenorm(x-x0)=tolx0=x;x=G*x0+d1;第27页n=n+1;endnfunctionx=Jacobi(A,b,x0)n=10000;%最大迭代次数ee=1e-4;%精度n1=length(b);x1=zeros(n1,1);p=0;fori=1:np=p+1;forj=1:n1s=0;fork=1:n1ifk~=js=s+A(j,k)*x0(k);endendx1(j)=(b(j)-s)/A(j,j);endifnorm(x1-x0)eebreak第28页endx0=x1;endn=px=x1;4、实验结果:(1)将代码保存为gauss_lie.m,在Matlab主界面输入下述代码,得到结果:A=[3.01,6.03,1.99;1.27,4.16,-1.23;0.987,-4.81,9.34];b=[1,1,1]';gauss_lie(A,b)A=[3.00,6.03,1.99;1.27,4.16,-1.23;0.990,-4.81,9.34];b=[1,1,1]';gauss_lie(A,b)(2)将代码保存为Jacobi.m和Gauss_Seidel.m,在Matlab主界面输入下述代码,得到结果:A=[5,-1,2;2,4,-3;1,2,10]';b=[-12,20,3]';x0=[0,0,0]';Jacobi(A,b,x0)gauss_seidel(A,b)第29页实验六5、实验总结:学号班级姓名指导教师易昆南实验题目列主元三角分解评分1、设计目的:第30页2、实验内容:编写列主元矩阵分解法的程序,并以实例验证。A=987.027.101.381.016.403.634.923.199.1.3.详细设计:此程序有一个主函数,储存在一个M文件中,实验时调用函数完成。主函数一(liezhuyuanxiaoqu(A)functionoutput=liezhuyuanxiaoqu(A)n=size(A);forr=2:nfori=r:n-1b=0;第31页t=0;fork=1:r-1b=A(r,k)*A(k,i)+b;endA(r,i)=A(r,i)-b;s(i)=A(r,i);[a,m]=max(abs(s));B=A(r,:);A(r,:)=A(r+m-1,:);A(r+m-1,:)=B;fork=1:r-1t=A(i+1,k)*A(k,r)+t;endA(i+1,r)=(A(i+1,r)-t)/A(r,r);endb=0;fork=1:r-1b=A(r,k)*A(k,
本文标题:中南大学数值分析(计算方法)实验报告完整版
链接地址:https://www.777doc.com/doc-1852928 .html