实用工程软件matlab习题

更新时间:2023-12-06 07:12:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

第三章、程序设计

1.编写一个函数,将百分制的学生成绩转换为五级制的成绩

function s=score(n) n=input('n=');

if (n>=90&&n<=100)

s='A';

elseif (n>=80&&n<90) s='B';

elseif (n>=70&&n<80) s='C';

elseif (n>=60&&n<70) s='D';

elseif (n>=0&&n<=60) s='E'; else

disp('输入错误') end

2. 编写一个函数,计算Fibonacci数F(n)

已知:F(1)=F(2)=1 F(k)=F(K-1)+F(K-2)

function Fn=Fibonacci(n) n=input('输入正整数n='); s=0;t=1;i=0; while i>=0&&i

disp('Fn=') disp(s)

3. 编写m程序,找出300以内所有满足下两个条件的数 (1)各位数字之和为奇数(2)该数为素数

Y=primes(300); for i=1:length(Y) a=fix(i/100); b=fix((i-100*a)/10); c=i-100*a-10*b; Ysum(i)=a+b+c; end

Y(find(mod(Ysum, 2) == 1))

4、所谓“水仙花数”是一个3位数,其各位数字的立方和等于该数本身。例如:153=1^3+5^3+3^3。

找出所有的“水仙花数”,并求出水仙花数共有多少个

d=0;

for i=100:999 a=fix(i/100); b=fix((i-100*a)/10); c=i-100*a-10*b; if i==a*a*a+b*b*b+c*c*c d=d+1; A(d)=i; else end end

disp('水仙花数') disp(A)

disp('水仙花个数') disp(d)

5、验证哥德巴赫猜想:

使用input函数读入一个大于2的偶数,并输出一个哥德巴赫素数等式 例如:6=3+3 100=41+59 要求读入一个,计算一个,能够连续执行,直到读入0才结束,退出程序

clear all for s=1:inf

n=input('输入一个偶数n='); if n~=0 if mod(n,2)==0

X=primes(n); X(1)=[]; e=length(X); N=zeros(1,e); N(:)=n; Y=N-X; i=1; j=1; if i<=n if j<(Y(i)-1)

j=j+1; if mod(Y(i),j)==0

disp('哥德巴赫猜想不成立'); end end

i=i+1; end else

X=[]; %n输入为奇数,清空X Y=[]; %n输入为奇数,清空Y N=[]; %n输入为奇数,清空N disp('输入错误,请重新输入'); end

A=cat(1,X,Y,N); %每一列的第三行是输入的偶数,第一行与第三行均是与之对应的素数 disp(A) else return end end

选作6、输入n,输出n阶魔方阵 (各行各列之和都相等)

n=input('请输入正整数n='); if (rem(n,1)==0)&&(n>=0) A=magic(n); else

disp('输入错误') end disp(A)

第四章、MATLAB绘图

1.在[0 2π]范围内绘制二维曲线图y=sin(x)*cos(5x)。(注意使用点乘)

x=0:pi/200:2*pi; y=sin(x).*cos(5*x); plot(x,y); xlabel('x'); ylabel('y');

title('y=sin(x)*cos(5x)')

2.在[0 2π]范围内绘制以Y轴为对数的二维曲线图。(semilogy) y=|1000sin(4x)|+1

x=0:pi/200:2*pi; y=abs(1000*sin(4*x))+1; semilogy(x,y); xlabel('x'); ylabel('logy');

title(' y=|1000sin(4x)|+1'); grid on

3.绘制z=sin(x)*cos(y)的三维网格和三维曲面图,x,y变化范围均为[0 2π]。

[x,y]=meshgrid(0:pi/20:2*pi); z=sin(x).*cos(y);

subplot(1,2,1); surf(x,y,z); xlabel('x'); ylabel('y'); zlabel('z'); title('曲面图') subplot(1,2,2); mesh(x,y,z); xlabel('x'); ylabel('y'); zlabel('z'); title('网格图');

4 .画画,画一个简单的机器人二维图或三维图

axis equal

for i=0:pi/1000:pi; a=[0,cos(i)]; b=[0,sin(i)];

line(a,b,'Color','g','LineWidth',2); end

for j=0:pi/1000:2*pi; c=[0.5,0.5+0.1*cos(j)]; d=[0.5,0.5+0.1*sin(j)];

line(c,d,'Color','w','LineWidth',2); x=[-0.5,-0.5+0.1*cos(j)]; y=[0.5,0.5+0.1*sin(j)];

line(x,y,'Color','w','LineWidth',2); end

e=[0.5 0.8]; f=[-0.5 -0.8]; g=[0.86 1.3];

line(e,g,'Color','g','LineWidth',5); line(f,g,'Color','g','LineWidth',5);

rectangle('position',[-1,-1,2,0.9],'edgecolor','g','facecolor','g'); rectangle('position',[-1,-2,2,1.5],'curvature',[0.5,0.5],'edgecolor','g','facecolor','g');

rectangle('position',[1.2,-1.5,0.3,1.3],'curvature',[0.5,0.5],'edgecolor','g','facecolor','g');

rectangle('position',[-1.5,-1.5,0.3,1.3],'curvature',[0.5,0.5],'edgecolor','g','facecolor','g');

rectangle('position',[-0.65,-3,0.3,1.3],'curvature',[0.5,0.5],'edgecolor','g','facecolor','g');

rectangle('position',[0.45,-3,0.3,1.3],'curvature',[0.5,0.5],'edgecolor','g','facecolor','g');

5. 画一个带分针和时针的钟表,并较快速的旋转24小时

axis equal for i=0:1440

X=[0,sin(pi*i/360)]; Y=[0,cos(pi*i/360)];

h=line(X,Y,'LineWidth',4,'erasemode','xor'); A=[0,2*sin(pi*i/30)]; B=[0,2*cos(pi*i/30)];

h1=line(A,B,'LineWidth',2,'erasemode','xor'); axis([-2,2,-2,2]); axis off; for j=1:length(X)

set(h,'xdata',X(j),'ydata',Y(j)); drawnow; end

for k=1:length(A)

set(h1,'xdata',A(k),'ydata',B(k)); drawnow; end end

第六章数值计算

1.已知某班的5名学生的三门课成绩列表如下: 学生序号 1 2 3 4 5 高等数学 78 89 64 73 68 外语 83 77 80 78 70

MATLAB语言 82 91 78 82 68

试写出有关命令,先分别找出三门课的最高分及其学生序号;然后找出三门课总分的最高分及其学生序号。

A=[78 89 64 73 68; 83 77 80 78 70;82 91 78 82 68]; y0=max(A); [y1,l1]=max(y0); y2=sum(A); [y3,l2]=max(y2);

fprintf('三门课中最高分为%.0f,学生学号为=%.0f\\n三门课总分最高分为%.0f,学生学号为%.0f\\n’,y1,l1,y3,l2)

2.针对上小题的成绩表,求出其三门课总分存入数组ZF,再利用SORT命令对之按降序排序,同时把相应的学生序号存入数组XH。

A=[78 89 64 73 68; 83 77 80 78 70;82 91 78 82 68]; ZF=sum(A);

[zf,XH]=sort(ZF,2,'descend');

fprintf('三门课总分为%.0f %.0f %.0f %.0f %.0f\\n总分按降序排列%.0f %.0f %.0f %.0f %.0f\\n对应降序总分的学生学

本文来源:https://www.bwwdw.com/article/r8rt.html

Top