




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第三章第三章 MATLAB的数值计算的数值计算 第三章第三章 MATLAB的数值计算的数值计算 3-1 矩阵基础矩阵基础 矩阵和向量这两个词经常换用,准确地说,矩阵是指以实数矩阵和向量这两个词经常换用,准确地说,矩阵是指以实数 或复数为元素的长方形向量。或复数为元素的长方形向量。 3-1-1 矩阵的定义和简单输入矩阵的定义和简单输入 最简单的输入方式是直接输入矩阵的元素列表,这种方法通最简单的输入方式是直接输入矩阵的元素列表,这种方法通 常只适用于较小的矩阵。常只适用于较小的矩阵。 在输入矩阵时,应遵循以下约定:在输入矩阵时,应遵循以下约定: 整个矩阵用中括号括起来,同一行的数据用空格或逗号隔
2、开,整个矩阵用中括号括起来,同一行的数据用空格或逗号隔开, 不同行用分号隔开。不同行用分号隔开。 在在MATLAB中,列向量可被当作只有一列的矩阵,行向量也中,列向量可被当作只有一列的矩阵,行向量也 可当作只有一行的矩阵,标量也可被认为是只有一行一列的矩阵。可当作只有一行的矩阵,标量也可被认为是只有一行一列的矩阵。 1. 直接输入法直接输入法 将矩阵的元素用方括号括起来,按矩阵行的顺序输将矩阵的元素用方括号括起来,按矩阵行的顺序输 入各元素,同一行的各元素之间用空格或逗号分隔,入各元素,同一行的各元素之间用空格或逗号分隔, 不同行的元素之间用分号分隔。例如不同行的元素之间用分号分隔。例如 A=
3、1,2,3;4 5 6;7 8 9 A = 1 2 3 4 5 6 7 8 9 x=-2 3 4 6 %可当作一个行向量可当作一个行向量 x = -2 3 4 6 y=2;4;5 %可当作一个列向量可当作一个列向量 y = 2 4 5 例如:例如: z=100 %输入一个标量输入一个标量 z = 100 zeros:生成一个元素全部为生成一个元素全部为0的矩阵。的矩阵。 ones:生成一个元素全部为:生成一个元素全部为1的矩阵。的矩阵。 eye:生成一个单位矩阵。:生成一个单位矩阵。 rand:生成一个元素在:生成一个元素在0和和1之间均匀分布的随机矩阵。之间均匀分布的随机矩阵。 randn:
4、生成一个零均值单位方差正态分布的随机矩阵。:生成一个零均值单位方差正态分布的随机矩阵。 pascal:生成一个帕斯卡矩阵。:生成一个帕斯卡矩阵。 magic:生成一个魔方矩阵。:生成一个魔方矩阵。 可以利用这些函数直接生成矩阵。可以利用这些函数直接生成矩阵。 A=zeros(2,3) %生成一个生成一个23的全的全0矩阵矩阵 A = 0 0 0 0 0 0 B=magic(3) %生成一个生成一个3阶魔方矩阵阶魔方矩阵 B = 8 1 6 3 5 7 4 9 2 C=pascal(3) %生成一个生成一个3阶帕斯卡矩阵阶帕斯卡矩阵 C = 1 1 1 1 2 3 1 3 6 此外此外MATLA
5、B还常常使用线性间隔向量函数还常常使用线性间隔向量函数linspace 生成向量的函数:生成向量的函数: 调用格式调用格式1:y= linspace(a,b) 功能:产生一个行向量功能:产生一个行向量y,该向量把,该向量把a和和b间的数间的数100等分而得到。等分而得到。 调用格式调用格式2:y= linspace(a,b,n) 功能:产生一个行向量功能:产生一个行向量y,该向量把,该向量把a和和b间的数间的数n等分而得到。等分而得到。 例如:例如: y=linspace(1,3,10) y = 1.0000 1.2222 1.4444 1.6667 1.8889 2.1111 2.3333
6、2.5556 2.7778 3.0000 3-1-3利用利用M文件建立矩阵文件建立矩阵 在用户使用在用户使用MATLAB的过程中,对于比较大而且非常复杂的的过程中,对于比较大而且非常复杂的 矩阵,用直接输入的方法显得比较麻烦时,可以为它专门建立一矩阵,用直接输入的方法显得比较麻烦时,可以为它专门建立一 个个M文件来生成该矩阵。文件来生成该矩阵。 例:例: 利用利用M文件建立文件建立MYMAT矩阵。矩阵。 (1)启动有关编辑程序或启动有关编辑程序或MATLAB文本编辑器,文本编辑器, 并输入待建矩阵并输入待建矩阵. (2)把输入的内容以纯文本方式存盘把输入的内容以纯文本方式存盘(设文件名设文件名
7、 为为mymatrix.m)。 (3)运行该运行该M文件,就会自动建立一个名为文件,就会自动建立一个名为MYMAT的矩阵,的矩阵, 可供以后使用可供以后使用 在窗口的空白区域(新建在窗口的空白区域(新建M文件)输入如下文件)输入如下5行内容:行内容: A=1 2 4 3 5 6 8 7 9 10 12 11 13 14 16 15 然后保存在然后保存在MATLAB的工作目录中,文件的名为的工作目录中,文件的名为 “mymatrix.m”。 在在MATLAB的命令编辑区内,输入命令的命令编辑区内,输入命令“mymatrix”,就会在,就会在 MATLAB的工作空间中自动生成变量的工作空间中自动生
8、成变量A,以供用户使用。,以供用户使用。 mymatrix A = 1 2 4 3 5 6 8 7 9 10 12 11 13 14 16 15 3-1-4矩阵元素的求和矩阵元素的求和 sum函数可以用来对矩阵的元素求和。函数可以用来对矩阵的元素求和。 调用格式:调用格式:sum(A) 功能功能:对矩阵各列的元素分别求和。即矩阵中同一列的元素对矩阵各列的元素分别求和。即矩阵中同一列的元素 相加相加 因为因为MATLAB在运算时是按照列优先,而不是行优先的方式在运算时是按照列优先,而不是行优先的方式 进行,因此,进行,因此, sum(A)的运算结果是得到一个行向量,这个行向量的运算结果是得到一个
9、行向量,这个行向量 是对矩阵的各列元素求和而得到的。是对矩阵的各列元素求和而得到的。 当然,对一个列向量求和就得到一个标量。当然,对一个列向量求和就得到一个标量。 例例1: A=1 2 3;4 5 6;7 8 9 A = 1 2 3 4 5 6 7 8 9 sum(A) ans = 12 15 18 例例2: y=1;2;3 y = 1 2 3 sum(y) ans = 6 在矩阵在矩阵A中,为了便于确定矩阵中的元素位置,引入下标的中,为了便于确定矩阵中的元素位置,引入下标的 概念概念A(i,j),它代表第,它代表第i行和第行和第j列的元素。列的元素。 例如:例如:A(2,3)表示矩阵表示矩阵
10、A的第的第2行和第行和第3列的元素。列的元素。 3-1-5 矩阵的下标矩阵的下标 如果要对矩阵如果要对矩阵A的某行求和,假设的某行求和,假设A是一个是一个3阶矩阵:阶矩阵: A=1 2 3;4 5 6;7 8 9 A(2,3) ans = 6 如果用户在矩阵下标以外的元素中存储了数值,那么矩阵的尺如果用户在矩阵下标以外的元素中存储了数值,那么矩阵的尺 寸将会按照新的数值自动增加。寸将会按照新的数值自动增加。 例如:例如: A(4,4)=20 A = 1 2 3 0 4 5 6 0 7 8 9 0 0 0 0 20 矩阵的转置就是把矩阵的第矩阵的转置就是把矩阵的第i行第行第j列的元素放在第列的元
11、素放在第j行第行第i列的列的 位置上。位置上。 对于实矩阵用(对于实矩阵用()符号或()符号或(.)求转置结果是一样的;)求转置结果是一样的; 然而对于含复数的矩阵,则(然而对于含复数的矩阵,则()将同时对复数进行共轭处理,)将同时对复数进行共轭处理, 而而 (.)则只是将其排列形式进行转置。)则只是将其排列形式进行转置。 3-1-6 矩阵的转置矩阵的转置 例如:例如:a=1 2 3;4 5 6 a = 1 4 2 5 3 6 a=1 2 3;4 5 6. a = 1 4 2 5 3 6 b=1+2i 2-7i b = 1.0000 - 2.0000i 2.0000 + 7.0000i b=1
12、+2i 2-7i. b = 1.0000 + 2.0000i 2.0000 - 7.0000i 1、函数、函数diag可以将一个矩阵的对角线元素提取出来可以将一个矩阵的对角线元素提取出来 调用格式:调用格式:diag(A) 功能:由矩阵功能:由矩阵A的主对角线元素得到一个列向量。的主对角线元素得到一个列向量。 3-1-7 矩阵的对角元素矩阵的对角元素 例如:例如: a=pascal(3) a = 1 1 1 1 2 3 1 3 6 diag(a) %提取对角元素提取对角元素 ans = 1 2 6 b=diag(diag(a) %由由a的对角线元素构成一个对角矩阵的对角线元素构成一个对角矩阵
13、b = 1 0 0 0 2 0 0 0 6 使用该函数来产生第使用该函数来产生第k阶对角线上的元素阶对角线上的元素 调用格式:调用格式:diag(A,k)其功能是提取第其功能是提取第k条对角线的元素。条对角线的元素。 其中,其中,k=0表示主对角线;表示主对角线; k0表示在主对角线之上;表示在主对角线之上; k a=1 2 3;4 5 6;7 8 9; A=diag(a,0) A = 1 5 9 A=diag(a,1) A=diag(a,-1) 函数函数blkdiag可以根据输入创建一个分块对角矩阵可以根据输入创建一个分块对角矩阵 A = 4 8 A = 2 6 调用格式:调用格式:s=bl
14、kdiag(a,b,c.) 系统将根据输入的系统将根据输入的a,b,c等参数来构造一个分块对角矩阵。等参数来构造一个分块对角矩阵。 例如:例如: a=1; b=1 2;3 4; c=9; d=1 -1;2 -2;3 -3; s=blkdiag(a,b,c,d) %构造分块对角矩阵构造分块对角矩阵 s = 1 0 0 0 0 0 0 1 2 0 0 0 0 3 4 0 0 0 0 0 0 9 0 0 0 0 0 0 1 -1 0 0 0 0 2 -2 0 0 0 0 3 -3 例:例: A=17,0,1,0,15;23,5,7,14,16;4,0,13,0,22;10,12,19,21,3;11
15、,18,2 5,2,19; D=diag(1,2,3,4,5); %也可也可diag(1:5) D*A %其实就是将其实就是将A的第的第i行元素乘以行元素乘以i ans = 17 0 1 0 15 46 10 14 28 32 12 0 39 0 66 40 48 76 84 12 55 90 125 10 95 矩阵的三角阵矩阵的三角阵 (1)下三角矩阵下三角矩阵 求矩阵求矩阵A的下三角阵的的下三角阵的MATLAB函数是函数是tril(A)。 tril(A)函数也有更进一步的一种形式函数也有更进一步的一种形式tril(A,k),其功能是求,其功能是求 矩阵矩阵A的第的第k条对角线以下的元素。
16、条对角线以下的元素。 (2)上三角矩阵上三角矩阵 在在MATLAB中,提取矩阵中,提取矩阵A的上三角矩阵的函数是的上三角矩阵的函数是triu(A)和和 triu(A,k),其用法与提取下三角矩阵的函数,其用法与提取下三角矩阵的函数tril(A)和和tril(A,k)完完 全相同。全相同。 例上面的例上面的A阵阵 tril(A) triu(A) ans = 17 0 1 0 15 0 5 7 14 16 0 0 13 0 22 0 0 0 21 3 0 0 0 0 19 ans = 17 0 0 0 0 23 5 0 0 0 4 0 13 0 0 10 12 19 21 0 11 18 25 2
17、 19 如果如果x是向量,则语句是向量,则语句diag(x)产生一个对角矩阵,产生一个对角矩阵,x位于矩阵位于矩阵 的对角线上。例如:的对角线上。例如: a=1 2 3; %当然也可以是列向量当然也可以是列向量 diag(a) ans = 1 0 0 0 2 0 0 0 3 又如:又如: x=ones(1,5) x = 1 1 1 1 1 diag(x) ans = 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 如果如果A是方阵,则是方阵,则diag(A)是一个由是一个由A的对角元素组成的向量,的对角元素组成的向量, 而而diag(diag
18、(A)是一个对角矩阵,其对角线上的元素由是一个对角矩阵,其对角线上的元素由diag(A) 的元素组成,见下列的元素组成,见下列MATLAB输出。输出。 A=1 2 3; 4 5 6; 7 8 9; diag(A) ans = 1 5 9 diag(diag(A) ans = 1 0 0 0 5 0 0 0 9 3-1-8 矩阵的最大值矩阵的最大值 1. 求矩阵最大和最小元素求矩阵最大和最小元素 (1)求向量的最大最小元素求向量的最大最小元素 y=max(X) 返回向量返回向量X的最大元素存入的最大元素存入y。 (2)求矩阵的最大和最小元素求矩阵的最大和最小元素 max(A) 返回一个行向量,向
19、量的第返回一个行向量,向量的第i个元素是个元素是A矩阵的第矩阵的第i 列上的最大元素。列上的最大元素。 例:例: 求矩阵求矩阵A的每行及每列的最大和最小元素,并求整个矩的每行及每列的最大和最小元素,并求整个矩 阵的最大和最小元。命令如下:阵的最大和最小元。命令如下: A=13,-56,78;25,63,-235;78,25,563;1,0,-1; max(A) %求每列最大元素,形成一个行向量。求每列最大元素,形成一个行向量。 min(A) %求每列最小元素,形成一个行向量。求每列最小元素,形成一个行向量。 max(max(A) %求整个矩阵的最大元素,即行向量的最大值求整个矩阵的最大元素,即
20、行向量的最大值 min(min(A) %求整个矩阵的最小元素,即行向量的最小值求整个矩阵的最小元素,即行向量的最小值 ans = 78 63 563 ans = 1 -56 -235 ans = 563 ans = -235 3-2 矩阵的基本运算矩阵的基本运算 3-2-1 矩阵的加减运算矩阵的加减运算 矩阵的加减运算如同通常的向量加减,并把对应的元素分别矩阵的加减运算如同通常的向量加减,并把对应的元素分别 进行加减。能够相加减的矩阵必须满足以下两个条件之一:进行加减。能够相加减的矩阵必须满足以下两个条件之一: 类型相同,即行数和列数相同。类型相同,即行数和列数相同。 其中一个为标量。其中一个
21、为标量。 例如:例如: a=eye(3,4); b=ones(3,4); c=a+b c = 2 1 1 1 1 2 1 1 1 1 2 1 能够使用乘法的矩阵必须满足以下两个条件:能够使用乘法的矩阵必须满足以下两个条件: 前一个矩阵的列数和后一个矩阵的行数相同时,才可以进前一个矩阵的列数和后一个矩阵的行数相同时,才可以进 行乘法运算。行乘法运算。 其中一个为标量。其中一个为标量。 在在MATLAB中,相同长度的行向量和列向量可以相乘,当行中,相同长度的行向量和列向量可以相乘,当行 向量乘以列向量时,将得到一个标量,在数学上称为内积、点积或向量乘以列向量时,将得到一个标量,在数学上称为内积、点
22、积或 标量积;标量积; 当列向量乘以行向量时,将得到一个方阵,在数学上称为外积。当列向量乘以行向量时,将得到一个方阵,在数学上称为外积。 注意:注意: 矩阵的乘积不可逆。矩阵的乘积不可逆。 矩阵的矩阵的“.*”和和“*”是不同的。是不同的。 3-2-2 矩阵的乘积矩阵的乘积 例如:例如: a=1 2;3 4;5 6 a = 1 2 3 4 5 6 b=1 -3 4 2;2 5 8 0 b = 1 -3 4 2 2 5 8 0 c=a*b c = 5 7 20 2 11 11 44 6 17 15 68 10 d=b*a ? Error using = * 说明矩阵的乘法不可逆说明矩阵的乘法不可
23、逆 Inner matrix dimensions must agree. e=1 2;3 4; f=5 6;7 8; e = 1 2 3 4 f = 5 6 7 8 g=e*f g = 19 22 43 50 h=e.*f %“.*”同行同列矩阵的对应的元素分别相乘同行同列矩阵的对应的元素分别相乘 h = 5 12 21 32 e2 %就是就是e*e ans = 7 10 15 22 例如,对于矩阵例如,对于矩阵A和和B,其中,其中 AB jj jj 12 34 122 345 , A.2和和B.2给出的结果表示如下:给出的结果表示如下: A.2 %就是矩阵就是矩阵A中的每个元素的平方中的每
24、个元素的平方 ans = 1 4 9 16 B=1+i 2-2*i;3+4*i 5-i; e.2 ans = 1 4 9 16 冒号运算符的几种不同形式:冒号运算符的几种不同形式: 3-2-3 矩阵的冒号运算符矩阵的冒号运算符 B.2 ans = 0 + 2.0000i 0 - 8.0000i -7.0000 +24.0000i 24.0000 -10.0000i A(:,j)表示取表示取A矩阵的第矩阵的第j列全部元素;列全部元素;A(i,:)表示表示A 矩阵第矩阵第i行的全部元素;行的全部元素;A(i,j)表示取表示取A矩阵第矩阵第i行、行、 第第j列的元素。列的元素。 A(i:i+m,:)
25、表示取表示取A矩阵第矩阵第ii+m行的全部元素;行的全部元素; A(:,k:k+m)表示取表示取A矩阵第矩阵第kk+m列的全部元素,列的全部元素, A(i:i+m,k:k+m)表示取表示取A矩阵第矩阵第ii+m行内,并在第行内,并在第 kk+m列中的所有元素。列中的所有元素。 调用格式调用格式1:n1:n2 功能:表示一个行向量,其元素从功能:表示一个行向量,其元素从n1起,步长为起,步长为1到到n2之间之间 的所有数值。的所有数值。 1:5 ans = 1 2 3 4 5 调用格式调用格式2:n1:n2:n3 功能:表示一个行向量,其元素从功能:表示一个行向量,其元素从n1起以步长为起以步长
26、为n2到到n3之间之间 的所有数值。的所有数值。 1:3:5 ans = 1 4 调用格式调用格式3:用在矩阵下标的表达式:用在矩阵下标的表达式 功能:它表示矩阵的一部分内容。功能:它表示矩阵的一部分内容。 a=magic(4) a = 16 2 3 13 5 11 10 8 9 7 6 12 4 14 15 1 a(1:5) %矩阵的前五个元素(列优先)矩阵的前五个元素(列优先) ans = 16 5 9 4 2 a(2:4,3) %表示第表示第3列的第列的第2,3,4行的元素行的元素 ans = 10 6 15 a(2,:) %表示矩阵的第表示矩阵的第2行所有元素行所有元素 ans = 5
27、 11 10 8 a(2:4,1:3) %表示矩阵的第表示矩阵的第2到到4行和行和1到到3列的所有元素列的所有元素 ans = 5 11 10 9 7 6 4 14 15 3-3-1 矩阵的乘方矩阵的乘方 如果矩阵如果矩阵A是一个方阵,是一个方阵,n是一个正整数,那么是一个正整数,那么An代表代表A的的n 次方,表示矩阵次方,表示矩阵A自乘自乘n次。次。 如:如:A3表示表示A*A*A。 例如:例如: a=pascal(3); b=a3 b = 19 45 81 45 109 198 81 198 361 3-3 矩阵的乘方和指数运算矩阵的乘方和指数运算 如果矩阵如果矩阵A是方阵并且是非奇异阵
28、,那么是方阵并且是非奇异阵,那么A-n表示矩阵表示矩阵A-1自乘自乘n次。次。 c=a(-4) c = 1.0e+003 * 1.1370 -1.6320 0.6400 -1.6320 2.3450 -0.9200 0.6400 -0.9200 0.3610 3-3-2 矩阵的指数运算矩阵的指数运算 expm函数计算矩阵函数计算矩阵A的指数,的指数, 而函数而函数exp是计算矩阵是计算矩阵A中的每一个元素的指数。中的每一个元素的指数。 exp( ) ! m AIA AA 23 23 如:如: a=1 0 0;0 1 0;0 0 1; a = 1 0 0 0 1 0 0 0 1 expm(a)
29、%表示利用上述展开式来求表示利用上述展开式来求 ans = 2.7183 0 0 0 2.7183 0 0 0 2.7183 exp(a) %表示对矩阵中的每个元素求指数表示对矩阵中的每个元素求指数 ans = 2.7183 1.0000 1.0000 1.0000 2.7183 1.0000 1.0000 1.0000 2.7183 3-4 矩阵的除法矩阵的除法 在线性方程的求解中,正斜杠和反斜杠是两个重要的运算符。在线性方程的求解中,正斜杠和反斜杠是两个重要的运算符。 方程方程AX=B的解用的解用X=AB表示(常用)。表示(常用)。 方程方程XA=B的解用的解用X=B/A表示。表示。 例:
30、求解线性方程组例:求解线性方程组A*X=B(这里(这里A为为3阶阶pascal矩阵,矩阵,B=1;2;3)。)。 A=pascal(3); B=1;2;3; X=AB %当然也可以用当然也可以用inv(A)*B来求来求 X = 0 1 0 A*X ans = 1 2 说明说明A*X=B 3 3-5 行列式及矩阵的逆行列式及矩阵的逆 对于一个对于一个n阶方阵,如果有一个阶方阵,如果有一个n阶方阵阶方阵B,使:,使: AB=BA=I(单位矩阵)(单位矩阵) 则可以说方阵则可以说方阵A是可逆的,并把方阵是可逆的,并把方阵B称为方阵称为方阵A的逆矩阵。的逆矩阵。 方阵方阵A可逆的充要条件是可逆的充要条
31、件是A的行列式不为的行列式不为0。 一般,当计算一个方阵行列式的值非零时,再求其逆矩阵。一般,当计算一个方阵行列式的值非零时,再求其逆矩阵。 用函数用函数det(A)计算方阵的行列式值,用函数计算方阵的行列式值,用函数inv(A)求方阵求方阵A的的 逆矩阵。逆矩阵。 求行列式和逆矩阵时,矩阵必须是方阵,否则系统提示出错信息。求行列式和逆矩阵时,矩阵必须是方阵,否则系统提示出错信息。 a=magic(3); det(a) ans = -360 b=inv(a) b = 0.1472 -0.1444 0.0639 -0.0611 0.0222 0.1056 -0.0194 0.1889 -0.10
32、28 例:例: 用求逆矩阵的方法解线性方程组。用求逆矩阵的方法解线性方程组。 命令如下:命令如下: A=1,2,3;1,4,9;1,8,27; b=5,2,6; x=inv(A)*b x = 23.0000 -14.5000 3.6667 一般情况下,用左除比求矩阵的逆的方法更有效,一般情况下,用左除比求矩阵的逆的方法更有效, 即即x=Ab。 D=2,2,-1,1;4,3,-1,2;8,5,-3,4;3,3,-2,2; %定义系数矩阵定义系数矩阵 b=4;6;12;6; %定义常数项向量定义常数项向量 D1=b,D(:,2:4); %用方程组的右端向量置换用方程组的右端向量置换D的第的第1列列
33、 D2=D(:,1:1),b,D(:,3:4); %用方程组的右端向量置换用方程组的右端向量置换D的第的第2列列 D3=D(:,1:2),b,D(:,4:4); %用方程组的右端向量置换用方程组的右端向量置换D的第的第3列列 D4=D(:,1:3),b; %用方程组的右端向量置换用方程组的右端向量置换D的第的第4列列 DD=det(D); 例:用克莱姆例:用克莱姆(Cramer)方法求解线性方程组。方法求解线性方程组。 程序如下程序如下 x1=det(D1)/DD; x2=det(D2)/DD; x3=det(D3)/DD; x4=det(D4)/DD; x1,x2,x3,x4 ans = 1
34、 1 -1 -1 3-5-1矩阵的秩矩阵的秩 MATLAB中,求矩阵秩的函数是中,求矩阵秩的函数是rank(A)。上例中,求。上例中,求D阵阵 的秩,在命令窗口健入:的秩,在命令窗口健入: r=rank(D) r = 4 3-6 特征值分解特征值分解 对于特征值问题:对于特征值问题:Ax=x 如果如果A是一个是一个n n矩阵,则满足矩阵,则满足 Ax= x 的的n个数个数 就是就是A的特征值。它们可以利用下列命令得到:的特征值。它们可以利用下列命令得到: eig(A) 上述命令使特征值返回到列向量形式。上述命令使特征值返回到列向量形式。 有如下几种调用格式来求解有如下几种调用格式来求解A矩阵的
35、特征值和特征向量:矩阵的特征值和特征向量: 调用格式调用格式1:d=eig(A) A为方阵,且其线性独立的特征向量个数等于矩阵为方阵,且其线性独立的特征向量个数等于矩阵A的阶数,的阶数, d为方阵为方阵A的特征值排成的向量。的特征值排成的向量。 调用格式调用格式2:V,D=eig(A) 调用格式调用格式3:V,D=eig(A,nobalance) 与第与第2种格式类似,但第种格式类似,但第2种格式中先对种格式中先对A作相似变换后求作相似变换后求 矩阵矩阵A的特征值和特征向量,而格式的特征值和特征向量,而格式3直接求矩阵直接求矩阵A的特征值和的特征值和 特征向量。特征向量。 求矩阵求矩阵A的全部
36、特征值,构成对角阵的全部特征值,构成对角阵D,并求,并求A的特征向量的特征向量 构成构成V的列向量。的列向量。 a=1 2 3;4 5 6;7 8 9; v,d=eig(a) v = 特征向量矩阵特征向量矩阵 -0.2320 -0.7858 0.4082 -0.5253 -0.0868 -0.8165 -0.8187 0.6123 0.4082 d = 特征值矩阵特征值矩阵 16.1168 0 0 0 -1.1168 0 0 0 -0.0000 例例2 用用3种不同的格式求种不同的格式求A的特征值和特征向量。的特征值和特征向量。 命令如下:命令如下: A=1,2,2;1,-1,1;4,-12,
37、1; E=eig(A) E = 1.0000 -0.0000 + 1.0000i -0.0000 - 1.0000i V,D=eig(A) V = 0.9045 -0.7255 -0.7255 0.3015 -0.2176 - 0.0725i -0.2176 + 0.0725i -0.3015 0.5804 - 0.2902i 0.5804 + 0.2902i D = 1.0000 0 0 0 -0.0000 + 1.0000i 0 0 0 -0.0000 - 1.0000i V,D=eig(A,nobalance) V = -1.0000 -0.5280 - 0.4720i -0.5280
38、+ 0.4720i -0.3333 -0.1112 - 0.1944i -0.1112 + 0.1944i 0.3333 0.6112 + 0.1664i 0.6112 - 0.1664i D = 1.0000 0 0 0 -0.0000 + 1.0000i 0 0 0 -0.0000 - 1.0000i 例如,对于矩阵例如,对于矩阵 A=0 1;-1 0; eig(A) 将给出将给出 ans = 0 + 1.0000i 0 - 1.0000i 如前所见,如前所见,eig(A)产生一个列向量,其元素由产生一个列向量,其元素由A的特征值组成。的特征值组成。 而下列双变量语句:而下列双变量语句:
39、V,D=eig(a) 将产生特征向量的特征值。对角矩阵将产生特征向量的特征值。对角矩阵D的对角元素为特征值,的对角元素为特征值, V的各列则是相应的特征向量。的各列则是相应的特征向量。 V,D=eig(A) V = 0.7071 0.7071 0 + 0.7071i 0 - 0.7071i D = 0 + 1.0000i 0 0 0 - 1.0000i 3-7求解代数方程组求解代数方程组 常见的方程分代数方程和微分方程两种,对于方程的求解,常见的方程分代数方程和微分方程两种,对于方程的求解, MATLAB中提供了一个求解线性代数方程组的函数中提供了一个求解线性代数方程组的函数linsolve,
40、 其调用格式为:其调用格式为: linsolve(A,b) 求的是线性方程组求的是线性方程组AX=b的解的解 例:求线性方程组例:求线性方程组AX=b的解。的解。 解方程组解方程组(1)的命令如下:的命令如下: A=34,8,4;3,34,3;3,6,8; b=4;6;2; X=linsolve(A,b) %调用调用linsolve函数求函数求(1)的解的解 Ab %用另一种方法求用另一种方法求(1)的解的解 X = 138/2045 66/409 212/2045 ans = 0.0675 0.1614 0.1037 例:求线性方程组的解。例:求线性方程组的解。 在在MATLAB命令窗口,输
41、入命令:命令窗口,输入命令: A=2,2,-1,1;4,3,-1,2;8,5,-3,4;3,3,-2,2;b=4,6,12,6; x=linsolve (A,b) x = 1 1 -1 -1 作业:求下列线性方程组的解作业:求下列线性方程组的解A*X=b。用三种方法实现。用三种方法实现 A=2,7,3,1;3,5,2,2;9,4,1,7;b=6,4,2; 2求解非线性方程组用求解非线性方程组用solve 函数函数 solve 函数用于求解非线性代数方程的根。函数用于求解非线性代数方程的根。 调用格式:调用格式: g=solve(eq) 缺省情形下,采用系统默认的未知数。缺省情形下,采用系统默认
42、的未知数。 g=solve(eq1,eq2,eqn) %解方程组解方程组 例:例: syms a b c x y u v %用用syms表示引出的为符号表示引出的为符号 x,y=solve(x2+x*y+y=3,x2-4*x+3=0)%表示解的是表示解的是 二元一次方程组二元一次方程组 x = 1 3 y = 1 -3/2 solve(a*x2+b*x+c=0) % 即即solve(a*x2+b*x+c),求的是,求的是 %x的的 值,值, ans = 1/2/a*(-b+(b2-4*a*c)(1/2) 1/2/a*(-b-(b2-4*a*c)(1/2) 在上面的在上面的solve函数中,没有
43、指定未知数,由系统默认确定为函数中,没有指定未知数,由系统默认确定为x。 我们还可以自己来指定函数中的未知参数,如下例中指定我们还可以自己来指定函数中的未知参数,如下例中指定b 为为 未知数。未知数。 solve(a*x2+b*x+c,b) %后面的后面的b表示指定表示指定b为未知数为未知数 ans = -(a*x2+c)/x 在上面的方程中都确认为多项式的值为在上面的方程中都确认为多项式的值为0,当然也可以给多项,当然也可以给多项 式附其他值,如:式附其他值,如: solve(p*sin(x)=r) ans = asin(r/p) %asin表示反正弦表示反正弦 例:例: 解方程。解方程。
44、命令如下:命令如下: x=solve(1/(x+2)+4*x/(x2-4)=1+2/(x-2),x) %解方程解方程(1) f=sym(x-(x3-4*x-7)(1/3)=1); x=solve(f) %解方程解方程(2),等于,等于solve(x-(x3-4*x-7)(1/3)=1); x=solve(2*sin(3*x-pi/4)=1) %解方程解方程(3) x=solve(x+x*exp(x)-10,x) %解方程解方程(4)。仅标出方程的左端。仅标出方程的左端 x = 1 x = 3 x = 5/36*pi x = 1.6335061701558463841931651789789 例
45、:求方程组的解。例:求方程组的解。 命令如下:命令如下: x y=solve(1/x3+1/y3=28,1/x+1/y=4,x,y) %解方程组解方程组(1) x = 1 1/3 y = 1/3 1 x v=solve(x2+y2-5,2*x2-3*x*y-2*y2) %解方程组解方程组(4) x = -1 1 2 -2 v = 2 -2 1 -1 对于多项式:对于多项式:p(x)=a0 xn+a1xn-1+a2xn-2+an-1x+an 可以用行向量可以用行向量p=a0 a1 a2an-1 an来表示。来表示。 例如:多项式例如:多项式p(x)=x3+5x2-6 可以用可以用p=1,5,0,
46、-6来表示。来表示。 注意:对于系数为注意:对于系数为0的项,必须用的项,必须用0来填充。来填充。 行向量中各元素按照多项式项的次数从高到低排列。行向量中各元素按照多项式项的次数从高到低排列。 在在MATLAB中,是使用行向量来表示多项式的系数。中,是使用行向量来表示多项式的系数。 MATLAB提供了一些处理多项式的基本函数,如表提供了一些处理多项式的基本函数,如表3-1所示:所示: 3-8 多项式多项式 3-8-1多项式的表示和处理多项式的函数多项式的表示和处理多项式的函数 表表3-1 MATLAB中的多项式函数中的多项式函数 函函 数数 名名 称称说说 明明 conv求多项式乘法求多项式乘
47、法 deconv求矩阵多项式除法求矩阵多项式除法 poly求矩阵特征多项式的系数求矩阵特征多项式的系数 polyfit求多项式的拟合曲线求多项式的拟合曲线 polyder求多项式的一阶导数求多项式的一阶导数 polyval求多项式值求多项式值 polyvalm求矩阵多项式的值求矩阵多项式的值 residue求部分分式展开式求部分分式展开式 roots求多项式的根求多项式的根 利用函数利用函数roots就可以求出一个多项式的根。就可以求出一个多项式的根。 调用格式:调用格式:roots(A) 利用函数利用函数poly就可以计算出多项式的系数。就可以计算出多项式的系数。 调用格式:调用格式:pol
48、y(R) p=1 5 0 -6; r=roots(p) %求多项式的根求多项式的根 r = -4.7321 -1.2679 1.0000 3-8-2 多项式的根和系数多项式的根和系数 利用命令利用命令q=poly(r),可以由特征方程的根,重新,可以由特征方程的根,重新 组合成原来的多项式。组合成原来的多项式。 必须注意条件是:原来的必须注意条件是:原来的 多项式是首一多项式。多项式是首一多项式。 p1 = 1.0000 5.0000 -0.0000 -6.0000 p1=poly(r) %求多项式的系数求多项式的系数 p=2,3,4,5; 又如:又如: r=roots(p) r = -1.3
49、711 -0.0644 + 1.3488i -0.0644 - 1.3488i q=poly(r) q = 1.0000 1.5000 2.0000 2.5000 多项式求值多项式求值 求多项式求多项式p(x)在某点或某些点的函数值的函数是在某点或某些点的函数值的函数是 polyval(P,x)。若。若x为一数值,则求多项式在该点的值;若为一数值,则求多项式在该点的值;若 x为向量或矩阵,则对向量或矩阵中的每个元素求其多项为向量或矩阵,则对向量或矩阵中的每个元素求其多项 式的值。式的值。 例:例: 已知一个多项式,计算:已知一个多项式,计算: (1)计算计算f(x)=0 的全部根。的全部根。
50、(2)由方程由方程f(x)=0的根构造一个多项式的根构造一个多项式g(x),并与,并与f(x)进行对比。进行对比。 (3)计算计算f(5)、f(7.8)、f(9.6)、f(12.3)的值。的值。 命令如下:命令如下: P=3,0,4,-5,-7.2,5; X=roots(P) %求方程求方程f(x)=0的根的根 G=poly(X) %求多项式求多项式g(x) X = -0.3046 + 1.6217i -0.3046 - 1.6217i -1.0066 1.0190 0.5967 G = 1.0000 0.0000 1.3333 -1.6667 -2.4000 1.6667 f = 1.0e+
51、005 * 0.0972 0.8816 2.4763 8.5120 X0=5,7.8,9.6,12.3; f=polyval(P,X0) 3-8-3 多项式的值和特征多项式多项式的值和特征多项式 函数函数polyval用来计算未知数取某个特定值时多项式的值。用来计算未知数取某个特定值时多项式的值。 调用格式:调用格式:polyval(p,x) p=2 0 -5 1 %输入一个多项式输入一个多项式 p = 2 0 -5 1 polyval(p,1) %计算计算x=1时多项式的值时多项式的值 ans = -2 函数函数poly可以用来计算矩阵特征多项式的系数可以用来计算矩阵特征多项式的系数 a=1
52、 3 6;3 -2 0;9 1 1; %输入一个矩阵输入一个矩阵 p=poly(a) %计算矩阵的特征多项式计算矩阵的特征多项式 p = 1.0000 -0.0000 -66.0000 -115.0000 r=roots(p) %计算特征多项式的根计算特征多项式的根 r = 8.8850 -7.0488 -1.8362 q=eig(a) %用函数用函数eig直接求矩阵的特征值直接求矩阵的特征值 q = 8.8850 -7.0488 -1.8362 利用两种方法求得的特征值相同利用两种方法求得的特征值相同 即:矩阵的特征方程的根与矩阵的特征值是相同的。矩阵即:矩阵的特征方程的根与矩阵的特征值是相
53、同的。矩阵A 的特征方程系数由下列命令计算得到:的特征方程系数由下列命令计算得到:p=poly(A) 求两个多项式的积,可以使用函数求两个多项式的积,可以使用函数conv 调用格式:调用格式:conv(A,B) 这里的这里的A和和B为两个多项式。为两个多项式。 求两个多项式的商,可以使用函数求两个多项式的商,可以使用函数deconv 调用格式:调用格式:q,r=deconv(A,B) 这里这里A为被除多项式,第二个参数为被除多项式,第二个参数B作为除数。作为除数。 第一个输出参数第一个输出参数q返回一个向量,表示这两个多项式的商;返回一个向量,表示这两个多项式的商; 第二个参数返回一个向量,表示多项式除法的余数;第二个参数返回一个向量,表示多项式除法的余数; 如果如果r=0,则表示多项式,则表示多项式A可被多项式可被多项式B整除。整除。 多项式的乘法和除法有时也被称为多项式的卷积和解卷积。多项式的乘法和除法有时也被称为多项式的卷积和解卷积。 3-8-4 多项式的乘法和除法多项式的乘法和除法 a=2 4 3; %输入多项式输入多项式
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025关于建筑工程项目的施工合同
- 2025创新技术专利许可合同范本
- 2025汽车买卖合同书参考范文
- 个人与企业租车合同协议书
- 电工技能培训-21继电接触控制系统
- 【安全员台账】企业消防安全标准化管理
- 矿井安全监控系统培训课件
- 2025版企业咨询服务管理合同范本
- 2025合作协议合同样本范本
- 煤矿地质基础知识
- 设备维修规程
- 西川煤矿整合区矿山地质环境保护与土地复垦方案
- Unit 6 Lesson 1 A Medical Pioneer教学设计 高中英语北师大版(2019)必修第二册
- 英语答题卡2023年全国小学生英语能力测评(NEPTP)低年级组
- 国家开放大学《哲学基础》形考任务1-3参考答案
- 输电线路外力破坏危害及特点
- 医院工作中常见的法律风险和对策专家讲座
- (完整word版)扣字词汇124
- 升压站建筑工程施工作业指导书
- GB/T 24825-2009LED模块用直流或交流电子控制装置性能要求
- 2023年湖南公务员面试真题及解析汇总
评论
0/150
提交评论