野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 18926|回复: 6

【原创】高斯消元法--基于STM32串口调试(上)

[复制链接]
发表于 2015-12-8 23:00:41 | 显示全部楼层 |阅读模式
本帖最后由 hkhkdyx 于 2015-12-8 23:17 编辑

/* Created by mazirong */
/*2015-12-8 */
首先插入一张用ptc mathcad直接运算矩阵的图片
QQ截图20151208225019.png
1 高斯消去法
1.1 基本思想及计算过程
高斯(Gauss)消去法是解线性方程组最常用的方法之一,它的基本思想是通过逐步消元,把方程组化为系数矩阵为三角形矩阵的同解方程组,然后用回代法解此三角形方程组得原方程组的解。
为便于叙述,先以一个三阶线性方程组为例来说明高斯消去法的基本思想。
把方程(IV)乘()后加到方程(I)上去,把方程(IV)乘()后加到方程(II)上去,把方程(IV)乘()后加到方程(III)上去,即可消去方程(I)、(II)、(III)中的x1,得同解方程组
将方程(III)乘()后加于方程(II),将方程(III)乘()后加于方程(I),得同解方程组:
将方程(II)乘()后加于方程(I),得同解方程组:
由回代公式(3.5)得,x3 = 1,x2 = 1,x1 = 1。



1.2 编程思路
高斯消元法解线性方程组,算法很简单,但过程很复杂,我在网上几乎没看到过正确的高斯消元法C程序,有程序也是没有注释,看起来非常费力。于是我硬着头皮自己来写,花了1天时间终于完工了。以求如下行列式为例详解编程思路:
1.把第1行进行优化(优化成第1行第1列元素为1的行列式),然后用来与第2至第4行的第1列元素消为0,如图1:
图1
2.保持第1行不变。对图一中第2行元素进行优化(优化成第2行第2列元素为1的行列式),然后用来与第3行至第4行的第2列元素消为0,如图2:
图2
3.保持前2行不变。对图二中第3行元素进行优化(优化成第3行第3列元素为1的行列式),然后用来与第4行的第3列元素消为0,如图3:
图3
4.保持前3行不变。对图三中第4行元素进行优化(优化成第4行第4列元素为1的行列),如图四:
图4
5.通过回代分别求出x1、x2、x3、x4的值,如图5:
图5
1.3 具体实现过程
由于我的电脑上没有安装Visual Studio,于是使用单片机来实现,通过将程序烧录到单片机中,然后将运算的数据结果通过串口发送给上位机打印输出。运行效果如图6:
如图6
程序主要有3个文件组成:gs_elim.h,gs_elim.c,main.c。程序不限于平台,稍稍修改就能移植到其他开发环境中。


回复

使用道具 举报

发表于 2015-12-9 09:02:43 | 显示全部楼层
这个算法主要用在什么领域的?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-12-9 10:23:23 | 显示全部楼层
flyleaf 发表于 2015-12-9 09:02
这个算法主要用在什么领域的?

用于解方程组
回复 支持 反对

使用道具 举报

发表于 2015-12-9 14:45:25 | 显示全部楼层

用到高斯消元法解方程组会出现在什么领域?
会计?还是什么?
回复 支持 反对

使用道具 举报

发表于 2015-12-9 17:22:36 | 显示全部楼层
支持这样的研究。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-12-9 17:45:49 | 显示全部楼层
sagetom 发表于 2015-12-9 17:22
支持这样的研究。

谢谢支持
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-12-9 17:46:23 | 显示全部楼层
yinhao 发表于 2015-12-9 14:45
用到高斯消元法解方程组会出现在什么领域?
会计?还是什么?

我也不知道哦   只是老师上工程电磁场课让我们写这个程序  用c或者matlab
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-5-14 19:06 , Processed in 0.030065 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表