Matlab . Simulink .应用实例仿真与高效算法开发

上传人:012****78 文档编号:192750378 上传时间:2021-08-19 格式:DOC 页数:43 大小:1.23MB
返回 下载 相关 举报
Matlab . Simulink .应用实例仿真与高效算法开发_第1页
第1页 / 共43页
Matlab . Simulink .应用实例仿真与高效算法开发_第2页
第2页 / 共43页
Matlab . Simulink .应用实例仿真与高效算法开发_第3页
第3页 / 共43页
Matlab . Simulink .应用实例仿真与高效算法开发_第4页
第4页 / 共43页
Matlab . Simulink .应用实例仿真与高效算法开发_第5页
第5页 / 共43页
点击查看更多>>
资源描述

《Matlab . Simulink .应用实例仿真与高效算法开发》由会员分享,可在线阅读,更多相关《Matlab . Simulink .应用实例仿真与高效算法开发(43页珍藏版)》请在金锄头文库上搜索。

1、Matlab . Simulink .应用实例仿真与高效算法开发 作者: 日期:44 个人收集整理 勿做商业用途第四章 线性代数方程组的数值实验矩阵计算是求解线性代数方程组最简单有效的方法。经典的线性代数教材中,对于矩阵运算都是基于手工推导的方法,为实现高阶矩阵的分析与计算,人们引入了计算机数学语言,更方便于求解高阶问题.随着对线性代数问题的研究逐步深入,为了研究线性代数问题的数值解法与解析解问题,科学家开发了许多计算机数学语言,如,MATLAB、EISPACK、Mathmetica和Maple等,这些都大大拓宽了人们解决大型工程问题的思路。随着计算机技术的发展,人们已经不再满足于解决矩阵分析

2、与运算问题的数值线性代数方法,逐渐的也可以求解解析解问题。本章向读者介绍了求解线性代数方程组的一些基本思路,同时也对于一些典型的代数方程组给出了求解方法。本章的内容分以下几个部分: 特殊矩阵的输入 矩阵基本分析 线性代数方程的求解 稀疏矩阵的线性方程4。1 特殊矩阵的输入 4。1.1 数值矩阵的输入。在输入一个数值矩阵时,我们可以用最底层、最基本的赋值语句逐行输入,不过对于非常复杂和具有特殊结构的矩阵来说就非常繁琐了.例如输入一个1515的单位矩阵,用一般的赋值语句也未尝不可,不过该方法对于此类特殊形式的矩阵输入是既耗时又费力.Matlab中提供了现成的函数eye( ),很轻松的输入该矩阵。所

3、以熟悉一些特殊矩阵的输入方法是很有必要的。通常我们所谓的特殊矩阵包括:零矩阵、幺矩阵、单位矩阵、对角元素矩阵、Hankel矩阵、Hilbert矩阵及其逆矩阵、Vandermonde矩阵、伴随矩阵和随机元素矩阵等。下面我们就介绍这些特殊矩阵的输入方法.4。1.1。1 零矩阵、幺矩阵、单位矩阵及对角元素矩阵矩阵理论中,所有元素为0的矩阵定义为零矩阵,而所有元素为1的矩阵为幺矩阵.单位矩阵的定义为主对角元素均为1,其他元素皆为0。可以说对角元素矩阵更为一般的矩阵类型为对角元素矩阵,它的定义是,主对角元素可为0或非0,而非对角元素的值均为0。Matlab中提供了这些特殊矩阵的输入指令,分别举例说明。【

4、例4-1】 分别运用matlab提供的指令生成55的方阵,使该方阵分别为零矩阵、幺矩阵和单位矩阵。 A = zeros(5) %55零矩阵输入A = 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 B=ones(5)B = 55幺矩阵输入 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 C=eye(5) %55单位矩阵输入C = 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1指的注意的是,以上命令所完成的功能事实上可用更标准的格式来实现,分

5、别为zeros(5,5)、ones(5,5)和eye(5,5)。 指令zeros( )和ones( ) 还可用于多维数组的生成,如要生成一个234元素皆为1的多维数组可用命令ones(2,3,4)来完成。Matlab提供的对角矩阵生成命令为diag( ),该指令的调用函数为M = diag(X) 由已知向量生成对角矩阵X = diag(M) 由已知矩阵得到对角元素列向量M = diag(X, k) 生成的矩阵M的第k条对角线上的元素列向量为X,其余元素都为0。具体指令的操作,举例如下,【例 42】diag( )指令的操作. A = 3 5 9; M=diag(A)M = 3 0 0 0 5 0

6、 0 0 9输出的M矩阵的主对角线元素为向量A. G = M+1G = 4 1 1 1 6 1 1 1 10A = diag(G)A = 4 610矩阵G为矩阵M每个元素加1得到的新矩阵,A列向量为矩阵G的对角线元素矩阵.B = diag(G, 1)B= 1 1所得向量B为矩阵G的第1条对角线元素。 C= 2 4 3; H = diag(C,2)H = 0 0 2 0 0 0 0 0 4 0 0 0 0 0 3 0 0 0 0 0 0 0 0 0 0所得到的H矩阵为以C向量为第二条对角线元素其余元素为零的55矩阵.综合应用diag( )指令可以很方便的得到比较复杂的三对角矩阵。 I = dia

7、g(1 2 3 4 5) + diag( 2 3 4 5, 1) + diag(6 5 4 3, -1)I = 1 2 0 0 0 6 2 3 0 0 0 5 3 4 0 0 0 4 4 5 0 0 0 3 54。1.1。1 Hankel矩阵Hankel矩阵的通常的表达形式为:如要构造无穷型Hankel矩阵,可令。很明显,Hankel矩阵是对称矩阵,反对角线上所有的元素都相同。在matlab中, Hankel矩阵生成指令为:指令中A和R为向量,如H矩阵为阶矩阵,那么A为n阶向量,是H矩阵的第一列各个元素所组成的向量。R为m阶向量,为最后一行元素所构成的向量.【例 43】用matlab语句输入下

8、面给出的Hankel矩阵H.由Hankel矩阵的生成指令,可以知道,如通过将A向量,R向量分别设置为该H矩阵的第一列和最后一行元素组成的向量,然后用下面语句很方便的得到H矩阵。 A = 1 2 3 4;R = 4 5 6 7 8 9 10;H = hankel(A,R)H = 1 2 3 4 5 6 7 2 3 4 5 6 7 8 3 4 5 6 7 8 9 4 5 6 7 8 9 10这样就很方便的得到了H矩阵。4。1.1.2随机元素矩阵很显然,随机元素矩阵的各个元素是随机产生的.假设矩阵的元素满足0,1区间上的均匀分布,那么可以由matlab指令rand( )生成,其调用格式为: 生成nn

9、阶标准均匀分布为随机数矩阵 生成nm阶标准均匀分布随机数矩阵当然,函数rand( )同样可用于生成多维数组。组成随机元素矩阵的伪随机数,是通过某种数学公式生成的,可满足一定随机标准的数据.这些随机数与通过电子方法获得的不可重复的随机数是不同的,它们是可以重复的.此外,如果想得到一些更具一般性的随机元素矩阵,可首先用rand( )函数得到随机矩阵A ,然后以该矩阵为变量作线性函数,比如,,可通过该形式的函数来得到满足要求的矩阵。举例说明【例 4-4】 试构造一个满足,其中,的5阶正态分布随机矩阵。 A = rand(5,5)A = 0.9501 0。7621 0。6154 0。4057 0。05

10、79 0。2311 0。4565 0。7919 0。9355 0。3529 0.6068 0。0185 0.9218 0.9169 0。8132 0.4860 0。8214 0.7382 0.4103 0.0099 0。8913 0。4447 0.1763 0.8936 0.1389 V = 0.3+2*AV = 2.2003 1。8242 1.5309 1.1114 0。4158 0.7623 1.2129 1.8839 2。1709 1.0057 1.5137 0。3370 2.1436 2.1338 1.9263 1。2720 1。9428 1。7764 1。1205 0.3197 2。

11、0826 1。1894 0。6525 2。0873 0。5778A矩阵就是55阶标准均匀分布矩阵,经过线性组合所得到的V矩阵就是满足要求的正态随机分布矩阵。4.1。2 符号矩阵的输入 对于已经存在的数值矩阵M,可由sym( )指令转换为符号矩阵,当然,这是最基本的生成方法,这样一来对得到的新矩阵,可利用符号运算工具箱获得更高精度的解。该函数的调用格式如下:对于具有特殊形式的矩阵,如Hankel矩阵及其伴随矩阵等,符号工具箱不直接支持它们.我们可以自行编写一些函数来满足我们对此类特殊函数的要求。我们可参考matlab语言中对数字矩阵生成的相应函数,写出适合符号运算的新函数。接下来就用伴随矩阵的生成函数accompan( )来说明.Function N = accompany(Vector)Vector = Vector(:). 如Vector为列向量,那么转换为行向量n = size(Vector); 得到Vector向量的长度N = diag(ones(1, n-2), -1); %生成n-1阶第1条对角线元素都为1的矩

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 工学

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号