matlab编程练习

合集下载

Matlab的操作练习

Matlab的操作练习

(5)
5 s,t 5
2、编写程序,绘制右 边图形并加上相应标 注。
3、编写程序,绘制右 边螺旋线图形并加上 相应标注。
4、编写程序,绘制右 边图形并加上相应标 注。
5、绘制下列图形 (1)分别利用ezplot函数和plot函数绘制曲线
x2/3 y2/3 1
(2)分别利用ezplot函数和plot函数绘制曲线
练习2、阅读程序 if A then x= 1 else x=0 end
(a)当A取下面旳数组时,程序输出旳成 果是什么? (1)A=ones(3) (2)A=eye(3) (3)A=inf (4)A=rand(3)>0.5
(b)假如程序中旳A换成any(A)或者all(A) 呢?
在matalb旳程序编写中,假如能够利用数组运算、矩阵运算替代循环 旳点运算,计算效率会大大提升。
x2 y4 0
(3)分别利用ezplot3函数和plot3函数绘制曲线
x cos(t)2 sin(t); y sin(t)2 cos(t); 0 t 2
z t2 *(2 t)2
6、选择合适旳函数绘制图形 (1) 双扭线 = co(s 2) (2)在复平面上绘制函数图形
z cos t i sin(2t)
(3) z1 cos t i sin(2t) z 2 sin(t) icos(2 t)
绘制图形 z=z1*z2
7、分别利用mesh和ezmesh函数绘制网线图
(1)
z x2 y
(2)
z x2 y2
(3)
z2 x2 2y2
符号运算旳练习
1、利用符号运算解下列方程和方程组
(1)x4-1=0旳实根
(1) 100阶矩阵A=(aij), 其中aij=ij

MATLAB编程练习(含答案很好的)

MATLAB编程练习(含答案很好的)

001双峰曲线图:z=peaks(40);mesh(z);surf(z)002解方程:A=[3,4,-2;6,2,-3;45,5,4];>> B=[14;4;23];>> root=inv(A)*B003傅里叶变换load mtlb ;subplot(2,1,1);plot(mtlb);>> title('原始语音信息');>> y=fft(mtlb);>> subplot(2,1,2);>> yy=abs(y);>> plot(yy);>> title('傅里叶变换')004输入函数:a=input('How many apples\n','s')005输出函数a=[1 2 3 4 ;5 6 7 8;12 23 34 45;34 435 23 34]a =1 2 3 45 6 7 812 23 34 4534 435 23 34disp(a)a =1 2 3 45 6 7 812 23 34 4534 435 23 34b=input('how many people\n' ,'s')how many peopletwo peopleb =two people>> disp(b)two people>>006求一元二次方程的根a=1;b=2;c=3;d=sqrt(b^2-4*a*c);x1=(-b+d)/(2*a)x1 =-1.0000 + 1.4142i>> x2=(-b-d)/(2*a)x2 =-1.0000 - 1.4142i007求矩阵的相乘、转置、存盘、读入数据A=[1 3 5 ;2 4 6;-1 0 -2;-3 0 0];>> B=[-1 3;-2 2;2 1];>> C=A*BC =3 142 20-3 -53 -9>> C=C'C =3 2 -3 314 20 -5 -9>> save mydat C>> clear>> load mydat C008编写数学计算公式:A=2.1;B=-4.5;C=6;D=3.5;E=-5;K=atan(((2*pi*A)+E/(2*pi*B*C))/D) K =1.3121009A=[1 0 -1;2 4 1;-2 0 5];>> B=[0 -1 0;2 1 3;1 1 2];>> H=2*A+BH =2 -1 -26 9 5-3 1 12>> M=A^2-3*BM =3 3 -62 13 -2-15 -3 21>> Y=A*BY =-1 -2 -29 3 145 7 10>> R=B*AR =-2 -4 -1-2 4 14-1 4 10>> E=A.*BE =0 0 04 4 3-2 0 10>> W=A\BW =0.3333 -1.3333 0.66670.2500 1.0000 0.25000.3333 -0.3333 0.6667 >> P=A/BP =-2.0000 3.0000 -5.0000-5.0000 3.0000 -4.00007.0000 -9.0000 16.0000>> Z=A.\BWarning: Divide by zero.Z =0 -Inf 01.0000 0.2500 3.0000-0.5000 Inf 0.4000>> D=A./BWarning: Divide by zero.D =Inf 0 -Inf1.0000 4.0000 0.3333-2.0000 0 2.5000010a=4.96;b=8.11;>> M=exp(a+b)/log10(a+b)M =4.2507e+005011求三角形面积:a=9.6;b=13.7;c=19.4;>> s=(a+b+c)/2;>> area=sqrt(s*(s-a)*(s-b)*(s-c))area =61.1739012逻辑运算A=[-1 0 -6 8;-9 4 0 12.3;0 0 -5.1 -2;0 -23 0 -7]; >> B=A(:,1:2)B =-1 0-9 40 00 -23>> C=A(1:2,:)C =-1.0000 0 -6.0000 8.0000 -9.0000 4.0000 0 12.3000>> D=B'D =-1 -9 0 00 4 0 -23>> A*Bans =1.0000 -184.0000-27.0000 -266.90000 46.0000 207.0000 69.0000>> C<Dans =0 0 1 01 0 0 0>> C&Dans =1 0 0 00 1 0 1>> C|Dans =1 1 1 11 1 0 1>> ~C|~Dans =0 1 1 11 0 1 0013矩阵运算练习:A=[8 9 5;36 -7 11;21 -8 5]A =8 9 536 -7 1121 -8 5>> BB =-1 3 -22 0 3-3 1 9>> RT=A*BRT =-5 29 56-83 119 6-52 68 -21>> QW=A.*BQW =-8 27 -1072 0 33-63 -8 45>> ER=A^3ER =6272 3342 294415714 -856 52608142 -1906 2390 >> BF=A.^3BF =512 729 12546656 -343 13319261 -512 125 >> A/Bans =3.13414.9634 -0.4024-1.2561 12.5244 -3.2317-1.9878 6.4512 -2.0366>> EKV=B\AEKV =10.7195 -1.2683 3.52449.4756 1.5854 3.71954.8537 -1.4878 1.3171>> KDK=[A,B]KDK =8 9 5 -1 3 -236 -7 11 2 0 321 -8 5 -3 1 9 >> ERI=[A;B]ERI =8 9 536 -7 1121 -8 5-1 3 -22 0 3-3 1 9014一般函数的调用:A=[2 34 88 390 848 939];>> S=sum(A)S =2301>> min(A)ans =2>> EE=mean(A)EE =383.5000>> QQ=std(A)QQ =419.3794>> AO=sort(A)AO =2 34 88 390 848 939 >> yr=norm(A)yr =1.3273e+003>> RT=prod(A)RT =1.8583e+012>> gradient(A)ans =32.0000 43.0000 178.0000 380.0000 274.5000 91.0000 >> max(A)ans =939>> median(A)ans =239>> diff(A)ans =32 54 302 458 91>> length(A)ans =6>> sum(A)ans =2301>> cov(A)ans =1.7588e+005>>015矩阵变换:A=[34 44 23;8 34 23;34 55 2]A =34 44 238 34 2334 55 2>> tril(A)ans =34 0 08 34 034 55 2>> triu(A)ans =34 44 230 34 230 0 2>> diag(A)ans =34342norm(A)ans =94.5106>> rank(A)ans =3>> det(A)ans =-23462>> trace(A)ans =70>> null(A)ans =Empty matrix: 3-by-0>> eig(A)ans =80.158712.7671-22.9257>> poly(A)ans =1.0e+004 *0.0001 -0.0070 -0.1107 2.3462>> logm(A)Warning: Principal matrix logarithm is not defined for A with nonpositive real eigenvalues. A non-principal matrixlogarithm is returned.> In funm at 153In logm at 27ans =3.1909 + 0.1314i 1.2707 + 0.1437i 0.5011 - 0.2538i0.4648 + 0.4974i 3.3955 + 0.5438i 0.1504 - 0.9608i0.2935 - 1.2769i 0.8069 - 1.3960i 3.4768 + 2.4663i>> fumn(A)Undefined command/function 'fumn'.>> inv(A)ans =0.0510 -0.0502 -0.0098-0.0326 0.0304 0.02550.0305 0.0159 -0.0343>> cond(A)ans =8.5072>> chol(A)Error using ==> cholMatrix must be positive definite.>> lu(A)ans =34.0000 44.0000 23.00000.2353 23.6471 17.58821.0000 0.4652 -29.1816>> pinv(A)ans =0.0510 -0.0502 -0.0098-0.0326 0.0304 0.02550.0305 0.0159 -0.0343>> svd(A)ans =94.510622.345611.1095>> expm(A)ans =1.0e+034 *2.1897 4.3968 1.93821.31542.6412 1.16431.8782 3.7712 1.6625>> sqrtm(A)ans =5.2379 + 0.2003i 3.4795 + 0.2190i 1.8946 - 0.3869i0.5241 + 0.7581i 5.1429 + 0.8288i 2.0575 - 1.4644i3.0084 - 1.9461i4.7123 - 2.1276i 2.1454 + 3.7589i >>016多项式的计算:A=[34 44 23;8 34 23;34 55 2]A =34 44 238 34 2334 55 2>> P=poly(A)P =1.0e+004 *0.0001 -0.0070 -0.1107 2.3462>> PPA=poly2str(P,'X')PPA =X^3 - 70 X^2 - 1107 X + 23462017多项式的运算:p=[2 6 8 3];w=[32 56 0 2];>> m=conv(p,w)m =64 304 592 548 180 16 6 >> [q,r]=deconv(w,p)q =16r =0 -40 -128 -46>> dp=polyder(w)dp =96 112 0>> [num,den]=polyder(w,p)num =80 512 724 312 -16den =4 24 68 108 100 48 9>> b=polyfit(p,w,4)Warning: Polynomial is not unique; degree >= number of data points. > In polyfit at 74b =-0.6704 9.2037 -32.2593 0 98.1333>> r=roots(p)r =-1.2119 + 1.0652i-1.2119 - 1.0652i-0.5761018求多项式的商和余p=conv([1 0 2],conv([1 4],[1 1]))p =1 5 6 10 8>> q=[1 0 1 1]q =1 0 1 1>> [w,m]=deconv(p,q)w =1 5m =0 0 5 4 3>> cq=w;cr=m;>> disp([cr,poly2str(m,'x')])5 x^2 + 4 x + 3>> disp([cq,poly2str(w,'x')])x + 5019将分式分解a=[1 5 6];b=[1];>> [r,p,k]=residue(b,a)r =-1.00001.0000p =-3.0000-2.0000k =[]020计算多项式:a=[1 2 3;4 5 6;7 8 9];>> p=[3 0 2 3];>> q=[2 3];>> x=2;>> r=roots(p)r =0.3911 + 1.0609i0.3911 - 1.0609i-0.7822>> p1=conv(p,q)p1 =6 9 4 12 9>> p2=poly(a)p2 =1.0000 -15.0000 -18.0000 -0.0000 >> p3=polyder(p)p3 =9 0 2>> p4=polyval(p,x)p4 =31021求除式和余项:[q,r]=deconv(conv([1 0 2],[1 4]),[1 1 1])022字符串的书写格式:s='student's =student>> name='mary';>> s1=[name s]s1 =marystudent>> s3=[name blanks(3);s]s3 =marystudent>>023交换两个数:clearclca=[1 2 3 4 5];b=[6 7 8 9 10];c=a;a=b;b=c;ab24If语句n=input('enter a number,n=');if n<10nend025 if 双分支结构a=input('enter a number ,a=');b=input('enter a number ,b=');if a>bmax=a;elsemax=b;endmax026三个数按照由大到小的顺序排列:A=15;B=24;C=45;if A<BT=A;A=B;B=T;elseif A<CT=A;A=C;C=T;elseif B<CT=B;B=C;C=T;endABC027建立一个收费优惠系统:price=input('please jinput the price : price=') switch fix(price/100)case[0,1]rate =0;case[2,3,4]rate =3/100;case num2cell(5:9)rate=5/100;case num2cell(10:24)rate=8/100;case num2cell(25:49)rate=10/100;otherwiserate=14/100;endprice=price*(1-rate)028:while循环语句i=0;s=0;while i<=1212s=s+i;i=i+1;ends029,用for循环体语句:sum=0;for i=1:1.5:100;sum=sum+i;endsum030循环的嵌套s=0;for i=1:1:6;for j=1:1:8;s=s+i^j;end;end;s031continue 语句的使用:for i=100:120;if rem(i,7)~=0;continue;end;iend032x=input ('输入X的值x=')if x<1y=x^2;elseif x>1&x<2y=x^2-1;elsey=x^2-2*x+1;endy033求阶乘的累加和sum=0;temp=1;for n=1:10;temp=temp*n;sum=sum+temp;endsum034对角线元素之和sum=0;a=[1 2 3 4;5 6 7 8;9 10 11 12;13 14 15 16]; for i=1:4;sum=sum+a(i,i);endsum035用拟合点绘图A=[12 15.3 16 18 25];B=[50 80 118 125 150.8];plot(A,B)036绘制正玄曲线:x=0:0.05:4*pi;y=sin(x);plot(x,y)037绘制向量x=[1 2 3 4 5 6;7 8 9 10 11 12;13 14 15 16 17 18] plot(x)x=[0 0.2 0.5 0.7 0.6 0.7 1.2 1.5 1.6 1.9 2.3]plot(x)x=0:0.2:2*piy=sin(x)plot(x,y,'m:p')038在正弦函数上加标注:t=0:0.05:2*pi;plot(t,sin(t))set(gca,'xtick',[0 1.4 3.14 56.28])xlabel('t(deg)')ylabel('magnitude(v)')title('this is a example ()\rightarrow 2\pi')text(3.14,sin(3.14),'\leftarrow this zero for\pi')039添加线条标注x=0:0.2:12;plot(x,sin(x),'-',x,1.5*cos(x),':');legend('First','Second',1)040使用hold on 函数x=0:0.2:12;plot(x,sin(x),'-');hold onplot(x,1.5*cos(x),':');041一界面多幅图x=0:0.05:7;y1=sin(x);y2=1.5*cos(x);y3=sin(2*x);y4=5*cos(2*x);subplot(221);plot(x,y1);title('sin(x)')subplot(222);plot(x,y2);title('cos(x)')subplot(223);plot(x,y3);title('sin(2x)')subplot(224);plot(x,y4);title('cos(2x)')042染色效果图x=0:0.05:7;y1=sin(x);y2=1.5*cos(x);y3=sin(2*x);y4=5*cos(2*x);subplot(221);plot(x,y1);title('sin(x)');fill(x,y1,'r') subplot(222);plot(x,y2);title('cos(x)');fill(x,y2,'b') subplot(223);plot(x,y3);title('sin(2x)');fill(x,y3,'k') subplot(224);plot(x,y4);title('cos(2x)');fill(x,y4,'g')043特殊坐标图clcy=[0,0.55,2.5,6.1,8.5,12.1,14.6,17,20,22,22.1] subplot(221);plot(y);title('线性坐标图');subplot(222);semilogx(y);title('x轴对数坐标图');subplot(223);semilogx(y);title('y轴对数坐标图');subplot(224);loglog(y);title('双对数坐标图')t=0:0.01:2*pi;r=2*cos(2*(t-pi/8));polar(t,r)044特殊函数绘图:fplot('cos(tan(pi*x))',[-0.4,1.4])fplot('sin(exp(pi*x))',[-0.4,1.4])045饼形图与条形图:x=[8 20 36 24 12];subplot(221);pie(x,[1 0 0 0 1]);title('饼图');subplot(222);bar(x,'group');title('垂直条形图');subplot(223);bar(x,'stack');title('累加值为纵坐标的垂直条形图'); subplot(224);barh(x,'group');title('水平条形图');046梯形图与正弦函数x=0:0.1:10;y=sin(x);subplot(121);stairs(x);subplot(122);stairs(x,y);047概率图x=randn(1,1000);y=-2:0.1:2;hist(x,y)048向量图:x=[-2+3j,3+4j,1-7j];subplot(121);compass(x);rea=[-2 3 1];imag=[3 4 -7];subplot(122);feather(rea,imag);049绘制三维曲线图:z=0:pi/50:10*pi;x=sin(z);y=cos(z);plot3(x,y,z)x=-10:0.5:10;y=-8:0.5:8;[x,y]=meshgrid(x,y);z=sin(sqrt(x.^2+y.^2))./sqrt(x.^2+y.^2); subplot(221);mesh(x,y,z);title('普通一维网格曲面');subplot(222);meshc(x,y,z);title('带等高线的三维网格曲面'); subplot(223);meshz(x,y,z);title('带底座的三维网格曲面'); subplot(224);surf(x,y,z);title('充填颜色的三维网格面')050 带网格二维图x=0:pi/10:2*pi;y1=sin(x);y2=cos(x);plot(x,y1,'r+-',x,y2,'k*:')grid onxlabel('Independent Variable x') ylabel('Dependent Variable y1&y2') text(1.5,0.5,'cos(x)')051各种统计图y=[18 5 28 17;24 12 36 14;15 6 30 9]; subplot(221);bar(y)x=[4,6,8];subplot(222);bar3(x,y)subplot(223);bar(x,y,'grouped') subplot(224);bar(x,y,'stack')052曲面图x=-2:0.4:2;y=-1:0.2:1;[x,y]=meshgrid(x,y);z=sqrt(4-x.^2/9-y.^2/4); surf(x,y,z)grid on053创建符号矩阵e=[1 3 5;2 4 6;7 9 11];m=sym(e)符号表达式的计算问题因式分解:syms xf=factor(x^3-1)s=sym('sin(a+b)'); expand(s)syms x tf=x*(x*(x-8)+6)*t; collect(f)syms xf=sin(x)^2+cos(x)^2; simplify(f)syms xs=(4*x^2+8*x+3)/(2*x+1); simplify(s)通分syms x yf=x/y-y/x;[m,n]=numden(f)嵌套重写syms xf=x^4+3*x^3-7*x^2+12; horner(f)054求极限syms x a;limit(exp(-x),x,0,'left')求导数syms xdiff(x^9+x^6)diff(x^9+x^6,4)055求不定积分与定积分syms x ys=(4-3*x^2)^2;int(s)int(x/(x+y),x)int(x^2/(x+2),x,1,3) double(ans)056函数的变换:syms x ty=exp(-x^2);Ft=fourier(y,x,t)fx=ifourier(Ft,t,x)057求解方程syms a b c xs=a*x^2+b*x+c;solve(s)syms x y zs1=2*x^2+y^2-3*z-4;s2=y+z-3;s3=x-2*y-3*z;[x,y,z]=solve(s1,s2,s3)058求微分方程:y=dsolve('Dy-(t^2+y^2)/t^2/2','t')059求级数和syms x ksymsum(k)symsum(k^2-3,0,10)symsum(x^k/k,k,1,inf)060泰勒展开式syms xs=(1-x+x^2)/(1+x+x^2);taylor(s)taylor(s,9)taylor(s,x,12)taylor(s,x,12,5)061练习syms x a;s1=sin(2*x)/sin(5*x);limit(s1,x,0)s2=(1+1/x)^(2*x);limit(s2,x,inf)syms xs=x*cos(x);diff(s)diff(s,2)diff(s,12)syms xs1=x^4/(1+x^2);int(s1)s2=3*x^2-x+1int(s2,0,2)syms x y zs1=5*x+6*y+7*z-16;s2=4*x-5*y+z-7;s3=x+y+2*z-2;[x,y,z]=solve(s1,s2,s3)syms x yy=dsolve('Dy=exp(2*x-y)','x')y=dsolve('Dy=exp(2*x-y)','y(0)=0','x')n=sym('n');s=symsum(1/n^2,n,1,inf)x=sym('x');f=sqrt(1-2*x+x^3)-(1-3*x+x^2)^(1/3);taylor(f,6)062求于矩阵相关的值a=[2 2 -1 1;4 3 -1 2;8 5 -3 4;3 3 -2 2]adet=det(a)atrace=trace(a)anorm=norm(a)acond=cond(a)arank=rank(a)eiga=eig(a)063矩阵计算A=[0.1389 0.6038 0.0153 0.9318;0.2028 0.2772 0.7468 0.4660;0.1987 0.1988 0.4451 0.4186]B=var(A)C=std(A)D=range(A)E=cov(A)F=corrcoef(A)064求根及求代数式的值P=[4 -3 2 5];x=roots(P)x=[3 3.6];F=polyval(P,x)065多项式的和差积商运算:f=[1 2 -4 3 -1]g=[1 0 1]g1=[0 0 1 0 1]f+g1f-g1conv(f,g)[q,r]=deconv(f,g)polyder(f)066各种插值运算:X=0:0.1:pi/2;Y=sin(X);interp1(X,Y,pi/4)interp1(X,Y,pi/4,'nearest')interp1(X,Y,pi/4,'spline')interp1(X,Y,pi/4,'cubic')067曲线的拟合:X=0:0.1:2*pi;Y=cos(X);[p,s]=polyfit(X,Y,4)plot(X,Y,'K*',X,polyval(p,X),'r-')068求函数的最值与0点x=2:0.1:2;[x,y]=fminbnd('x.^3-2*x+1',-1,1) [x,y]=fzero('x.^3-2*x+1',1)069求多项式的表达式、值、及图像y=[1 3 5 7 19]t=poly(y)x=-4:0.5:8yx=polyval(t,x)plot(x,yx)070数据的拟合与绘图x=0:0.1:2*pi;y=sin(x);p=polyfit(x,y,5);y1=polyval(p,x)plot(x,y,'b',x,y1,'r')071求代数式的极限:syms xf=sym('log(1+2*x)/sin(3*x)');b=limit(f,x,0)072求导数与微分syms xf=sym('x/(cos(x))^2');y1=diff(f)y2=int(f,0,1)078划分网格函数[x,y]=meshgrid(-2:0.01:2,-3:0.01:5); t=x.*exp(-x.^2-y.^2);[px,py]=gradient(t,0.05,0.1);td=sqrt(px.^2+py.^2);subplot(221)imagesc(t)subplot(222)imagesc(td)colormap('gray')079求多次多项方程组的解:syms x1 x2 a ;eq1=sym('x1^2+x2=a')eq2=sym('x1-a*x2=0')[x1 x2]=solve(eq1,eq2,x1,x2)v=solve(eq1,eq2)v.x1v.x2an1=x1(1),an2=x1(2)an3=x2(1),an4=x2(2)080求解微分方程:[y]=dsolve('Dy=-y^2+6*y','y(0)=1','x')s=dsolve('Dy=-y^2+6*y','y(0)=1','x')[u]=dsolve('Du=-u^2+6*u','u(0)=1')w=dsolve('Du=-u^2+6*u','z')[u,w]=dsolve('Du=-w^2+6*w,Dw=sin(z)','u(0)=1,w(0)=0','z') v=dsolve('Du=-w^2+6*w,Dw=sin(z)','u(0)=1,w(0)=0','z')081各种显现隐含函数绘图:f=sym('x^2+1')subplot(221)ezplot(f,[-2,2])subplot(222)ezplot('y^2-x^6-1',[-2,2],[0,10])x=sym('cos(t)')y=sym('sin(t)')subplot(223)ezplot(x,y)z=sym('t^2')subplot(224)ezplot3(x,y,z,[0,8*pi])082极坐标图:r=sym('4*sin(3*x)')ezpolar(r,[0,6*pi])083多函数在一个坐标系内:x=0:0.1:8;y1=sin(x);subplot(221)plot(x,y1)subplot(222)plot(x,y1,x,y2)w=[2 3;3 1;4 6]subplot(223)plot(w)q=[4 6:3 5:1 2]subplot(224)plot(w,q)084调整刻度图像:x=0:0.1:10;y1=sin(x);y2=exp(x);y3=exp(x).*sin(x);subplot(221)plot(x,y2)subplot(222)loglog(x,y2)subplot(223)plotyy(x,y1,x,y2)085等高线等图形,三维图:t=0:pi/50:10*pi;subplot(2,3,1)plot3(t.*sin(t),t.*cos(t),t.^2) grid on[x,y]=meshgrid([-2:0.1:2])z=x.*exp(-x.^2-y.^2)subplot(2,3,2)plot3(x,y,z)box offsubplot(2,3,3)meshz(x,y,z)subplot(2,3,4)surf(x,y,z)contour(x,y,z)subplot(2,3,6)surf(x,y,z)subplot(2,3,5)contour(x,y,z)box offsubplot(2,3,6)contour3(x,y,z)axis off086统计图Y=[5 2 1;8 7 3;9 8 6;5 5 5;4 3 2]subplot(221)bar(Y)box offsubplot(222)bar3(Y)subplot(223)barh(Y)subplot(224)bar3h(Y)087面积图Y=[5 1 2;8 3 7;9 6 8;5 5 5;4 2 3];subplot(221)area(Y)grid onset(gca,'Layer','top','XTick',1:5)sales=[51.6 82.4 90.8 59.1 47.0];x=90:94;profits=[19.3 34.2 61.4 50.5 29.4];subplot(222)area(x,sales,'facecolor',[0.5 0.9 0.6], 'edgecolor','b','linewidth',2) hold onarea(x,profits,'facecolor',[0.9 0.85 0.7], 'edgecolor','y','linewidth',2) hold offset(gca,'Xtick',[90:94])set(gca,'layer','top')gtext('\leftarrow 销售量') gtext('利润')gtext('费用')xlabel('年','fontsize',14)088函数的插值:x=0:2*pi;y=sin(x);xi=0:0.1:8;yi1=interp1(x,y,xi,'linear')yi2=interp1(x,y,xi,'nearest') yi3=interp1(x,y,xi,'spline')yi4=interp1(x,y,xi,'cublic')p=polyfit(x,y,3)yy=polyval(p,xi)subplot(3,2,1)plot(x,y,'o')subplot(3,2,2)plot(x,y,'o',xi,yy)subplot(3,2,3)plot(x,y,'o',xi,yi1)subplot(3,2,4)plot(x,y,'o',xi,yi2)subplot(3,2,5)plot(x,y,'o',xi,yi3)subplot(3,2,6)plot(x,y,'o',xi,yi4)089二维插值计算:[x,y]=meshgrid(-3:0.5:3);z=peaks(x,y);[xi,yi]=meshgrid(-3:0.1:3); zi=interp2(x,y,z,xi,yi,'spline') plot3(x,y,z)hold onmesh(xi,yi,zi+15)hold offaxis tight090函数表达式;function f=exlin(x)if x<0f=-1;elseif x<1f=x;elseif x<2f=2-x;elsef=0;end091:硬循环语句:n=5;for i=1:nfor j=1:nif i==ja(i,j)=2;elsea(i,j)=0;endendendwhile 循环语句:n=1;while prod(1:n)<99^99;n=n+1endn:092 switch开关语句a=input('a=?')switch acase 1disp('It is raning') case 0disp('It do not know')case -1disp('It is not ranging')otherwisedisp('It is raning ?')end093画曲面函数:x1=linspace(-3,3,30)y1=linspace(-3,13,34)[x,y]=meshgrid(x1,y1);z=x.^4+3*x.^2-2*x+6-2*y.*x.^2+y.^2-2*y; surf(x,y,z)。

matlab简单编程21个题目及答案

matlab简单编程21个题目及答案

1、设⎥⎦⎤⎢⎣⎡++=)1(sin35.0cos2xxxy,把x=0~2π间分为101点,画出以x为横坐标,y为纵坐标的曲线。

第一题的matlab源程序:①考虑cos(x)为一个整体,然后乘以中括号里面的全部x=0:2*pi/100:2*pi; %x的步长以及范围从0到2*pi y=cos(x).*(0.5+3*sin(x)./(1+x.^2)); %y的表达式plot(x,y)%画出图形图如下:②考虑对整体求解cos,先求x乘以括号中的部分x=0:2*pi/100:2*pi; %x的步长以及范围从0到2*pi y=cos(x.*(0.5+3*sin(x)./(1+x.^2))); %y的表达式plot(x,y) %画出图形图如下:2、产生8×6阶的正态分布随机数矩阵R1, 求其各列的平均值和均方差。

并求该矩阵全体数的平均值和均方差。

第二题的matlab源程序如下:R1=randn(8,6) %产生正态分布随机矩阵R1 =1.0933 -0.7697 1.5442 -0.1924 1.4193 0.21571.1093 0.3714 0.0859 0.8886 0.2916 -1.1658-0.8637 -0.2256 -1.4916 -0.7648 0.1978 -1.14800.0774 1.1174 -0.7423 -1.4023 1.5877 0.1049-1.2141 -1.0891 -1.0616 -1.4224 -0.8045 0.7223-1.1135 0.0326 2.3505 0.4882 0.6966 2.5855-0.0068 0.5525 -0.6156 -0.1774 0.8351 -0.66691.5326 1.1006 0.7481 -0.1961 -0.2437 0.1873aver=(sum(R1(1:end,1:end)))./8 %产生各行的平均值aver =0.0768 0.1363 0.1022 -0.3473 0.4975 0.1044a=std(R1(1:end,1:end)) %产生各行的均方差也就是标准差a =1.0819 0.8093 1.3456 0.8233 0.8079 1.2150aver1=(sum(R1(:)))./48 %全体数的平均值aver1 =0.0950b=std(R1(:)) %全体数的均方差即标准差b =1.01033、设x=rcost+3t,y=rsint+3,分别令r=2,3,4,画出参数t=0~10区间生成的x~y 曲线。

matlab编程题整理

matlab编程题整理

作业一1输出x,y两个中值较大的一个值x=input(‘x’);y=input(‘y’);if x>yxelseyend2输入x,计算y的值。

计算函数的值y=x+1,x<0,y=2x-1,x≧0x=input错误!未指定书签。

(‘x);if x<0y=x+1elsey=2*x-1end3输入一学生成绩,评定其等级,方法是:90~100分为“优秀”,80~89分为“良好”,70~79分为“中等”,60~69分为“及格”,60分为“不合格”x=input(‘x’)if x>100|x<0y=’输入错误’elseif x>=90y=’优秀’elseif x>=80y=’良好’elseif x>=70y=’中等’elseif x>=60y=’及格’elsey=’不合格’emd4某超市节日期间举办购物打折的促销活动,优惠办法是:每位顾客当天一次性购物在100元以上者,按九五折优惠;在200元以上者,按九折优惠;在300元以上者,按八五折优惠;在500元以上者,按八折优惠。

x=input(‘x’);if x>=500y=x*0.8elseif x>=300y=x*0.85elseif x>=200y=x*0.9elseif x>=100y=x*0.95else y=xend 5编程计算:s=1+2+3+…+100sum=0;for i=1:100sum=sum+i;endsum引申1!-2!+3!-4!+5!- (99)sum=0;for i=1:99pdr=1;for k=1:ipdr=pdr*k;endsum=sum+pdr*(-1)^(i-1);endsum引申1*2*3*4*……*100sum=1;for i=1:100sum=sum*iendsum6计算1~100的奇数和sum=0;for i=1:2:100sum=sum+i;endsum7百元买百鸡问题。

matlab试题及答案

matlab试题及答案

matlab试题及答案# MATLAB试题及答案一、选择题1. MATLAB的基本数据单位是:A. 矩阵B. 向量C. 标量D. 数组答案:A2. 下列哪个命令可以用来绘制函数图形?A. `plot`B. `graph`C. `draw`D. `chart`答案:A3. MATLAB中,以下哪个是正确的矩阵转置操作?A. `transpose(A)`B. `A'`C. `A^T`D. `flip(A)`答案:B二、简答题1. 简述MATLAB中矩阵的基本操作。

答案:在MATLAB中,矩阵是最基本的数据结构,可以进行加、减、乘、除等基本运算。

矩阵的创建可以使用方括号`[]`,例如`A = [1 2;3 4]`。

矩阵的转置使用单引号`'`,例如`A'`。

矩阵的求逆使用`inv`函数,例如`inv(A)`。

2. MATLAB中如何实现循环结构?答案:MATLAB中实现循环结构主要有两种方式:`for`循环和`while`循环。

`for`循环用于已知迭代次数的情况,例如:```matlabfor i = 1:5disp(i);end````while`循环用于迭代次数未知的情况,例如:```matlabi = 1;while i <= 5disp(i);i = i + 1;end```三、计算题1. 给定矩阵A和B,请计算它们的乘积C,并求C的行列式。

A = [1 2; 3 4]B = [5 6; 7 8]答案:首先计算矩阵乘积C:```matlabC = A * B;```然后计算C的行列式:```matlabdetC = det(C);```结果为:```matlabC = [19 22; 43 50]detC = -16```2. 编写一个MATLAB函数,计算并返回一个向量的范数。

答案:```matlabfunction norm_value = vector_norm(v)norm_value = norm(v);end```四、编程题1. 编写一个MATLAB脚本,实现以下功能:- 随机生成一个3x3的矩阵。

Matlab编程习题

Matlab编程习题

1.求方程05.01)1ln(22=---+-x x x x x 的正根。

解:syms x;2.求满足∑=+m n n 0)1ln(>100的最小m 第2题解;y=0;n=0;while y<100n=n+1;y=y+log(n);endm=n-13.已知函数f (x )=x 4-2x 在(-2,2)内有两个根。

取步长h =0.05,通过计算函数值求得函数的最小值点和两个根的近似解。

(提示:求近似根等价于求函数绝对值的最小值点)解;x=-2:0.05:2;y=x.^4-2.^x;ymin=min(y);[imin,jmin]=find(y==ymin);xmin=x(imin,jmin)ymin=y(imin,jmin)x1=-2:0.05:x(imin,jmin);y1=abs(x1.^4-2.^x1);y1min=min(y1);[i1min,j1min]=find(y1==y1min);x1min=x1(i1min,j1min)y1min=y1(i1min,j1min)x2=x(imin,jmin):0.05:2;y2=abs(x2.^4-2.^x2);y2min=min(y2);%[i2min,j2min]=find(y2==y2min);%x2min=x2(i2min,j2min)%y2min=y2(i2min,j2min)%第4题%[x,y]=solve('(x-2)^2+(y+2*x-3)^2=5,18*(x-3)^2+y^2=36'4.(椭园的交点)两个椭圆可能具有0~4个交点,求下列两个椭园的所有交点坐标(x -2)2+(y -3+2x )2=52(x -3)2+(y /3)2=4[x,y]=solve('(x-2)^2+(y+2*x-3)^2=5,18*(x-3)^2+y^2=36')%syms x y real5.考虑函数f (x,y )=y 3/9+3x 2y +9x 2+y 2+xy +9(1)作出f (x,y )在-2<x <1,-7<y <1的图,观察极值点的位置;(2)用MATLAB 函数fminsearch 求极值点和极值。

matlab考试题

matlab考试题

matlab考试题一、选择题1. 在MATLAB中,下列哪个命令可以用于绘制三维曲面图?A. plot3B. surfC. meshD. contour32. 如何在MATLAB中创建一个名为“myArray”的数组,其元素从1到100?A. myArray = 1:100;B. myArray = array(1:100);C. array = {1, 2, 3, ..., 100};D. array = 1:100, name = 'myArray';3. 在MATLAB中,如何计算矩阵A和矩阵B的点积?A. A * BB. A.* BC. dot(A, B)D. A + B4. 若要在MATLAB中定义一个函数,使得输入参数x的平方和x的和相加,应该如何编写该函数?A. function y = x^2 + xB. function y = sum(x^2, x)C. function y = x^2 + sum(x)D. function y = x.^2 + x5. 在MATLAB中,如何清空当前工作空间的所有变量?A. clear allB. clearC. delete allD. clear workspace二、填空题1. 在MATLAB中,使用 ________ 命令可以导入外部数据文件。

2. 要创建一个从10到20的行向量,可以使用 MATLAB 代码________。

3. 在MATLAB中,使用 ________ 函数可以计算矩阵的行列式。

4. 若要在MATLAB中绘制一个单位圆,可以使用 ________ 命令。

5. 为了在MATLAB中保存工作,可以使用 ________ 命令。

三、简答题1. 请简述MATLAB的主要功能和应用领域。

2. 描述在MATLAB中如何进行矩阵运算。

3. 说明在MATLAB中创建和使用函数的基本步骤。

4. 讨论在MATLAB中进行数据分析和可视化的常用方法。

Matlab练习

Matlab练习

Matlab 练习习题1. 设a=1.2,b=-4.6,c=8.0,e=-4.0,计算⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡+=d bc e a t ππ22arctan2. 设a=5.67,b=7.811,计算)lg(b a e ba ++3. 已知园半径为15,求其直径、周长和面积。

4. 已知三角形三边a=8.5,b=14.6,c=18.5,求三角形面积2/)(,))()(((c b a s c s b s a s s area ++=---=5. 下列命令执行后,L1、L2、L3、L4的值分别是多少?A=1:9;B=10-A ; L1=A==B ; L2=A<=5; L3=A>3&A<7;L4=find(A>3&A<7); 习题1. 设矩阵⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡=321212113A⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡---=111012111B求:(1)2A+B ;(2)4A 2-3B 2;(3)AB ;(4)BA ;(5)AB-BA2.设三阶矩阵A 、B ,满足A -1BA=6A+BA⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎣⎡=71000410031A 求矩阵B2. 设(2E-C -1B )A T =C -1,其中E 是4阶单位矩阵,A T 是4阶矩阵A 的转置,⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡---=1021000032231021B ⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡=1021000002101021C求矩阵A3. 有一4阶魔方矩阵a ,找出矩阵中大于7的元素,并将它们重新排列成列向量b 。

4. 给定矩阵⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡=054000031A ,删去整行和整列的0。

5. 设2阶矩阵A 、B 、X ,满足X-2A=B-X,⎥⎦⎤⎢⎣⎡--=2112A⎥⎦⎤⎢⎣⎡--=0220B 求矩阵X6. 求矩阵的主对角元素、逆矩阵、行列式的值、秩、特征值和特征向量⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡----=163053064A ⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡--=1124111221B7. 分别用矩阵求逆、矩阵除法求方程组的解⎪⎩⎪⎨⎧=+--=+-=+-1074453932z y x z y x z y x 8. 已知多项式P 1(x)=3x+2,P 2(x)=5x 2-x +2,P 3(x)=x 2-0.5,求:(1) P(x)=P 1(x)+P 2(x)+P 3(x) (2) P(x)=P 1(x)*P 2(x)*P 3(x) (3) P(x)=0的全部根计算x i =0.2*i,i=0,1,2各点上的P(x i )。

matlab简单编程21个题目及答案

matlab简单编程21个题目及答案

1、设⎥⎦⎤⎢⎣⎡++=)1(sin35.0cos2xxxy,把x=0~2π间分为101点,画出以x为横坐标,y为纵坐标的曲线。

第一题的matlab源程序:①考虑cos(x)为一个整体,然后乘以中括号里面的全部x=0:2*pi/100:2*pi; %x的步长以及范围从0到2*pi y=cos(x).*(0.5+3*sin(x)./(1+x.^2)); %y的表达式plot(x,y)%画出图形图如下:②考虑对整体求解cos,先求x乘以括号中的部分x=0:2*pi/100:2*pi; %x的步长以及范围从0到2*pi y=cos(x.*(0.5+3*sin(x)./(1+x.^2))); %y的表达式plot(x,y) %画出图形图如下:2、产生8×6阶的正态分布随机数矩阵R1, 求其各列的平均值和均方差。

并求该矩阵全体数的平均值和均方差。

第二题的matlab源程序如下:R1=randn(8,6) %产生正态分布随机矩阵R1 =1.0933 -0.7697 1.5442 -0.1924 1.4193 0.21571.1093 0.3714 0.0859 0.8886 0.2916 -1.1658-0.8637 -0.2256 -1.4916 -0.7648 0.1978 -1.14800.0774 1.1174 -0.7423 -1.4023 1.5877 0.1049-1.2141 -1.0891 -1.0616 -1.4224 -0.8045 0.7223-1.1135 0.0326 2.3505 0.4882 0.6966 2.5855-0.0068 0.5525 -0.6156 -0.1774 0.8351 -0.66691.5326 1.1006 0.7481 -0.1961 -0.2437 0.1873aver=(sum(R1(1:end,1:end)))./8 %产生各行的平均值aver =0.0768 0.1363 0.1022 -0.3473 0.4975 0.1044a=std(R1(1:end,1:end)) %产生各行的均方差也就是标准差a =1.0819 0.8093 1.3456 0.8233 0.8079 1.2150aver1=(sum(R1(:)))./48 %全体数的平均值aver1 =0.0950b=std(R1(:)) %全体数的均方差即标准差b =1.01033、设x=rcost+3t,y=rsint+3,分别令r=2,3,4,画出参数t=0~10区间生成的x~y 曲线。

matlab仿真实例100题

matlab仿真实例100题

matlab仿真实例100题Matlab是一种强大的数学软件,广泛应用于科学计算、数据分析和工程仿真等领域。

在学习和使用Matlab的过程中,通过实例的方式进行仿真练习是一种非常有效的学习方法。

下面将给出100个Matlab仿真实例题目,帮助读者更好地掌握Matlab的使用。

1. 编写一个程序,计算并输出1到100之间所有奇数的和。

2. 编写一个程序,计算并输出1到100之间所有偶数的乘积。

3. 编写一个程序,计算并输出1到100之间所有素数的个数。

4. 编写一个程序,计算并输出1到100之间所有整数的平方和。

5. 编写一个程序,计算并输出1到100之间所有整数的立方和。

6. 编写一个程序,计算并输出1到100之间所有整数的阶乘和。

7. 编写一个程序,计算并输出1到100之间所有整数的倒数和。

8. 编写一个程序,计算并输出1到100之间所有整数的平均值。

9. 编写一个程序,计算并输出1到100之间所有整数的中位数。

10. 编写一个程序,计算并输出1到100之间所有整数的标准差。

11. 编写一个程序,计算并输出1到100之间所有整数的方差。

12. 编写一个程序,计算并输出1到100之间所有整数的最大值。

13. 编写一个程序,计算并输出1到100之间所有整数的最小值。

15. 编写一个程序,计算并输出1到100之间所有整数的平方根和。

16. 编写一个程序,计算并输出1到100之间所有整数的立方根和。

17. 编写一个程序,计算并输出1到100之间所有整数的对数和。

18. 编写一个程序,计算并输出1到100之间所有整数的指数和。

19. 编写一个程序,计算并输出1到100之间所有整数的正弦和。

20. 编写一个程序,计算并输出1到100之间所有整数的余弦和。

21. 编写一个程序,计算并输出1到100之间所有整数的正切和。

22. 编写一个程序,计算并输出1到100之间所有整数的双曲正弦和。

23. 编写一个程序,计算并输出1到100之间所有整数的双曲余弦和。

(完整版)matlab基础练习题(带答案)

(完整版)matlab基础练习题(带答案)

Matlab 基础练习题常量、变量、表达式1、 MATLAB 中,下面哪些变量名是合法的?( )(A )_num (B )num_ (C )num- (D )-num 2、 在MA TLAB 中,要给出一个复数z 的模,应该使用( )函数。

(A )mod(z) (B )abs(z) (C )double(z) (D )angle(z) 3、 下面属于MATLAB 的预定义特殊变量的是?( )(A )eps (B )none (C )zero (D )exp4、 判断:在MA TLAB 的内存工作区中,存放一个英文字符 'a' 需要占用1个字节,存放一个中文字符‘啊’需要占用2个字节。

( 错,都是2个字节 )5、 判断:MA TLAB 中,i 和j ( 对 )6、 判断:MA TLAB 中,pi 代表圆周率,它等于3.14。

( 错,后面还有很多位小数 )7、 在MA TLAB 中,若想计算的51)3.0sin(21+=πy 值,那么应该在MA TLAB 的指令窗中输入的MA TLAB 指令是__y1=2*sin(0.3*pi)/(1+sqrt(5))_。

8、 在MA TLAB 中,a = 1,b = i ,则a 占_8__个字节,b 占_16_个字节,c 占________字节。

9、 在MA TLAB 中,inf 的含义是__无穷大__,nan 的含义是__非数(结果不定)___。

数组1、 在MA TLAB 中,X 是一个一维数值数组,现在要把数组X 中的所有元素按原来次序的逆序排列输出,应该使用下面的( )指令。

(A )X[end:1] (B )X[end:-1:1] (C )X (end:-1:1) (D )X(end:1) 2、 在MA TLAB 中,A 是一个字二维数组,要获取A 的行数和列数,应该使用的MATLAB的命令是( )。

(A )class(A) (B )sizeof(A) (C )size(A) (D )isa(A)3、 在MATLAB 中,用指令x=1:9生成数组x 。

matlab编程经典例题

matlab编程经典例题

matlab编程经典例题
以下是一些经典的 MATLAB 编程例题:
1. 编写一个程序,计算一个数列的前 N 个斐波那契数(斐波那契数列是指前两个数为 1,后续每个数是前两个数之和)。

2. 编写一个程序,计算一个数的阶乘。

3. 编写一个程序,计算两个矩阵的乘积。

4. 编写一个程序,找到一个数组中的最大元素。

5. 编写一个程序,检查一个字符串是否是回文。

6. 编写一个程序,为给定的一组数据计算均值、中位数和标准差。

7. 编写一个程序,将一个字符串中的所有元音字母替换成大写字母。

8. 编写一个程序,计算一个数列的前 N 个素数(素数是指只能被 1 和自身整除的数)。

9. 编写一个程序,实现冒泡排序算法,对一个数组进行排序。

10. 编写一个程序,计算一个数的平方根。

以上是一些经典的 MATLAB 编程例题,你可以根据自己的实际需要选择其中的一个或几个进行练习和编程。

matlab试题及答案

matlab试题及答案

matlab试题及答案一、单项选择题(每题2分,共10分)1. MATLAB中用于创建向量的命令是:A. vectorB. arrayC. linspaceD. colon答案:D2. 在MATLAB中,以下哪个函数用于计算矩阵的行列式?A. detB. rankC. invD. eig答案:A3. MATLAB中用于进行矩阵转置的运算符是:A. 'B. .C. ^D. !答案:A4. 若A是一个3x3的矩阵,执行命令A(2,:)=0;后,矩阵A的第二行将变为:A. [0 0 0]B. [1 0 0]C. [0 1 0]D. [0 0 1]答案:A5. MATLAB中,以下哪个函数用于绘制三维曲面图?A. plotB. surfC. barD. hist答案:B二、填空题(每题3分,共15分)1. MATLAB中,使用________命令可以清除所有变量。

答案:clear2. 若要在MATLAB中创建一个从0到1的100个元素的向量,可以使用命令________。

答案:linspace(0,1,100)3. MATLAB中,使用________函数可以计算矩阵的特征值。

答案:eig4. 在MATLAB中,________函数用于计算两个矩阵的点乘。

答案:dot5. 若要在MATLAB中绘制一个圆,可以使用________函数。

答案:plot三、简答题(每题5分,共20分)1. 请解释MATLAB中矩阵索引的概念。

答案:在MATLAB中,矩阵索引指的是通过行号和列号来访问矩阵中特定元素的过程。

例如,A(2,3)表示访问矩阵A的第二行第三列的元素。

2. MATLAB中如何实现矩阵的元素乘法?答案:在MATLAB中,矩阵的元素乘法可以通过使用点乘运算符(.*)来实现。

例如,C = A .* B,其中A和B是相同大小的矩阵。

3. 请说明MATLAB中如何使用循环结构。

答案:MATLAB中可以使用for循环和while循环两种循环结构。

MATLAB编程练习.doc

MATLAB编程练习.doc

编程训练实例1.你玩过牌吗?把13张牌反过来(背面朝上)按一定的顺序排列,先把你已经排好的牌第一张取出放在这叠牌的最底层,拿出第二张放在桌面上,然后将第三张取出又放在最底层,取出第四张放在桌子上……直到游戏结束,你依次取出放在桌子上的牌刚好为K,Q,J,10,9,8,7,6,5,4,3,2,A。

问你一开始时这13张牌的顺序是怎样的?请你用MATLAB编程解决这个问题?请把程序附上。

%调用格式为chengxufunction chengxua={1,13};k=2;j=1;b={'K','Q','J','10','9','8','7','6','5','4','3','2','A'};%for c=1:4for i=1:13if mod(i,2)~=0a{i}=b{j};j=j+1;endendfor i=2:2:13if mod(i,4)~=0a{i}=b{j};j=j+1;endendfor i=4:4:13if mod(i,8)~=0a{i}=b{j};j=j+1;endenda{8}=b{13};a或function f=card()a=1:13;i=1;for j=1:13n=numel(a); %目前的片数;numle为元数的个数。

a(n+1)=a(1); %在多少张里面取第一张。

a(1)=[]; %将上面取出的第一张牌所在空格剪掉。

b(i)=a(1); %翻出来时桌面上亮出来的牌。

i=i+1;a(1)=[];%随着i自增,取出现的空格为空。

(即删除)。

endc={'K','Q','J','10','9','8','7','6','5','4','3','2','A'};%因为10占两位,故用单元d=cell(1,13);%由BC对应的数,将C中字符型的牌放入由B决定对应的D中。

matlab经典编程例题30道

matlab经典编程例题30道

MATLAB是一款功能强大的数学软件,其编程功能也受到越来越多人的关注。

下面介绍的是30个matlab经典编程例题,可以帮助大家熟悉matlab的编程语法,提高matlab 编程技能。

1. 请编写一个程序,计算出两个数的和。

2. 请编写一个程序,计算出两个数的最大值和最小值。

3. 请编写一个程序,计算出一组数据的平均值和标准差。

4. 请编写一个程序,将一个矩阵转置。

5. 请编写一个程序,求出两个矩阵的乘积。

6. 请编写一个程序,求出一个矩阵的逆矩阵。

7. 请编写一个程序,求出一个矩阵的行列式。

8. 请编写一个程序,计算出一元二次方程的解。

9. 请编写一个程序,计算出两个数组的相似度。

10. 请编写一个程序,计算出一个矩阵的特征值和特征向量。

11. 请编写一个程序,求出两个矩阵的秩。

12. 请编写一个程序,求出一个矩阵的特定元素。

13. 请编写一个程序,求出一组数据的最高值和最低值。

14. 请编写一个程序,求出两个数组的交集。

15. 请编写一个程序,求出一个矩阵的行和列之和。

16. 请编写一个程序,使用循环语句计算出100以内所有奇数的和。

17. 请编写一个程序,使用循环语句计算出1到1000以内的和。

18. 请编写一个程序,使用递归函数计算出斐波那契数列的第n项。

19. 请编写一个程序,求出一个多项式的导数。

20. 请编写一个程序,求出一个函数的极值点。

21. 请编写一个程序,求出一个数组的非零元素个数。

22. 请编写一个程序,计算出函数的不定积分。

23. 请编写一个程序,计算出函数的定积分。

24. 请编写一个程序,求出一个矩阵的秩。

25. 请编写一个程序,求出函数的极限值。

26. 请编写一个程序,求出一个矩阵的特征值分解。

27. 请编写一个程序,求出一个矩阵的LU分解。

28. 请编写一个程序,求出一个矩阵的QR分解。

29. 请编写一个程序,求出三次多项式的根。

30. 请编写一个程序,求出一个函数的积分。

(完整版)matlab经典习题及解答

(完整版)matlab经典习题及解答

(完整版)matlab经典习题及解答第1章 MATLAB 概论1.1 与其他计算机语⾔相⽐较,MATLAB 语⾔突出的特点是什么?MATLAB 具有功能强⼤、使⽤⽅便、输⼊简捷、库函数丰富、开放性强等特点。

1.2 MATLAB 系统由那些部分组成?MATLAB 系统主要由开发环境、MATLAB 数学函数库、MATLAB 语⾔、图形功能和应⽤程序接⼝五个部分组成。

1.4 MATLAB 操作桌⾯有⼏个窗⼝?如何使某个窗⼝脱离桌⾯成为独⽴窗⼝?⼜如何将脱离出去的窗⼝重新放置到桌⾯上?在MATLAB 操作桌⾯上有五个窗⼝,在每个窗⼝的右上⾓有两个⼩按钮,⼀个是关闭窗⼝的Close 按钮,⼀个是可以使窗⼝成为独⽴窗⼝的Undock 按钮,点击Undock 按钮就可以使该窗⼝脱离桌⾯成为独⽴窗⼝,在独⽴窗⼝的view 菜单中选择Dock ……菜单项就可以将独⽴的窗⼝重新防⽌的桌⾯上。

1.5 如何启动M ⽂件编辑/调试器?在操作桌⾯上选择“建⽴新⽂件”或“打开⽂件”操作时,M ⽂件编辑/调试器将被启动。

在命令窗⼝中键⼊edit 命令时也可以启动M ⽂件编辑/调试器。

1.6 存储在⼯作空间中的数组能编辑吗?如何操作?存储在⼯作空间的数组可以通过数组编辑器进⾏编辑:在⼯作空间浏览器中双击要编辑的数组名打开数组编辑器,再选中要修改的数据单元,输⼊修改内容即可。

1.7 命令历史窗⼝除了可以观察前⾯键⼊的命令外,还有什么⽤途?命令历史窗⼝除了⽤于查询以前键⼊的命令外,还可以直接执⾏命令历史窗⼝中选定的内容、将选定的内容拷贝到剪贴板中、将选定内容直接拷贝到M ⽂件中。

1.8 如何设置当前⽬录和搜索路径,在当前⽬录上的⽂件和在搜索路径上的⽂件有什么区别?当前⽬录可以在当前⽬录浏览器窗⼝左上⽅的输⼊栏中设置,搜索路径可以通过选择操作桌⾯的file 菜单中的Set Path 菜单项来完成。

在没有特别说明的情况下,只有当前⽬录和搜索路径上的函数和⽂件能够被MATLAB 运⾏和调⽤,如果在当前⽬录上有与搜索路径上相同⽂件名的⽂件时则优先执⾏当前⽬录上的⽂件,如果没有特别说明,数据⽂件将存储在当前⽬录上。

matlab经典编程例题

matlab经典编程例题

以下各题均要求编程实现,并将程序贴在题目下方。

1.从键盘输入任意个正整数,以0结束,输出那些正整数中的素数。

clc;clear;zzs(1)=input('请输入正整数:');k=1;n=0;%素数个数while zzs(k)~=0flag=0;%是否是素数,是则为1for yz=2:sqrt(zzs(k))%因子从2至此数平方根if mod(zzs(k),yz)==0flag=1;break;%非素数跳出循环endendif flag==0&zzs(k)>1%忽略0和1的素数n=n+1;sus(n)=zzs(k);endk=k+1;zzs(k)=input('请输入正整数:');enddisp(['你共输入了' num2str(k-1) '个正整数。

它们是:'])disp(zzs(1:k-1))%不显示最后一个数0if n==0disp('这些数中没有素数!')%无素数时显示elsedisp('其中的素数是:')disp(sus)end2.若某数等于其所有因子(不含这个数本身)的和,则称其为完全数。

编程求10000以内所有的完全数。

clc;clear;wq=[];%完全数赋空数组for ii=2:10000yz=[];%ii 的因子赋空数组for jj=2:ii/2 %从2到ii/2考察是否为ii 的因子if mod(ii,jj)==0yz=[yz jj];%因子数组扩展,加上jjendendif ii==sum(yz)+1wq=[wq ii];%完全数数组扩展,加上iiendenddisp(['10000以内的完全数为:' num2str(wq)])%输出3.下列这组数据是美国1900—2000年人口的近似值(单位:百万)。

(1) 若.2c bt at y t y ++=的经验公式为与试编写程序计算出上式中的a 、b 、c;(2) 若.bt ae y t y =的经验公式为与试编写程序计算出上式中的a 、b;(3) 在一个坐标系下,画出数表中的散点图(红色五角星),c bx ax y ++=2中拟合曲线图(蓝色实心线),以及.bt ae y = (黑色点划线)。

Matlab编程练习题

Matlab编程练习题

Matlab编程练习
1. 房间里面有序号分别为1,2,…,100的电灯,初始时都关闭;又有100个序号分别为1,2,…,100的学生,当他们依次从这100盏灯前走过时分别将序号是本人序号的整数倍的所有灯开关切换一次(原来为开的变为关,原来为关的变为开)。

请问当所有的人都走过之后,那些灯是亮的?
2. 利用Gauss消去法求解线性方程组Ax=b。

具体要求:
a) 函数调用格式x=Gauss(filename)
b) 不得调用matlab现成的线性方程组求解代码;
c)每个小组准备3-5个不同的考题及其数据文件。

d) 数据文件(ASCII)格式
方程维数n
3
系数矩阵A
1 2 3
1 4 9
1 8 27
右端向量b
4 5 6
3. 13个人围成一圈,依次编号为1,2,…,13。

从1号开始报数1、2、3,报数为3的人马上从圈中退出,后面的再依次报1、2、3,报数为3的人再马上从圈中退出,….,直到累计有12个人退出为止。

请问,最后留下的人是几号。

4. 某些工业部门(如贵重石材加工等)采用截断切割的加工方式,如图1所示。

这里“截断切割”是指将物体沿某个切割平面分成两部分。

从一个长方体中加工出一个已知尺寸、位置预定的长方体(这两个长方体的对应表面是平行的),通常要经过6次截断切割。

假设切割费用与切割面积成正比请利用枚举法编程求解最优的切割顺序,使得切割费用最低。

B C
D
A
图2 四杆机构结构简图
5. 对于图2所示四杆机构,AB为主动杆,画出AB杆转动过程中铰点C的轨迹图。

6. 两大整数(多于10位)相加和相乘。

MATLAB编程练习

MATLAB编程练习

MATLAB编程练习1. 建立一个脚本文件ex_1.m ,从键盘输入两个数a 和b ,如果a=b,显示“It is right ”。

2. 编写一函数文件function max_num=ex_2(a,b); a,b 为两个同型矩阵、从键盘输入一对下标(ii,jj ),返回a(ii,jj)与b(ii,jj)中较大的数。

3. 编写一函数文件function [r1,r2]=ex_3(a,b,c),求一元二次方程a*x.^2+b*x+c=0的根r1,r2;用r1、r2代入方程左边验证。

4. 编写一个函数文件function [area, perimete]=ex_4(r),求半径为r 的圆的面积与周长。

5. 编写一函数文件function fac=ex_5_1(n),求数n 的阶乘;再编写一脚本文件ex_5_2.m 、求sum_5=1!+2!+…+10!。

6. 编写一脚本文件ex_6.m 、从键盘输入x 、输出分段函数:≥--<≤-<=2122111222x x x x x x x y 当当当的函数值y 。

7. 有函数>=-<-=2)1log(2122x x x e y x 当当编写脚本文件ex_7.m 输出y ;x 的值从键盘输入。

8. 编写脚本文件ex_8.m ,功能:从键盘输入一个字符,如果是大写字母,输出其后继字母;如果是小写字母,输出其前导字母,(‘Z ’的后继为’A ’,‘a ’的前导为’z ’);如果是数字字符,输出其ASCII 码;其他字符原样输出。

9. 某商场对顾客购买的商品总额打折,规则是500以下不打折,500~1000的95折,1000~3000的9折,3000~5000的85折,5000以上8折。

编写脚本文件ex_9.m;从键盘输入购物总额,用switch语句计算,输出应付金额pay。

10.某商场对顾客所购买的商品实行打折销售,标准如下(商品价格用price来表示):price<200 没有折扣200≤price<500 3%折扣500≤price<1000 5%折扣1000≤price<2500 8%折扣2500≤price<5000 10%折扣5000≤price 14%折扣编写脚本文件ex_10.m;从键盘输入price,用if_elseif_else_end语句计算,输出实际销售价格price_pay。

精讲多练matlab习题

精讲多练matlab习题

第一章2.设A =1.2,B =-4.6,C =8.0,D =3.5,E =-4.0计算: >> A=1.2; B=-4.6;C=8.0;D=3.5;E=-4.0; >> T=atan(2*pi*A+E/(2*pi*B*C))/D T = 0.4112>> x=pi/180*45;>> (sin(x)+sqrt(35))/72^(1/5) ans = 2.81583.设45x ︒=,计算 >> x=pi/180*45;>> (sin(x)+sqrt(35))/72^(1/5) ans = 2.81584.设5.67,7.811,a b ==计算: >> a=5.67;b=7.811; >> exp(a+b)/log10(a+b) ans =6.3351e+0055.计算2316()( 3.2)/(7.7)y x x x x=++-+在3x =时的值。

>> x=3;>> y=sqrt(x)-6*(x+1/x)+(x-3.2)^2/(x+7.7)^3 y = -18.26796.已知圆的半径为15,求其直径,周长及面积。

>> r=15;d=2*r; >> c=pi*2*r c = 94.2478 >> s=pi*r*r s = 706.85837已知某三角形的三个边的边长为8.5,14.6和18.4,求该三角形的面积。

提示:其中:()/2,s a b c =++a 、b 、c 分别为三角形三边边长。

>>a=8.5;b=14.6;c=18.4; >> s=(a+b+c)/2;>> area=sqrt(s*(s-a)*(s-b)*(s-c)) area = 60.6106第二章1.设矩阵求:>> A=[3 1 1;2 1 2;1 2 3];B=[1 1 -1;2 -1 0;1 -1 1]; (1)>> 2*A+Bans =7 3 16 1 43 3 7(2)>> 4*A*A-3*B*Bans =42 21 3840 19 4640 33 56(3)>> A*Bans =6 1 -26 -1 08 -4 2(4)>> B*Aans =4 0 04 1 02 2 2(5)>> A*B-B*A ans =2 1 -2 2 -2 0 6 -6 02.设三阶矩阵A B 、,满足16,A BA A BA -=+ 其中 求矩阵B 。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

选择结构编程练习1. 身高预测每个做父母的都关心自己孩子成人后的身高,据有关生理卫生知识与数理统计分析表明,影响小孩成人后的身高的因素包括遗传、饮食习惯与体育锻炼等。

小孩成人后的身高与其父母的身高和自身的性别密切相关。

设faHeight为其父身高,moHeight为其母身高,身高预测公式为男性成人时身高=(faHeight + moHeight)×0.54cm女性成人时身高=(faHeight×0.923 + moHeight)/2cm此外,如果喜爱体育锻炼,那么可增加身高2%;如果有良好的卫生饮食习惯,那么可增加身高1.5%。

编程从键盘输入用户的性别(用字符型变量sex存储,输入字符F表示女性,输入字符M表示男性)、父母身高(用实型变量存储,faHeight为其父身高,moHeight为其母身高)、是否喜爱体育锻炼(用字符型变量sports存储,输入字符Y表示喜爱,输入字符N表示不喜爱)、是否有良好的饮食习惯等条件(用字符型变量diet存储,输入字符Y表示良好,输入字符N表示不好),利用给定公式和身高预测方法对身高进行预测。

syms f m Y NfaHeight=input('请输入父亲的身高:');moHeight=input('请输入母亲的身高:');x=input('请输入x的性别:');sport=input('是否喜欢运动(Y/N):');diet=input('饮食是否良好(Y/N):');if x==mchild=(faHeight+moHeight)*0.54;elsechild=(faHeight*0.923+moHeight)/2;endif sport==Ychild=child*1.02;elsechild=child;endif diet==Ychild=child*1.015;elsechild=child;endchild2. 简单的计算器用switch语句编程设计一个简单的计算器程序,要求根据用户从键盘输入的表达式:操作数1 运算符op 操作数2计算表达式的值,指定的算术运算符为加(+)、减(-)、乘(*)、除(/)。

m=input('操作数1 运算符op 操作数2:','s');q=find(m=='+'|m=='-'|m=='*'|m=='/'|m=='×'|m=='÷');a=str2num(m(1:q-1));b=m(q);c=str2num(m(q+1:end));switch bcase '+'a+ccase '-'a-ccase '*'a*ccase '×'a*ccase '/'a/ccase '÷'a/cend(1)如果要求程序能进行浮点数的算术运算,程序应该如何修改?如何比较实型变量data2和常数0是否相等?format longm=input('操作数1 运算符op 操作数2:','s');q=find(m=='+'|m=='-'|m=='*'|m=='/'|m=='×'|m=='÷');a=str2num(m(1:q-1));b=m(q);c=str2num(m(q+1:end));switch bcase '+'a+ccase '-'a-ccase '*'a*ccase '×'a*ccase '/'a/ccase '÷'a/cend(2)如果要求输入的算术表达式中的操作数和运算符之间可以加入任意多个空白符,那么程序如何修改?format longm=input('操作数1 运算符op 操作数2:','s');m(find(isspace(m))) = []q=find(m=='+'|m=='-'|m=='*'|m=='/'|m=='×'|m=='÷');a=str2num(m(1:q-1));b=m(q);c=str2num(m(q+1:end));switch bcase '+'a+ccase '-'a-ccase '*'a*ccase '×'a*ccase '/'a/ccase '÷'a/cend(3)(选作题)如果要求连续做多次算术运算,每次运算结束后,程序都给出提示:Do you want to continue(Y/N or y/n)?用户输入Y或y时,程序继续进行其他算术运算;否则程序退出运行状态。

那么,程序如何修改?syms Y N y nformat longa=input('请输入操作数1:');b=input('请输入运算符op,','s');c=input('请输入操作数2:');switch bcase '+'a+ccase '-'a-ccase '*'a*ccase '×'a*ccase '/'a/ccase '÷'a/cendF=input('Do you want to continue(Y/N or y/n)');while F==Yformat longa=input('请输入操作数1:');b=input('请输入运算符op,','s');c=input('请输入操作数2:');switch bcase '+'a+ccase '-'a-ccase '*'a*ccase '×'a*ccase '/'a/ccase '÷'a/cendF=input('Do you want to continue(Y/N or y/n)');End(2) format longd='y';while d=='Y'|d=='y'm=input('操作数1 运算符op 操作数2:','s');m(find(isspace(m))) = []q=find(m=='+'|m=='-'|m=='*'|m=='/'|m=='×'|m=='÷'); a=str2num(m(1:q-1));b=m(q);c=str2num(m(q+1:end));switch bcase '+'a+ccase '-'a-ccase '*'a*ccase '×'a*ccase '/'a/ccase '÷'a/cendd=input('Do you want to continue(Y/N or y/n)?','s');end循环结构编程练习猜数游戏在这个实验中,我们将尝试编写一个猜数游戏程序,这个程序看上去有些难度,但是如果按下列要求循序渐进地编程实现,会发现其实这个程序是很容易实现的。

那么,现在就开始吧,先编写第1个程序,然后试着在第1个程序的基础上编写第2个程序,……程序1 编程先由计算机“想”一个1~100之间的数请人猜,如果人猜对了,则计算机给出提示“Right!”,否则提示“Wrong!”,并告诉人所猜的数是大(Too high)还是小(Too low),然后结束游戏。

要求每次运行程序时机器所“想”的数不能都一样。

程序2 编程先由计算机“想”一个1~100之间的数请人猜,如果人猜对了,则结束游戏,并在屏幕上输出人猜了多少次才猜对此数,以此来反映猜数者“猜”的水平;否则计算机给出提示,告诉人所猜的数是太大还是太小,直到人猜对为止。

程序3 编程先由计算机“想”一个1~100之间的数请人猜,如果人猜对了,则结束游戏,并在屏幕上输出人猜了多少次才猜对此数,以此来反映猜数者“猜”的水平;否则计算机给出提示,告诉人所猜的数是太大还是太小,最多可以猜10次,如果猜了10次仍未猜中的话,结束游戏。

程序4 编程先由计算机“想”一个1~100之间的数请人猜,如果人猜对了,在屏幕上输出人猜了多少次才猜对此数,以此来反映猜数者“猜”的水平,则结束游戏;否则计算机给出提示,告诉人所猜的数是太大还是太小,最多可以猜10次,如果猜了10次仍未猜中的话,则停止本次猜数,然后继续猜下一个数。

每次运行程序可以反复猜多个数,直到操作者想停止时才结束。

a=fix((100+1)*rand(1));b=input('请输入一个大于0小于100的整数:');for i=1:10if a==bdisp('You win!')disp(['你总共用了',num2str(i),'次'])break;elseif b>adisp(['Too high!You hava ',num2str(10-i),' chances!'])elsedisp(['Too low!You hava ',num2str(10-i),' chances!'])endb=input('请再输入一个整数:')end1 .猴子吃桃问题。

猴子第一天摘下若干个桃子,当即吃了一半另一个,以后每天早晨都吃剩下的一半另一个,到第十天早晨再想吃时,就剩一个桃子。

相关文档
最新文档