matlab语言习题集(4)

2019-04-13 21:41

while n<6 x=n+x; n=n+1; end x

运行结果 x= 15 。 25.设有程序:

a=[ ]; for i=1:3; for j=1:3;

a(i,j)=(i-j)*abs(i-j); end end

b=a(8)*a 运行结果 b=

0 1 4 -1 0 1 -4 -1 0 。 26.设有程序:

x=5;y=-24; if x<0 x=y-3 else

y= y+10; end

z=400*x-y 运行结果 z= 2014 。 27.设有程序:

function f=price(a) switch fix(a/100); case {0,1,2}

rate=0; otherwise rate=0.05 end

f=a*(1-rate) 运行结果

price (300)= 285 。 28.设有程序:

s=0;

a=[ 10,11,12;13 14 15;16 17 18;19 20 21];

for k=a s=s+k; end disp(s) 运行结果 disp(s)=

33 42 51 60

29.>>X=linspace(1,2,5)

X =

1.0000 1.2500 1.5000 1.7500 2.0000 。

30.>>X=logspace(1,3,3)

X =

10 100 1000 。 31.>>X=[1;2;3;4;5;6] (2分)

X =

[1 2 3 4 5 6]? 。

32.>> A=ones(2,2);A(:)=1:4;

>> A*A? ans =

[10 14; 14 20] 。 >> B=A.*A? B =

[1 6; 6 16] 。

33.已知y的表达式y??1/i2,当n?100时,求y的值,请补充完整。

i?1n>>n=100; i=1:n;

>>f= 1./i.^2 ;y= sum(f)

34.求出矩阵a=[1 2 3;4 5 6;7 8 9]中每一列中的最大值最小值和矩阵a中每一行中的最大值最小值。 答:

>>a=[1 2 3;4 5 6;7 8 9]; >>b1=max(a) >>c1=min(a) >>b2=max(a,[],2) >>c2=min(a,[],2)

35.找出矩阵a的最大值,并确定其位置。 答:

>>[x,y]=max(a)

五、编程题

1.打印出所有的水仙花数。所谓“水仙花数”,是指一个三位数,其各位数字立方之和等于该数本身。 答:

for k=100:999 a=fix(k/100); b=rem(fix(k/10),10); c=rem(k,10); if a.^3+b.^3+c.^3==k fprintf('%u,',k); end

end 2.利用while语句建立M文本,求出?i的值。

i?1100答:

mysum=0;i=1; while(i<=100)

mysum=mysum+i; i=i+1; end mysum

3.利用for语句建立M文本,求出?i的值。

i?1100答:

mysum=0; for i=1:100

mysum=mysum+i;

end mysum

4.请修改下面的程序,让他们没有for循环语句!

A=[1 2 3; 4 5 6; 7 8 9]; [r c]=size(A); for i=1:1:r for j=1:1:c

if (A(i,j)>8 | A(i,j)<2) A(i,j)=0; end end end 答:

程序如下:

a=[1 2 3;4 5 6;7 8 9]; b=(a<=8&a>=2); a=a.*b

5.编写一个函数,使其能够产生如下的分段函数:

? 0.5x , x?2?f?x???1.5?0.25x , 2?x?6

?0.5 , 6?x?函数的输入参数为x,输出参数为y,函数名为fun。 答:

function y=fun(x) if x<=2 y=0.5*x; else if x>6 y=0.5; else

y =1.5-0.25*x; end end

6.将一个屏幕分4幅,选择合适的步长分别在右上幅与左下幅绘制出如下函数的图形。

?????fx?cosx x??????2 2???? ?22?fx,y?x?y ?2??x??2,?4??y??4??22?24?答:

>>subplot(2,2,2);

>>ezplot('(cos(x))^(1/2)',[-pi/2,pi/2]); >>subplot(2,2,3);

>>x2=-2:0.5:2;y=-4:1:4;

>>ezsurfc('x^2/2^2+y^2/4^2'); 7.A是一个维度m×n的矩阵,写一段程序,算出A中有多少个零元素。 答:

A=input ('请输入一个矩阵') [m,n]= size(A); sig=0; for i=1:m

for j=1:n

if A(i,j)==0 sig = sig+1; end end end sig

8.向量 A=[a1 a2 ??? an],写一段程序, 找出A中的最小元素。 答:

A=input('请输入一个向量') [m,n]= size(A); min = A(1,n); for i=1:n

if A(1,i)

end end min

9.编写一个脚本程序实现:在同一图上分别用红色虚线和绿色点划线绘制函数y1=sinx和y2=x2+2x-1在区间[-10,10]的曲线,标题为“用作图法求两条函数曲线的交点”,x轴为“自变量x”,y轴为“函数y1、y2的曲线”,并给出图例“?y1=sinx?,?y2=x2+2x-1?”。(7分) 答:

>>x=-10:1:10; >>y1=sin(x);

>>y2=x.^2+2*x-1; >>plot(x,y1,'r--'); >>hold on

>>plot(x,y2,'g-.'); >>xlabel('自变量x');

>>ylabel('函数y1、y2的曲线');

>>title('用作图法求两条函数曲线的交点'); >>legend('y1=sin(x)','x^2+2x-1');

10.(1) 建立M函数完成下列运算(函数名为jygxfun) (5分)

?(x?y)f(x,y,z)?ze?x?y?z?sinx(?y?3z)

(2) 若x=1,y=2,z=3,采取调用jygxfun方式计算f值, 试编程。 (3分) 答:

(1)

function f=jygxfun(x,y,z)

f=z*exp(-(x+y))+sqrt(x+y+z)*sin(x+y+3*z); (2)

>>x=1;y=2;z=3; >>f= jygxfun(x,y,z)

11.编程计算下面问题, x值由键盘输入(input语句)。 (7分)

?x2?1,x?1?y??x2,?1?x?1?x2?1,x??1?答:

x=input('x=?'); if x>=1 y=x^2+1; else

if x<-1

y=x^2-1; else

y=x^2; end end y

12.某人做一种材料的伸缩实验,t为温度(℃),L为长度(mm),实验数据见下表

t L 20 81 25 82.3 30 84 35 86.8 40 89 用二阶拟合法,求L与t的表达式.要求:1.编程;2.写出L与t的关系式。 答:

程序如下:

t=[20,25,30,35,40]; L=[81,82.3,84,86.5,89]; k=polyfit(t,L,2)

运行结果:

k= 0.0091 -0.1446 80.2114 故L与t的关系式为:

L=0.0091t2 -0.1446t+ 80.2114

13.求微分与积分(编程)

2?f?3ff?ax?bxy?cy,求,3,?fdx,?fdx

?2?x?y32答:

>>syms x y a b c;

>>f=a*x^3-b*x*y+c*y^2; >>dx=diff(f,x,1) >>dy3=diff(f,y,3) >>s1=int(f,x) >>s2=int(f,x,-2,2)

14.解方程(编程) (共10分)

?x?2y?z?1?(1) ?2x?y?2z?3 (6分)

?3x?4y?2z?9?d2ydy?3?2y?3sin(x),y(0)?1,y?(0)?2 (4分) (2) 2dxdx答:

(1)

>>syms x y z;

>>f1='x+2*y+z=1'; >>f2='2*x+y-2*z=3'; >>f3='3*x-4*y+2*z=9?; >>[x,y,z]=solve(f1,f2,f3)

(2)

>>s=dsolve('D2y+3*Dy+2*y=3*sin(x)','y(0)=1', 'Dy(0)=2','x')

15.绘图(编程) (共20分)

(1) 绘曲线(10分)

将matlab绘图窗口分割为二个区域,在左区域绘出y1曲线,在右区域绘出y2曲线,y1为红色,y2为蓝色,步距0.01。


matlab语言习题集(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:2017河南省教师招聘考试真题

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: