- 1、本文档共5页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
河北工业大学计算机软件技术基础(VC)课程设计报告
学院 电气及其自动化 班级 自动化C083 姓名 张志鹏 __ 学号 _086104___ 成绩 __ ____
一、题目:求解线性代数方程组的解(高斯消去法)
二、设计思路
1、总体设计
1)分析程序的功能:
通过列主元高斯消去法来求解线性代数方程组的解。
2)系统总体结构:
①系数矩阵(数组)和常数矩阵(数组)的输入;
功能:输入系数矩阵和常数矩阵组合成一个完整的矩阵-增广矩阵
②列主元高斯消去法(消元和回代)的算法
功能:完成矩阵的消去和回代
③待求变量矩阵(数组)的输出
功能:实现结果的输出
2、各功能模块的设计:
①通过独立函数void Input实现系数矩阵(数组)和常数矩阵(数组)的输入
②通过函数MakeMatrix_A, Gauss实现矩阵的消去和回代
③通过独立函数void Output实现待求变量矩阵(数组)的输出
3、设计中的主要困难及解决方案
困难:如何运用Gauss消去法
方案:Gauss消去法实质上计算三角分解的方法。大致可以分为两步:消元和回代。
1、消元和回代的算法的实现
第一步:消元(将系数矩阵经过一系列的初等变换变成上三角矩阵),方法如下:
① 方程(2) 方程(1) ,并且方程(3) 方程(1) 。得到新方程组: a11X1+a12X2+a13X3 b1 (1)
a‘22X2+a’23X3 b‘2 (4)
a‘32X2+a‘33X3 b’3 (5)
②再用类似的方法从方程(5)中消去X2的系数a‘32,得到新方程组:
a11X1+a12X2+a13X3 b1 (1)
a‘22X2+a’23X3 b‘2 (4)
a‘‘33X3 b‘‘3 (6)
第二步:回代(依次解出X3、 X2 、X1)
完成上述消元后,用回代的方法就可以从方程(6)(4)(1)中分别求出X3、 X2 、X1 2、列主元消去法,即在变换到第k步时,从第k 列akk以下(包括akk)的各元素中选出绝对值最大者,然后通过行交换将它交换到akk的位置上。因此实现消元和回代的算法的函数处理时,每次对第K行之后的方程进行消元前要进行两项操作:
① 检查方程组第K到第N行方程中的第K列上元素是否为0,若是,则方程组无解或得不到为唯一解。
② 为了使方程组的解具有较小的计算误差,必须使系数矩阵主对角线上的元素的绝对值为最大。为此,在每消去第K行、第K列上主对角线元素以下的元素时,都要检查一下主对角线上的元素是否比其下的同列元素都大,若不是最大,则把最大元素所在行调换到第K行上(把最大元素作为主对角线元素)。此项功能可单独由一个函数完成。
4、你所设计的程序最终完成的功能
1)说明你编制的程序能完成的功能:
输入方程组的系数输出方程组的解
2)准备的测试数据及运行结果
输入方程组组数:3
输入方程组各项系数:
3 2 1 14
1 1 1 10
2 3 -1 1
方程组的解是:
X[1] 1 x[2] 2 x[3] 7
三、程序清单
#include
#include
const int N 100;
void Input double *p [N],double * ;//输入函数
void Output double * ; //输出函数
void MakeMatrix_A double *p [N],double *q [N],double * ;//求增广矩阵
void Gauss double *p [N],double *q [N],double *,double * ;//高斯列主消元
int y;//方程组组数
void main double Matrix[N][N],Matrix_A[N][N],Matrix_C[N],Matrix_V[N];
Input Matrix,Matrix_C ;//输入
Gauss Matrix,Matrix_A,Matrix_C,Matrix_V ;
Output Matrix_V ;//输 void Input double *Matrix [N],double *Matrix_C //输入函数 int i,j;
cout 输入方程组组数:;
cin y;
cout 输入方程组各项系数: endl;
for i 0;i y;i++ for j 0;j y;j++ cin Matrix[i][j];
cin Matrix_C[i]; void MakeMatrix_A double *Matrix [N],double *Matrix_A [N],double *Matrix_C //求增广矩阵 int i,j;
for i 0;i y;i
您可能关注的文档
- (HSE管理文件)FREP-04-HSE-2020.doc
- (HSE管理文件)FREP-04-HSE-2021.001.doc
- (HSE管理文件)FREP-04-HSE-2021.doc
- (HSE管理文件)FREP-04-HSE-2022.doc
- (HSE管理文件)FREP-04-HSE-2023.doc
- (HSE管理文件)FREP-04-HSE-2027.doc
- (HSE管理文件)FREP-04-HSE-2029.doc
- (HSE管理文件)FREP-04-HSE-2030.doc
- (HSE管理文件)FREP-04-HSE-2031.doc
- (HSE管理文件)FREP-04-HSE-2032.doc
- GB/T 32151.38-2024温室气体排放核算与报告要求 第38 部分:水泥制品生产企业.pdf
- 中国国家标准 GB/T 32151.38-2024温室气体排放核算与报告要求 第38 部分:水泥制品生产企业.pdf
- 《GB/T 22069-2024燃气发动机驱动空调(热泵)机组》.pdf
- GB/T 22069-2024燃气发动机驱动空调(热泵)机组.pdf
- 中国国家标准 GB/T 22069-2024燃气发动机驱动空调(热泵)机组.pdf
- 中国国家标准 GB/T 11064.1-2024碳酸锂、单水氢氧化锂、氯化锂化学分析方法 第1部分: 碳酸锂含量的测定 滴定法.pdf
- GB/T 11064.1-2024碳酸锂、单水氢氧化锂、氯化锂化学分析方法 第1部分: 碳酸锂含量的测定 滴定法.pdf
- 《GB/T 11064.1-2024碳酸锂、单水氢氧化锂、氯化锂化学分析方法 第1部分: 碳酸锂含量的测定 滴定法》.pdf
- GB/T 1148-2024内燃机 铝活塞.pdf
- 中国国家标准 GB/T 1148-2024内燃机 铝活塞.pdf
文档评论(0)