第五讲线性代蟲中的 数值计算问题
第五讲 线性代数中的 数值计算问题
【引例】求下列三阶线性代数方程组的近似解 2x1-5x1+4x,=5 +5x2-2x2=6 +2x2+4x3=5 MATLAB程序为: b=5;6:5
【引 例 】求下列三阶线性代数方程组的近似解 − + + = + − = − + = 2 4 5 5 2 6 2 5 4 5 1 2 3 1 2 3 1 2 3 x x x x x x x x x MATLAB程序为: A=[2 -5 4;1 5 -2;-1 2 4]; b=[5;6;5]; x=A\b
在 MATLAB命令窗口,先输入下列命令构造系 数矩阵A和右端向量b: A=[254:152-124 A=2 552 424 6 然后只需输入命令x=Ab即可求得解x X=2.7674 1.1860 1.3488
在MATLAB命令窗口,先输入下列命令构造系 数矩阵A和右端向量b: A=[2 -5 4;1 5 -2;-1 2 4] A = 2 -5 4 1 5 -2 -1 2 4 b=[5;6;5] b = 5 6 5 然后只需输入命令x=A\b即可求得解x: x=A\b x = 2.7674 1.1860 1.3488
、特殊矩阵的实现
一、 特殊矩阵的实现
特殊矩阵的实现 常见的特殊矩阵有零矩阵、幺矩阵、单位矩阵、三角 形矩阵等,这类特殊矩阵在线性代数中具有通用性;还 有一类特殊矩阵在专门学科中有用,如有名的希尔伯特 ( Hilbert)矩阵、范德蒙( Vandermonde)矩阵等 1.零矩阵:所有元素值为零的矩阵称为零矩阵。零矩阵可 以用 zeros函数实现。 zeros是 MATLAB内部函数,使用格式 如下: zeros(m):产生mxm阶零矩阵; zeros(m,n):产生mxn阶零矩阵,当m=n时等同于 zeros(m); zeros(size(A):产生与矩阵A同样大小的零矩阵
1.零矩阵:所有元素值为零的矩阵称为零矩阵。零矩阵可 以用zeros函数实现。zeros是MATLAB内部函数,使用格式 如下: zeros(m):产生m m阶零矩阵; zeros(m,n):产生m n阶零矩阵,当m=n时等同于 zeros(m); zeros(size(A)):产生与矩阵A同样大小的零矩阵。 一、 特殊矩阵的实现 常见的特殊矩阵有零矩阵、幺矩阵、单位矩阵、三角 形矩阵等,这类特殊矩阵在线性代数中具有通用性;还 有一类特殊矩阵在专门学科中有用,如有名的希尔伯特 (Hilbert)矩阵、范德蒙(Vandermonde) 矩阵等
特殊矩阵的实现 2.幺矩阵:所有元素值为1的矩阵称为幺矩阵 幺矩阵可以用ones函数实现。它的调用格式与 zeros函数一样。 【例1】试用ones分别建立3×2阶幺矩阵、和与 前例矩阵A同样大小的幺矩阵 用ones(3,2)建立一个3×2阶么阵: %一个3×2阶幺阵 ans =1 111 1
2.幺矩阵:所有元素值为1的矩阵称为幺矩阵。 幺矩阵可以用ones函数实现。它的调用格式与 zeros函数一样。 【例1】 试用ones分别建立32阶幺矩阵、和与 前例矩阵A同样大小的幺矩阵。 用ones(3,2) 建立一个3 2阶幺阵: ones(3,2) % 一个32阶幺阵 ans =1 1 1 1 1 1 一、 特殊矩阵的实现
特殊矩阵的实现 3单位矩阵:主对角线的元素值为1、其余元素值为0的 矩阵称为单位矩阵。它可以用 MATLAB内部函数eye建立, 使用格式与 zeros相同 4数量矩阵:主对角线的元素值为一常数d、其余元素 值为0的矩阵称为数量矩阵。显然,当d=1时,即为单位 矩阵,故数量矩阵可以用eye(m)*d或 eye(m, n)*d建立 5对角阵:对角线的元素值为常数、其余元素值为0的 矩阵称为对角阵。我们可以通过 MATLAB内部函数dag 利用一个向量构成对角阵;或从矩阵中提取某对角线构 成一个向量。使用 格式为diag(V)和diag(Vk)两种
3.单位矩阵:主对角线的元素值为1、其余元素值为0的 矩阵称为单位矩阵。它可以用MATLAB内部函数eye建立, 使用格式与zeros相同。 4.数量矩阵:主对角线的元素值为一常数d、其余元素 值为0的矩阵称为数量矩阵。显然,当d=1时,即为单位 矩阵,故数量矩阵可以用eye(m)*d或eye(m,n)*d建立。 一、 特殊矩阵的实现 5.对角阵:对角线的元素值为常数、其余元素值为0的 矩阵称为对角阵。我们可以通过MATLAB内部函数diag, 利用一个向量构成对角阵;或从矩阵中提取某对角线构 成一个向量。使用 格式为diag(V)和diag(V,k)两种
特殊矩阵的实现 6.用一个向量V构成一个对角阵 设V为具有m个元素的向量,dag(V)将产生一个m×m 阶对角阵,其主对角线的元素值即为向量的元素值; diag(Vk将产生一个nxn(m=m+k,k为一整数)阶对角阵, 其第k条对角线的元素值即为向量的元素值。注意:当k >0,则该对角线位于主对角线的上方第k条;当k<0, 该对角线位于主对角线的下方第k条;当k=0,则等同于 diag(V)。用diag建立的对角阵必是方阵。 【例2】已知向量v,试建立以向量v作为主对角线的 对角阵A;建立分别以向量v作为主对角线两侧的对角线 的对角阵B和C MATLAB程序如下:
6.用一个向量V构成一个对角阵 设V为具有m个元素的向量,diag(V)将产生一个mm 阶对角阵,其主对角线的元素值即为向量的元素值; diag(V,k)将产生一个nn(n=m+|k|,k为一整数)阶对角阵, 其第k条对角线的元素值即为向量的元素值。注意:当k >0,则该对角线位于主对角线的上方第k条;当k<0, 该对角线位于主对角线的下方第|k|条;当k=0,则等同于 diag(V)。用diag建立的对角阵必是方阵。 一、 特殊矩阵的实现 【例2】已知向量v,试建立以向量v作为主对角线的 对角阵A;建立分别以向量v作为主对角线两侧的对角线 的对角阵B和C。 MATLAB程序如下:
特殊矩阵的实现 V=[1;2;3];%建立一个已知的向量A A-diag(v) 100 020 B-diag(v, 1) 0302 0000 000 C-diag (v, -1) 0 0100 0 020
v =[1;2;3]; % 建立一个已知的向量A A=diag(v) A= 1 0 0 0 2 0 0 0 3 B=diag(v,1) B = 0 1 0 0 0 0 2 0 0 0 0 3 0 0 0 0 C=diag(v,-1) C = 0 0 0 0 1 0 0 0 0 2 0 0 0 0 3 % 按各种对角线情况构成相应的对角阵A、B和C 一、 特殊矩阵的实现
特殊矩阵的实现 7.从矩阵中提取某对角线 我们也可以用diag从矩阵中提取某对角线构成 一个向量。设A为m×n阶矩阵,diag(A)将从矩 阵A中提取其主对角线产生一个具有min(m,n)个 元素的向量。dig(Ak)的功能是: 当k>0,则将从矩阵A中提取位于主对角线的 上方第k条对角线构成一个具有nk个元素的向量 当k<0,则将从矩阵A中提取位于主对角线的下 方第k条对角线构成一个具有m+k个元素的向量 当k=0,则等同于dig(A)
7.从矩阵中提取某对角线 我们也可以用diag从矩阵中提取某对角线构成 一个向量。设A为m n阶矩阵,diag(A)将从矩 阵A中提取其主对角线产生一个具有min(m,n)个 元素的向量。diag(A,k)的功能是: 当k>0,则将从矩阵A中提取位于主对角线的 上方第k条对角线构成一个具有n-k个元素的向量; 当k<0,则将从矩阵A中提取位于主对角线的下 方第|k|条对角线构成一个具有m+k个元素的向量; 当k=0,则等同于diag(A)。 一、 特殊矩阵的实现