《matlab程序设计(第二版)课后作业答案.doc》由会员分享,可在线阅读,更多相关《matlab程序设计(第二版)课后作业答案.doc(10页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、【精品文档】如有侵权,请联系网站删除,仅供学习与交流一、二、三、四、 matlab程序设计(第二版)课后作业答案.精品文档.五、 实验结果:1、 利用函数eye,ones,zeros,rand,randn函数分别产生首先编写脚本函数如下:a1=eye(3)a2=eye(15,8)b1=ones(3)b2=ones(15,8)c1=zeros(3)c2=zeros(15,8)d1=2*rand(3,3)-1d2=2*randn(3,3)+1r1=2*rand(15,8)-1r2=2*randn(15,8)+12、使用函数diag和reshape函数:编写脚本:a1=8 -7 2;a2=diag(
2、a1);a3=fliplr(a2);a4=5 3;a5=diag(a4,-1);a6=fliplr(a5);a=a3+a6a1=reshape(a,1,9)b1=4 5 7;b2=diag(b1);b3=fliplr(b2);b4=2 0 8;b5=diag(b4);b=b3+b5b6=reshape(b,1,9)3、直接在工作空间里输入:a=5-round(100*rand(50,2)/104、脚本文件:a=-pi:2*pi/360:pi;y1=sin(a)y2=cos(a)5.、编写脚本:A=rand(10)b=A0.6i,j,v=find(b)c=sum(v)6、编写脚本:A=randn
3、(10)b=-0.5A0.5i,j,v=find(b);c=sum(v)7、编写实现表中功能的语句:if and(a1,b=0.5) 语句1elseif and(a0.5) 语句2elseif and(a=1,b=1,b0.5) 语句4else disp(error)end8、编写脚本如下:A=2*rand(3)b=A1c=A.*b;i,j,v=find(c);v9、编写脚本函数:A=101*rand(100,3)b=A100;c=A.*b;i,j,d=find(c);d10、为节约空间,用5*5的矩阵来模拟100*100的矩阵:编写脚本函数如下:A=0 2 0 3 0;0 0 0 0 0;0
4、 8 0 5 0;0 4 0 5 0;0 4 0 2 0b=any(A);i,j,v=find(1-b);A(:,j)=;B=A;c=any(B);i,j,v=find(1-c);B(:,j)=;A=B一、 实验结果: 1、输入脚本函数:x=0:pi/50:2*pi;k=1 26 51 76 101;x(k)=;figure(1)subplot(2,2,1)plot(x,sin(x),grid onsubplot(2,2,2)plot(x,cos(x),grid onsubplot(2,2,3)plot(x,tan(x),grid onsubplot(2,2,4)plot(x,cot(x),g
5、rid on2、分别利用title函数给图形加上标题,用text函数给坐标系中的建立文本对象,可将字符串放在图形的指定位置,用xlabel、ylabel函数添加x、y轴的标记,用legend函数给图形加上插图说明。写成脚本函数如下:x=0:0.1:2;y1=exp(x);figure(1);plot(x,y1);title(itx);xlabel(x);ylabel(ity=exp(x);text(0.6,-0.28,exp(x)rightarrow);legend(ity=exp(x);y2=log10(x);figure(2);plot(x,y2);title(itx);xlabel(x)
6、;ylabel(ity=log10(x);text(0.6,-0.28,log10(x)rightarrow);legend(ity=log10(x);将脚本函数保存为xiti1.m,运行后产生图形如下:3、编写脚本函数如下:x=0:pi/40:4*pi;figure(1);subplot(2,1,1);plot(x,sec(x),grid on;title(正割函数图形);ylabel(y),xlabel(x);subplot(2,1,2);plot(x,csc(x),grid on;title(余割函数图形);ylabel(y),xlabel(x);4、编写脚本函数如下:x=(1:.1:1
7、0);y=exp(x+5)+x.3;figure(1);semilogx(x,y,k-);title(y=e(x+5)+x.3);%此处加表示是写在指数部分的字符ylabel(y),xlabel(x);5、绘制多峰函数x,y=meshgrid(-3:.125:3);z=peaks(x,y);plot3(x,y,z),grid on;绘制多条三角函数曲线:脚本函数如下:x=0:pi/50:2*pi;y1=sin(x);y2=cos(x);figure(1)plot(x,y1,k-,x,y2,k-),grid ontext(pi,0.05,leftarrow sin(alpha)text(pi/4
8、-0.05,0.05,cos(alpha)rightarrow)title(sin(alpha) and cos(alpha)xlabel(alpha),ylabel(sin(alpha)?cos(alpha)6使用axis调整坐标轴的刻度编写的脚本如下:x=-3:.1:3;y1=2*x+5;y2=x.2-3*x+1;subplot(2,1,1),plot(x,y1),grid on;axis(-3 3 -5 10)title(y1=2x+5)ylabel(y),xlabel(x)subplot(2,1,2),plot(x,y2),grid on;axis(-3 3 -5 10)title(x
9、.2-3x+1)ylabel(y),xlabel(x)二、 实验结果: 1、选取一个颜色cool进行绘制,其他的颜色板的绘制都是相似的,编写的脚本文件如下:cmap=colormap; L=length(cmap); x=1:L; y=x*ones(size(x);figure(1) bar(x(1:2),y(1:2,:);title(cool)colormap(cool)每次都改动colormap()中的依次为autumn,bone,cool,hot,hsv,gray,flag,line即可2,编写脚本:x=190 33 45 42 45;explode=0 1 0 0 0;labels=生
10、活费,资料费,电话费,购买衣服,其他费用;figure(1)colormap graypie(x,explode,labels)title(某研究生每月消费比例)3,编写成一个脚本函数如下:x,y=meshgrid(-3:.125:3)z=(x-2).2+(y-1.2).2figure(1)plot3(x,y,z),grid onfigure(2)mesh(x,y,z),grid on4、编写成脚本文件:x,y=meshgrid(-3:.125:3);z=x.2+y.2+sin(x*y);c=ones(size(x);figure(1)surfc(x,y,z,c),grid onview(-1
11、5,25)figure(2)contour3(x,y,z,30),grid onview(-15,25)5、画出球形:sphere axis squarex,y,z=spherex=0.5*xy=0.5*yz=0.5*z hold onsurf(x,y,z)surf(x+1,y+1,z+1)柱形:cylinder axis squareh=findobj(Type,surface);set(h,CData,rand(size(get(h,CData)二、 实验结果: 1、先编写函数文件:function f=isprimnum(x)n=fix(sqrt(x);for i=2:n if rem(
12、x,i)=0 f= false; else f=true; endend再编写脚本文件:a=19b=isprimnum(a)2、编写函数文件如下:function num,str=shanzifu(s)n=length(s);num=0;k=0;z=;for i=1:n if s(i)= num=num+1; end if s(i)= k=k+1; z(k)=i; endend s(z)=; str=s;编写脚本运行:w=I am a student!a b=shanzifu(w);ab运行解雇如下:w =I am a student!a =12b =Iamastudent!3、求零的个数,编
13、写函数文件:function c=qiuling(A)c=0;for j=1:2006s=num2str(A(j);n=length(s);for i=1:n if s(i)=0 c=c+1; endendend写脚本文件运行:A=1:2006;B=qiuling(A)运行的结果是:B =5044、先编写函数文件:function x1,x2=fangcheng(a,b,c)if a=0 disp(); x2=-c/b; x1=-c/b; returnendif b2-4*a*c0 x1=(-b+sqrt(b2-4*a*c)/2*a; x2=(-b-sqrt(b2-4*a*c)/2*a; di
14、sp(); endend编写脚本函数运行:x1,x2=fangcheng(0,3,4)x3,x4=fangcheng(1,-2,1)x5,x6=fangcheng(2,3,1)x7,x8=fangcheng(2,1,1)显示的结果如下:只有一个根!x1 =-1.3333x2 =-1.3333方程有两个相等的根!x3 =1x4 =1方程有两个不等的根!x5 =-2x6 =-4无实根!x7 =不存在实根x8 =不存在实根5、先编写两个函数文件function y=fenduan(x)if x =-3 & x=-1 & x= 1 & x =-3 & x(i)=-1 & x(i)=1 & x(i) c
15、hengji=pingjun(x) 90 67 89 76 98 77chengji = 81.72413、编写奖金的函数文件function y=jiangjin(x)if x10&x20&x40 y=(x-40)*0.01+20*0.02+10*0.05+10*0.1; end4、先编写求前n项和的函数文件:function y=qiuhe15(n)n=input(please input n:n);i=1;a(1)=1;a(2)=2;y(1)=0;for i=1:n a(i+2)=a(i)+a(i+1);endfor i=1:n h(i)=a(i+1)/a(i);end for i=1:
16、15 y=y+h(i); end5、这个问题属于约瑟夫环的问题:编写函数文件如下:function a=yuesefu(n,m)b=1:n;k=0;m1=1;i=1;while m1 fzero at 293The function values at the interval endpoints must differ in sign.Error in = xiti18 at 3z=fzero(hanshu1,x)出错信息表示此区间内没有零点。19,可以用dblquad函数求双重积分编写函数文件如下:function out= shuang( x,y )out=exp(-x*y-2*x*y)
17、;end脚本文件:d=dblquad(shuang,0,1,-1,1)20,求微分方程组:编写函数文件function dy= diff2( t,y )dy=0.5-y(1);y(1)-4*y(2)end编写脚本文件:X0=1;-0.5;tspan=0,25;T,X=ode45(diff2,tspan,X0);figure(1);subplot(3,1,1),plot(T,X(:,1),r),title(x_1),grid on;subplot(3,1,2),plot(T,X(:,2),k),title(x_2),grid on;subplot(3,1,3)plot(X(:,1),X(:,2)
18、,title(),grid on;xlabel(x_1),ylabel(x_2)三、实验结果: 1,脚本文件如下:a=rand(10,10,5);%随机产生房间内的各个点内的温度for i=1:1:5;disp(a(:,:,i);means=sum(a(:,:,i);%求一个平面内阵列的一列的和mean(i)=sum(means)/100;%求一个平面内所有温度的平均值disp(mean(i);%将结果显示出来end将脚本文件保存为fang.m保存后运行2,脚本语言输入:a=100*rand(6,5,10);%用随机阵列模拟一个寝室六个人的五门课的成绩,一共十个寝室for i=1:1:10means=sum(a(:,:,i);mean(i)=sum(means)/30;%求出每个寝室的平均成绩enddisp(mean);for i=1:9%对十个寝室的平均成绩进行排序 flag=-1; for j=10:-1:i+1 if mean(j)mean(j-1) y=mean(j);mean(j)=mean(j-1);mean(j-1)=y;flag=0; end end if flag,break,endenddisp(mean);将脚本文件保存为paixu.m