matlab习题2007
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1. 请登陆美国MathWorks 公司的网站(),查看看现在大概有多少本MATLAB-based books (以MATLAB 为基本软件,来说明各个专业领域的教科书或工具书)。哪一个领域的MATLAB-based books 最多?中文书共有几本?
2. 请观察Matlab的各个窗口,并点击菜单项,试一试它们的功能。
3. 请在MATLAB中直接输入下列常数,看它们的值是多少:
a. i
b. j
c. eps
d. inf
e. nan
f. pi
g. realmax
h. realmin
4. 请使用lookfor 命令,找出具有下列功能的MATLAB 命令。(每一项只需找出一个相关度最高的MATLAB 命令。这类似于在网上搜索资料,有时需要花费较长时间搜索。注意每次只输入一个关键词。)
a. 找出矩阵的大小(即行、列维数)
b. 改变矩阵的大小(例如将4×6 的矩阵改成12×2)
c. 将矩阵左右翻转(Left-right flip)
d. 将矩阵上下翻转(Up-down flip)
e. 找出矩阵每一列的最大值
f. 对矩阵的每一列进行排序
g. 矩阵的旋转(Rotate)
h. 逆矩阵(Inverse matrix)的计算
i. 求矩阵的秩(rank)
j. 计算矩阵的行阶梯矩阵reduced row echelon form
k. 计算矩阵的特征值(Eigenvalues)与特征向量(Eigenvectors)
l. 直角坐标转成极坐标
m. 极坐标转成直角坐标
5. 写一个MATLAB 小程序findN01.m,求出最小的n 值,使得n! > realmax。请问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边形,其中一顶点位于(1,0)。例如regPolygon(8) 可以画出如下之正八边型:
14. 一条由参数方程表示的曲线为:
x = sin(t), y = 1 - cos(t) + t/10
当t 由0 变化到4*pi 时,请写一个MATLAB 的脚本plotParam.m,画出此曲线在XY 平面的轨迹。
15. 试写一函数regStar(n),其功能为画出一个圆心在(0,0)、半径为1 的圆,并在圆内画出一个内接正n星形,其中一顶点位于(1,0)。例如regStar(7) 可以画出如下之正7 星型: