- 1、本文档共6页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C课程设计高斯消元法求线性代数方程组的解
河北工业大学计算机软件技术基础(VC)课程设计报告
学院 管理 班级 管理104班 姓名 杨立宝 __ 学号 101707____ 成绩 __ ____
一、题目:
求线性代数方程组的解(高斯消去法)(C13)
二、设计思路
1、总体设计
1)分析程序的功能
第一:编写输入程序,通过键盘先输入对应的已知量及函数的大小n和系数a[i]和得数b[i]。
第二:编写中间程序,通过函数的调用先定义线性代数方程,然后通过程序求出方程的梯形矩阵系数,并最终得出结果。
第三编写输出程序,输出最终结果。
2)系统总体结构:设计程序的组成模块,简述各模块功能。
模块一:各函数的具体内容
A:三个输入函数,分别输入n,一维数组,二维数组。即输入已知量。
B:中间运算函数,计算是使得方程系数所成的矩阵成梯形矩阵,未知数的结果。即计算中间变量及结果。
C:最后输出函数,输出最后计算结果。
模块二:各函数原型的声明
a写头文件。
b变量声明:存放输入数据的数组的声明,存放中间变量的数组的声明,存放运算结果的数组的声明。分别存放对应数据。
c输入有关操作的文字
d函数调用,在运算中自动调用对应的函数解决对应问题。
模块三:主函数
2、各功能模块的设计:说明各功能模块的实现方法
模块一:各个函数的声明,直接声明。
模块二:各函数都通过for循环来实现各个数组之间的基本运算。
3、设计中的主要困难及解决方案
在这部分论述设计中遇到的主要困难及解决方案。
1)困难1
函数调用是怎么用?
解决方案:
仔细阅读课本,以及同学之间的讨论,和老师的帮助。
4、你所设计的程序最终完成的功能
1)说明你编制的程序能完成的功能
输入线性代数的系数后,运行程序即可得到梯形矩阵和结果。
2)准备的测试数据及运行结果
三、程序清单
如果是使用一个文件完成的程序,只需列出程序代码。
如果是使用多文件完成的程序,首先说明程序中的代码存放在哪些文件中,说明文件名(例如:本程序包含first.cpp、second.cpp、third.cpp和all.h四个文件);然后依次给出每个文件名及该文件清单,例如:
#include iostream.h
const N= 10 ;//设定矩阵大小范围
/*
* 使用已经求出的x,向前计算x(供getx()调用)
* double a[][] 系数矩阵
* double x[] 方程组解
* int i 解的序号
* int n 矩阵大小
* return 公式中需要的和
*/
double getm(double a[N][N], double x[N], int i, int n)
{
double m = 0;
int r;
for(r=i+1; rn; r++)
{
m += a[i][r] * x[r];
}
return m;
}
/*
* 解方程组,计算x
* double a[][] 系数矩阵
* double b[] 右端项
* double x[] 方程组解
* int i 解的序号
* int n 矩阵大小
* return 方程组的第i个解
*/
double getx(double a[N][N], double b[N], double x[N], int i, int n)
{
double result;
if(i==n-1) //计算最后一个x的值
result = double(b[n-1]/a[n-1][n-1]);
else //计算其他x值(对于公式中的求和部分,需要调用getm()函数)
result = double((b[i]-getm(a,x,i,n))/a[i][i]);
return result;
}
void main()
{
//double a[N][N] = {{2},{1,3,2},{1,2,2}};
//double b[N] = {4,6,5};
double a[N][N]; //系数矩阵
double b[N]; //右端项
double x[N]; //方程组解
int i,j,k;
int n=N; //矩阵大小
/*用户手工输入矩阵*/
cout请输入系数矩阵的大小:;
cinn;
cout请连续输入矩阵值:;
for(i=0; in
您可能关注的文档
- 结合实例分析绿色施工在建筑工程中的应用.doc
- 考虑文化差异的UI地域性研究以电影公司网页界面为例.doc
- 艰难的复苏—美国当前经济形势分析与展望.doc
- 网球双打比赛中常用战术探析.doc
- 芒果采后生理及贮藏保鲜技术研究进展.doc
- 营业网点现场审计的难点与对策.doc
- 胰岛素早相分泌与餐后血糖的关系.doc
- 血液透析室医院感染的原因及预防.doc
- 研究生高等分离工程课程绿色化提升的初步探索.doc
- 视频多画面合成器的设计与实现.docx
- 四川省德阳市罗江中学2025届高三考前热身化学试卷含解析.doc
- 山东省枣庄现代实验学校2025届高三下学期第五次调研考试化学试题含解析.doc
- 吉林省长春市十一高中等九校教育联盟2025届高三一诊考试生物试卷含解析.doc
- 2025届江苏省盐城市伍佑中学高考仿真模拟化学试卷含解析.doc
- 2025届广西贺州中学高考冲刺押题(最后一卷)生物试卷含解析.doc
- 安徽省池州市贵池区2025届高三第一次模拟考试生物试卷含解析.doc
- 宁夏银川一中2025届高三(最后冲刺)化学试卷含解析.doc
- 广东省广州市增城区四校联考2025届高考压轴卷化学试卷含解析.doc
- 2025届邯郸市第一中学高考生物必刷试卷含解析.doc
- 2025届安徽省安庆市石化第一中学高考仿真卷化学试卷含解析.doc
文档评论(0)