2014 第一轮上机练习题答案matlab程序设计练习

2020-03-26 19:27

练习1 基础练习

一、矩阵及数组操作:

1.利用基本矩阵产生3×3和15×8的单位矩阵、全1矩阵、全0矩阵、均匀分布随机矩阵([-1,1]之间)、正态分布矩阵(均值为1,方差为4)。

解eye(3) eye(15,8) ones(3) ones(15,8) zeros(3) zeros(15,8) X1=(1+(1-(-1))*rand(3)) X2=(1+(1-(-1))*rand(15,8)) Y1=1+sqrt(4)*randn(3) Y2=1+sqrt(4)*randn(15,8)

2.利用fix及rand函数生成[0,10]上的均匀分布的10×10的整数随机矩阵a,然后统计a中大于等于5的元素个数。

解:a=fix((10-0+1)*rand(10)+0) x=5 i=find(a>=x) n=length(i)

3.在给定的矩阵中删除含有整行内容全为0的行,删除整列内容全为0的列。

解:A=[1 2 2 3 4;0 0 0 0 0;4 5 6 2 3;0 0 0 0 0;];

A([2,4],:)=[] B=A'; B(:,[2,4])=[]

二、绘图:

4.在同一图形窗口画出下列两条曲线图像: y1=2x+5; y2=x^2-3x+1, 并且用legend标注。 解:x=0:0.01:10;

y1=2*x+5; y2=x.^2-3*x+1;

1

plot(x,y1,x,y2) legend('y1', 'y2')

80706050403020100-10 0y1y2 12345678910

5.画出下列函数的曲面及等高线: z=x^2+y^2+sin(xy).

解:[x,y]=meshgrid(0:0.25:4*pi); z=x.^2+y.^2+sin(x.*y); contour3(x,y,z); meshc(x,y,z)

4003002001000151010500515

2

三、程序设计:

6.编写程序计算(x在[-3,3],间隔0.01)

解:x=input('??ê?è?xμ??μ:'); if x>=-3&x<-1 y=(-x.^2-4*x-3)/2; elseif x>=-1&x<1 y=-x.^2+1; elseif x>=1&x<=3 y=(-x.^2+4*x-3)/2; else y='error' end y

7.有一列分数序列:

求前15项的和。

解:a=1; b=2; sum=0; for k=1:15 c=b/a; sum=sum+c; t=b; b=a+b; a=t; end sum

8.用至少三种方法编写函数实现求任意整数n的阶乘。

解:法一:s=factorial(n)

法二:gamma(n) 求出的是(n-1)! 法三:n=input('please input n:');

x=1:n;

3

prod(x)

9.将任意大于6的偶数m写成两个素数p1、p2的和(试着写出所有的m=p1+p2的可能形式)。

解:function y=f(n);

n=input('??ê?è?nμ??μ:'); if mod(n,2);

error('n2?ê???êy.????D???DD3ìDò.') elseif n<=6;

error('n±?D?′óóú6.????D???DD3ìDò.') else

for m=1:n; for k=m:n;

if (isprime(m))&(isprime(k))&(m+k==n);

disp([num2str(n),'=',num2str(m),'+',num2str(k)]); break; end; end; end; end;

10.是否任意3的倍数m可以写成两个素数p1、p2、p3的和(试着写出所有的m=p1+p2+p3 的可能形式)?

解:function y=fg(n); n=input('请输入n的值:'); if mod(n,3);

error('n不是3的倍数.请重新运行.') elseif n<6;

error('n必须不小于6.') else

for m=1:n; for k=m:n; for p=k:n

if(isprime(m))&(isprime(k))&(isprime(p))&(m+k+p==n);

disp([num2str(n),'=',num2str(m),'+',num2str(k),'+',num2str(p)]); break; end; end; end;

4

end; end;

四、数据处理与拟合初步:

11.通过测量得到一组数据: t 1 4.84y 2 2 4 8 9 8 4 6 2 5 分别采用y=c1+c2e^(-t)和y=d1+d2te^(-t)进行拟合,并画出拟合曲线进行对比。

解:t=1:10;

y=[4.842,4.362,3.754,3.368,

3.169,3.038,3.034,3.016,3.012,3.005]; x1=exp(-t); x2=t.*exp(-t); y1=polyfit(x1,y,1) 可以写出:

y1=5.2165*exp(-t)+3.1564 y2=polyfit(x2,y,1) 可以写出:

y2=5.0273*t.*exp(-t) +2.9973 plot(t,y,t,y1,'r--',t,y2,'gx')

5.52 4.363 3.754 3.365 3.166 3.037 3.038 3.019 3.0110 3.0054.543.532.512345678910

另:此题也可以采用工具箱直接进行运算。

5


2014 第一轮上机练习题答案matlab程序设计练习.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:世界各国货币名称及符号

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

马上注册会员

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