MatLab的特点及应用领域?

MatLab的特点及应用领域?,第1张

MatLab的特点

1、高效的数值计算及符号计算功能,能使用户从繁杂的数学运算分析中解脱出来;

2、具有完备的图形处理功能,实现计算结果和编程的可视化;

3、友好的用户界面及接近数学表达式的自然化语言,使学者易于学习和掌握;

4、功能丰富的应用工具箱(如信扮轿备号处理工具箱、通信工具箱等),为用户提供了大量方便实用的处理工具。

MATLAB的应用范围非常广,包括信号和图像处理、通讯、控制系统设计、测试和测量、财务建模和分析以及计算生物学等众多应用领域。

扩展资料:

MatLab将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱厅毁了传统非交互式程序设计语言(如C、Fortran)的编辑模式,代表了当今国际科学计算软件的先进水平。

MATLAB的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完成相同的事情简捷得多,并且MATLAB也吸收了像Maple等软件的优点,使MATLAB成为一个强大的数学软件。

参考资料来源:百度百科帆举—MATLAB

矩阵的分解是矩阵相关运算中的重要内容,MATLAB提供了用于矩阵分解运算的多种函数。本节将集中介绍MATLAB所提供的矩阵分解运算函数的功能及使用。

矩阵的三角分解又称高斯消去法分解,它的目的是将一个矩阵分解成一个下三角矩阵L和一个上三角矩阵U的乘积,即A=LU。MATLAB提供了专门的函数lu来计算矩阵的LU分解。该函数的调用格式如下乱侍:

其中,返回矩阵U为上三角阵,矩阵L为下三角阵或其变换形式,且满足LU=X。返回矩阵P为单位矩阵的行变换矩阵,满足LU=PX。

奇异值分解在矩阵分析中占有极其重要的作用。MATLAB提供了用于矩阵奇异值分解的函数svd,该函数是利用LINPACK程序库中的ZSVDC编制而成的。在计算的过程中假如经过75步QR分解仍得不到一个奇异值,那么系统会给出“不收敛”的提示。奇异值分解函数svd的几种调用格式如下:

其中,命令①返回向量s包含矩阵X分解所得到的全部奇异值向量。命令② 返回一个与X同大小的对角矩阵S和两个酉矩阵U与V,且满足= U S V'。命令③ 得到一个“有效大小”的分解,如果m×n维矩阵X中m>n则只计算出矩阵U的前n列,矩阵S的大小为n×n。

MATLAB提供了eig函数来对矩阵进行特征值分解,该函数的几种调用格式如下:

其中,①计算矩阵A的特征值d,返回结果以向量形式存放。②计算方阵A和B的广义特征值d,返回结果以向量形式存放。③计算矩阵A的特征值对角阵D和特征向量阵V,使AV=VD成立。④计算矩阵A的特征值对角阵D和特征向量阵V,使AV=VD成立。当矩阵A中有与截断误差数量级相差不远的值时,该指令可能更精确。'nobalance'起误差调节作用。⑤计算矩阵A和B的广义特征值向量阵V和广义特征值阵D,满足AV=BVD。最后一条命令⑥由flag指定算法计算矩阵A和B的特征值D和特征向量V。其中,flag的可能值为:'chol' 和'qz' 。当flag值为'chol'时表示对B使用Cholesky分解算法,其中A为对称Hermitian矩阵,B为正定阵。当flag值为'qz'时表示使用QZ算法,其中A、B为非对称或非Hermitian矩阵。

MATLAB提供了chol函数来对矩阵进行Cholesky分解,该函数的调用格式为:

函数调用格式①如果X为n阶对称正定矩阵,则存在一个实的非奇异上三角阵R,满足R'*R = X;若X非正定,则产生错误信息。②不产生任何错误信息,若X为正定阵,则笑盯p=0,R与上相同;若X非正定,则p为正整数,R是有序的上三角阵。

正交矩阵是指矩阵的列向量相互正交,且各个列向量的长度相等。QR分解就是将矩阵A分解成一个正交矩阵与一个上三角矩阵的乘积。MATLAB提供了用于矩阵QR分解的函数,表3.7中介绍用于矩阵QR分解的函数调用格式和功能。

表3.7矩阵QR分解

Schur分解将使用schur函数,该函数的调用格式为:

命令行①-③返回正交矩阵U和schur矩阵T,满足A = U T U'。其中,若A有复特征根,则flag='complex',否则flag='real'。

即使是实阵,在其特征值中也可能出现复数。碰陪和实际使用中常需要把这一对对共轭复数特征值转化为一个(2x2)的实数块。函数调用格式为:

MATLAB提供了gsvd函数对矩阵进行广义奇异值分解,其具体调用格式为:

其中,函数调用格式①返回酉矩阵U和V、一个普通方阵X、非负对角矩阵C和S,满足A = U C X',B = V S X',C' C + S' S = I (I为单位矩阵)。A和B的列数必须相同,行数可以不同。函数调用格式②和①基本相同,而③则返回广义奇异值sigma值。

MATLAB提供了qz函数对矩阵进行特征值问题的QZ分解,该函数的调用格式为:

其中函数调用格式①中A、B为方阵,返回结果AA和BB为上三角阵,Q、Z为正交矩阵或其列变换形式,V为特征向量阵,且满足Q A Z= AA 和Q B Z = BB。命令行②产生由flag决定的分解结果,flag取值为'complex'表示复数分解(默认);取值为'real'表示实数分解。

如果矩阵H的第一子对角线下元素都是0,则H为海森伯格(Hessenberg)矩阵。如果矩阵是对称矩阵,则它的海森伯格形式是对角三角阵。MATLAB可以通过相似变换将矩阵变换成这种形式,具体调用格式为:

结构数组的基本组成是结构(Structure),每个结构包含多个域(Fields)。数据只能存储在域中,与元胞数组一样,结构数组也可以存储任何类型的数据,但是从一定意义上讲,结构数组组织数据的能力比元胞数组要强一些。本节讲述结构数组的一些基本 *** 作。

结构数组可以通过直接对域进行赋值来创建,也可以通过MATLAB提供的函数struct来创建。下面通过示例来讲解结构数组的创建方法。

结构数组可以通过结构数组标识直接获取整个结构数组,或通过域名来获取结构数组中某个域中存储的具体内容,或通过MATLAB提供的函数getfield来获取某个域中存储的具体内容。要获取域中的具体内容,需要预先知道结构数组的各域的名称,为此MATLAB还提供了查询结构数组中各域名的函数fieldnames方便使用。

MATLAB提供了修改结构数组中域存储内容的函数setfield。下面通过示例演示该函数的具体使用。

本章重点介绍了MATLAB提供的3种重要的数据类型的创建及相关 *** 作,这3种数据类型分别是:字符数组、元胞数组和结构数组。理解和掌握这3种数据类型是进一步学习MATLAB的基础。

字符数组部分使用大量的实例重点介绍了简单和复杂字符数组的创建方法、字符数组的比较 *** 作、字符串族哪漏的查找和替换 *** 作以及字符数组与其他数据类型之间的相互转化 *** 作等内容。大量的实例使得读者可以轻松的掌握字符数组的相关 *** 作。

元胞数组部分首先介绍了元胞数组中元胞和元胞中所包含的内容为两个不同的范畴,并且对应的是两种截然不同的 *** 作,分别为元胞外标识和元胞内编址。在此基础上通过实例介绍了元兆烂胞数组的多种创建方法、元胞数组内容的访问以及元胞数组内容的显示等内容。

结构数组部分首先介绍了结构数组的定义,然后通过实例重点介绍了结构数组的创建以及对元胞数组中元素进行访问和修改等 *** 作相关的内容。与元胞数组一样,结构数组也可以存储任何类型的数据,但是从一定意义上讲,结构数组组织数据的能力缓指比元胞数组要强一些。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/12249998.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-22
下一篇 2023-05-22

发表评论

登录后才能评论

评论列表(0条)

保存