第3章 MATLAB程序设计
- 格式:pdf
- 大小:199.86 KB
- 文档页数:6
matlab第三章课后部分答案习题三3-2 从键盘输入一个三位整数,将它反向输出。
如输入639,输出为936程序如下:m=input('请输入一个三位整数:');m1=fix(m/100);%求m的百位整数m2=rem(fix(m/10),10);%求m的十位数字m3=rem(m,10);%求m的个位数字m=m3*100+m2*10+m1%反向输出m3-3 输入一个百分制成绩,要求输出成绩等级A,B,C,D,E。
其中90~100分为A,80~89分为B,70~79分为C,60~69分为D,60分以下为E。
要求:(1)分别用if语句和switch语句实现。
(2)输入百分制成绩后要判断该成绩的合理性,对不合理的成绩应输出出错信息。
程序如下:(1)if语句c=input('请输入成绩:');if c>=90&c<=100disp('A 成绩合理');elseif c>=80&c<=89disp('B 成绩合理');elseif c>=70&c<=79disp('C 成绩合理'); elseif c>=60&c<=69disp('D 成绩合理'); elseif c<60disp('E 成绩合理');elsedisp('成绩错误');end(2)switch语句c=input('请输入成绩:'); switch fix(c)case num2cell(90:100)disp('A 成绩合理'); case num2cell(80:89)disp('B 成绩合理'); case num2cell(70:79)disp('C 成绩合理'); case num2cell(60:69)disp('D 成绩合理'); case num2cell(0:59)disp('E 成绩合理');x=fix(rand(1,20)*89)+10;x1=fix(sum(x)/20);disp(['平均数是:',num2str(x1)])m=(rem(x,2)==0&x<x1);n=find(m);disp(['小于平均数的数是:',num2str(x(n))]); 3-6 输入20个数,求其中最大数和最小数。
第3章MATLAB矩阵分析与处理MATLAB是一种强大的数学计算软件,用于实现矩阵分析与处理。
在MATLAB中,矩阵是最常用的数据结构之一,通过对矩阵的分析和处理,可以实现很多有用的功能和应用。
本章将介绍MATLAB中矩阵分析与处理的基本概念和方法。
1.矩阵的基本操作在MATLAB中,我们可以使用一些基本的操作来创建、访问和修改矩阵。
例如,可以使用“[]”操作符来创建矩阵,使用“(”操作符来访问和修改矩阵中的元素。
另外,使用“+”、“-”、“*”、“/”等运算符可以对矩阵进行加减乘除等运算。
2.矩阵的运算MATLAB提供了一系列的矩阵运算函数,可以对矩阵进行常见的运算和操作,例如矩阵的转置、求逆、行列式、特征值和特征向量等。
这些函数可以帮助我们进行矩阵的分析和求解。
3.矩阵的分解与合并在MATLAB中,我们可以对矩阵进行分解或合并操作。
例如,可以将一个矩阵分解为其QR分解、LU分解或奇异值分解等。
另外,可以使用“[]”操作符来将多个矩阵合并为一个矩阵,或者使用“;”操作符来将多个矩阵连接为一个矩阵。
4.矩阵的索引与切片MATLAB提供了灵活的索引和切片功能,可以方便地访问和修改矩阵中的元素。
可以使用单个索引来访问单个元素,也可以使用多个索引来访问/修改一行或一列的元素。
此外,还可以通过切片操作来访问矩阵的一部分。
5.矩阵的应用矩阵分析与处理在MATLAB中有着广泛的应用。
例如,可以使用矩阵进行图像处理,通过对图像矩阵的操作,可以实现图像的缩放、旋转、滤波等。
另外,矩阵还可以用于线性回归、分类、聚类和模式识别等领域。
总之,MATLAB提供了丰富的功能和工具,可以方便地进行矩阵分析与处理。
无论是简单的矩阵运算,还是复杂的矩阵分解与合并,MATLAB 都提供了相应的函数和操作符。
通过熟练使用MATLAB,我们可以高效地进行矩阵分析与处理,从而实现各种有用的功能和应用。
第三章微积分问题的计算机求解一、实验内容:题目1.试求出如下极限。
①limx→∞(3x +9x )1/ x,②lim x→∞[(x+2)x+2(x+3)x+3 ]/(x+5)2x+5【分析】:该题为单变量函数的极限。
极限问题可以用limit()函数直接求出。
要注意该函数的调用格式为:L=limit(fun,x,x0)(求极限),L=limit(fun,x,x0,’left’或’right’)(求极限)。
还需注意一开始要对函数的字符进行申明。
【解答】:(1)输入如下语句:>> syms x;f=(3^x+9^x)^(1/x);L=limit(f,x,inf)语句运行后显示如下:L =9(2)输入如下语句:>>syms x;f=(x+2)^(x+2)*(x+3)^(x+3)/(x+5)^(2*x+5);>> L=limit(f,x,inf)语句运行后显示如下:L =exp(-5)题目2.试求下面的双重极限。
①lim x→−1y→2 (x2y+xy3)/(x+y) 3,②limx→0 y→0 xy /√(xy+1)−1,③limx→0y→0 [1−cos(x2+y2)]/(x2+y2)e x2+y2。
【分析】:该题为多变量函数的极限问题。
他可以用嵌套使用limit()函数来解决。
在MATLAB上可以用L=limit(limit(f,x,x0),y,y0)或者L=limit(f,y,y0),x,x0)来解决。
其思想是所有的先关于X求导,再所有的关于y求导。
【解答】:(1)输入如下语句:>> syms x y>> f=(x^2*y+x*y^3)/(x+y)^3;>> L=limit(limit(f,x,-1),y,2)语句运行后显示如下:L =-6(2)输入如下语句:>> syms x yf=(x*y)/(sqrt(x*y+1)-1);L=limit(limit(f,x,0),y,0)按ENTER键,语句运行后显示如下:L =2(3)输入如下语句:>> syms x yf=(1-cos(x^2+y^2))/(sqrt(x^2+y^2)*exp(x^2+y^2));L=limit(limit(f,x,0),y,0)按ENTER键,语句运行后显示如下:L =题目3.求出下面函数的导数。
第三章MATLAB有限元分析与应用有限元分析(Finite Element Analysis, FEA)是一种工程计算方法,用于解决结构力学和流体力学等问题。
它将一个复杂的结构分割成多个简单的离散单元,通过建立数学模型和求解方程组,得到结构的力学、热力学和流体力学等性能参数。
MATLAB是一种功能强大的数学计算软件,具有直观的用户界面和丰富的工具箱,可以方便地进行有限元分析。
本章将介绍在MATLAB中进行有限元分析的基本步骤和方法,以及一些常见的应用例子。
首先,进行有限元分析需要将结构进行离散化。
常用的离散化方法有节点法和单元法。
节点法是将结构的几何形状划分为小的节点,并在节点上进行计算。
单元法是将结构划分为多个小的单元,并在每个单元内进行计算。
在MATLAB中,可以通过创建节点和单元的矩阵来描述结构和单元的关系。
例如,创建一个2D结构形式的节点矩阵:nodes = [0 0; 1 0; 0 1; 1 1];然后,通过创建描述节点连接关系的矩阵,来定义结构的单元:elements = [1 2 3; 2 4 3];这里的每一行代表一个单元,数字表示节点的编号。
接下来,需要定义材料的力学参数和边界条件。
材料的力学参数包括弹性模量、泊松比等。
边界条件包括支座约束和加载条件。
在MATLAB中,可以通过定义力学参数和边界条件的向量来描述。
例如,定义弹性模量和泊松比的向量:E=[200e9200e9];%弹性模量nu = [0.3 0.3]; % 泊松比定义支座约束的向量(1表示固定,0表示自由):constraints = [1 1; 0 0; 0 1; 0 1];定义加载条件的向量(包括点力和面力):最后,通过求解方程组得到结构的应力和位移等结果。
在MATLAB中,可以利用有限元分析工具箱中的函数进行计算。
例如,可以使用“assem”函数将节点和单元的信息组装成方程组,并使用“solveq”函数求解方程组。
第3章用MATLAB进行控制系统时域分析MATLAB是一种功能强大的计算机软件,被广泛用于进行控制系统分析和设计。
在控制系统领域,时域分析是一种常用的方法,它可以用来评估和改进系统的性能及稳定性。
在MATLAB中,有几个重要的函数可以用于进行控制系统时域分析,包括step、impulse、lsim和initial等。
这些函数可以帮助我们了解系统的响应和行为。
首先,我们可以使用step函数来绘制系统的阶跃响应。
阶跃响应表示系统对输入信号的反应。
通过分析阶跃响应曲线的特性,我们可以评估系统的稳定性和性能。
例如,我们可以从阶跃响应曲线中获取系统的超调量、上升时间和峰值时间等信息。
step函数的使用方法如下:```step(sys)```其中,sys是一个控制系统的传递函数或状态空间模型。
调用step 函数后,MATLAB会自动绘制系统的阶跃响应曲线,并且返回一个包含系统响应数据的结构体。
另一个常用的时域分析函数是impulse,它可以用来绘制系统对冲击输入的响应。
冲击响应是系统对于单位冲击信号的输出。
通过分析冲击响应曲线,我们可以了解系统的固有特性,例如共振频率和阻尼比。
impulse函数的使用方法与step函数类似:```impulse(sys)```同样,调用impulse函数后,MATLAB会绘制系统的冲击响应曲线,并且返回一个包含系统响应数据的结构体。
除了阶跃响应和冲击响应外,我们还可以使用lsim函数来绘制系统对任意输入信号的响应。
lsim函数可以接受用户自定义的输入信号,并给出系统的输出响应。
通过分析系统的输出信号,我们可以更加全面地了解系统的性能和行为。
lsim函数的使用方法如下:```lsim(sys,u,t)```其中,sys是一个控制系统的传递函数或状态空间模型,u是输入信号,t是时间向量。
调用lsim函数后,MATLAB会根据输入信号和时间向量绘制系统的输出响应曲线,并返回一个包含系统响应数据的结构体。
《Matlab语言基础》教学大纲一、课程基本信息课程名称:Matlab语言基础课程编码:58082014课程类别:专业选修课适用专业:通信工程开课学期:2-1课程学时:32学时课程学分:2学分先修课程:C语言、高等数学、线性代数并修课程:课程简介:MATLAB是矩阵实验室(Matrix Laboratory)的简称,是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析及数值计算的高级技术计算语言和交互式环境,应用于工程计算、控制设计、信号处理与通信、图像处理、信号检测、金融建模设计与分析等各个领域。
Matlab语言在高校与研究单位起着重大的作用,是通用的科学计算、数值仿真和可视化及动态仿真的重要工具。
二、课程教育目标了解Matlab 的特点;理解Matlab 的数值计算、程序设计、绘图功能及在通信工程的科学计算和建模中的应用;掌握Matlab语言的基本编程思想和方法。
三、课程教学内容、要求及学时安排第一章 MATLAB概述【教学内容】1.Matlab 的特点、绪论;2.Matlab 快速入门;【教学要求】1.熟悉MATLAB命令窗口及文件管理,MATLAB帮助系统。
2.掌握命令行的输入及编辑,用户目录及搜索路径的设置。
3.了解MATLAB的主要功能。
【教学方法】采用多媒体教学方式,结合Matlab仿真软件进行课堂演示。
【学时】2第二章 MATLAB数据和数值计算【教学内容】1. MATLAB数据类型;2. 基本运算符;3.矩阵运算;4.数组运算;【教学要求】1.熟悉MATLAB变量的命名,赋值语句,数据的输出格式。
熟悉傅立叶分析,常微分方程的数值求解,非线性方程度数值求解。
2.掌握矩阵的建立、拆分及冒号表达式,MATLAB运算,结构数据和单元数据,字符串;掌握矩阵分析,数据处理。
3.了解MATLAB数据的特点。
【教学方法】采用多媒体教学方式,结合Matlab仿真软件进行课堂演示。
MATLAB程序设计知到章节测试答案智慧树2023年最新广西科技大学第一章测试1.当在命令行窗口执行命令时,如果不想立即在命令行窗口中输出结果,可以在命令后加上()。
参考答案:分号(;)2.MATLAB命令行窗口中提示用户输入命令的符号是()。
参考答案:>> ;3.fix(264/100)+mod(264,10)*10的值是()。
参考答案:424.下列可作为MATLAB合法变量名的是()。
参考答案:xyz_2a。
5.在命令行窗口输入下列命令后,x的值是()。
>> clear>> x=i*j参考答案:-1;6.建立矩阵时,不同行的元素之间用()分隔。
参考答案:分号;7.输入字符串时,要用()将字符序列括起来。
参考答案:' ';8.最初的MATLAB核心程序是采用()语言编写的。
参考答案:FORTRAN;9.下列选项中能反应MATLAB特点的是()。
参考答案:编程效率高。
10.如果要重新执行以前输入的命令,可以使用()。
参考答案:上移光标键(↑)。
11.plot(x,y)是一条()命令。
参考答案:绘图;12.以下两个命令行的区别是()。
>> x=5,y=x+10>> x=5,y=x+10;参考答案:第一个命令行同时显示x和y的值,第二个命令行只显示x的值;13.下列选项中,不是MATLAB帮助命令的是()。
参考答案:search;14.下列数值数据表示中错误的是()。
参考答案:2e;15.下列语句中错误的是()。
参考答案:x=y=3;16.已知s='显示"hello"',则s的元素个数是()。
参考答案:9;17.建立矩阵时,同一行的元素之间用()分隔。
参考答案:空格;;逗号;18.在当前文件夹和搜索路径中都有fpp.m文件,那么在命令行窗口输入fpp时,下列说法错误的是()。
参考答案:先执行当前文件夹的fpp.m文件,再执行搜索路径中的fpp.m文件;;先执行搜索路径中的fpp.m文件,再执行当前文件夹的fpp.m文件;;执行搜索路径中的fpp.m文件;19.内存变量文件是二进制格式文件,扩展名为.mat。
第三章四連桿之MATLAB程式第三章中之四連桿分析可以參考相關資料。
本節則針對四連桿之動作程式加以說明。
目前所設計之程式有f4bar.m、drawlinks.m、fb_angle_limits.m、drawlimits.m 等四個程式,茲分別說明如下:圖一、四連桿之關係位置及各桿名稱一、f4bar函數:f4bar函數之呼叫格式如下:function [values,form] = f4bar(r,theta1,theta2,td2,tdd2,sigma,driver)輸入變數:.r(1:4) = 各桿之長度,r(1)為固定桿,其餘分別為曲桿、結合桿及被動桿。
.theta1 = 第一桿之水平角,或為四連桿之架構角,以角度表示。
.theta2 = 驅動桿之水平夾角,以角度表示。
一般為曲桿角,但若為結合桿驅動,則為結合桿之水平夾角。
.td2 = 驅動桿(第二桿或第三桿)之角速度(rad/sec)。
.tdd2 = 驅動桿(第二桿或第三桿)之角加速度(rad/sec^2)。
.sigma = +1 or -1. 組合模式,負值表示閉合型,正值為分支型,但有時需視實際情況而定。
.driver = 0 (驅動桿為第二桿); 1 (驅動桿為第三桿)輸出變數:.form = 組合狀態,0 :表示無法組合;1:可以正確組合.values = 輸出矩陣,其大小為 4 X 7,各行之資料分配如下:其中第一行之連桿位置向量,屬於單桿的位置向量。
第二行為各桿之水平夾角,第三及第四行為各桿之角度速度及角加速度。
第五至七行則為P點與Q點之速度與加速度量,第五行為向量,第六行為絕對量,第七行為夾角。
值得一提的是第一行、三行、四行及五行之向量表示法屬於複數之型式。
故若要得到其絕對值僅需在MATLAB指令檔中,以abs()這一個函數指令即可求得,而以函數angle()則可求得其夾角,雖然第二行與第七行之輸出亦有相對應之夾角。
例一:為第二桿為驅動桿[val,form]=f4bar([3 2 4 2],0,60,10,0,-1,0)val = Columns 1 through 33 0 01 + 1.7321i 60 103.8682 - 1.0182i -14.7465.40781.8682 + 0.71389i 20.913 16.549 Columns 4 through 60 1 + 1.7321i 20 1.8682 + 0.71389i 2-127.58 173.21 - 100i 200-236.27 364.19 - 953.09i 1020.3 Column 76020.913-30-69.087form = 1 (表示可以組合)本例中,有框線者表示其為輸入值。
第3章MATLAB程序设计——matlab语言称为第四代编程语言,程序简洁、可读性很强而且调试十分容易。
是matlab重要组成部分。
MATLAB的工作方式
●交互式的命令执行方式
●M文件的程序执行方式
第3章MATLAB程序设计
●4.1M文件
●4.2程序控制结构
●4.3函数文件
●4.4程序调试
4.1M文件
●一、M文件
●用MATLAB语言编写的程序,扩展名为.m
●二、M文件的分类
●命令文件(Script File)
●函数文件(Function File)
●三、两类文件的区别
●命令文件没有输入输出参数,而函数文件可以有
●函数文件对MATLAB工作空间中的变量进行操作,文件中所以命令的执行结果也完全返
回到工作空间中;而函数文件中定义的变量为局部变量,当函数文件执行完毕时,这些变量被清除
●命令文件可直接运行;函数文件不能,只能调用
●四、M文件的建立与打开
●P57-58
4.2程序控制结构
●顺序结构
●选择结构
●循环结构
一、顺序结构
●1.程序暂停命令pause
●调用格式:
(1)pause
(2)pause(延迟秒数)
●2.用户输入提示命令input
●调用格式:
(1)A=input(提示信息)
(2)A=input(提示信息,选项)
●3.屏幕输出语句disp
●调用格式:
disp(输出项)
●4.请求键盘输入命令keyboard
●调用格式:
keyboard
二、选择结构
●当人们判断某一条件是否满足,根据判断的结果来选择不同的解决问题的方法时,就需要使
用选择结构。
●和C语言类似,MATLAB的条件判断可以使用if语句或者switch语句或try语句。
1、if语句
●if语句的基本语法结构有三种,分别如下:
单分支if语句
双分支if语句
多分支if语句
(1)单分支if语句
●语句格式:
if条件
MATLAB语句
end
这种形式的选择结构表示,当条件成立时,执行MATLAB语句,这里的MATLAB语句可以是一个MATLAB表达式,也可以是多个MATLAB表达式。
在MATLAB语句的结尾处,必须有关键字end。
(2)双分支if语句
●语法格式:
if条件
MATLAB语句1
else
MATLAB语句2
end
这种选择结构表示,当条件成立时,执行MATLAB语句1,否则执行MATLAB语句2,在语句2的结尾必须具有关键字end。
(3)多分支语句
●语句格式:
if条件1
MATLAB语句1
elseif条件2
MATLAB语句2
…
elseif条件m
MATLAB语句m
else
MATLAB语句n
end
●这种选择结构可以判断多条关系运算表达式的计算结果,然后按照执行的逻辑关系执行相应的
语句。
●例4.3if语句的使用——if_examp.m。
2、switch语句
●在处理实际问题的时候,往往要处理多个分支,这时如果使用if-else语句处理多分支结构往
往使程序变得十分冗长,从而降低了程序的可读性。
switch语句就可以用于处理这种多分支的选择,它的基本语法结构如下:
例4.5switch结构使用示例——switch_examp.m
例4.5中需要用户在执行程序的过程中输入一个字符串,switch语句根据用户的输入判断执行相应的case分支。
若没有符合条件的case分支,则switch执行otherwise后面的语句。
若switch结构中没有定义otherwise及其相应的代码,则程序不会进行任何操作,而是直接退出switch结构。
例 4.6switch结构使用示例——switch_examp2.m。
3.try语句
●语句格式为:
try
语句组1
catch
语句组2
end
说明:try语句先试探性执行语句组1,如果语句组1在执行过程中出现错误,则将错误信息赋给保留的lasterr变量,并转去执行语句组2。
●例4.7try语句的使用——try_examp.m
三、循环结构
●for循环
●while循环
1.for循环结构
●MATLAB中for循环的基本结构如下:
for index=start:increment:end
MATLAB语句
end
●其中,index的取值取决于start和end的值,一般地,这里通常使用等差的数列向量。
在例4.8中的for语句中,使用了确定次数的for循环结构,循环次数使用行向量进行控制,而且索引值i按照默认的数值1进行递增。
在for循环语句中,不仅可以使用行向量进行循环迭代的处理,也可以使用矩阵作为循环次数的控制变量,这时循环的索引值将直接使用矩阵的每一列,循环的次数为矩阵的列数,参见例4.9。
●例4.9for循环示例
2.while循环
●while语句可以用来实现“当”型的循环结构,它的一般形式如下:
while条件
MATLAB语句
end
●
说明:
(1)当条件成立时,循环将执行由语句构成的循环体。
其特点是先判断循环条件,如
果循环条件成立,即表达式运算结果为“真”,再执行循环体。
(2)循环体执行的语句可以是一句也可以是多句。
(3)在MATLAB语句之后必须使用关键字end作为整个循环结构的结束。
(4)另外,在循环过程中一定要能够改变循环条件或者布尔类型变量的值,或者使用其他
方法来跳出循环,否则会陷入死循环。
●例4.10使用while语句求解。
3.break语句和continue语句
●当break语句使用在循环体中的时候,其作用是能够在执行循环体的时候强迫终止循环,
即控制程序的流程,使其提前退出循环,它的使用方法是:
break
●continue语句出现在循环体中的时候,其作用是能够中断本次的循环体运行,将程序的
流程跳转到判断循环条件的语句处,继续下一次的循环,它的使用方法是:
continue
●一般与if语句配合使用
●例4.11break语句示例——break_examp.m。
●例4.12continue语句示例——continue_examp.m
四、向量化计算
●MATLAB最初的目的是提供便利的矩阵数据操作能力。
所以在大多数的应用程序中,不要使
用循环结构操作矩阵的元素,应直接使用矩阵元素的索引或者矩阵运算的函数,这样做不仅能够提高代码的执行效率,而且还能够提高程序的可读性,这就是所谓的向量化的运算,也就是说,尽量将使用while循环或者for循环的语句结构转换成等价的向量或者矩阵运算,以提高程序的运算速度
●例4.12向量化运算——array_vs_loops.m
例4.12比较了循环结构和数组运算的执行效率
4.3函数文件
●一、函数文件的基本结构
●二、函数调用
●三、函数参数的可调性
●四、全局变量和局部变量
一、函数文件的基本结构
●函数文件由function语句引导,其基本结构为:
function输出形参表=函数名(输入形参表)
注释说明部分
函数体语句
二、函数调用
●一般格式
[输出实参表]=函数名(输入实参表)
例如:average(x)
●例4.14函数的递归调用,求n!
见factor.m
●求s=1!+2!+3!+4!+5!
见main2.m
三、函数参数的可调性
●MATLAB的两个预定义变量
●nargin
●nargout
●分别记录调用函数时的输入实参和输出实参的个数
●例4.15nargin用法示例——nargin_examp.m
●命令文件——mydemo.m
四、全局变量和局部变量
●全局变量用global命令定义,格式为:
global变量名
例4.16全局变量应用示例。
先建立函数文件wadd.m,该函数将输入的参数加权相加。
function f=wadd(x,y)
global ALPHA BETA
f=ALPHA*x+BETA*y;
在命令窗口中输入:
global ALPHA BETA
ALPHA=1;
BETA=2;
s=wadd(1,2)。