matlab程序设计及心得体会

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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 π≈-+-++-- ,编程求π的近似值。

相关文档
最新文档