版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
matlab基础与应用部分习题答案matlab基础与应用部分习题答案matlab基础与应用部分习题答案xxx公司matlab基础与应用部分习题答案文件编号:文件日期:修订次数:第1.0次更改批准审核制定方案设计,管理制度作业一4、写出完成下列操作的命令。(1)将矩阵A第2~5行中第1,3,5列元素赋给矩阵B。>>M=[0:1:48];>>A=reshape(M,7,7)A=0714212835421815222936432916233037443101724313845411182532394651219263340476132027344148>>B=A(2:5,1:2:5)B= 11529216303173141832(2)删除矩阵A的第七行元素。>>A(7,:)=[]A=071421283542181522293643291623303744310172431384541118253239465121926334047(3)将矩阵A的每个元素值加30。>>A=A+30A=303744515865723138455259667332394653606774334047546168753441485562697635424956637077(4求矩阵A的大小和维素。sizeA=size(A)dA=ndims(A)sizeA=67dA=2(5)将向量t的0元素用机器零来代替。>>t=[123405];t=123405>>find(t==0)ans=5>>t(5)=epst=(6)将含有12个元素的向量x转换成3*4矩阵。>>x=[0:11]x=01234567891011>>y=reshape(x,3,4)y=03691471025811(7)求一个字符串的ASCII。>>abs('a')ans=97(8)求一个ASCII所对应的字符。>>char(99)ans=c5、已知A[97673410-7875655325-23-590=-12547]写出完成下列操作的命令。取出A的前3列构成矩阵B,前两列构成矩阵C,右下角3*2子矩阵构成矩阵D,B与C的乘积构成矩阵E。>>B=A(1:3,:)B=97673410-7875655325-23-59>>C=A(:,1:2)C=9767-78753250-12>>D=A(2:4,3:4)D=655-23-59547>>E=B*CE=527111574-1133666419783112输出【50,100】范围的全部元素。>>find(A>=50&A<=100)ans=1561012>>output=[A(1)A(5)A(6)A(10)A(12)]output=9767756554二、实验题>>x=-74*pi/180;y=-27*pi/180;sin((x*x+y*y))/(sqrt(tan((abs(x+y))))+pi)ans=->>a=::,exp.*a).*sin(a+>>x=[24;5];*log(x+sqrt(1+x.*x))ans=>>A=[3542;34-457;879015],B=[1-267;2874;930]>>A*BA.*Bans=12943241977-407-105240259112489ans=3-10813468-3605187832700>>A^3A.^3>>A/BB\A>>[A,B][A([1,3],:);B^2]>>a=1+2i,b=3+4i,c=exp(pi/6*i)c+a*b/(a+b)作业二从键盘输入一个4位整数,按如下规则加密后输出。加密规则:每位数字都加上7,然后用和除以10的余数取代该数字;然后将第1位数和第3位数交换,第2位数和第4位数交换。M文件名为:程序:x=input('输入一个四位整数:');y=[fix(x/1000),mod(fix(x/100),10),mod(fix(x/10),10),mod(x,10)]z=mod((y+7),10)x=z(3)*1000+z(4)*100+z(1)*10+z(2)结果:输入一个四位整数:1234y=1234z=8901x=189硅谷公司员工的工资计算方法如下。工作时数超过120h者,超过部分加发15%。工作时数低于60h者,扣发700元。其余按每小时84元计发。试编程按输入的工号和该号员工的工时数,计算应发工资。程序:gonghao=input('输入工号');hour=input('输入工时');every=84;ifhour>120gongzi=every*120+*every*(hour-120);elseifhour<60gongzi=every*hour-700;elsegongzi=devery*hour;endformatbank;display([gonghao,gongzi])(1)结果:输入工号12输入工时130ans=(2)结果:输入工号12输入工时56ans=(3)结果:输入工号12输入工时80ans=根据,求π的近似值。当n分别取100、1000、10000时,结果是多少要求:分别用循环结构和向量运算(使用sun函数)来实现。(1)程序:(循环结构):n=input('inputn:');s=0;fori=1:ns=s+1/i^2;pai=sqrt(s*6);enddisplay(pai)inputn:100pai=(2)程序:(向量结构):n=input('inputn:');i=1:n;pai=sqrt(sum(1./i.^2)*6);display(pai);结果:inputn:100pai=根据,求:y﹤3时的最大n值;与(1)的n值对应的y值。y=0;k=0;whiley<3k=k+1;y=y+1/(2*k-1);enddisplay([k-1,y-1/(2*k-1)])结果:ans=考虑一下迭代公式:其中,a、b为正的常数。编写程序求迭代的结果,迭代的终止条件为||,迭代初值,迭代次数不超过500次。程序:x0=;a=input('a=');b=input('b=');x=a/(b+x0);m=1;whileabs(x-x0)>1e-5&m<500x0=x;x=a/(b+x0);m=m+1;enddisplay([m,x]);display([(-b+sqrt(b^2+4*a))/2,(-b-sqrt(b^2+4*a))/2]);结果:a=5b=5ans=ans=如果迭代过程收敛于r,那么r的准确值是,当(a,b)的值取(1,1)、(8,3)、(10,)时,分别对迭代结果和准确值进行比较。a=1b=1ans=ans=a=8b=3ans=ans=a=10b=ans=ans=6、已知当时,y的值是多少程序:该题使用了function的调用。函数文件functionb=f(n);b=n+10*log(n^2+5);结果:y=f(40)/(f(30)+f(20))y=当时,y的值是多少程序:函数文件functionf=fun(n)f=sum([1:n].*([1:n]+1));结果:y=fun(40)/(fun(30)+fun(20))y=作业三绘制下列曲线。(1)(2)(3)(4)解:(1)程序:x=-5::5;y=x-x.^3/(3*2*1);plot(x,y);(2)程序:x=-10::10;y=exp(-x.*x/2)/(2*pi);>>plot(x,y);程序:f='x.^2+2*y.^2-64';ezplot(f,[-10,10,-10,10]);ezplot('x.^2+2*y.^2-64',[-10,10,-10,10]);(4)程序:t=0::8*pi;>>x=t.*sin(t);>>y=t.*cos(t);>>plot(x,y); 已知,,完成下列操作:在同一坐标系下用不同的颜色和线型绘制两条曲线,给曲线添加文字说明;解:程序:x1=linspace(0,1,100);>>y1=2*;>>t=linspace(0,pi,100);>>x=sin(3*t).*cos(t);>>y=sin(3*t).*sin(t);>>plot(x1,y1,'k:',x,y,'bp');>>text,1,'y=');>>text,,'x=sin(3t)cos(t)');>>text,,'x=sin(3t)sin(t)'); 以子图形式,分别用条形图和散点图绘制两条曲线,并为各子图添加函数标题。程序:subplot(1,2,1);bar(x1,'group');title('y1=');subplot(1,2,2);barh(t,'stack');title('stack');subplot(1,2,1);>>scatter(x1,y1,10);>>title('y=');>>subplot(1,2,2);>>scatter(x,y,10);>>title('x=sin(3t)cos(t),y=sin(3t)cos(t)');分别用plot和fplot函数绘制函数的曲线,分别分析两条曲线的差别。解:程序:subplot(1,2,1);x=1:1:100;y=sin(1./x);plot(x,y);subplot(1,2,2);>>fplot('sin(1/x)',[1,100]);设,,在同一图形窗口采用子图的形式绘制条形图、阶梯图、杆图和对数坐标图。解:程序:t=-pi::pi;>>y=1./(1+exp(-t));>>bar(t,y);>>subplot(2,2,2);>>stairs(t,y);>>subplot(2,2,3);>>stem(t,y);>>subplot(2,2,4);>>semilogy(t,y);结果:绘制下列极坐标图。(1)(2),解:(1)程序:theta=linspace(-pi,pi,100);ro=5.*cos(theta)+4;polar(theta,ro);(2)程序:fi=linspace(0,2*pi,100);a=1r=a.*(1+cos(fi));polar(fi,r);6、绘制下列三维图线。(1)(2)解:(1)程序:t=0:pi/20:2*pi;x=exp(-t./20).*cos(t);y=exp(-t./20).*sin(t);z=t;plot3(x,y,z);结果:程序:t=0::1;x=t;y=t.^2;z=t.^3;plot3(x,y,z);结果:7、已知,绘制其在范围内的曲面图和等高线。解:程序:x=-30::0;y=0::30;[x,y]=meshgrid(x,y);z=10.*sin(sqrt(x.^2+y.^2))./sqrt(1+x.^2+y.^2);meshc(x,y,z);结果:8、已知,绘制其曲面图,并将部分镂空。解:程序:x=linspace(-3,3,100);y=linspace(-3,3,100);[xy]=meshgrid(x,y);fxy=-5./(1+x.^2+y.^2);i=find(abs(x)<=&abs(y)<=;fxy(i)=NaN;surf(x,y,fxy)9、绘制曲面图形,应用插值着色处理,并设置光照效果。解:程序:u=linspace(1,,100);v=linspace(-pi,pi,1000);[u,v]=meshgrid(u,v);x=3.*u.*sin(v);y=2.*u.*cos(v);z=4*u.^2;x=3*u.*sin(v);y=2*u.*cos(v);z=4*u.^2;surf(x,y,z);shadinginterp;light('position',[1,1,1]);10、设计一个蓝色球体沿正弦曲线运动的动画。解:程序:t=0:pi/250:10*pi;y=sin(t);plot(t,y,'m');h=line('color',[0,0,1],'marker','.','markersize',50);fori=1:length(t);set(h,'xdata',t(i),'ydata',y(i));M(i)=getframe;endmovie(M);第四次作业P103思考题5、写出完成下列操作的命令。(1)建立3阶单位矩阵A。A=eye(3)A=100010001(2)建立5*6随机矩阵A,其元素为[100,200]范围内的随机整数。a=100;b=200;A=fix(a+(b-a)*rand(5,6))A=195176161140105120123145179193135119160101192191181160148182173141100127189144117189113119(3)产生均值为1、方差为的500个正态分布的随机数。y=1+sqrt*randn(25,20)(4)产生和A同样大小的幺矩阵。B=ones(size(A))(5)将矩阵A的对角线的元素加30。A=[1,2,3,4,5,6;5,6,2,1,3,5;7,8,9,4,5,6]A=123456562135789456>>A=A+30*eye(size(A))A=312345653621357839456(6)从矩阵A提取主对角线元素,并以这些元素构成对角阵B。C=diag(diag(A))C=310003600039实验题:4、分别用矩阵求逆、左除运算符、矩阵分解等方法求下列对角方程组,并分析程序的执行时间。其中A=2-1000-12-1000-12-1000-12-1000-12>>b=[1;0;0;0;0]b=10000解:程序:%矩阵求逆ticx1=inv(A)*btoc%左除运算ticx2=A\btoc%矩阵分解%Q、R分解tic[Q,R]=qr(A);x4=R\(Q\b);toc%L、U分解tic[L,U]=lu(A);x3=U\(L\b)toc%Cholesky分解ticR=chol(A);x5=R\(R'\b)toc结果:P121第五章实验题利用,MATLAB提供的rand函数生成30000个符合均匀的随机数,然后检验随机数的性质。均值和标准方差。解:A=rand(1,30000);>>mean(A)std(A)最大元素和最小元素。max(A)min(A)大于的随机数个数占总数的百分比。size(find(A>)/size(A)ans=2、在某处测的海洋不同深部处水温度数据如表。用插值法求出水深500m,900m和1500m处的水温(℃)。水深(m)4667159504221635水温(℃)解:程序:m=[466,715,950,1422,1635];w=[,,,,];h=[500,900,1500];wi=interp1(没,w,h,'spline')3、用5次多项式p(x)在区间【1,10】区间内逼近函数lgx,并绘制出lgx和p(x)在【1,101】区间的函数曲线。解:x=1::101;y=log(x);f=polyfit(x,y,5);yi=polyval(f,x);plot(x,y,'bp',x,yi,'k-p')4、已知,取N=64,对t从0~5s采样,用fft作快速傅立叶变换,并绘制相应的振幅--频率图。解:N=64;T=5;t=linspace(0,T,N);x=exp(-t);dt=t(2)-t(1);f=1/dt;X=fft(x);F=X(1:N/2+1);f=f*(0:N/2)/N;plot(f,abs(F),'r-+')xlabel('Frequency')ylabel('|F(k)|')5、有3个多项式,,,试进行下列操作。(1)求。解、程序:p1=[1,2,0,7];p2=[0,0,1,-2];p3=[1,0,5,1];p12=conv(p1,p2);p=p12+[zeros(1,size(p12,2)-size(p3,2)),p3]结果:p=0011-412-13(2)求p(x)的根。程序:roots(p)结果:ans=+-(3)设A矩阵,当以矩阵A的每一元素为自变量时,求的值,当以矩阵A为自变量时,求的根。程序:A=[-1,4,3;2,1,5;0,5,6];px=polyval(p,A)pxm=polyvalm(p,A)结果:px=-292919519-3697-136971427pxm=3912084327350226934207720377558926、求非线性方程的数值解。(1)、求在附近的根。解:程序:z=fzero('3*x-sin(x)+1',0)(2)、,初值。建立函数文件:functionF=fun(X)x=X(1);y=X(2);F(1)=x*x+y*y-9;F(2)=x+y-1;在命令窗口输入:x=fsolve(@fun,[3,0]',optimset('Display','off'))第7章符号与计算课后实验题1、已知A=求矩阵的秩、逆矩阵和行列式的值。(这里的A是符号矩阵)解:程序及结果:A=sym('[1,2,3;x,y,z;3,2,1]');>>rank(A)%矩阵秩的值ans=3>>inv(A)%逆矩阵的值ans=[1/4*(y-2*z)/(-2*y+z+x),1/(-2*y+z+x),-1/4*(-2*z+3*y)/(-2*y+z+x)][-1/4*(x-3*z)/(-2*y+z+x),-2/(-2*y+z+x),1/4*(-z+3*x)/(-2*y+z+x)][1/4*(2*x-3*y)/(-2*y+z+x),1/(-2*y+z+x),-1/4*(-y+2*x)/(-2*y+z+x)]>>det(A)%矩阵的行列值ans=-8*y+4*z+4*x2、求函数的符号导数。(1)求。解:程序及结果:symsx;>>y=sqrt(‘x+sqrt(x+sqrt(x’)));>>diff(y)%一阶导数ans=1/2/(x+(x+x^(1/2))^(1/2))^(1/2)*(1+1/2/(x+x^(1/2))^(1/2)*(1+1/2/x^(1/2)))>>diff(y,x,2)%二阶导数ans=-1/4/(x+(x+x^(1/2))^(1/2))^(3/2)*(1+1/2/(x+x^(1/2))^(1/2)*(1+1/2/x^(1/2)))^2+1/2/(x+(x+x^(1/2))^(1/2))^(1/2)*(-1/4/(x+x^(1/2))^(3/2)*(1+1/2/x^(1/2))^2-1/8/(x+x^(1/2))^(1/2)/x^(3/2))(2)已知,求。解:程序:symsxy;>>fxy=sin(x^2*y)*exp(-x^2-y);>>c=diff(diff(fxy,x),y)结果:c=-2*sin(x^2*y)*x^3*y*exp(-x^2-y)+2*cos(x^2*y)*x*exp(-x^2-y)-2*cos(x^2*y)*x*y*exp(-x^2-y)-2*cos(x^2*y)*x^3*exp(-x^2-y)+2*sin(x^2*y)*x*exp(-x^2-y)3、求积分。(1)(2)(1)解:程序:f=sym('1/(x^4+1)');>>s1=int(f)(2)解:程序:symsxt;>>f=sym('(-2*x^2+1)/(2*x^2-3*x+1)^2');>>int(f,cos(t),exp(2*t))结果:ans=-(-2*exp(2*t)*cos(t)^2-exp(2*t)+cos(t)+2*exp(2*t)^2*cos(t))/(2*exp(2*t)-1)/(exp(2*t)-1)/(2*cos(t)-1)/(cos(t)-1)4、求级数的和函数,并求之和。解:程序:symsxn;>>s1=symsum(2/((2*n+1)*(2*x+1)^(2*n+1)),n,0,inf)结果:s1=1/(2*x+1)*(4*x^2+4*x+1)^(1/2)*log((1+1/(4*x^2+4*x+1)^(1/2))/(1-1/(4*x^2+4*x+1)^(1/2)))s2=symsum(2/((2*n+1)*(2*x+1)^(2*n+1)),n,1,5)s2=2/3/(2*x+1)^3+2/5/(2*x+1)^5+2/7/(2*x+1)^7+2/9/(2*x+1)^9+2/11/(2*x+1)^11>>s=s1+s2s=1/(2*x+1)*(4*x^2+4*x+1)^(1/2)*log((1+1/(4*x^2+4*x+1)^(1/2))/(1-1/(4*x^2+4*x+1)^(1/2)))+2/3/(2*x+1)^3+2/5/(2*x+1)^5+2/7/(2*x+1)^7+2/9/(2*x+1)^9+2/11/(2*x+1)^115、求函数在的泰勒展开式。(1)(2)(1)解:程序:sym('x');>>y=(exp(x)+exp(-x))/2;>>taylor(y,x,5,0)结果:ans=1+1/2*x^2+1/24*x^4(2)解:程序:>>symsax>>s=taylor(exp(-5*x)*sin(3*x+pi/3),5,a)结果:s=exp(-5*a)*sin(3*a+1/3*pi)+(3*exp(-5*a)*cos(3*a+1/3*pi)-5*exp(-5*a)*sin(3*a+1/3*pi))*(x-a)+(8*exp(-5*a)*sin(3*a+1/3*pi)-15*exp(-5*a)*cos(3*a+1/3*pi))*(x-a)^2+(33*exp(-5*a)*cos(3*a+1/3*pi)+5/3*exp(-5*a)*sin(3*a+1/3*pi))*(x-a)^3+(-161/6*exp(-5*a)*sin(3*a+1/3*pi)-40*exp(-5*a)*cos(3*a+1/3*pi))*(x-a)^46、求非线性方程的符号解。(1)(2)(1)解:程序:s=solve(sym('x^3+a*x+1=0'))(2)解:程序:三种方法:[xy]=solve(sym('sqrt(x^2+y^2)-100=0'),sym('3*x+5*y-8=0'))结果:x=12/17-10/17*21246^(1/2)12/17+10/17*21246^(1/2)y=20/17+6/17*21246^(1/2)20/17-6/17*21246^(1/2)>>%或者下面的方式也可以>>s1=sym('sqrt(x^2+y^2)-100=0');>>s2=sym('3*x+5
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论