您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 管理学资料 > matlab程序设计与应用(第二版)-刘卫国--课后实验报告
实验一MATLAB运算基础一、实验目的1、熟悉启动和退出MATLAB的方法。2、熟悉MATLAB命令窗口的组成。3、掌握建立矩阵的方法。4、掌握MATLAB各种表达式的书写规则以及常用函数的使用。二、实验内容三、实验程序1、1.1z1=(2*sin(85*pi/180))/(1+exp(2));结果z1=0.23751.2x=[2,1+2*1i;-0.45,5];z2=1/2*log10(x+sqrt(1+x^2));结果x=2.00001.0000+2.0000i-0.45005.0000z2=0.3090-0.0110i0.3895+0.1589i0.0929+0.4058i0.5012-0.0019i1.3a=-3.0:0.1:3.0;z3=(exp(0.3*a)-exp(-0.3*a))/2.*sin(a+0.3)+log10((0.3+a)/2);1.4t=0:0.5:2.5;z4=(t=0&t1).*(t.*t)+(t=1&t2).*(t.*t-1)+(t=2&t3).*(t.*t-2*t+1);结果z4=00.250001.25001.00002.25002、a=[12,34,-4;34,7,87;3,65,7];b=[1,3,-1;2,0,3;3,-2,7];x1=a+6*b;x2=a-b+eye;x3=a*b;x4=a.*b;x5=a^3;x6=a.^3;x7=a/b;x8=b\a;x9=[a,b];x10=[a([1,3],:);b^2];3、A=[12345;678910;1112131415;1617181920;2122232425];B=[3016;17-69;023-4;970;41311];C=A*B;F=size(C);D=C(F(1)-2:F(1),F(2)-1:F(2));结果F=53D=5203977055578907174、A=100:999;B=rem(A,21);C=length(find(B==0));结果C=43四、实验小结多练习,多动手,达到熟能生巧,灵活应用MATLAB做各种简单的运算算法。实验二MATLAB矩阵分析与处理一、实验目的1、掌握生成特殊矩阵的方法。2、掌握矩阵分析的方法。3、用矩阵求逆法解线性方程组。二、实验内容三、实验程序1、E=eye(3);R=rand(3,2);O=zeros(2,3);S=diag([2,3]);A=[E,R;O,S];C=A^2;B=[E,(R+R*S);O,S^2];E,R,O,S,A,C,B结果E=100010001R=0.95720.14190.48540.42180.80030.9157O=000000S=2003A=1.0000000.95720.141901.000000.48540.4218001.00000.80030.91570002.0000000003.0000C=1.0000002.87150.567501.000001.45611.6870001.00002.40083.66290004.0000000009.0000B=1.0000002.87150.567501.000001.45611.6870001.00002.40083.66290004.0000000009.00002、H=hilb(5);P=pascal(5);Hh=det(H);Hp=det(P);Th=cond(H);Tp=cond(P);H,P,Hh,Hp,Th,Tp结果Hh=3.7493e-012Hp=1Th=4.7661e+005Tp=8.5175e+0033、A=fix(10*rand(5));H=det(A);Trace=trace(A);Rank=rank(A);Norm=norm(A);A,H,Trace,Rank,Norm结果H=-3.2509e+004Trace=33Rank=5Norm=25.32084、A=[-29,6,18;20,5,12;-8,8,5];[V,D]=eig(A);结果A=-2961820512-8855、A=[1/2,1/3,1/4;1/3,1/4,1/5;1/4,1/5,1/6];b=[0.95,0.67,0.52]';x1=A\b;B=[0.95,0.67,0.53]';x2=A\b;C=cond(A);结果x1=1.20000.60000.6000x2=1.20000.60000.6000C=1.3533e+0036、A=[1,4,9;16,25,36;49,64,81];B=sqrtm(A);C=sqrt(A);结果B=0.6344+1.3620i0.3688+0.7235i0.7983-0.4388i1.4489+1.1717i2.7697+0.6224i3.2141-0.3775i4.3578-1.6237i5.7110-0.8625i7.7767+0.5231iC=123456789四、实验小结熟悉掌握利用zeros、ones、eye、rand、rands建立各种特殊矩阵,并练熟用冒号表达式建立矩阵并获得其子矩阵,学会计算矩阵的行列式值、迹、秩、范数及其特征值等。实验三选择结构程序设计一、实验目的1、wit掌握建立和执行M文件的方法。2、掌握利用if语句实现选择结构的方法。3、掌握利用sch语句实现多分支选择结构的方法。4、掌握try语句的使用。二、实验内容三、实验程序1、forx=[-5,-3,1,2,2.5,3,5]ifx0&&x~=-3y=x.*x+x-6;elseifx=0&&x5&&x~=2&&x~=3y=x.*x-5*x+6;elsey=x.^2-x-1;endend结果y=14y=11y=2y=1y=-0.2500y=5y=192、2.1x=input('请输入一个成绩');ifx=100&x=90disp('成绩等级为:A');elseifx90&x=80disp('成绩等级为:B');elseifx80&x=70disp('成绩等级为:C');54elseifx=60&x70disp('成绩等级为:D');elseifx=0&x60disp('不及格');elsedisp('输入的成绩不合理')end结果请输入一个成绩88成绩等级为:B请输入一个成绩55不及格请输入一个成绩100成绩等级为:A请输入一个成绩101输入的成绩不合理2.2x=input('请输入一个成绩');switchfloor(x/10)case{9,10}disp('成绩等级为:A');case{8}disp('成绩等级为:B');case{7}disp('成绩等级为:C');case{6}disp('成绩等级为:D');case{0,1,2,3,4,5}disp('不及格');otherwisedisp('输入的成绩不合理')end结果请输入一个成绩52不及格请输入一个成绩78成绩等级为:C请输入一个成绩90成绩等级为:A3、x=input('请输入工号');y=input('请输入该员工工时数');ify120s=120*84+(y-120)*84*(1+0.15)elseify60s=y*84-700;elses=y*84;endifs0s=0;enddisp('应发的工资是')s;结果请输入工号100请输入该员工工时数201s=1.7905e+004应发的工资是1.7905e+0044、x=floor(rand(2,1)*89)+10;sign=input('请输入标点符号:');x=int2str(x);expression=strcat(x(1),sign,x(2))eval(expression)结果请输入标点符号:expression=35ans=355、A=rand(5,6);n=input('pleaseenternumbern')if(nsize(A,1))n=size(A,1);disp('nlargerthantherowofmatrixA')endB=A(n,:);结果pleaseenternumbern4n=4B=0.76550.64630.65510.34040.50600.1386pleaseenternumbern8n=8nlargerthantherowofmatrixAB=0.24350.61600.54970.38040.77920.0119四、实验小结实验四循环结构程序设计一、实验目的1、掌握利用for语句实现循环结构的方法。2、掌握利用while语句实现循环结构的方法。3、熟悉利用向量运算来代替循环操作的方法。二、实验内容三、实验程序1、1.1利用循环结构forn=[100,1000,10000]x=1:n;value=sqrt(6*sum(1./x./x));end结果value=3.1321value=3.1406value=3.14151.2利用向量运算forn=[100,1000,10000]sum=0;forx=1:nsum=sum+1/(x.^2);endvalue=sqrt(6*sum)end结果value=3.14152、y=0;n=1;whiley3y=y+1/(2*n-1);n=n+1;endn=n-1;y=y-1/(2*n-1)n=n-1结果y=2.9944n=563、a=input('a=?');b=input('b=?');x0=1;x1=a/(b+x0);n=1;y=abs(x1-x0);whilen=500&y10^(-5)x1=a/(b+x0);y=abs(x1-x0);x0=x1;n=n+1;endr10=(-b+sqrt(b*b+4*a))/2;r20=(-b-sqrt(b*b+4*a))/2;x1,r10,r20结果a=?1b=?1ans=1x1=0.6180r10=0.6180r20=-1.61804、fori=1:100ifi==1f(i)=1;elseifi==2f(i)=0;elseifi==3f(i)=1;elsef(i)=f(i-1)-2*f(i-2)+f(i-3);endenda=max(f);b=min(f);c=sum(f);disp(['最大值',num2str(a)]);disp(['最小值',num2str(b)]);disp(['各数之和',num2str(c)]);zhengshu=length(find(f0));zeroshu=length(find(f==0));fushu=length(find(f0));结果最大值;4.377633e+011最小值:-8.994121e+011各数之和:-7.427456e+011zhengshu=49zeroshu=2fushu=495、s=0;n=0;fori=2:49A=i*(i+1)-1;m=fix(sqrt(A));forj=2:mifrem(A,j)==0breakendendifj==mn=n+1;s=s+A;endendn,s结果n=28s=21066四、实验小结在利用循环语句实现算法时,要注意循环变量的赋值,比如(for循环变量=表达式一:表达式二:表达式三循环体语句end)中初值、步长及终值的赋值。在本节的学习中还应熟练掌握用向量运算来代替循环结构来实现循环算法。实验五函数文件一、实验目的1、理解函数文件的概念。2、掌握定义和调用MATLAB函数的方法。二、实验内容三、实验程序1、function[expval,logval,sinval,cosval]=W51(x)expval=exp(x);logval=log(x);sinval=sin(x);cosval=cos(x);disp(['复数e的指数是',num2str(expval)])disp(['复数e的对数是',num2str(logval)])disp(['复数e的正弦是',num2str(sinval)])disp(['复数e的余弦是',num2str(cosval)])
本文标题:matlab程序设计与应用(第二版)-刘卫国--课后实验报告
链接地址:https://www.777doc.com/doc-1353683 .html