栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

列主元高斯消去法(c语言)(可以实现所有阶的)(超级详细)

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

列主元高斯消去法(c语言)(可以实现所有阶的)(超级详细)

其实列主元高斯消去法无非就是比之前的高斯消去法多了一个判断主元这个步骤,但是里面还是有一些小细节的,比如:你要求一个3*4的增广矩阵,你的主元只需要选两次,第一次是在第一列的0.1.2里面选,第二次就会在第二列的1.2里面选,这里面需要细心一点不然会“连续互换”。其实代码实现也不会太难(本人能力有限,只会用拍照截图来给大家看一道题,大家见谅)。

下面给大家看一道例题帮助大家理解一下列主元高斯消去法:

 当然这道题也是非常简单的,但是计算机要解决的话可谓是难上加难,咱们先看下过程分析:

 当然过程很简单,下面咱们来看下代码:

​​#include    //解线性方程组//
#include
#define n 3         //n可以自行改变,可以求任意阶的方程组// 
int findmain(double a[n][n+1],int l)
{
	double max;            //定义max为去主元做准备// 
	int k;                 //定义主元所在的行数// 
	k=l;
	max=fabs(a[l][l]);     //先将第l行l列的元素定位主元,为下面的比大小做准备// 
   	for(int i=l;i=0;i--)                  //只需要循环n-2次,因为已经又了b[n-1]// 
	{
		flag++;           //循环的次数// 
		w=n-1;            //循环常量// 
		for(int j=flag;j>0;j--)         //根据flag的变化而循环// 
		{
			count=b[w]*a[i][w]+count;
			
		 
		
			
			w--;      //使a的取值往前走// 
        }
		b[i]=(a[i][n]-count)/a[i][i];
		count=0;     //count一定要清0不然的话后面没法计算了(上一次的count就会带到下一次运算当中去)// 
	//	printf("%lf=(%lf-%lf)/%lfnn",b[i],a[i][n],count,a[i][i]);
	} 
	printf("n该方程组的解是:(");    //正常输出就行// 
	for(int i=0;i 

当然给大家附上代码运行结果(大家有什么不会可以在讨论区留言,欢迎大家):

 

 

 

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/510676.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号