MATLAB程序设计例题及答案

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

1.编写程序:计算1/3+2/5+3/7+……+10/21

法一:

s=0;

for i=1:10

s=s+i/(2*i+1);

end

s

s=

4.4096

法二:

sum((1:10)./(3:2:21))

ans=

4.4096

2.编写程序:计算1~100中即能被3整除,又能被7整除的所有数之和。

s=0;

for i=1:100

if mod(i,3)==0&&mod(i,7)==0

s=s+i;

end,end

s

s=

210

3.画出y=n!的图(1<=n<=10),阶乘的函数自己编写,禁用MATLAB自带的阶乘函数。

x=1:10;

for i=1:10

try y(i)=y(i-1)*i;

catch y(i)=1;

end,end

plot(x,y)

12345678910

00.5

1

1.5

2

2.5

3

3.5

4

64.一个数恰好等于它的因子之和,这个数就称为完数。例如,6的因子为1,2,3,而6=1+2+3,因此6就是一个完数。编程找出2000以内的所有完数。

g=[];for n=2:2000s=0;for r=1:n-1if mod(n,r)==0s=s+r;end end if s==n g=[g n];end end g g =628496

5.编写一个函数,模拟numel函数的功能,函数中调用size函数。

function y=numelnumel(x)

m=size(x);

y=m(1)*m(2);

numelnumel([123;456])

ans=

6

6.编写一个函数,模拟length函数的功能,函数中调用size函数。

function y=lengthlength(x)

m=size(x);

y=max(m(1),m(2));

lengthlength([123;456])

ans=

3

7.求矩阵rand(5)的所有元素和及各行平均值,各列平均值。

s=rand(5);

sum=sum(sum(s))

mean2=mean(s,2)

mean1=mean(s)

sum=

13.8469

mean2=

0.5583

0.5536

0.6554

0.4931

0.5090

mean1=

0.63310.50060.64870.71240.2745

8.编程判断1001,1003,1007,1009,1011是否为素数,若不是,输出其约数。

function sushupd(x)

s=fix(sqrt(x));

p=1;

for i=2:s

if mod(x,i)==0

p=0;

break

end

end

if p==1

disp('该数是素数')

else g=[];

for i=1:x

if mod(x,i)==0

g=[g i];

end

end

disp('该数不是素数')

g

end

sushupd(1001)

该数不是素数

g=

17111377 911431001

>>sushupd(1003)

该数不是素数

g=

117591003

>>sushupd(1007)

该数不是素数

g=

119531007

>>sushupd(1009)

该数是素数

>>sushupd(1011)

该数不是素数

g=

133371011

9.将[15633541236512123335657;

122354343231323454531]从小到大排序,

排成一列,禁用sort函数。

s=[15633541236512123335657;122354343231323454531]; s=[s(1,:)s(2,:)];

for i=1:length(s)-1

for i=1:length(s)-1

if s(i)>s(i+1)

a=s(i);

s(i)=s(i+1)

s(i+1)=a;

end

end,end

s

s=

Columns1through8

2331354345 5765132

Columns9through14

34535615634123121233 1223543

10.两个整数a和b,如果a的因子和等于b,b 的因子和也等于a,且a不等于b,则称a,b为一对亲密数。请寻找并输出2000以内的所有亲密数对。

g=[];

for a=1:2000

s1=0;

s2=0;

for r=1:a-1

if mod(a,r)==0

s1=s1+r;

end

end

if a==s1

continue

end

if find(g==a)~=0

continue

end

for r=1:s1-1

if mod(s1,r)==0

s2=s2+r;

相关文档
最新文档