matlab习题2009
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1. 请登陆美国MathWorks 公司的网站(),了解Matlab 软件的最新信息,然后查看现在大概有多少本MATLAB-based books (以MATLAB 为基本软件,来说明各个专业领域的教科书或工具书). 哪一个领域的MATLAB-based books 最多?中文书共有几本?
2. 请在Matlab的help中了解Matlab的Demo(演示)程序,你认为Matlab的哪些功能最让你感兴趣?
3. 请在MATLAB中直接输入下列常数,看它们的值是多少:
a. i
b. j
c. eps
d. inf
e. nan
f. pi
g. realmax
h. realmin
4. 请在Help中,找出具有下列功能的MATLAB 指令. (每一项只需找出一个相关度最高的MATLAB 指令. )
a. 找出矩阵的大小(即行数和列数)(Dimension,Size)
b. 改变矩阵的大小(例如将4×6 的矩阵改成12×2)(reshape)
c. 将矩阵左右翻转(Left-right flip)
d. 将矩阵上下翻转(Up-down flip)
e. 找出矩阵每一列的最大值(Maximum)
f. 对矩阵的每一列进行排序(sort)
g. 矩阵的旋转(Rotate)
h. 逆矩阵(Inverse matrix)的计算
i. 求矩阵的秩(rank)
j. 计算矩阵的行阶梯矩阵reduced row echelon form
k. 计算矩阵的特征值(Eigenvalue)与特征向量(Eigenvector)
l. 直角坐标转成极坐标(Cartesian coordinates, Polar coordinates)
m. 极坐标转成直角坐标
5. 写一个MATLAB 小程序findN01.m,求出最小的n值,使得n! > realmax((realmax为Matlab内置函数,表示Matlab能表示的最大实数). 请问n的值是多少?此时(n-1)! 的值又是多少?
6. MATLAB 的sqrt 指令可对任一数值进行开平方的运算. 用此指令求出下列各数的平方根,并验算之:
a. π
b. 2*i
c. -5+12*i
其中i 是单位虚数.
7. 写一个MATLAB 函数myFun.m 来计算下列方程式:
y = 0.5*exp(x/3)-x*x*sin(x)
其中x是函数的输入,y是函数的输出. 你的函数必须能够处理当x是标量或是向量的两种情况. 此外,请利用下述两列程序代码来画出此函数的图形:
x=0:0.1:10;
plot(x, myFun(x));
8. 写一个MATLAB 函数piFun.m 来计算下列级数:
f(n) = 4*(1 - 1/3 + 1/5 - 1/7 + 1/9 - 1/11 + ...)
其中n为函数的输入,代表上述级数的项数,级数和f(n) 则是函数的输出.
9. 使用tic 和toc 指令来测量piFun(100000) 的计算时间. 请说明你的计算机规格以及其计算时间.
10. 请写一个函数minxy.m,其功能是由一个二维矩阵中找出小元素,用法如下:
[minValue, minIndex] = minxy(matrix)
其中matrix 是一个二维矩阵,minValue 则是其元素的最小值,而minIndex 是一个长度为2 的正整数向量,代表最小值的索引. (换句话说,matrix(minIndex(1), minIndex(2)) 的值即是minValue. )请测试
[minValue, minIndex] = minxy(magic(20))
所传回来的minValue 和minIndex 各是多少?提示:请尽量使用 min 指令.
11. 如果a = [92, 95, 58, 75, 69, 82],但我们执行下列sort 指令:
[b, index] = sort(a)
会得到b = [58, 69, 75, 82, 92, 95] 及index = [3, 5, 4, 6, 1, 2],其中index 的每个元素代表b的每个元素在 a 的位置,满足b等于a(index). 请写一个函数sort01.m,当输入为a时,可得到index2,满足a 等于b(index2). 以上述a向量为例,得到的index2 应该是[5, 6, 1, 3, 2, 4].
提示:你可以使用循环(如 for-loop 和 while-loop 等)完成,但是程序代码会比较凌乱,执行效率也会变差. 所以请尽量利用 sort 指令,而不要用到循环.
12. 假设在期中考后,我们用一个向量x来储存每个人的考试成绩. 请写一个函数ranking.m,输入为成绩向量x,输出则是此成绩的排名. 例如,当x = [92, 95, 58, 75, 69, 82] 时,ranking(x) 得到的排名向量则是[2, 1, 6, 4, 5, 3],代表92 分是排名第2,95 分是排名第1,58 分是排名第6,等等.
提示:你可以使用循环(如 for-loop 和 while-loop 等)完成此作业,但是程序代码会比较凌乱,执行效率也会变差. 所以请尽量利用 sort 指令,而不要用到循环.
13. 试写一函数regPolygon(n),其功能为画出一个圆心在(0, 0)、半径为1 的圆,并在圆内画出一个内接正n边形,其中一顶点位于(0, 1). 例如regPolygon(8) 可以画出如下之正八边型: