C语言矩阵求逆(c语言求矩阵的局部最大值)

采用高斯消去法求逆直接上代码voidMatrix_inverse(doublearc[6][6],intn,doubleans[6][6])//计算矩阵的逆{ inti,j,k;//列 doublemax,tempA,tempB,P; intmax_num; doublearcs[6][6]; memcpy(arcs,arc,288); f…

大家好,又见面了,我是你们的朋友全栈君。

采用高斯消去法求逆

直接上代码

void Matrix_inverse(double arc[6][6], int n, double ans[6][6])//计算矩阵的逆
{
	int i, j, k;//列
	double max, tempA, tempB, P;
	int max_num;
	double arcs[6][6];
	memcpy(arcs, arc, 288);
	for (i = 0; i < n; i++)
	{
		ans[i][i] = 1;
	}
	for (i = 0; i < n; i++)//第i列
	{
		max = fabs(arcs[i][i]);
		max_num = i;
		for (j = i + 1; j < n; j++)//选出主元
		{
			if (fabs(arcs[j][i]) > max)
			{
				max = fabs(arcs[j][i]);
				max_num = j;
			}
		}
		/*if (max == 0)
		{
			printf("i can't");
			break;
		}*/
		for (k = 0; k < n; k++)//交换行
		{
			tempA = arcs[i][k];
			arcs[i][k] = arcs[max_num][k];
			arcs[max_num][k] = tempA;
			tempB = ans[i][k];
			ans[i][k] = ans[max_num][k];
			ans[max_num][k] = tempB;
		}
		for (k = i + 1; k < n; k++)
		{
			P = arcs[k][i] / arcs[i][i];
			for (j = 0; j < n; j++)
			{
				arcs[k][j] = arcs[k][j] - arcs[i][j] * P;
				ans[k][j] = ans[k][j] - ans[i][j] * P;
			}
		}
	}
	for (i = 0; i < n; i++)//行
	{
		P = arcs[i][i];
		for (j = i; j < n; j++)
		{
			arcs[i][j] = arcs[i][j] / P;
		}
		for (j = 0; j < n; j++)
		{
			ans[i][j] = ans[i][j] / P;
		}
	}
	for (i = n - 1; i > 0; i--)
	{
		for (j = i - 1; j >= 0; j--)
		{
			for (k = 0; k < n; k++)
			{
				ans[j][k] = ans[j][k] - ans[i][k] * arcs[j][i];
			}
		}
	}
}

我写的是针对6×6矩阵的,有需要的话,把6改成其他数字就好了

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/129049.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 微信小程序不在以下 request 合法域名列表中「建议收藏」

    微信小程序不在以下 request 合法域名列表中「建议收藏」首先检查开发工具 设置 详情===》本地设置;取消以下勾选框查看异常问题;不在以下 request 合法域名列表中,请参考文查看是否配置域名信息,如果没有配置则去小程序后台设置即可多个已 “;” 分割即可。配置完毕后,在开发者工具刷新查看,然后 记得 【重启开发者工具】就解决啦~…

    2022年8月19日
    3
  • django常用命令_我的世界好玩指令大全

    django常用命令_我的世界好玩指令大全前言我们掌握了如何在命令提示符或PyCharm下创建Django项目和项目应用,无论是创建项目还是创建项目应用,都需要输入相关的指令才能得以实现,这些都是Django内置的操作指令。在PyChar

    2022年7月29日
    4
  • 码流 / 码率 / 比特率 / 帧速率 / 分辨率的区别[通俗易懂]

    码流 / 码率 / 比特率 / 帧速率 / 分辨率的区别[通俗易懂]码流/码率/比特率/帧速率/分辨率/高清的区别2015年03月13日10:40:30阅读数:143980GOP/ 码流/码率/比特率/帧速率/分辨率 GOP(Groupofpicture)      关键帧的周期,也就是两个IDR帧之间的距离,一个帧组的最大帧数,一般而言,每一秒视频至少需要使用1个关键帧。增加关键帧个数可…

    2022年5月28日
    70
  • ms17010利用失败解决一则

    ms17010利用失败解决一则没有反弹得到session并且提示如下:  [-]10.0.131.2:445-Servicefailedtostart,ERROR_CODE:216换了一个payload  setpayloadwindows/meterpreter/reverse_tcp  setpayloadwindows/x64/meterpreter/bind_tc…

    2022年6月1日
    33
  • win10控件安装不了_控件未安装或安装不正确

    win10控件安装不了_控件未安装或安装不正确 有关VCL控件的常见问题(安装、卸载、升级BCB版本等)控件安装(*.BPL)1.选择BCB菜单File→CloseAll(关闭所有文件)选择BCB菜单:Project→Options→Packages→Add,选择*.bpl文件,然后按“打开”按钮2.BCB菜单:Project→Options→Directories/Conditionals①Inclu

    2022年9月15日
    0
  • activity生命周期_activity的生命周期有哪些状态

    activity生命周期_activity的生命周期有哪些状态在我的Android四大组件详解一文中已经对Activity的生命周期进行过一个比较详细的介绍。这篇文章我们再来更加深入地介绍Activity的生命周期。一、Activity的生命周期方法如下:onCreate、onStart、onRestart、onResume、onPause、onStop、onDestroy依次介绍:onCreate:表示Activity正在被创建,这是生命周

    2022年8月16日
    6

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号