MATLAB实战 | 求矩阵指数、预定义变量i和j的含义以及梯形积分法

本文涉及的产品
云服务器 ECS,每月免费额度280元 3个月
云服务器ECS,u1 2核4GB 1个月
简介: MATLAB实战 | 求矩阵指数、预定义变量i和j的含义以及梯形积分法

image.png

01、求矩阵指数应用实战

【例1】根据矩阵指数的幂级数展开式求矩阵指数。

image.png


设X是给定的矩阵,E是矩阵指数函数值,F是展开式的项,n是项数,循环一直进行到F很小,以至于F值加在E上对E的值影响不大时为止。为了判断F是否很小,可利用矩阵范数的概念。矩阵A的范数的一种定义是

image.png

。在MATLAB中用norm(A,1)函数来计算。所以当norm(F,1)=0时,认为F很小,应退出循环的执行。程序如下:

X = input('Enter X:')
E= zeros(size(X));
E = eye( size(X));
n=1;
while norm(E,1)> 0
E=E+F;
end
E
E=E*X/n;
n=n+1;
expm(X)  //调用 MATLAB 矩阵指数函数求矩阵指数

程序运行结果如下:


image.png


运行结果表明,程序运行结果与MATLAB矩阵指数函数expm(X)的结果一致。本程序涉及矩阵运算,初学者可能不太习惯。如果能分析一下程序的执行过程,对领会编程思想是有益的。另外,我们知道矩阵乘法的交换律不成立,但这里要请大家分析一下程序中的语句F=F X/n可否写成F= X F /n,为什么?

#02、预定义变量i和j的含义---变量与赋值

##1. 变量命名

在MATLAB中,变量名是以字母开头,后跟字母、数字或下画线的字符序列,最多63个字符。例如,x、x_1、x2均为合法的变量名。在MATLAB中,变量名区分字母的大小写,这样,score、Score和SCORE表示3个不同的变量。另外,不能使用MATLAB的关键字作为变量名,例如if、end、for。

注意/

定义变量时应避免创建与预定义变量、函数同名的变量,例如i、j、power、int16、format、path等。一般情况下,变量名称优先于函数名称。如果创建的变量使用了某个函数的名称,可能导致计算过程、计算结果出现意外情况。可以使用exist或which函数检查拟用名称是否已被使用。如果不存在与拟用名称同名的变量、函数或M文件,exist函数将返回0,否则返回一个非零值。例如:

js >> exist power ans = 5 >> exist Power ans = 0
which函数用来定位函数和文件,如果函数或文件存在,则显示其完整的路径。例如:
js >> which power built-in (C:Program Files MATLAB\R2022a toolbox matlab ops) //char power > which powerl 未找到power1'
##2. 赋值语句

MATLAB赋值语句有两种格式:

变量=表达式

表达式

其中,表达式是用运算符将有关运算量连接起来的式子。执行第一种语句,MATLAB将右边表达式的值赋给左边的变量; 执行第二种语句,将表达式的值赋给MATLAB的预定义变量ans。看下列命令的执行结果。

image.png


一般情况下,运算结果在命令行窗口中显示出来。如果在命令的最后加分号,那么,MATLAB仅仅执行赋值操作,不显示运算的结果。如果运算的结果是一个很大的矩阵或不需要运算结果,则可以在命令的最后加上分号。

【例2】 当x=π/2,y=1+3i时,求表达式

image.png


的值。

在MATLAB命令行窗口分别输入命令:
js >> x= pi/2; >> y=1+3i; >> z= exp(2) * cos(x+ y)/(x+ sqrt(log(abs(y-1)))) //计算表达式的值 z = -23.9018 -15.2713i
##3. 预定义变量

在MATLAB中,提供了一些系统定义的特殊变量,这些变量称为预定义变量。表1列出了一些常用的预定义变量。预定义变量有特定的含义,在使用时一般尽量避免对这些变量重新赋值,但对它们赋值也不会出错,只是会覆盖原来的值,用clear命令清除后即可恢复原来的值。

■ 表1 常用的预定义变量

image.png


MATLAB提供了isfinite函数用于判定数据对象是否为有限值,isinf函数用于判定数据对象是否为无限值,isnan函数用于确定数据对象中是否含有NaN值。

注意/

MATLAB预定义变量有特定的含义,在使用时应尽量避免对这些变量重新赋值。以i或j为例,在MATLAB中,i和j代表虚数单位,如果给i或j重新赋值,就会覆盖掉原来虚数单位的定义,这时可能会导致一些很隐蔽的错误。例如,由于习惯的原因,程序中通常使用i或j作为循环变量,这时如果有复数运算就会导致错误,因此,不要用i或j作为循环变量名,除非确认在程序运行期间不会和复数打交道,或者使用像7+5i这样的复数记法,而不用7+5*i,前者是一个复数常量,后者是一个表达式,即将i看成一个运算量,参与表达式的运算。也可以在使用i作为循环变量时,换用j表示复数。

#03、 梯形积分法

在MATLAB中,提供了函数trapz对由表格形式定义的离散数据用梯形法求定积分,函数调用格式如下:

(1) T=trapz(Y)。这种格式用于求均匀间距的积分。通常,输入参数Y是向量,采用单位间距(即间距为1),计算Y的近似积分。若Y是矩阵,则输出参数T是一个行向量,T的每个元素分别存储Y的每一列的积分结果。例如:

image.png


若间距不为1,例如求

image.png


,则可以采用以下命令:

image.png

(2) T=trapz(X,Y)。这种格式用于求非均匀间距的积分。通常,输入参数X、Y是两个等长的向量,X、Y满足函数关系Y = f(X), 按X指定的数据点间距,对Y求积分。若X是有m个元素的向量,Y是m×n矩阵,则输出参数T是一个有n个元素的向量,T的每个元素分别存储Y的每一列的积分结果。

【例3】从地面发射一枚火箭,表2记录了在0~80s火箭的加速度。试求火箭在第80s时的速度。

■ 表2 火箭发射加速度

image.png


设速度为v(t),则

image.png


,这样就把问题转化为求积分的问题。命令如下:
image.png
目录
相关文章
|
5月前
|
存储 Serverless
MATLAB实战 | 梯形积分法
在科学实验和工程应用中,函数关系往往是不知道的,只有实验测定的一组样本点和样本值,这时就无法使用integral函数计算其定积分。
229 1
|
6月前
MATLAB实战 | 求水仙花数
循环结构的基本思想是重复,即利用计算机运算速度快以及能进行逻辑控制的特点,重复执行某些语句,以满足大量的计算要求。虽然每次循环执行的语句相同,但语句中一些变量的值是变化的,而且当循环到一定次数或满足条件后能结束循环。循环是计算机解题的一个重要特征,也是程序设计的一种重要技巧。MATLAB提供了两种实现循环结构的语句: for语句和while语句。
262 0
|
3月前
MATLAB实战 | 科赫曲线的绘制
MATLAB实战 | 科赫曲线的绘制
273 0
MATLAB实战 | 科赫曲线的绘制
|
3月前
|
算法
MATLAB求解矩阵特征值的六种方法
关于这个特征值的求解一共六种方法 幂法 反幂法 QR方法 对称QR方法 jacobi方法 二分法
188 0
|
3月前
|
算法
基于小波变换的分形信号r指数求解算法matlab仿真
基于小波变换的分形信号r指数求解算法matlab仿真
|
3月前
|
JavaScript 编译器 API
MATLAB实战 | S函数的设计与应用
S函数用于开发新的Simulink通用功能模块,是一种对模块库进行扩展的工具。S函数可以采用MATLAB语言、C、C++、FORTRAN、Ada等语言编写。在S函数中使用文本方式输入公式、方程,非常适合复杂动态系统的数学描述,并且在仿真过程中可以对仿真进行更精确的控制。
58 0
MATLAB实战 | S函数的设计与应用
|
3月前
MATLAB实战 | APP设计
生成一个用于观察视点仰角和坐标轴着色方式对三维图形显示效果影响的App,界面如图1所示。界面右上部的列表框用于选择绘图数据、切换按钮组用于选择绘图方法,中间的旋钮用于设置视点方位角和仰角,右下部的分档旋钮用于设置坐标轴着色方式、跷板开关用于显示网格线。
52 7
MATLAB实战 | APP设计
|
3月前
|
算法 计算机视觉 异构计算
基于FPGA的图像指数对比度增强算法实现,包括tb测试文件和MATLAB辅助验证
基于FPGA的图像指数对比度增强算法实现,包括tb测试文件和MATLAB辅助验证
|
4月前
|
存储 人工智能 NoSQL
专题二 MATLAB矩阵处理-2
专题二 MATLAB矩阵处理
53 0
|
4月前
|
机器学习/深度学习
专题二 MATLAB矩阵处理-1
专题二 MATLAB矩阵处理
57 0

热门文章

最新文章

相关产品

  • 云服务器 ECS