《线性代数中的数值计算问题.pptx》由会员分享,可在线阅读,更多相关《线性代数中的数值计算问题.pptx(31页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、会计学 1线性代数中的数值计算问题n n 在MATLAB命令窗口,先输入下列命令构造系数矩阵A和右端向量b:n n A=2-5 4;1 5-2;-1 2 4n n A=2-5 4n n 1 5-2n n-1 2 4n n b=5;6;5n n b=5n n 6n n 5n n 然后只需输入命令x=Ab即可求得解x:n n x=Abn n x=2.7674n n 1.1860n n 1.3488第1页/共31页一、特殊矩阵的实现第2页/共31页n n 1.零 矩 阵:所有元素值为零的矩阵称为零矩阵。零矩阵可以用zeros函数实现。zeros是MATLAB内部函数,使用格式如下:n n zeros
2、(m):产生m阶零矩阵;n n zeros(m,n):产生m*n阶零矩阵,当m=n时同上;n n zeros(size(A):产生与矩阵A同样大小的零矩阵。一、特殊矩阵的实现常见的特殊矩阵有零矩阵、幺矩阵、单位矩阵、三角形矩阵等,这类特殊矩阵在线性代数中具有通用性;还有一类特殊矩阵在专门学科中有用,如有名的希尔伯特(Hilbert)矩阵、范德蒙(Vandermonde)矩阵等。第3页/共31页n n 2.2.幺矩阵 幺矩阵:所有元素值为 所有元素值为1 1的矩阵称为幺矩阵。的矩阵称为幺矩阵。幺矩阵可以用 幺矩阵可以用ones ones函数实现。它的调用格式 函数实现。它的调用格式与 与zero
3、s zeros函数一样。函数一样。n n【例 例 1 1】试 试用 用ones ones分 分别 别建 建立 立3 3*2 2阶 阶幺 幺矩 矩阵 阵、和 和与前例矩阵 与前例矩阵A A同样大小的幺矩阵。同样大小的幺矩阵。n n 用 用ones(3,2)ones(3,2)建立一个 建立一个3 3*2 2阶幺阵:阶幺阵:n n ones(3,2)ones(3,2)%一个 一个3 3*2 2阶幺阵 阶幺阵n n ans=1 1 ans=1 1n n 1 1 1 1n n 1 1 1 1一、特殊矩阵的实现第4页/共31页n n 3.3.单 单 位 位 矩 矩 阵 阵:主 主对 对角 角线 线的 的元
4、 元素 素值 值为 为1 1、其 其余 余元 元素 素值 值为 为0 0的 的矩 矩阵 阵称 称为 为单 单位 位矩 矩阵 阵。它 它可 可以 以用 用MATLAB MATLAB内 内部 部函 函数 数 eye eye建 建立 立,使 使用 用格 格式 式与 与zeros zeros相同。相同。n n 4.4.数 数 量 量 矩 矩 阵 阵:主 主对 对角 角线 线的 的元 元素 素值 值为 为一 一常 常数 数d d、其 其余 余元 元素 素值 值为 为0 0的 的矩 矩阵 阵称 称为 为数 数量 量矩 矩阵 阵。显 显然 然,当 当d=1 d=1时 时,即 即为 为单 单位 位矩 矩阵 阵
5、,故 故数 数量 量矩 矩阵 阵可 可以用 以用eye(m)eye(m)*d d或 或eye(m,n)eye(m,n)*d d建立。建立。一、特殊矩阵的实现第5页/共31页一、特殊矩阵的实现5.对 角 阵:对角线的元素值为常数、其余元素值为0的矩阵称为对角阵。我们可以通过MATLAB内部函数diag,利用一个向量构成对角阵;或从矩阵中提取某对角线构成一个向量。使用格式为diag(V)和diag(V,k)两种。设V为具有m个元素的向量,diag(V)将产生一个m阶对角阵,其主对角线的元素值即为向量的元素值;diag(V,k)将产生一个n(n=m+|k|,k为一整数)阶对角阵,其第k条对角线的元素
6、值即为向量的元素值。注意:当k0,则该对角线位于主对角线的上方第k条;当k0,该对角线位于主对角线的下方第|k|条;当k=0,则等同于diag(V)。用diag建立的对角阵必是方阵。第6页/共31页一、特殊矩阵的实现【例 2】已知向量v,试建立以向量v作为主对角线的对角阵A;建立分别以向量v作为主对角线两侧的对角线的对角阵B和C。MATLAB程序如下:v=1;2;3;%建立一个已知的向量vA=diag(v)A=1 0 0 0 2 0 0 0 3B=diag(v,1)B=0 1 0 0 0 0 2 0 0 0 0 3 0 0 0 0C=diag(v,-1)C=0 0 0 0 1 0 0 0 0
7、2 0 0 0 0 3 0第7页/共31页n n 6.6.从矩阵中提取某对角线 从矩阵中提取某对角线n n 我们也可以用 我们也可以用diag diag从矩阵中提取某对角线构 从矩阵中提取某对角线构成一个向量。设 成一个向量。设A A为 为m m*n n阶矩阵,阶矩阵,diag(A)diag(A)将 将从矩阵 从矩阵A A中提取其主对角线产生一个具有 中提取其主对角线产生一个具有min(m,n)min(m,n)个元素的向量。个元素的向量。diag(A,k)diag(A,k)的功能是:的功能是:n n 当 当k k 0 0,则将从矩阵,则将从矩阵A A中提取位于主对角线 中提取位于主对角线的上方
8、第 的上方第k k条对角线构成一个具有 条对角线构成一个具有n n-k k个元 个元素的向量;当 素的向量;当k k 0 0,则将从矩阵,则将从矩阵A A中提取位 中提取位于主对角线的下方第 于主对角线的下方第|k|k|条对角线构成一个 条对角线构成一个具有 具有m+k m+k个元素的向量;当 个元素的向量;当k=0 k=0,则等同于,则等同于diag(A)diag(A)。一、特殊矩阵的实现第8页/共31页n n【例 例3 3】已 已知 知矩 矩阵 阵A A,试 试从 从矩 矩阵 阵A A分 分别 别提 提取 取主 主对角线及它两侧的对角线构成向量 对角线及它两侧的对角线构成向量B B、C C
9、和 和D D。n n MATLAB MATLAB程序如下:程序如下:n n A=1 A=1 2 2 3;4 3;4 5 5 6;6;%建 建立 立一 一个 个已 已知 知的 的2 2 3 3阶 阶矩 矩阵 阵A An n%按各种对角线情况构成向量 按各种对角线情况构成向量B B、C C和 和D Dn n B=diag(A)B=diag(A)n n B=1 B=1n n 5 5n n C=diag(A,1)C=diag(A,1)n n C=2 C=2n n 6 6n n D=diag(A,-1)D=diag(A,-1)n n D=4 D=4一、特殊矩阵的实现第9页/共31页n n 7.7.上三角
10、阵:使用格式为 上三角阵:使用格式为triu(A)triu(A)、triu(A,k)triu(A,k)n n 设 设A A为 为m m*n n阶矩阵,阶矩阵,triu(A)triu(A)将从矩阵 将从矩阵A A中提取 中提取主对角线之上的上三角部分构成一个 主对角线之上的上三角部分构成一个m m*n n阶上三角阵;阶上三角阵;triu(A,k)triu(A,k)将从矩阵 将从矩阵A A中提取主 中提取主对角线第 对角线第|k|k|条对角线之上的上三角部分构 条对角线之上的上三角部分构成一个 成一个m m*n n阶上三角阵。注意:这里的 阶上三角阵。注意:这里的k k与 与diag(A,k)di
11、ag(A,k)的用法类似,当 的用法类似,当k k 0 0,则该对角线,则该对角线位于主对角线的上方第 位于主对角线的上方第k k条;当 条;当k k 0 0,该对,该对角线位于主对角线的下方第 角线位于主对角线的下方第|k|k|条;当 条;当k=0 k=0,则等同于,则等同于triu(A)triu(A)一、特殊矩阵的实现第10页/共31页n n 例 4】试分别用triu(A)、triu(A,1)和、triu(A,-1)从矩阵A提取相应的上三角部分构成上三角阵B、C和D。n n MATLAB程序如下:n n A=1 2 3;4 5 6;7 8 9;9 8 7;n n%构成各种情况的上三角阵B、
12、C和Dn n B=triu(A)n n B=1 2 3 B=1 2 3n n 0 5 6 0 5 6n n 0 0 9 0 0 9n n 0 0 0 0 0 0n n C=triu(A,1)C=triu(A,1)n n D=triu(A,-1)D=triu(A,-1)一、特殊矩阵的实现第11页/共31页一、特殊矩阵的实现8.下三角阵:使用格式为tril(A)、tril(A,k)tril的功能是从矩阵A中提取下三角部分构成下三角阵。用法与triu相同。第12页/共31页n n 9.9.空矩阵 空矩阵n n 在 在MATLAB MATLAB里,把行数、列数为零的矩阵定 里,把行数、列数为零的矩阵定
13、义为空矩阵。空矩阵在数学意义上讲是空的,义为空矩阵。空矩阵在数学意义上讲是空的,但在 但在MATLAB MATLAB里确实很有用的。例如 里确实很有用的。例如n n A=0.1 0.2 0.3;0.4 0.5 0.6;A=0.1 0.2 0.3;0.4 0.5 0.6;n n B=find(A1.0)B=find(A1.0)n n B=B=n n 这里 这里 是空矩阵的符号,是空矩阵的符号,B=find(A1.0)B=find(A1.0)表示 表示列出矩阵 列出矩阵A A中值大于 中值大于1.0 1.0的元素的序号。当不 的元素的序号。当不能满足括号中的条件时,返回空矩阵。另外,能满足括号中的
14、条件时,返回空矩阵。另外,也可以将空矩阵赋给一个变量,如:也可以将空矩阵赋给一个变量,如:n n B=B=一、特殊矩阵的实现第13页/共31页二、矩阵的特征值 与特征向量第14页/共31页n n 对 对于 于N N阶 阶方 方阵 阵A A,所 所谓 谓A A的 的特 特征 征值 值问 问题 题是 是:求 求数 数 和 和N N维 维非 非零 零向 向量 量x x(通 通常 常为 为复 复数 数),使之满足下式:使之满足下式:n n A A.x x=*=*x xn n 则 则称 称 为 为矩 矩阵 阵A A的 的一 一个 个特 特征 征值 值(特 特征 征根 根),而 而非 非零 零向 向量 量
15、x x为 为矩 矩阵 阵A A的 的特 特征 征值 值 所 所对 对应 应的 的特征向量。特征向量。n n 对 对一 一般 般的 的N N阶 阶方 方阵 阵A A,其 其特 特征 征值 值通 通常 常为 为复 复数 数,若 若A A为 为实 实对 对称 称矩 矩阵 阵,则 则A A的 的特 特征 征值 值为 为实数。实数。二、矩阵的特征值与特征向量第15页/共31页n n MATLAB MATLAB提 提供 供的 的内 内部 部函 函数 数eig eig可 可以 以用 用来 来计 计算 算特 特征 征值 值与 与特 特征 征向 向量 量。eig eig函 函数 数的 的使 使用 用格 格式 式
16、有 有五 五 种 种,其 其 中 中 常 常 见 见 的 的 有 有 E=eig(A)E=eig(A)、V,D=eig(A)V,D=eig(A)和 和V,D=eig(A,nobalance)V,D=eig(A,nobalance)三 三种 种,另 另外 外两 两种 种格 格式 式用 用来 来计 计算 算矩 矩阵 阵的 的广 广义 义特 特征 征值 值与特征向量:与特征向量:E=eig(A,B)E=eig(A,B)和 和V,D=eig(A,B)V,D=eig(A,B)。二、矩阵的特征值与特征向量第16页/共31页n n(1)(1)E=eig(A)E=eig(A):由 由eig(A)eig(A)返
17、 返回 回方 方阵 阵A A的 的N N个 个特 特征 征值,构成向量 值,构成向量E E;n n(2)(2)V,D=eig(A)V,D=eig(A):由 由eig(A)eig(A)返 返回 回方 方阵 阵A A的 的N N个 个特 特征 征值 值,构 构成 成N N*N N阶 阶对 对角 角阵 阵D D,其 其对 对角 角线 线上 上的 的N N个 个元 元素 素即 即为 为相 相应 应的 的特 特征 征值 值,同 同时 时将 将返 返回 回相 相应 应的 的特 特征 征向 向量 量赋 赋予 予N N阶 阶方 方阵 阵V V的 的对 对应 应列 列,且 且A A、V V、D D满足 满足A
18、A*V=V V=V*D D;n n(3)(3)V,D=eig(A,nobalance)V,D=eig(A,nobalance):本 本格 格式 式的 的功 功能 能与 与格 格式 式(2)(2)一 一样 样,只 只是 是格 格式 式(2)(2)是 是先 先对 对A A作 作相 相似 似变 变换 换(balance)(balance),然 然后 后再 再求 求其 其特 特征 征值 值与 与相 相应 应的 的特征向量;而本格式则事先不作相似变换;特征向量;而本格式则事先不作相似变换;二、矩阵的特征值与特征向量第17页/共31页n n【例 例 5 5】试 试用 用格 格式 式(1)(1)求 求下 下
19、列 列对 对称 称矩 矩阵 阵A A的 的特 特征 征值 值;用 用格 格式 式(2)(2)求 求A A的 的特 特征 征值 值和 和相 相应 应的 的特 特征 征向量,且验证之。向量,且验证之。n n A=A=n n 1.0000 1.0000 0.5000 1.0000 1.0000 0.5000n n 1.0000 1.0000 0.2500 1.0000 1.0000 0.2500n n 0.5000 0.2500 2.0000;0.5000 0.2500 2.0000;n n 执 执行 行eig(A)eig(A)将 将直 直接 接获 获得 得对 对称 称矩 矩阵 阵A A的 的三 三
20、个 个实 实特 特征值:征值:二、矩阵的特征值与特征向量第18页/共31页n n eig(A)eig(A)n n ans=-0.0166 ans=-0.0166n n 1.4801 1.4801n n 2.5365 2.5365n n 而 而下 下列 列命 命令 令则 则将 将其 其三 三个 个实 实特 特征 征值 值作 作为 为向 向量 量赋予变量 赋予变量E E:n n E=eig(A)E=eig(A)n n E=-0.0166 E=-0.0166n n 1.4801 1.4801n n 2.5365 2.5365二、矩阵的特征值与特征向量第19页/共31页三、行列式的值第20页/共31页
21、n n MATLAB MATLAB提 提供 供的 的内 内部 部函 函数 数det det用 用来 来计 计算 算矩 矩阵 阵的 的行 行列 列式 式的 的值 值。设 设矩 矩阵 阵A A为 为一 一方 方阵 阵(必 必须 须是 是方 方阵 阵),求 求矩 矩阵 阵A A的 的行 行列 列式 式值 值的 的格 格式 式为 为:det(A)det(A)。注 注意 意:本 本函 函数 数同 同样 样能 能计 计算 算通 通过 过构 构造 造出 出的 的稀 稀疏 疏矩 矩阵的行列式的值。阵的行列式的值。三、行列式的值【例 6】利用随机函数产生一个三阶方阵A,然后计算方阵之行列式的值。A=rand(3
22、)A=0.9501 0.4860 0.4565 0.2311 0.8913 0.0185 0.6068 0.7621 0.8214det(A)第21页/共31页四、矩阵求逆及其 线性代数方程组求解第22页/共31页n n 1.1.矩阵求逆 矩阵求逆n n 若方阵 若方阵A,B A,B满足等式 满足等式n n A A*B B=B*A B*A=I I(I I为单位矩阵 为单位矩阵)n n 则 则称 称A A为 为B B的 的逆 逆矩 矩阵 阵,或 或称 称B B为 为A A的 的逆 逆矩 矩阵 阵。这 这时 时A A,B B都 都称 称为 为可 可逆 逆矩 矩阵 阵(或 或非 非奇 奇异 异矩 矩
23、阵 阵、或 或满 满秩 秩矩 矩阵 阵),否 否则 则称 称为 为不 不可 可逆 逆矩阵 矩阵(或奇异矩阵、或降秩矩阵 或奇异矩阵、或降秩矩阵)。四、矩阵求逆及其线性代数方程组求解第23页/共31页n n【例 7】试用inv函数求方阵A的逆阵A-1赋值给B,且验证A与A-1是互逆的。n n A=1-1 1;5-4 3;2 1 1;A=1-1 1;5-4 3;2 1 1;n n B=inv(A)B=inv(A)n n B=B=n n-1.4000 0.4000 0.2000-1.4000 0.4000 0.2000n n 0.2000-0.2000 0.4000 0.2000-0.2000 0.
24、4000n n 2.6000-0.6000 0.2000 2.6000-0.6000 0.2000n n A*B=B*A A*B=B*An n ans=ans=n n 1.0000 0.0000 0.0000 1.0000 0.0000 0.0000n n 0.0000 1.0000 0.0000 0.0000 1.0000 0.0000n n 0.0000 0.0000 1.0000 0.0000 0.0000 1.0000四、矩阵求逆及其线性代数方程组求解第24页/共31页n n 2.2.矩阵求逆解法 矩阵求逆解法n n 利 利用 用求 求系 系数 数矩 矩阵 阵A A的 的逆 逆阵 阵A
25、 A-1-1,我 我们 们可 可以 以得 得到 到矩 矩阵 阵求 求逆 逆解 解法 法。对 对于 于线 线性 性代 代数 数方 方程 程组 组Ax Ax=b b,等号两侧各左乘,等号两侧各左乘A A-1-1,有:,有:n n A A-1-1Ax Ax=A A-1-1b bn n 由于 由于A A-1-1A A=I I,故得:,故得:n n x x=A A-1-1b b四、矩阵求逆及其线性代数方程组求解第25页/共31页n n【例 例 8 8】试 试用 用矩 矩阵 阵求 求逆 逆解 解法 法求 求解 解 例 例 7 7 中 中矩 矩阵 阵A A为系数矩阵的线性代数方程组 为系数矩阵的线性代数方程
26、组Ax Ax=b b的解。的解。n n A=1-1 1;5-4 3;2 1 1;A=1-1 1;5-4 3;2 1 1;n n b=2;-3;1;b=2;-3;1;n n x=inv(A)*b x=inv(A)*bn n x=x=n n-3.8000-3.8000n n 1.4000 1.4000n n 7.2000 7.2000四、矩阵求逆及其线性代数方程组求解第26页/共31页n n 3.3.直接解法 直接解法n n 对 对于 于线 线性 性代 代数 数方 方程 程组 组Ax Ax=b b,我 我们 们可 可以 以运 运用 用左 左除 除运 运算 算符 符“”像 像解 解一 一元 元一 一
27、次 次方 方程 程那 那样 样简 简单 单地求解:地求解:x=A x=A b bn n 当 当系 系数 数矩 矩阵 阵A A为 为N N*N N的 的方 方阵 阵时 时,MATLAB MATLAB会 会自 自行 行用 用高 高斯 斯消 消去 去法 法求 求解 解线 线性 性代 代数 数方 方程 程组 组。若 若右 右端 端项 项b b为 为N N*1 1的 的列 列向 向量 量,则 则x=A x=A b b可 可获 获得 得方 方程 程组 组的 的数 数值 值解 解x x(N N*1 1的 的列 列向 向量 量);若 若右 右端 端项 项b b为 为N N*M M的 的矩 矩阵 阵,则 则x=
28、A x=A b b可 可同 同时 时获 获得 得同 同一 一系 系数 数矩 矩阵 阵A A、M M个 个方 方程 程组 组数 数值 值解 解x x(为 为N N*M M的 的矩 矩阵),即 阵),即x(:,j)=A x(:,j)=A b(:,j)b(:,j),j=1,2,M j=1,2,M。四、矩阵求逆及其线性代数方程组求解第27页/共31页四、矩阵求逆及其线性代数方程组求解例题第28页/共31页n n 解 法 1:分 别 解 方 程 组(1)Ax=b1;(2)Ay=b2n n A=1-1 1;5-4 3;2 1 1;n n b1=2;-3;1;n n b2=3;4;-5;n n x=Ab1n
29、 n x=x=n n-3.8000-3.8000n n 1.4000 1.4000n n 7.2000 7.2000 y=Ab2 y=-3.6000-2.2000 4.4000得两个线性代数方程组的解:(1)x1=-3.8,x2=1.4,x3=7.2;(2)y1=-3.6,y2=-2.2,y3=4.4四、矩阵求逆及其线性代数方程组求解第29页/共31页n n 解法 解法2 2:将 将两个方程组连在一起求解:两个方程组连在一起求解:Az Az=b bn n b=2 3;-3 4;1-5 b=2 3;-3 4;1-5n n z=Ab z=Abn n z=z=n n-3.8000-3.6000-3.8000-3.6000n n 1.4000-2.2000 1.4000-2.2000n n 7.2000 4.4000 7.2000 4.4000n n 很 很明 明显 显,这 这里 里的 的解 解z z的 的两 两个 个列 列向 向量 量便 便是 是前 前面 面分别求得的两组解 分别求得的两组解x x和 和y y四、矩阵求逆及其线性代数方程组求解第30页/共31页
限制150内