第5章 MATLAB数值计算 5.1特殊矩阵 52矩阵分析 53矩阵分解与线性方程组求解 54数据处理与多项式计算 55傅立叶分析 56数值微积分 57常微分方程的数值求解 58非线性方程的数值求解 59稀疏矩阵
第5章 MATLAB数值计算 5.1 特殊矩阵 5.2 矩阵分析 5.3 矩阵分解与线性方程组求解 5.4 数据处理与多项式计算 5.5 傅立叶分析 5.6 数值微积分 5.7 常微分方程的数值求解 5.8 非线性方程的数值求解 5.9 稀疏矩阵
5.1特殊矩阵 51.1对角阵与三角阵 1.矩阵的对角元素 (1)提取矩阵的对角线元素 设A为m×n矩阵,diag(A)函数用于提取矩阵A主对角线元 素产生一个具有min(m,n)个元素的列向量 diag(A)函数还有更进一步的形式dag(A,k),其功能是提取 第k条对角线的元素 (2)构造对角矩阵 设V为具有m个元素的向量,diag(V)将产生一个m×m对 角矩阵,其主对角线元素即为向量Ⅴ的元素。 diag(V)函数也有更进一步的形式dag(Vk),其功能是产生 vn×m(m=m+)对角阵,其第k条对角线的元素即为向量 的元素
5.1 特殊矩阵 5.1.1对角阵与三角阵 1. 矩阵的对角元素 (1)提取矩阵的对角线元素 设A为m×n矩阵,diag(A)函数用于提取矩阵A主对角线元 素产生一个具有min(m,n)个元素的列向量。 diag(A)函数还有更进一步的形式diag(A,k),其功能是提取 第k条对角线的元素。 (2)构造对角矩阵 设V为具有m个元素的向量,diag(V)将产生一个m×m对 角矩阵,其主对角线元素即为向量V的元素。 diag(V)函数也有更进一步的形式diag(V,k),其功能是产生 一个n×n(n=m+)对角阵,其第k条对角线的元素即为向量 V的元素
例5.1先建立5×5矩阵A,然后将A的第1行元素乘 以1,第2行乘以2,…,第5行乘以5。 命令如下: A=[17,0,1,0,1523,5,7,14,16;4,0,130,22;10,12,19,21,3;11,18,25,2,19] D=diag1,2,3,4,5]) DA
例5.1 先建立5×5矩阵A,然后将A的第1行元素乘 以1,第2行乘以2,…,第5行乘以5。 命令如下: A=[17,0,1,0,15;23,5,7,14,16;4,0,13,0,22;10,12,19,21,3;11,18,25,2,19]; D=diag([1,2,3,4,5]); D*A
2.矩阵的三角阵 1)下三角矩阵 求矩阵A的下三角阵的 MATLAB函数是tri(A)。 tr(A)函数也有更进一步的一种形式tri(A,k) 其功能是求矩阵A的第k条对角线以下的元素 (2)上三角矩阵 在 MATLAB中,提取矩阵A的上三角矩阵的函 数是triu(A)和riu(Ak),其用法与提取下三角矩 阵的函数tr(A)和tri(A,k)完全相同
2. 矩阵的三角阵 (1)下三角矩阵 求矩阵A的下三角阵的MATLAB函数是tril(A)。 tril(A)函数也有更进一步的一种形式tril(A,k), 其功能是求矩阵A的第k条对角线以下的元素。 (2)上三角矩阵 在MATLAB中,提取矩阵A的上三角矩阵的函 数是triu(A)和triu(A,k),其用法与提取下三角矩 阵的函数tril(A)和tril(A,k)完全相同
5.1.2特殊矩阵的生成 1.魔方矩阵 函数 magIc(n),其功能是生成一个n阶魔方阵。 例5,2将101~125等25个数填入一个5行5列的表 格中,使其每行每列及对角线的和均为565。 命令如下: B=100+magc(5) 2.范得蒙矩阵 函数 vander(V)生成以向量V为基础向量的范得 蒙矩阵
5.1.2 特殊矩阵的生成 1. 魔方矩阵 函数magic(n),其功能是生成一个n阶魔方阵。 例5.2 将101~125等25个数填入一个5行5列的表 格中,使其每行每列及对角线的和均为565。 命令如下: B=100+magic(5) 2. 范得蒙矩阵 函数vander(V)生成以向量V为基础向量的范得 蒙矩阵
3.希尔伯特矩阵 生成希尔伯特矩阵的函数是hlb(n)。 MATLAB中,有 个专门求希尔伯特矩阵的逆的函数 invhilb(n),其功能 是求n阶的希尔伯特矩阵的逆矩阵 4.托普利兹矩阵 生成托普利兹矩阵的函数是 toeplitz(xy),它生成一个 以x为第1列,y为第1行的托普利兹矩阵。这里x,y均为 向量,二者不必等长 5.友矩阵 生成友矩阵的函数是: compan(P),生成多项式P的友 矩阵。P是一个多项式的系数向量,高次幂系数排在前, 低次幂排在后 6.帕斯卡矩阵 函数 pascal(n)生成一个n阶的帕斯卡矩阵
3. 希尔伯特矩阵 生成希尔伯特矩阵的函数是hilb(n)。MATLAB中,有一 个专门求希尔伯特矩阵的逆的函数invhilb(n),其功能 是求n阶的希尔伯特矩阵的逆矩阵。 4. 托普利兹矩阵 生成托普利兹矩阵的函数是toeplitz(x,y),它生成一个 以x为第1列,y为第1行的托普利兹矩阵。这里x, y均为 向量,二者不必等长。 5. 友矩阵 生成友矩阵的函数是:compan(P),生成多项式P的友 矩阵。P是一个多项式的系数向量,高次幂系数排在前, 低次幂排在后。 6. 帕斯卡矩阵 函数pascal(n)生成一个n阶的帕斯卡矩阵
例53求(x+y)5的展开式 在 MATLAB命令窗口,输入命令: pascal(6 ans 123456 136101521 1410203556 15153570126 162156126252 其次对角线上的元素1,5,10,10,5,1即为展开式的 系数
例5.3求(x+y)5的展开式。 在MATLAB命令窗口,输入命令: pascal(6) ans = 1 1 1 1 1 1 1 2 3 4 5 6 1 3 6 10 15 21 1 4 10 20 35 56 1 5 15 35 70 126 1 6 21 56 126 252 其次对角线上的元素1,5,10,10,5,1即为展开式的 系数
52矩阵分析 52.1矩阵结构变换 1.矩阵的转置 转置运算符是单撇号() 2.矩阵的旋转 矩阵的旋转利用函数ro90(A,k),功能是将矩阵A旋转909 的k倍,当k为1时可省略。 3.矩阵的左右翻转 对矩阵A实施左右翻转的函数是 fliplr((A)。 4.矩阵的上下翻转 对矩阵A实施上下翻转的函数是 fliud(A)
5.2 矩阵分析 5.2.1 矩阵结构变换 1. 矩阵的转置 转置运算符是单撇号(')。 2. 矩阵的旋转 矩阵的旋转利用函数rot90(A,k),功能是将矩阵A旋转90º 的k倍,当k为1时可省略。 3. 矩阵的左右翻转 对矩阵A实施左右翻转的函数是fliplr(A)。 4. 矩阵的上下翻转 对矩阵A实施上下翻转的函数是flipud(A)
522矩阵的逆与伪逆 1.矩阵的逆 求一个矩阵的逆非常容易。求方阵A的逆 可调用函数inv(A) 例54用求逆矩阵的方法解线性方程组 命令如下: A=[1,2,3;1,4,9;1,8,27;b=[5,-2,6 xin(A)"b 般情况下,用左除比求矩阵的逆的方法 更有效,即x=Ab
5.2.2 矩阵的逆与伪逆 1. 矩阵的逆 求一个矩阵的逆非常容易。求方阵A的逆 可调用函数inv(A)。 例5.4 用求逆矩阵的方法解线性方程组。 命令如下: A=[1,2,3;1,4,9;1,8,27]; b=[5,–2,6]'; x=inv(A)*b 一般情况下,用左除比求矩阵的逆的方法 更有效,即x=A\b
2.矩阵的伪逆 MATLAB中,求一个矩阵伪逆的函数是pinv(A)。 例55求A的伪逆,并将结果送B。 命令如下: A=[3,1,1,1;1,3,1,11,1,3,1 B=pinV(a) 例56求矩阵A的伪逆。 在 MATLAB命令窗口,输入命令: A=[00,0:0,1,0:0,0,1]; pinv(a)
2. 矩阵的伪逆 MATLAB中,求一个矩阵伪逆的函数是pinv(A)。 例5.5 求A的伪逆,并将结果送B。 命令如下: A=[3,1,1,1;1,3,1,1;1,1,3,1]; B=pinv(A) 例5.6 求矩阵A的伪逆。 在MATLAB命令窗口,输入命令: A=[0,0,0;0,1,0;0,0,1]; pinv(A)