实验6 线性方程组的直接解法(信息10级)

更新时间:2023-12-23 03:16:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

实验六 线性代数方程组的直接解法

实验名称:线性代数方程组的直接解法 实验类型: 验证性实验 学 时:

6.1实验环境

① 操作系统:WindowsXP/Win7 ② 编程环境:C/C++语言

6.2实验目的

① 掌握高斯消去法的基本思路和迭代步骤; ② 了解高斯消去法可能遇到的困难。

6.3实验原理和方法

6.3.1 高斯消去法基本原理。

设有方程组Ax?b,设A是可逆矩阵。高斯消去法的基本思想就是将矩阵的初等行变换作用于方程组的增广矩阵B??A?b?(即消元过程),将其中的A变换成一个上三角矩阵,然后求解这个三角形方程组(即回代过程)。

6.3.2 列主元高斯消去法算法描述 将方程组用增广矩阵B??A?b???aij?步骤1:消元过程,对k?1,2,?,n?1 (1) 选主元,找ik??k,k?1,?,n?使得

aik,k?maxaik

k?i?nn?(n?1)表示。

(2) 如果aik,k?0,则矩阵A奇异,程序结束;否则执行(3)。

kakj?aij,j?k,?,n?1。(3) 如果ik?k,则交换第k行与第ik行对应元素位置,

(4) 消元,对i?k?1,?,n,计算mik?aik/akk,对j?k?1,?,n?1,计算

aij?aij?mikakj.

步骤 2:回代过程:

(1) 若ann?0,则矩阵奇异,程序结束;否则执行(2)。 ?(2) xn?an,n?1/ann;对i?n?1,?,2,1,计算xi??ai,n?1???ax?ijj?/aii j?i?1?n6.4 实验内容和步骤

1、解方程组

1

?0.101x1?2.304x2?3.555x3?1.183???1.347x1?3.712x2?4.623x3?2.137 ??2.835x?1.072x?5.643x?3.035123?(1)编程用顺序高斯消去法求解上述方程组,记下解向量,验证所得到的解向量是否是原方程组的解,若不是原方程组的解,试分析原因,并证实你的分析的正确性!

(2)在顺序高斯消去法的程序基础上,将其改进为列主元高斯消去算法,调试通过并运行程序输出解向量,验证解向量是否是原方程组的解,写出你的结论和体会。 2、完成以下各题,

(1) 通过修改已经编译通过的顺序高斯消去算法和列主元高斯消去算法的程序计算:

?0.3?10?15x1?59.14x2?3x3?x4?59.17??5.291x1?6.13x2?x3?2x4?46.78 ?11.2x?9x?5x?2x?11234??x?2x?x?x?2234?1写出相应的计算结果,并对结果进行分析!

(2) 在已做的算例的基础上,思考为什么通常用列主元高斯消去法求解线性方程组?

6.5 练习思考

1、在解决某些问题时,方程组的系数矩阵不变,而右端的常数项不断发生变化,试问仍用列主元高斯消去算法求解有什么不足(从效率的角度考虑)?如何改进?并写出你的理由。 2、编程实现解线性方程组的LU分解算法(包括顺序高斯消去算法相对应的LU分解和列

主元高斯消去算法所对应的LU分解)程序,并对以上线性方程组进行求解

3、考虑用数值方法如何求方阵的行列式以及如何求可逆矩阵的逆矩阵?试写出算法描述,画出流程图,编程实现并用算例验证。

2

本文来源:https://www.bwwdw.com/article/9xg5.html

Top