matlab程序设计及心得体会
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.编写程序,建立向量n=〔1,2,3,4,5〕,并利用n产生下列向量:
(1)2 , 4 , 6 , 8 , 10 (2)1/2 , 1 , 3/2 , 2 , 5/2
(3)1, 1/2 , 1/3 , 1/4 , 1/5 (4)1 , 1/4 , 1/9, 1/16, 1/25。
注意:向量n=1:5,/是传统意义上的矩阵的除法,,而./是两个矩阵的对应元素相除,同理相乘。此处是对应元素相除,所以一定要记住应该用点除,而非除法。
2. 从键盘输入一个三位数,将它反向输出。例如输入639,输出为936。
注意:输出函数:disp(),取整用fix(),取余函数mod(x,y)与rem(x,y)一样。
3. 输入一个百分制成绩,要求输出成绩等级A,B,C,D,E。其中90-100分为A,80-89分为B,70-79分为C,60-69分为D,60分以下为E。
要求:(1)分别用if语句和switch语句实现。
(2)输入百分制成绩后要判断该成绩的合理性,对不合理的成绩应输出出错信息。注意:switch语句中的case最好用0~9的数字表示而不是表达式!不可用break!后不可用表达式!!!为了表示另一种情况,记住用if与其搭配~不要太死板,学会灵活。
4. 建立5*6的矩阵,要求输出矩阵第n行元素。当n的值超过矩阵的行数时,自动转为
输出矩阵最后一行元素,并給出出错信息。
注意:随机产生一个0~1矩阵可以用rand函数,整数矩阵便用fix(100*rand(m,n))函数。产生m*n 阶[a,b]均匀分布U(a,b)的随机数矩阵:
unifrnd (a,b,m, n)
5.产生20个两位随机整数,输出其中小于平均值的偶数。
注意:fix(100*rand(m,n))与round(100*rand(m,n))几乎一样的,随机产生m*n阶矩阵,学会变通,随机产生两位随机整数。fix是指向0靠拢取整。fix(3.7)=3,fix(-3.7)=-3。floor指向下取整,ceil指向上取整。round指四舍五入取整!!round最常用~记住a=o指赋值,而a==0指判断,与c语言一样~当矩阵只有一行时,可用a(i)表示每一个数。用k(i)表示来输出每一个数!
表示矩阵中的每一列时用a(:,i),表每一行时用a(i,:)。
6.输入20个数,求其中的最大数和最小数。要求分别用循环结构和调用MATLAB的max
函数、min函数来实现。注意:熟记其中的函数将对编程的速度有很大的提高!孩子,加油!
7.
0.30.30.3
sin(0.3)ln
22
a a
e e a
y a
-
-+
=++,当a取-30.,-2.9,……,2.9,3.0时,求各点
的函数值。要求分别用顺序结构和循环结构实现。
注意:用size 返回向量元素的个数,如果是矩阵,size (a ,2)指返回矩阵的竖的个数,即多少列。其中一维是指行,二维指列。记住表示一个向量时,步长放中间。!
8. 当n 分别取100、1000、10000时,求下列各式的值:(要求分别用循环结构和向量运算(使用sum 函数)来实现)
(1)
22221111123n
+++++ (2)1111357
-+-+ (3)1111416644n +++++ (4)()()224466221335572121n n n n ⎛⎫⨯⨯⨯⨯⎛⎫⎛⎫⎛⎫ ⎪ ⎪⎪⎪ ⎪⨯⨯⨯-⨯-⎝⎭⎝⎭⎝⎭⎝⎭
注意:使用while 循环时,注意对n 初始化,与c 语言较象。普通指数时直接用^,自然指数时,若x 已知,用y=exp (x )。
9. 若两个连续自然数的乘积减1是素数,则称这两个连续自然数是亲密数对,该素数是亲密素数。例如:2*3-1=5,由于5是素数,所以2和3是亲密数对,5是亲密素数。求〔2,50〕区间内,
(1)亲密数对的对数;
(2)与上述亲密数对对应的所有亲密素数之和。
注意:x=primes (n )输出不超过n 整数的素数,a=length (x )表示输出素数的个数。用b=isprime (n )来判断n 是否为素数,若为素数则b=1,反之为0。学会变通,求和用if 循环就好。
10. 根据1111135721
n +++++- ,求: (1)y<3时的最大n 值;
(2)与(1)的n 值对应的y 值。
注意:不能被题目吓跑~~·很简单的,耶耶!
11. 已知(40)(30)(20)
f y f f =+ (1)当2f(n)=n+10ln(n +5)时,y 的值是多少?
(2)当f(n)=1*2+2*3+3*4+……+n*(n+1)时,y 的值是多少?
12. 编写一个函数文件,用于求两个矩阵的乘积和点乘,然后在命令文件中调用该函数。
13. 定义一个函数文件,求給定复数的指数、对数、正弦、余弦,并在命令文件中调用该
函数文件。
14. 先用函数的递归调用定义一个函数文件求
1n i i =∑,然后调用该函数文件求10050102
1111k k k k k k ===++∑∑∑zhuyi:yaoxunzaoyigehanshubiannnengjiejue defangfa~~ 15.写出下列程序的输出结果。
(1)
s=0;
a=[12 13 14;15 16 17;18 19 20;21 22 23];
for k=a
for j=1:4
if rem(k(j),2)~=0
s=s+k(j);
end
end
end
s
(2)命令文件
global x
x=1:2:5;y=2:2:6;
sub(y);
x
y
函数文件sub.m
function fun=sub(z)
global x
z=3*x;
x=x+z;
16已知:()111111435721
n n π≈-+-++-- ,编程求π的近似值。