matlab实验内容.docx
《matlab实验内容.docx》由会员分享,可在线阅读,更多相关《matlab实验内容.docx(14页珍藏版)》请在冰豆网上搜索。
![matlab实验内容.docx](https://file1.bdocx.com/fileroot1/2023-2/10/5d3426d5-ea14-4fd2-ab49-3d2632d24628/5d3426d5-ea14-4fd2-ab49-3d2632d246281.gif)
matlab实验内容
2017年文化素质课MATLAB实验
实验一、MATLAB基本操与运算基础
【实验目的】
(1)熟悉MATLAB基本环境,掌握MATLAB变量的使用
(2)掌握MATLAB数组的创建
(3)掌握MATLAB数组和矩阵的运算
【实验内容及步骤】
熟悉建立数组的方法:
逐个元素输入法、冒号法、特殊方法(使用函数linspace建立)
1、有关向量、矩阵或数组的一些运算
(1)设A=15;B=20;求C=A+B与c=a+b?
(2)设A=[123;456;789],B=[987;654;321];求A*B与A.*B?
(3)设a=10,b=20;求i=a/b=?
与j=a\b=?
(4)设a=[1-23;45-4;5-67]
(5)在MATLAB命令行窗口运行A=[1,2;3,4]+i*[5,6;7,8];看结果如何?
如果改成运行A=[1,2;3,4]+i[5,6;7,8],结果又如何?
(6)请写出完成下列计算的指令:
a=[123;342;523],求a^2=?
a.^2=?
(7)有一段指令如下,请思考并说明运行结果及其原因
clear
X=[12;89;36];
X(:
)%转化为列向量
(8)写出下列指令的运行结果
>>A=[123];B=[456];
>>C=3.^A
>>D=A.^B
2、设有矩阵A和B,A=[12345;678910;1112131415;1617181920;2122232425],B=[3016;17-69;023-4;970;41311]
1)求它们的乘积C
2)将矩阵C的右下角3x2子矩阵赋给D
3、完成下列操作
1)求[100,999]之间能被61整除的数及其个数(提示:
先利用冒号表达式,再利用find和length函数。
)
2)建立一个字符串向量,删除其中的大写字母(提示:
利用find函数和空矩阵。
)
4、求S=20+21+22+23+24+……+210的值(提示:
利用求和函数与累乘积函数。
)
5、熟悉mean()、median()、max()、min()、sort()、round()等的使用
利用MATLAB提供的rand函数和圆整函数随机生成4X3整数矩阵A,进行如下操作
1)A各列元素的平均值和中值
2)A的最大元素和最小元素及它们的位置
3)求A的每行元素的和以及全部元素之和
4)分别对A的每列元素按升序、每行元素按降序排列
6、熟悉一些特殊矩阵的建立方法,如单位矩阵、零矩阵、随机矩阵、对角矩阵、全1矩阵、三角矩阵、魔方矩阵等,矩阵元素的处理
(1)高效地创建如下图矩阵A;
(2)将A的第1行乘以2,第2行乘以4,…,第10行乘以20得到矩阵B;
(3)提取矩阵B中1,3,5,7,9行,3,4,5,9列的交叉位置处元素,构成新的矩阵C.
(4)熟悉矩阵分解,如Cholesky分解,LU分解、QR分解、Schur分解等
已知X=pascal(3);A=[1,2,3;4,5,6;7,8,0],分别求[R,P]=Chol(X);求[L,U]=lu(A),[Q,R]=qr(A)
实验二、MATLAB程序设计
实验目的
熟悉M文件的概念、建立及运行,掌握Matlab的流程控制语句、函数及脚本文件的编程、调试方法。
实验内容及步骤
1、分别用if语句和switch语句实现:
输入一个百分制成绩,要求输出成绩等级A、B、C、D、E。
其中90分~100分为A,80分~89分为B,70分~79为C,60分~69分为D,60分以下为E。
(注意:
对不合理的成绩应输出出错信息“输入的成绩不合理”(若成绩出现小数,则只能是“.5”)
2、设计程序,完成两位数的加、减、乘、除四则运算,即随机输入两个整数,再输入一个运算符号,做相应的运算,显示相应的结果,并要求结果显示类似于“a=x+y=34”。
3、用if语句实现,求下列分段函数的值(注意:
分别输出x=x1,x2,…,xn,其中xi为任意数值,X的值以向量的形式从键盘输入)。
4、熟悉矩阵的卷积和多项式的乘法,
(1)展开多项式(s2+2s+2)(s+4)(s+1)
(2)求多项式(x3+2x2+3x+4)(10x2+20x+30)的卷积
实验三MATLAB程序设计
实验内容及步骤
1、分别使用for循环语句和while循环语句找出最小的n值,使得n!
>10100,并求出n!
。
要求显示的结果为
n=70
n!
=1.197857e+100>1e100或70!
=1.197857e+100>1e100
2、已知
若需要计算t∈[-1,1],取间隔为0.01,试计算出相对应的y值。
用步长为0.01的for循环
3、已知f1=1,n=1
f2=0,n=2
f3=1,n=3
fn=fn-1-2fn-2+fn-3,n>3
求f1~f50中:
1)最大值和最小值及它们的位置,各数之和(最大值给变量MAX,其位置给变量x,最小值给变量MIN,其位置给变量y,各数之和给变量SUM)。
2)正数、零、负数的个数(依次赋值给变量positive,zero,negative)。
4、Fibonacci数组的元素满足Fibonacci规则:
ak+2=ak+ak+1,(k=1,2,3,…);且a1=a2=1。
请设计一段程序,求出该数组中第一个大于10000的元素
要求显示的结果为:
i=21
a(i)=10946
或者
a(21)=10946
实验四athlab文件
实验目的
1.定制自己的工作环境。
2.编写简单的M文件。
3.保存内存工作区中的变量到.mat文件。
4.学会只用Matlab帮助。
实验内容及步骤
1、编写一个函数文件chengji.m,用于求两个矩阵的乘积和点乘,然后在命令行窗口中调用该函数(提示:
使用varargout函数)
要求:
1)当两矩阵是尺寸相同的方阵时,返回它们的乘积和点乘。
2)当两矩阵不是尺寸相同的方阵时,则根据它们的尺寸,分别进行乘积或点乘
3)当两矩阵的尺寸不能满足乘积或点乘的要求时,则提示“这两个矩阵不能乘”
2、设向量V=(5,-3,2),求V的方向余弦。
建立一个函数文件f.m:
3、编写一个求一元二次方程ax2+bx+c=0的根程序。
4、计算分段函数值
5、设x,y,z的初值为x0=-0,6,y0=-1.2,z0=0.135,求函数f(x,y,z)=x2+2.5siny-z2x2y2的极值。
6、求积分
7、求解泊松方程
并与精确解比较,区域为单位圆盘,在圆盘的边界=0
实验五数据插值与曲线拟合实验
实验目的
1.掌握函数的编写规则。
2.掌握函数的调用。
3.会用Matlab程序设计实现一些工程算法问题
实验内容
1.已知原始数据
,插值点为
,试用四种不同的插值方法进行插值,并在一副图中绘出四种插值曲线。
2.考虑下面的数据,一位举重教练收集了不同性别的举重动员每个年龄的最大举重磅数,他相信这三者之间存在着函数关系,请创建一个年龄数组,以便估算当前队伍中队员(要求13~20岁每一岁都有)的最大举重,并绘制图形。
重
举
大
最
13
15
17
19
20
男
270
290
330
350
380
女
250
270
310
330
360
3.某乡镇企业2006-2012年的生产利润如下
年份
2006
2007
2008
2009
2010
2011
2012
利润(万元)
70
122
144
152
174
196
202
要求用多项式拟合法预测出该企业2013年和2014年的利润,并绘出拟合图。
4、对矩阵A的列向量、行向量分别进行离散傅立叶变换、并对变换结果进行逆变换。
实验六MATLAB绘图
实验目的
1.掌握二维图形的绘制。
2.掌握图形的标注
3.了解三维曲线和曲面图形的绘制。
实验内容
1、二维图形的绘制
1)设计程序,在一个图形窗体中画出函数y=ex和y=logx的特性曲线。
其中y=ex中x取值为(-2:
0.1:
2),y=logx中x取值为(0.1:
0.1:
5)。
要求:
要有图例、标题('二维图')、坐标轴标签('x轴数据'和'y轴数据');每条曲线的clm自己设置。
2)绘制tan图形,其中x的取值为(0:
pi/30:
pi/2)。
要求:
要有图例、标题、坐标轴标签('x轴数据'和'y轴数据');绘制出的图形应如下右图所示。
3)绘制曲线x=tcos(3t)
y=tsin2t其中-π≤t≤π,步长取π/100。
要求:
要有图例、标题、坐标轴标签。
4)编制M文件,绘制图案:
r=2sin3(θ),r=cos3(θ),r=sin2(θ),r=5cos3(3.5θ)四种图。
2、三维图形的绘制
分别用线框图和曲面图表现函数z=cos(x)sin(y)/y,其中x的取值为[-1.5pi,1.5pi],y=x,要求:
要有标题、坐标轴标签
3、特殊图形的绘制
求解热传导方程
,区域为单位方形,边界上u=0,生成动态图。
附加实验MATLAB自选项目
不作全面要求,根据自己的学习能力,完成问题分析、建模、编程。
1、Koch分形曲线
分形原理
这是一类复杂的平面曲线,可用算法描述。
从一条直线段开始,将线段中间三分之一部分用等边三角形的两条边代替,形成具有5个结点的图形(图1);在新的图形中,又将图中每一直线段中间的三分之一部分都用一等边三角形的两条边代替,再次形成新的图形(图2),这时,图形中共有17个结点。
这种迭代继续进行下去可以形成Koch分形曲线。
在迭代过程中,图形中的点将越来越多,而曲线最终显示细节的多少将取决于迭代次数和显示系统的分辩率。
模型分析
考虑由直线段(2个点)产生第一个图形(5个点)的过程。
设
和
分别为原始直线段的两个端点。
现在需要在直线段的中间依次插入三个点
产生第一次迭代的图形(图1)。
显然,
位于
点右端直线段的三分之一处,
位于
点右端直线段的三分之二处;而
点的位置可以看成是由
点绕
旋转60度(逆时针方向)而得到的,故可以处理为向量
经正交变换而得到向量
。
算法如下:
(1)
;
(2)
;
(3)
;
在(3)中,A为正交矩阵:
算法根据初始数据(
和
点的坐标),产生图1中5个结点的坐标。
结点的坐标数组形成一个5×2矩阵,矩阵的第一行为
的坐标,第二行为
的坐标,……,第五行为
的坐标。
矩阵的第一列元素分别为5个结点的X坐标,第二列元素分别为5个结点的Y坐标。
进一步考虑Koch曲线形成过程中结点数目的变化规律。
设第k次迭代产生结点数为
,第k+1次迭代产生结点数为
,则
和
之间的递推关系式为
。
要求:
根据题目分析,编程实现算法
2、双层玻璃的功效
北方城镇的有些建筑物的窗户是双层的,即窗户上装两层厚度为
的玻璃夹着一层厚度为
的空气,如左图所示,据说这样做是为了保暖,即减少室内向室外的热量流失。
我们要建立一个模型来描述热量通过窗户的热传导(即流失)过程,并将双层玻璃窗与用同样多材料做成的单层玻璃窗(如右图,玻璃厚度为
)的热量传导进行对比,对双层玻璃窗能够减少多少热量损失给出定量分析结果。
模型假设
(1)热量的传播过程只有传导,没有对流。
即假定窗户的密封性能很好,两层玻璃之间的空气是不流动的;
(2)室内温度
和室外温度
保持不变,热传导过程已处于稳定状态,即沿热传导方向,单位时间通过单位面积的热量是常数;
(3)玻璃材料均匀,热传导系数是常数。
3、椅子能在不平的地面上放稳吗?
把椅子往不平的地面上一放,通常只有三只脚着地,放不稳,然而只要稍挪动几次,就可以四脚着地,放稳了。
下面用数学语言证明。
模型假设
对椅子和地面都要作一些必要的假设:
(1)椅子四条腿一样长,椅脚与地面接触可视为一个点,四脚的连线呈正方形。
(2)地面高度是连续变化的,沿任何方向都不会出现间断(没有像台阶那样的情况),即地面可视为数学上的连续曲面。
(3)对于椅脚的间距和椅脚的长度而言,地面是相对平坦的,使椅子在任何位置至少有三只脚同时着地。
4、DNA序列分类
人类基因组计划中DNA全序列草图是由4个字符A,T,C,G按一定顺序排成的长约30亿的序列,其中没有“断句”也没有标点符号。
虽然人类对它知之甚少,但也发现了其中的一些规律性和结构。
例如,在全序列中有一些是用于编码蛋白质的序列片段,即由这4个字符组成的64种不同的3字符串,其中大多数用于编码构成蛋白质的20种氨基酸。
又例如,在不用于编码蛋白质的序列片段中,A和T的含量特别多些,于是以某些碱基特别丰富作为特征去研究DNA序列的结构也取得了一些结果。
此外,利用统计的方法还发现序列的某些片段之间具有相关性,等等。
这些发现让人们相信,DNA序列中存在着局部的和全局性的结构,充分发掘序列的结构对理解DNA全序列是十分有意义的。
目前在这项研究中最普通的思想是省略序列的某些细节,突出特征,然后将其表示成适当的数学对象。
作为研究DNA序列的结构的尝试,提出以下对序列集合进行分类的问题:
1)请从20个已知类别的人工制造的序列(其中序列标号1—10为A类,11-20为B类)中提取特征,构造分类方法,并用这些已知类别的序列,衡量你的方法是否足够好。
然后用你认为满意的方法,对另外20个未标明类别的人工序列(标号21—40)进行分类,把结果用序号(按从小到大的顺序)标明它们的类别(无法分类的不写入)
2)同样方法对182个自然DNA序列(它们都较长)进行分类,像1)一样地给出分类结果。
模型的合理假设
(1)各序列中DNA碱基三联组(即3字符串)的起始位置和基因表达不影响分类的结果。
(2)64种3字符串压缩为20组后不影响分类的结果。
(3)较长的182个自然序列与已知类别的20个样本序列具有共同的特征。