初探MATLAB
1、请在MATLAB 下直接输入下列常数,看它们的值是多少:
I  j  eps  inf  nan  pi  realmax  realmin
2、使用lookfor 命令,出具有下列功能的MATLAB 命令(每一项只需出一条
MATLAB 命令)
(1)出矩阵的大小(即行维数和列维数)
(2)改变矩阵的大小(例如将4X6的矩阵改成12X2)(3)将矩阵左右翻转(4)将矩阵上下翻转
(5)出矩阵每一直列的最大值(6)对矩阵的每一直列进行排序(7)矩阵的旋转(8)逆矩阵的计算(9)求矩阵的秩
(10)计算矩阵的reduced row echelon form (11)计算矩阵的null space
(12)计算矩阵的特征值和特征向量(13)计算矩阵的QR 分解(14)计算矩阵的LU 分解(15)计算矩阵的奇异值分解(16)对向量进行快速傅立叶变换(17)直角坐标转成极坐标(18)极坐标转成直角坐标
3、写一个MATLAB 小程序,求出最小的n 值,使得n!<realmax
4、写一个MATLAB 函数myfun.m 来计算下列方程式:
y=0.5*exp(x/3)-x*x*sin(x)
其中x 是函数的输入,y 是函数的输出。你的函数必须能处理当x 是标量或向量的两种情况。
5、写一个MATLAB 的递归函数fibo.m 来计算Fibonacci 数列,其定义如下:
fibo(n+2)=fibo(n+1)+fibo(n)
此数列的初始条件如下:fibo(1)=0,fibo(2)=1
6、MATLAB 的sqrt 命令可对任一数值进行开平方的运算。用此命令求出下列各数的平方根,并验算:(1)  (2)2i  (3)7+24i
π二维平面绘图
1、一个平面上的椭圆可以表示成下列方程式:
1)
/()/(2
2=+b y a x 我们也可以用参数将椭圆表示成:x=a*cos()  y=b*sin()
θθ请利用上述参数式,画出一个椭圆,其中a=5,b=3,而且椭圆上共有100个点。2、一条参数式的曲线可由下列方程式表示:
x=sin(-t)+t  y=1-cos(-t)
当t 由0变化到4*pi 时,画出此曲线在XY 平面的轨迹。3、利萨如图形可用下列参数式来表示:x=cos(m*)  y=sin(n*)
θθ试画出在不同m 、n 值的利萨如图形:(1)m=n=1  (2)m=3 n=2  (3)m=10 n=11
4、hebysheve 多项式的定义如下:))
(cos *cos(1
x m y -=其中x 的值介于[-1,1]。当m 的值由1变化到5,我们可得到五条曲线。请将这五条曲线画在同一张图上,记得要使用legend 命令来标明每一条曲线。5、使用contour 命令画出下列隐函数:25
2
2
=+
y
x 提示:画出z=
在高度等于25的一条等高线
y
x 2
2
+
6、当一个小圆轮在平面上滚动时,轮缘的一点在滚动时所形成的轨迹称为“摆线”。请用
MATLAB 画出一个典型的摆线,其中小轮的半径为1,而且至少要滚三圈。
7、此题和上题类似。当一个小圆轮沿着一条曲线行进时,轮缘任一点的轨迹就会产生变
化丰富的摆现。假设小圆轮的半径是2。(1)当小圆轮绕着一个大圆(半径为5)的外部滚动时,请画出其摆线。(2)重复(1),但改成在大圆的内部滚动。
三维立体绘图
1、请用surf 命令来画出下列函数的曲面图:z=x*exp(-
-)
x 2
y
2
其中x 在[-2,2]间共等切分为21点,y 在[-1,1]间共等切分为21点,所以此曲面共有441点。(1)请用默认的颜对照表(colormap )来画出此曲面。(2)请以曲面的斜率来设定曲面的颜。(3)请以
曲面的曲率来设定曲面的颜。
2、请用meshc 命令来同时画出下列函数的曲面图和等高线图:z=xy/(x+y)
其中x 和y 都介于0和1之间,且各自都分成21个栅格点,所以此曲面共有441个点。此外,等高线图应有20条。请问此曲面在XY 平面的哪一点(或区域)会有最大值?此最大值为何?3、一个空间中的椭球可以表示成下列方程式:
1
)/()/()
/(2
22
=++c z b y a x 请使用任何你可以想到的方法,画出三维空间中的一个平滑的椭球,其中a=3,b=4,c=8特殊图形
1、假设清华大学信息系在2001、200
2、2003年的人员组成如表所示:
类别大一
大二大三大四硕一硕二博士班教职员2001
102123143526474820022132332435261748年份
2003
15
23
23
44
25
34
27
38
(1)请用bar3命令来画出上述数据的立体长条图
(2)请用各种你可以想到的方法,在上述图形中加入各种解释和说明的文字。2、请使用上题的数据来进行下列两小题:
(1)画出按每年份总人数来切分的立体扇形图,并加上各种可能的说明文字。(2)重复(1),但改成按每种类别的总人数来切分。图像显示与读写
1、读入mandrill.mat 数据文件,将调板矩阵设为1-map 后,显示此负片效果的狒狒图像,
并将此图像存成一个bmp 文件。
3
2、读入位于clown.mat内的小丑图像,显示图像,并将colormap改成gray,你会发觉小
丑的图像偏暗,请调整调板矩阵,使其明亮度提高。
3、读入位于mandrill.mat的狒狒图像,想办法调整X及map,使得呈现的图像是由全黑或
全白的像素所组成,而且其个数比例大约是1:1。
提示:使用median命令出X(:)的中位数。
句柄图形与GUI设计
画出y=sin(x)的图形,其中x的范围是0到4*pi,当鼠标在图轴内单击时,你的程序应能出最近的数据点,并将此数据点的坐标显示在MATLAB命令窗口内。
GUIDE:GUI设计环境
请使用GUIDE来写出一个图形用户界面的程序,其功能为读入不同的现成图像文件(随MATLAB而来的图像文件有clown.mat,mandrill.mat cape.mat durer.mat detail.mat earth.mat gatlin.mat spine.mat ),呈现图像于窗口中,使用者并能将图像汇出成不同的文件格式,如bmp tiff jpeg png等。
提示:请使用imwrite命令
矩阵的处理与运算
tr(A)定义为方阵A的主对角线元素的和,在数学上,只要矩阵A和矩阵B的乘积是一个方阵,我们可以证明tr(AB)=tr(BA)。试写一个MATLAB程序,任意产生不同维数的10组A、B,以验证上述恒等式。
多维数组
1、假设信息系及电机系在下列各年度的人口统计如表所示
信息系各年度的人口统计
类别
大一新生学士毕业生硕士毕业生博士毕业生20019894805
年份
200210597876
2003121110898
电机系各年度的人口统计
类别
大一新生学士毕业生硕士毕业生博士毕业生200199988510
年份
20021131018712
20031201158015
试用一个三维矩阵A表示上述数据。
2、由上题矩阵A来算出下列各数值:
(1)信息系在2001、2002、2003年之间的每年平均新生、学士毕业生、硕士毕业生及博士毕业生的个数。
(2)信息系和电机系在各个年度的新生总数。
(3)3年来电机系和信息系共毕业多少位硕士生?
(4)3年来电机系和信息系共有多少毕业生?
(5)在哪一年,电机系和信息系合计有最多的硕士毕业生?
(6)在哪一年,电机系和信息系的学士毕业生差额最大?
(7)在哪几年,电机系收的新生数目比信息系多?
(8)信息系三年来每年的学士毕业生对大一新生的比例平均值为何?
异质数组
1、请建立下列4X3的异质数组A,如表所示:
张惠妹听海1998
周华健花心1992
王杰一场游戏一场梦1988
孙燕姿超快感2000
2、在上题异质数组中,每一横行代表一笔数据,我们要用不同的方法来排序:
(1)请按歌星名字内码来排序,产生新的异质数组B
(2)请按年代来排序,产生新的异质数组C
(3)请按歌的名字数来排序,产生新的异质数组D。
(若字数相同,则用内码来排序)
3、在上题的异质数组中,求出年代的最大值、最小值、平均值及中位数。
结构数组
1、假设一异质数组A的内容如表所示:
张惠妹听海1998
周华健花心1992
王杰一场游戏一场梦1988
孙燕姿超快感2000
试将此异质数组A转成结构数组song,其中:
song(1).singer=’张惠妹’
song(1).name=’听海’
song(1).year=’1998’
2、此题用到上题的结构数组song
(1)请将结构数组song按歌星名字内码来排序
(2)请将结构数组song按年代来排序
(3)请取出所有歌星的名字,存成一个字符串异质数组
(4)请取出所有的年代,存成一个向量
稀疏矩阵
假设有一个100X100的矩阵A,其元素大部分是零,只有下列几个特定元素不为0:
A(1,3)=4  A(2,5)=10  A(35,70)=4  A(54,98)=5
(1)请用sparse命令来建立此稀疏矩阵A
(2)A占掉多少字节
(3)若A是完全矩阵,且是double的数据类型,则会占去多少字节
(4)若A是完全矩阵,且是uint8的数据类型,则会占去多少字节
(5)使用spy来画出非零元素的分布状况
MATLAB的运算符
1、给定一实数矩阵A,请写一行语句,将其所有非正元素设定为0
2、给定一实数矩阵A,请写一行语句,将其所有nan元素设定为0
3、给定一实数和复数交错的矩阵A,请写一行语句,将其所有复数元素设定为nan
4、请写一行语句,产生元素值为0或1的向量,向量长度为100,且出现0或1的概率各
占一半
M文件
1、编写一函数project1.m,其输出格式如下:out=project1(x,u)
其中x和u是维数相同的向量,out则是x在u方向的投影量的平方值
2、编写一函数quadzero.m,其输出格式如下:root=quadzero(coef)
其中coef是一个3X1的向量,代表一个一元二次方程式的系数(降序排列),而root 则是此方程式的根所形成的向量。若coef(1)不是0,则roots的长度为2。若coef(1)是
0 ,则可能有一解(root的长度为1)或无解(root为空矩阵)(请注意:你的程序
必须套用a*x*x+b*x+c=0的公式来解此题,而不可以直接使用roots命令来解此题)3、由基本代数可知,一个实系数的一元三次方程式,必有一个实数解。请写一函数
trizero.m,其输出入的格式如下:root=trizero(coef)
其中coef是一个4X1的向量,代表一个一元三次方程式的系数(降序排列),而root则是一个3X1的向量,
代表此方程式的三个根。(为简化题目,我们假设coef(1)不为0,因此一定会有三个根)
请参照下列步骤来编写你的程序:
(1)使用fzero命令来出此方程式的实数根x1
(2)使用deconv命令来算出将此多项式除以(x-x1)后得到的商式
(3)使用前一个习题的函数来出此商式的根
5、写一个MATLAB递归函数combinat.m,其功能是可对输入字符串进行组合。例如
“combinat(‘abcd’,2)”所返回的字符串矩阵是:ab ac ad bc bd cd
此字符串矩阵的每一行代表从输入字符串任取两个字符时,所有可能的组合。为求简单起见,我们可假设输入字符串并没有重复的字符。
程序流程控制
给定一向量A,按其元素值不同,我们要印出不同信息。举例来说,当A=[-1,1,0,2+I]
时,你的程序代码应印出:A (1)=-1是负数A (2)=1是正数A (3)=0是零A (4)=2+I 是复数
免费下载歌
请用下列A 来测试你的程序:A=randn(20,1)+(rand(20,1)>0.7)*I
线性代数
1、请按下列步骤进行此作业:
(1)使用randn 产生一个10X10的矩阵A
(2)计算B=(A+A’)/2。请注意,B 一定是一个对称矩阵(3)计算矩阵B 的特征向量e 1 e 2 … e 10
(4)验证在I 不等于j 的情况下,e i 和e j 的内积必定为0
2、我们可用数学证明:一个方阵的行列式值会等于其特征值的乘积。请随意产生10个
100X100的方阵来验证上述定理。
3、我们可用数学证明:一个方阵的主对角线的元素和,会等于其特征值的和。请随意产
生10个100X100的方阵来验证上述定理。
4、试用MATLAB 的“左除”运算,出最接近下列五点的最小二乘三次多项式:
(1,5)(2,3)(3,4)(4,7)(5,2) 请画出此多项式及这五点数据。5、在xy 平面上有三条曲线:2x-y=2  x-2y=-2x+y=1
试用MATLAB 的“左除”出一点P ,使得P 到三条直线的距离平方和为最小。6、试用MATLAB 的“左除”运算,出下列联立方程式的最小二乘解:
3x+2y=1x+3y=44x+2y=3x-y=6此时,最小二乘误差是多少?
多项式的处理与分析1、试用roots 命令算出的根。
0122
3
=+++x x x
2、若向量v 等于[
,x,1]T ,则上题的方程式可以写成下列矩阵方程式:A*v=x*v
x
2
换句话说,此时x 就变成了A 的特征值,而v 则是A 的特征向量。
(1)A 是多少
(2)A 的特征值为何?和第一题的答案是否相同?3、试用residue 命令来计算下列表达式的部分分式展开:
)
1(2
532
3
2
)
1(++++s s s s 同时再利用residue 命令,验算所得答案是否正确
4、若y=rand(0,1),请用一个9次的多项式,通过(I,y(i)),I=1~10,画出此多项式及十点
数据点。一般数学函数的处理与分析
1、在XY 平面上给定三点A 、B 、C ,出另外一点X ,使得X 到A 、B 、C 三点的距
离和为最小。请写一个函数mindist.m 解决上述问题,此函数的格式如下:x=mindist(a,b,c),其中a 、b 、c 为三点的坐标,x 则是输出点的坐标,你必须使用