5.5节线性代数
5.5节 线性代数
线性代数的主要特点 0 代数问题要靠太量四刚运算来解题,当用笔算或计算器算 时,用的模型是箪个数与数的运算。 方程组的元数N愈高, 运算的次数按N的平方或立方增加,出错的概率也迅速增 长,所以笔算只能解三阶以下的问题。用这种方法去解高 阶的问题,读者就感到抽象、冗繁和枯燥。 用计算机算时,利用的是矩阵模型,它的运算对象是庞大 的数据群组成的矩阵。只要给出原始数据列成的矩阵,键 个助两是副得個護勇眉重容坚浆著整究 象化;又由于解题简捷,很容易在课程中引入并解决大量 的应用例题,使得原本枯燥的课程变得丰富精彩。 。 线性代数解决的实际问题大体上就是三类。①求线性代数 方程组(包括欠定、适定和超定)的解;②分析向量的线 集复入株方盈被笄的特症值写对角化。“卜面的例题宝碳面
线性代数的主要特点 • 代数问题要靠大量四则运算来解题,当用笔算或计算器算 时,用的模型是单个数与数的运算。方程组的元数N愈高, 运算的次数按N的平方或立方增加,出错的概率也迅速增 长,所以笔算只能解三阶以下的问题。用这种方法去解高 阶的问题,读者就感到抽象、冗繁和枯燥。 • 用计算机算时,利用的是矩阵模型,它的运算对象是庞大 的数据群组成的矩阵。只要给出原始数据列成的矩阵,键 入一、两个命令就可得出准确的结果。所以它把冗繁变成 了简明;MATLAB的作图能力很强,容易把抽象的问题形 象化;又由于解题简捷,很容易在课程中引入并解决大量 的应用例题,使得原本枯燥的课程变得丰富精彩。 • 线性代数解决的实际问题大体上就是三类。①求线性代数 方程组(包括欠定、适定和超定)的解;②分析向量的线 性相关性;③矩阵的特征值与对角化。下面的例题主要围 绕这几个方面展开
消元法的MATLAB语句 10 7 ·【例5-5-1】用矩阵的初等变换将A= 41 2 -1 9 消元为上三角阵,求等价变换乘子B,检验其行列式、秩和迹。 ·解:程序en551如下: A=[107;415;2-19];A0=A %输入A,留一备份 A(2,:)=-A(2,1)A(1,1)*A(1,:)+A(2,:);S %消去A(2,1), A1=A,B1=A1/A0 %求本次等价乘子B1 A(3,:)=-A(3,1)A(1,1)*A(1,:)+A(3,:);%消去A(3,1) A2=A,B2=A2/A1 %求本次等价乘子B2 A(3,:)=-A(3,2)/A(2,2)*A(2,:)+A(3,:);%消去A(3,2) A3=A,B3=A3/A2 %求本次等价乘子B3 B0=A3/A0 %求总的等价乘子B0
消元法的MATLAB语句 • 【例5-5-1】 用矩阵的初等变换将 消元为上三角阵,求等价变换乘子B, 检验其行列式、秩和迹。 • 解: 程序exn551如下: A=[1 0 7;4 1 5;2 -1 9]; A0=A %输入A,留一备份 A(2,: ) = -A(2,1)/A(1,1)*A(1,: )+A(2,: ); % 消去A(2,1), A1=A, B1=A1/A0 %求本次等价乘子B1 A(3,: ) = -A(3,1)/A(1,1)*A(1,: )+A(3,: ); % 消去A(3,1) A2=A, B2=A2/A1 %求本次等价乘子B2 A(3,: ) = -A(3,2)/A(2,2)*A(2,: )+A(3,: ); % 消去A(3,2) A3=A,B3=A3/A2 %求本次等价乘子B3 B0 = A3/A0 % 求总的等价乘子B0 1 0 7 4 1 5 2 -1 9 = A
从例5.5.1中要学到什么? ·请读者从三次消元中归纳出消元法的语法 规则。如果选第引行为基准行,其第k列的元 素为基准元素,要把第行的第k列的元素消 元为零,则应该执行如下运算: AG,)=-AG,k)A(,k)*A(,)+AG,) 可以专门编成一个消元子程序。 读者还可观察这几个初等变换矩阵的构成 特点。不难验证B0=B3*B2*B1。要注意, 这几个乘子相乘的次序是不能颠倒的
从例5.5.1中要学到什么? • 请读者从三次消元中归纳出消元法的语法 规则。如果选第i行为基准行,其第k列的元 素为基准元素,要把第j行的第k列的元素消 元为零,则应该执行如下运算: A(j,:)=-A(j,k)/A(i,k)*A(i,:)+A(j,:) 可以专门编成一个消元子程序。 • 读者还可观察这几个初等变换矩阵的构成 特点。不难验证B0=B3*B2*B1。要注意, 这几个乘子相乘的次序是不能颠倒的
【例5-5-2】解下列代数方程组: 6x1+X2+6x3-6x4=7 x1-X2+9x3+9x4=5 -2x1+4x2 -4X4=-7 4x1+2x2+7x3-5x4=-9 ·解:可以把线性方程组写成矩阵方程A*x=b,其中: 6 -6 X 7 X2 5 A= ,b= -24 0 -4 X: -7 427-5 -9 ·解这个矩阵方程可以用下列几种方法:
【例5-5-2】解下列代数方程组: • 解:可以把线性方程组写成矩阵方程A*x=b,其中: • 解这个矩阵方程可以用下列几种方法: 1 2 3 4 1 2 3 4 1 2 4 1 2 3 4 6x + x + 6x -6x 7 x - x + 9x + 9x 5 -2x + 4x -4x 7 4x + 2x + 7x -5x 9 = = = − = − 1 2 3 4 6 1 6 -6 7 x 1 -1 9 9 5 x , , , -2 4 0 -4 -7 x 4 2 7 -5 -9 x = = = A x b
方法一最简行阶梯法 ·用将其增广矩阵[A,b]化为最简行阶梯型。相应MATLAB 命令为rref。程序如下: ·A=[6,1,6,-6;1,-1,9,9;-2,4,0,-4;4,2,7,-5]b=[7;5;-7;-9] ·U=rref([A,b]) 。1 程序运行的结果为: 1.00 0 0 0 15.58 0 1.00 0 0 14.70 U= 0 0 1.00 0 -8.20 0 0 0 1.00 8.66 ·这个矩阵代表了以下的等价方程组,所以等式右端的四个 数也就是方程的解
方法一 最简行阶梯法 • 用将其增广矩阵[A,b] 化为最简行阶梯型。相应MATLAB 命令为rref。程序如下: • A=[6,1,6,-6;1,-1,9,9;-2,4,0,-4;4,2,7,-5]; b=[7;5;-7;-9] • U=rref([A,b]) • 程序运行的结果为: • 这个矩阵代表了以下的等价方程组,所以等式右端的四个 数也就是方程的解。 1.00 0 0 0 15.58 0 1.00 0 0 14.70 0 0 1.00 0 -8.20 U = , 0 0 0 1.00 8.66
其他方法及比较 ·方法二:用x=inv(A)*b ·方法三:用x=Ab ·在方程数与未知数数日相等的适定方程的情况下, 三种方法所得的结果是一样的。如果方程是欠定 的,则行列式det(A)O。方法二、三会得不出可 信的解,如果方程是超定的,用方法二将导致出 错警告,用方法三将得出最小二乘意义下的解。 为了在任何条件下得出可靠的结果,建议经常用 化为最简行阶梯型的方法来解方程
其他方法及比较 • 方法二:用x=inv(A)*b • 方法三:用x=A\b • 在方程数与未知数数目相等的适定方程的情况下, 三种方法所得的结果是一样的。如果方程是欠定 的,则行列式det(A)≈0。方法二、三会得不出可 信的解,如果方程是超定的,用方法二将导致出 错警告,用方法三将得出最小二乘意义下的解。 为了在任何条件下得出可靠的结果,建议经常用 化为最简行阶梯型的方法来解方程
欠定方程解例【例5-53】 把例5-5-2中第四个方程改为: 4x1+2x2+7x3-778/222x4=877/222 ,求其解。 解:输入新参数 A=[6,1,6,-6;1,-1,9,9;-2,4,0,-4;4,2,7,-778222] b=[7;5,-7;877/222]: 方法一:键入U=rref[A,b),得到 1.0000 00-1.6757 1.0676 01.0000 0 -1.8378-1.2162 U0= 0 01.0000 0.9820 0.3018 0 0 0 0 0 这个最简行阶梯形式说明原来的方程组是欠定的
欠定方程解例【例5-5-3】 把例5-5-2中第四个方程改为: ,求其解。 解:输入新参数 A=[6,1,6,-6;1,-1,9,9;-2,4,0,-4;4,2,7,-778/222]; b=[7;5;-7;877/222]; 方法一:键入U=rref([A,b]),得到 这个最简行阶梯形式说明原来的方程组是欠定的。 1.0000 0 0 -1.6757 1.0676 0 1.0000 0 -1.8378 -1.2162 0 , 0 0 1.0000 0.9820 0.3018 0 0 0 0 0 U = 1 2 3 4 4x + 2x + 7x -778/222 x 877 / 222 =
欠定方程组解的特点 它等价于下列方程组: X -1.6757x4= 1.0676 X2 -1.8378x=-1.2162 x3+0.9820x4= 0.3018 ·这是一组包括四个变量的三个有效方程。因此没有唯一的 解。其中4可以任意设定,即可以看作任意常数C,: x=1.0676+1.6757c x2=-1.2162+1.8378c x3=0.3018-0.9820c 代入不同的c可以得到不同的解,因此欠定方程组有 无数个解。这些解组成一根在空间中的直线
欠定方程组解的特点 它等价于下列方程组: • 这是一组包括四个变量的三个有效方程。因此没有唯一的 解。其中x4可以任意设定,即可以看作任意常数c,: • 代入不同的c可以得到不同的解,因此欠定方程组有 无数个解。这些解组成一根在空间中的直线。 1 4 2 4 3 4 -1.6757 = 1.0676 -1.8378 = -1.2162 +0.9820 = 0.3018 x x x x x x 1 2 3 = 1.0676 1.6757 = -1.2162 1.8378 = 0.3018 - 0.9820 x c x c x c + +
用方法二、三:键入X=inv(A)*b或X=Ab,得到: Warning:Matrix is close to singular or badly scaled. Results may be inaccurate.RCOND 3.590822e-018. ·及 4.8378 2.9189 -1.9077 ● 2.2500 计算机告诉我们,这个结果是不准确的。其原因在于矩阵 犹是说,A的迸极示不,众簧度鉴det(A-0,nkA=3。 A的行列式接近于零 条件数RC0ND=3.590822e- 018,可以得知计算结果有效数位减小的程度。MATLAB 的是有效数位是16位,现在算得的结果有效数位要减去18 位,所以得出的结果是根本不能相信的
用方法二、三:键入x=inv(A)*b或x=A\b,得到: • Warning: Matrix is close to singular or badly scaled. • Results may be inaccurate. RCOND = 3.590822e-018. • 及 • • 计算机告诉我们,这个结果是不准确的。其原因在于矩阵 A的行列式接近于零,不难检验,det(A)=0,rank(A)=3。 就是说,A的逆极小。从逆条件数RCOND = 3.590822e- 018,可以得知计算结果有效数位减小的程度。MATLAB 的是有效数位是16位,现在算得的结果有效数位要减去18 位,所以得出的结果是根本不能相信的。 4.8378 2.9189 -1.9077 2.2500 x =