《用C语言实现解线性方程组的高斯消去法》由会员分享,可在线阅读,更多相关《用C语言实现解线性方程组的高斯消去法(2页珍藏版)》请在人人文库网上搜索。

1、数学学习与研究2009.7数学学习与研究2009.7 【摘要】 介绍了如何用C语言实现线性方程组的高斯 消去法的解法,其有效性已在Turbo C中得到了验证. 【关键词】 高斯消去法;C语言;线性方程组 在科学和工程计算中,应用最广泛的是求解线性方程 组的解,而高斯消去法是求解线性方程组的最常用的方法 之一1,但其矩阵的计算量非常大,对于维数较少的矩阵可 以用手工计算而得,但对于多维的矩阵,用手工计算已经显 得不可能.下面给出用C语言求解线性方程组的一种方法. 1.高斯消去法(Gauss Elimination)的解题思路 高斯消去法实质上分成两部分:一是利用列运算将矩 阵A代成上三角矩阵;二。

2、是反代(Backward Substitution)来 求得所要的答案.矩阵的基本列运算规则为:(1)任一列均 可乘以一非零的常数;(2) 将任一列乘以一常数后加到其 他列;(3)可任意对调任两列2. n维线性方程组常记为: a11x1+ a12x2+ a1nxn= d1 a21x1+ a22x2+ a2nxn= d2 an1x1+ an2x2+ annxn= dn ? ? ? ? ? ? ? ? ? ? ? (1) 用矩阵表示为: A X aijnnxin1din1(2) 例如: 2x1- 3x2+ 5x3= 10 圯 Row1 4x1+ 5x2+ 7x3= 20 圯 Row2 3x1- 6。

3、x2+ 9x3= 30 圯 Row 圯 3 (3) 经两次列运算后: 4 2 (R1)(R2)R2 3 2 (R1)(R3)R3 得到: 2x1- 3x2+ 5x3= 10 圯 Row1 11x2-3x3= 0 圯 Row2 3 2 x2+ 3 2 x3= 15 圯 Row ? ? ? ? ? ? ? ? ? ? ? 3 (4) 再进行以下的列运算: 3 2 3 3 1 11 3 3(2)(R3) 可以得到: 2x1- 3x2+ 5x3= 10 圯 Row1 11x2-3x3= 0 圯 Row2 + 24 22 x3= 15 圯 Row ? ? ? ? ? ? ? ? ? ? ? 3 (5) 。

4、反代得到解答: Row 3:x3 15 24 22 2 3 (6) Row 2:x2 3 x3 11 (7) Row 1:x1 (5x3 3x2) 2 (8) 2.以三维矩阵为例找出计算机解题的思路 消去法的过程 a11a12a13 a21a22a23 a31a32a33 33 d1 d2 d3 33 (9) 第一步计算: - a21 a11 R1 + R2圯R2(10) - a31 a11 R1 + R3圯R3(11) 得到新的矩阵为: a11a12a13 0a22a23 0a32a33 33 d1 d2 d3 3 3 (12) 接着进行第二步的列运算: - a32 a22 R1 + R3圯。

5、R3(13) 得到新矩阵: a11a12a13 0a22a23 00a33 33 d1 d2 d3 3 3 (14) 反代: x3= d3 a33 (15) x2= d2 - a23x3 a22 (16) x1= d1- a13x3-a12x2 a11 (17) 3. n维线性方程式解的演算法 高斯消去法: (1) 由第一行开始至第n1行,j1,to n1; (2) 由第j1列至第n列,ij1 to n; (3) 由第一行至第n行,k1,n . aik= aik- aij ajj (18) di= di- bjaij ajj (19) 反代法: xn= bn ann (20) 由jn1至1 x。

6、j= bj(21) For kn to j1 xj= xj- ajkbk(22) xj= xj ajj (23) 4. n维线性方程式解的C程序范例 include stdioh 用 C 语言实现解线性方程组的高斯消去法 黄良斌 (南通纺织职业技术学院信息系,江苏 南通226007) R1 R2 R3 R1 R2 R3 R1 R2 R3 ZHUANTI YANJIU 专 题 研 究 104 数学学习与研究2009.7数学学习与研究2009.7 定存在,但lim (xx0) (x) f(x) g(x) 不存在时,lim (xx0) (x) f(x) g(x) 也可能存在.此 时,只能说明洛必达法。

7、则失效,此种题型不能使用洛必达法则. 正解lim x x + sin x x = lim x 1+ sin x x xx=1+ lim x sin x x = 1. 3.连续使用洛必达法则时忽视逐步检验 例7求lim x1 x3- 3x + 2 x3- x2- x + 1 . 错解lim x1 x3- 3x + 2 x3- x2- x + 1 = lim x1 3x2- 3 3x3- 2x - 1 = lim x1 6x 6x -2 = lim x1 6 6 = 1. 分析此题在连续使用两次洛必达法则后, 得到的式 子lim x1 6x 6x -2 已经不再是未定式,因而不能再连续使用洛必 达。

8、法则.应用洛必达法则求极限时必须每步都做检查,一 旦发现不是定理要求的两种未定式,就要停止使用,改用 其他方法求极限. 正解lim x1 x3- 3x + 2 x3- x2- x + 1 = lim x1 3x2- 3 3x3- 2x - 1 = lim x1 6x 6x -2 = 3 2 . 洛必达法则在极限理论中有着重要意义,应用洛必达 法则求极限,要想达到熟练准确,不仅要熟练掌握洛必达 法则的结论,还要特别注意法则的条件要求.总之,通过以 上例题的讨论使学生对法则有了更深入的理解, 从而提高 了学生应用洛必达法则解决问题的能力. 【参考文献】 1 雒志江应用洛必达法则中常见问题分析J山西。

9、 大同大学学报,2008,24(5):1113 2 刘振忠,于晓秋高等数学M北京: 中国农业出 版社,2007(8) 3 同济大学数学教研室高等数学第4版M北京: 高等教育出版社,2005 include stdlibh include mathh define dim 10 定义最大的维数10, 为防止计算值 溢出 double adim1dim1,bdim1,xdim1; 定 义双精度数组 mprint(int,int,doubledim1,double); main() int n,i,j,k; double temp; printf(“请输入方程的维数n”); scanf(“d”,n)。

10、; if(ndim)printf(“错误:元数超过初设定的值 dn”,dim); exit(0); printf(“开始输入各元素的值:”); for(i1;in;i)for(j1;jn;j)printf (“请输入元数ad,d”,i,j); scanf(“lf”,aij); printf(“请输入常数bd”,i); scanf(“lf”,bi); mprint(n,n,a,b); 调用打印结果函数 *开始用高斯法计算* for(j1;j n1;j)for(ij1;in;i) tempaijajj; for(k1;kn;k) aik aik temp*ajk; bi bi tempbj; mp。

11、rint(n,n,a,b); 调用打印结果函数 *开始反代* xnbnann; for(jn1;j1;j)xjbj; for(kn;kj1;k) xj xjxkajk; xj xjajj; for(j1;jn;j)printf(“xd105en”,j,x j); *打印结果函数* mprint(int m,int n,double adim1dim1,double b dim1) int i,j; for(i1;im;i) for(j1;jn;j) printf(“105e”,aij); 按科学记数法显示输出 printf(“n”); 5.结束语 高斯消去法的计算量非常大,在实际使用中最好能借 助于计算机来运算,而对于10维以上的线性方程组来说, C语言中定义的双精度数值可能也不能计算, 在计算速度 方面也有所欠缺, 故而要考虑用其他方法如: 迭代法、高 斯塞德尔迭代法等来求解. 【参考文献】 1 杨先娣,滕冲,吴黎兵等用Matlab语言实现线性 方程组的全主元三角分解法 J数理医药学杂志,2001 (4):302303. 2 陈祖明主编矩阵论引论M北京:北京航空航天 大学出版社,1998(7). (接103页) ZHUANTI YANJIU 专 题 研 究 105。

c语言高斯法解方程,用C语言实现解线性方程组的高斯消去法相关推荐

  1. 如何利用python解方程_如何用python解方程

    用Python解数学方程,需要用到Python的一个库--SymPy库.SymPy是符号数学的Python库,它的目标是成为一个全功能的计算机代数系统,同时保持代码简洁.易于理解和扩展. 如果你的电脑 ...

  2. 带x的分数解方程计算机,五年级分数解方程

    <五年级分数解方程>由会员分享,可在线阅读,更多相关<五年级分数解方程(3页珍藏版)>请在装配图网上搜索. 1.4/9+x=1x-3/4=5/6x+1/6=4/33/4+x=7 ...

  3. matlab解方程的程序,matlab算法程序解方程.ppt

    <matlab算法程序解方程.ppt>由会员分享,可在线阅读,更多相关<matlab算法程序解方程.ppt(10页珍藏版)>请在人人文库网上搜索. 1.一 般 的 代 数 方 ...

  4. matlab解方程实验,MATLAB实验一解线性方程组的直接法

    MATLAB实验一解线性方程组的直接法 实 验 报 告 课程名称 数值分析 实验项目 解线性方程组的直接法 专业班级 姓 名 学 号 指导教师 成 绩 日 期 月 日 一. 实验目的 1. 掌握程序的 ...

  5. 高斯消元法解方程matlab程序,用高斯消元法解线性方程组 的MATLAB程序

    %function [RA,RB,n,X]=gaus(A,b) A=[1 2 3; 1 4 9; 1 8 27]; b=[ 1 2 3 ]; B=[A b]; n=length(b); RA=rank ...

  6. matlab解方程最值点,MATLAB解方程与函数极值

    1.线性方程数值求解 主要是用到了计算方法里的LU分解等不过是加快了求解速度而已相对于inv(A)*b或者A\b 2.非线性方程数值求解 1 单变量非线性方程求解 在MATLAB中提供了一个fzero ...

  7. 用c语言定义一个分式方程,计算机C语言实验报告(00001)

    1.C语言实验报告专 业 _年 级 _学 号 _学生姓名 _指导老师 _华中师范大学信息管理系编I 实验要求1每次实验中有若干习题,每个学生至少应该完成其中的三道习题.2上机之前应作好充分的准备工作, ...

  8. matlab 解函数方程,MATLAB程序设计教程(7)—MATLAB解方程与函数极值

    MATLAB程序设计教程(7)--MATLAB解方程与函数极值 第7章MATLAB解方程与函数极值 7.1  线性方程组求解 7.2  非线性方程数值求解 7.3  常微分方程初值问题的数值解法 7. ...

  9. python矩阵、解方程、绘图操作

    矩阵操作 from numpy import * # 矩阵操作库 V = mat([xd,yd,zd]) # 创建13矩阵 V = V.T # 转置 V = V.I # 求逆 print(diag([ ...

  10. matlab解方程教程,MATLAB程序设计教程(7)—MATLAB解方程与函数极值

    第7章 MATLAB解方程与函数极值 7.1 线性方程组求解 7.2 非线性方程数值求解 7.3 常微分方程初值问题的数值解法 7.4 函数极值 7.1 线性方程组求解 7.1.1 直接解法 1.利用 ...

最新文章

  1. 恭喜《软件随想录》得到了大家的一致认可!
  2. 腾讯的张小龙是一个什么样的人
  3. 双代号网络图节点编号原则_『干货』二级建造师考试高频考点 双代号网络图的详细解析...
  4. Spark _26_Spark On Hive的配置
  5. 0710 mux协议的作用(ppp拨号时如何和gprs进行at指令交互)
  6. Spark源码走读1——RDD
  7. 【精心挑选】推荐几款非常棒的 jQuery 全景图片展示插件
  8. python local global_Python 变量作用域 LEGB (上)—— Local,Global,Builtin
  9. 领域驱动设计学习笔记2
  10. [WPF] TextBox Metro风格样式
  11. DirectX诊断工具怎么打开?怎么查看当前电脑所支持的DirectX版本?
  12. 你利用好网络这个工具了吗?
  13. java 开发技术,Java 后端开发技术有哪些?
  14. java 流 flush,在Java流中flush()的目的是什么?
  15. css绘制星星闪烁,web前端炫酷特效-CSS3制作环形星星发光动画
  16. 最优服务次序问题 水 NOJ1254
  17. 无页面刷新 文件上传
  18. 点云中的Chamfer distance
  19. 电路模型和电路定律(Ⅰ)
  20. 【BZOJ4864】[BeiJing 2017 Wc]神秘物质 Splay

热门文章

  1. python 更换列名
  2. 面经——嵌入式常见面试题总结100题(上)
  3. 了解速率控制模式:什么是 CBR、VBR、CRF和Capped-CRF?
  4. 浅析汽车融资租赁业务模式
  5. 和小松一起聆听遥唤根本上师
  6. 2017年6月14日中午 java.io.IOException: Premature EOF
  7. Python实现数据透视表
  8. html数据透视,Excel数据透视表使用过程中常见问题 如何在excel数据透视表中使用函数公式...
  9. boj 454 帮帮小叮当【SPFA】
  10. 微信小程序入门5-微信公众号扫码登录PC端网页