- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
计算机学院 《C语言程序设计》课程设计报告
PAGE 20
专业资料
word完美格式
学号
160822020320
2016-2017学年 第2学期
《C语言程序设计》
课程设计报告
题目:
解非齐次线性方程组
专业:
网络工程
班级:
16(3)班
姓名:
代应豪
指导教师:
代美丽
成绩:
计算机学院
2017年4月21日(课外的,第十周答辩和总结)
2017年5月21日(课内的,第十四周答辩和总结)
目录
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 设计内容
采用阶梯矩阵找出非齐次线性方程组的增广矩阵的秩,用大小为未知量个数的双向栈存栈储自由未知量与非自由未知量,并给出在微机上运行的模拟人工解题的C语言计算程序。
要求
明确课程设计的目的,能根据课程设计的要求,查阅相关文献,为完成设计准备必要的知识; 提高学生用高级语言进行程序设计的能力,重点提高用C语言进行算法编程技术水平;初步了解软件开发的一般方法和步骤; 提高撰写技术文档的能力。
2 、概要设计
2.1 判断是否有解
根据线性方程组的系数矩阵与增广矩阵的秩是否相等来判断方程组是否有解,若无解程序运行结束,若有解则进行求解。
求系数矩阵的秩r,增广矩阵的秩zr 方法是将增广矩化成阶梯形,观察方程组中的哪些未知量是一般未知量,哪些是自由未知量,并赋一个相应的标记vf,对第i个未知量(此处设想常数项所对应的未知量为第n+1 个未知量)来说,标志函数的定义可写成下面的(2)式,这样方程组系数的矩阵的秩就可由下面的(3)式计算,增广矩阵的秩可由下面的(4)计算得到。
nVf(i)={1 第i个未知量是一般未知量0 第i 个未知量是自由未知量 i=1,2…,n+1 (2)
n
r=
r=
?
j=1 (3)
j=1
Zr=r+vf(n+1) (4)
若系数矩阵的秩r 等于增广矩阵的秩zr,则方程组有解,否则无解。当方程组有解时从原方程组(1)中选出r 个方程组成新的方程组(5)。这里line(i) i=1,2,…r,i代表新方程组的第i个方程line(i)指出新方程组中的第i个方程是原方程组中的第line(i)个方程。
j=1n?r?
j=1
n
?
r
?
j=1 aline(i)varx(j)xvarx(j)= (-aline(i) xvarx(j))+aline(i),n+1 i=1,
j=1
2.…,r (6)
r?j=1r
r
?
j=1
r
j=r+1? Cijxvarx(j)= Cijxvarx(j)+ci,n+1 i=1,2
j=r+1
?
1≤j
1≤j≤r
aline(i)varx(j) j
{
r+1≤
r+1≤j≤n,i=1,2…,r
-aline(i)varx(j))
aline(i)varx(j)
aline(i)varx(j)
J
J=n+1
由于自由未知量个数有n-r个,故上述方程组等
价于下面的n-r+1个方程组成的方程组:
{
{
k=1,…
k=1,…,n-r+1
C11xk,varx(1)+…+C1rxk,varx(x)=c1,r+kj
Cr,1
Cr,1xk,varx(1)+…+cr rxk, varx(r)=cr,r+k
……………………………………………………
当 k=1,…,r时求得的是基础解系,当k=n-r+1 时求得的是特解。
第k个解得分量xk,varx(j)=Dk,varx(j)/D j=1,2,…,r,k=1,2,…,n-r+1,D是上式的系数行列式,上式中用等号Dk,varx(j)右边的常数项代替第j 列元素后所得到的行列式。
2.2 实现方法
Vf(i)的值在将增广矩阵化成阶梯形的过程中实现,其初值vf(i)=0,i=1,2…,n+1。
Line(i)的值也在将增广矩阵化成阶梯形的过程中实现,其初值为line(i)=I,i=1,2,…,m。
Varx(i)指(7)式中第i个未知量xvarx(i)是(1)式中的第varx(i)个未知量。
Vf,line,varx在程序中为一维数组。
系数矩阵与增广矩阵都用数组a表示,在求矩阵的秩时使用数组b(由
文档评论(0)