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

简介: 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
目录
相关文章
|
7月前
|
索引
matlab--------矩阵重构,重新排列的相关函数说明
matlab--------矩阵重构,重新排列的相关函数说明
196 0
matlab--------矩阵重构,重新排列的相关函数说明
|
7月前
|
索引
matlab日常学习-------矩阵
matlab日常学习-------矩阵
78 0
|
2月前
|
存储 数据处理 索引
MATLAB中的基本数据类型与变量操作
【10月更文挑战第1天】 MATLAB 是一种广泛应用于数学计算和科学研究的编程语言,其核心是矩阵运算。本文详细介绍了 MATLAB 中的基本数据类型,包括数值类型(如 `double` 和 `int`)、字符数组、逻辑类型、结构体、单元数组和函数句柄,并通过代码示例展示了变量操作方法。
195 0
|
1月前
|
运维 算法
基于Lipschitz李式指数的随机信号特征识别和故障检测matlab仿真
本程序基于Lipschitz李式指数进行随机信号特征识别和故障检测。使用MATLAB2013B版本运行,核心功能包括计算Lipschitz指数、绘制指数曲线、检测故障信号并标记异常区域。Lipschitz指数能够反映信号的局部动态行为,适用于机械振动分析等领域的故障诊断。
|
2月前
|
Serverless
MATLAB中的矩阵与向量运算
【10月更文挑战第2天】本文全面介绍了MATLAB中的矩阵与向量运算,包括基本操作、加减乘除、转置、逆矩阵、行列式及各种矩阵分解方法。通过丰富的代码示例,展示了如何利用矩阵运算解决线性方程组、最小二乘法拟合、动态系统模拟和电路分析等问题。掌握这些运算不仅提升编程效率,还能在工程计算和科学研究中发挥重要作用。
107 1
|
3月前
|
算法 数据挖掘 vr&ar
基于ESTAR指数平滑转换自回归模型的CPI数据统计分析matlab仿真
该程序基于ESTAR指数平滑转换自回归模型,对CPI数据进行统计分析与MATLAB仿真,主要利用M-ESTAR模型计算WNL值、P值、Q值及12阶ARCH值。ESTAR模型结合指数平滑与状态转换自回归,适用于处理经济数据中的非线性趋势变化。在MATLAB 2022a版本中运行并通过ADF检验验证模型的平稳性,适用于复杂的高阶自回归模型。
|
6月前
|
机器学习/深度学习 存储 移动开发
MATLAB数据类型和运算符+矩阵创建
MATLAB数据类型和运算符+矩阵创建
72 1
|
6月前
|
机器学习/深度学习 数据可视化 算法
探索MATLAB世界:掌握基础知识与实用技能(1. MATLAB环境与基本操作 2. 数据类型与变量 3. 条件与循环,1. 数据分析与统计 2. 图像处理与计算机视觉 3. 信号处理与控制系统)
探索MATLAB世界:掌握基础知识与实用技能(1. MATLAB环境与基本操作 2. 数据类型与变量 3. 条件与循环,1. 数据分析与统计 2. 图像处理与计算机视觉 3. 信号处理与控制系统)
60 0
|
7月前
|
计算机视觉
Matlab中的偏最小二乘法(PLS)回归模型,离群点检测和变量选择
Matlab中的偏最小二乘法(PLS)回归模型,离群点检测和变量选择
Matlab中的偏最小二乘法(PLS)回归模型,离群点检测和变量选择
|
7月前
|
机器学习/深度学习 编解码 监控
探索MATLAB在计算机视觉与深度学习领域的实战应用
探索MATLAB在计算机视觉与深度学习领域的实战应用
92 7
下一篇
DataWorks