1、 C语言程序设计语言程序设计 课程设计报告课程设计报告 题目: 解非齐次线性方程组 专业: 网络工程 班级: 姓名: 指导教师: 成绩: 计算机计算机学院学院 目录 1 设计内容及要求3 1.1 设计内容.3 1.2 具体要求.3 2 概要设计.3 2.1 判断是否有解3 2.2 实现方法5 2.3 主要函数介绍6 2.4 计算非齐次线性方程组的计算程序.7 3 3 设计过程及程序代码.7 3.1 源代码7 3.2 程序运行时的屏幕信息及运行示例16 4 设计结果分析.18 5 参考文献.19 致谢19 小结20 1、设计内容设计内容及要求及要求 1.1 1.1 设计内容设计内容 采用阶梯矩阵
2、找出非齐次线性方程组的增广矩阵的秩,用大 小为未知量个数的双向栈存栈储自由未知量与非自由未知量,并 给出在微机上运行的模拟人工解题的 C 语言计算程序。 1.2 要求要求 明确课程设计的目的,能根据课程设计的要求,查阅相关文 献,为完成设计准备必要的知识; 提高学生用高级语言进行程序 设计的能力,重点提高用 C 语言进行算法编程技术水平;初步了 解软件开发的一般方法和步骤; 提高撰写技术文档的能力。 2 、概要设计概要设计 2.1 判断是否有解判断是否有解 根据线性方程组的系数矩阵与增广矩阵的秩是否相等 来判断方程组是否有解,若无解程序运行结束,若有解则进 行求解。 求系数矩阵的秩 r,增广矩
3、阵的秩 zr 方法是将增广矩化 成阶梯形,观察方程组中的哪些未知量是一般未知量,哪些 是自由未知量, 并赋一个相应的标记 vf, 对第 i 个未知量 (此 处设想常数项所对应的未知量为第 n+1 个未知量)来说,标 志函数的定义可写成下面的(2)式,这样方程组系数的矩 阵的秩就可由下面的(3)式计算,增广矩阵的秩可由下面 的(4)计算得到。 Vf(i)= 1 第 i 个未知量是一般未知量 0 第 i 个未知量是自由未知量 i=1,2,n+1 (2) (3) Zr=r+vf(n+1) (4) 若系数矩阵的秩r 等于增广矩阵的秩 zr, 则方程组有解, 否则无解。当方程组有解时从原方程组(1)中选
4、出 r 个方 程组成新的方程组(5)。 这里 line(i) i=1,2,r,i 代表新方程组 的第i个方程line(i)指出新方程组中的第i 个方程是原方程组 中的第 line(i)个方程。 aline(i)varx(j)xvarx(j)= (-aline(i) xvarx(j)+aline(i),n+1 i=1, 2.,r (6) Cijxvarx(j)= Cijxvarx(j)+ci,n+1 i=1,2,r (7) 其中其中 Cij= 由于自由未知量个数有 n-r 个,故上述方程组等 价于下面的 n-r+1 个方程组成的方程组: j=1 n r= j=1 r j=1 n j=1 r j=r+1 r aline(i)varx(j) aline(i)varx(j aline(i)varx(j aline(i)varx(j aline(i)varx(j aline(i)varx(j -aline(i)varx(j) aline(i)varx(j aline(i)varx(j al