⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 3dl.c

📁 在定时器中断中做LED的PWM输出 AT89C2051实现A/D转换的C51程序 单片机开发系统 指令系统 程序设计 定时与中断 系统扩展 接口技术 串行口
💻 C
字号:
//三元一次方程组的行列式解法
//方程组的形式如下:
//	A11*X1+A12*X2+A13*X3=B1
//	A21*X1+A22*X2+A23*X3=B2
//	A31*X1+A32*X2+A33*X3=B3
float A[3][3]={{3.273,-2.164,0.3582},
		{0.3697,1.534,-6.762},
		{-2.061,7.186,4.508}} ;	//三元一次方程组的系数矩阵
float B[3]={8.257,-25.10,6.588};	//三元一次方程组的常数项
float X[3];	//三元一次方程组的解:X1=1.537067,X2=-0.896159,X3=3.592657

float DETA ( ) //行列式计算
{
	return (A[0][0]*A[1][1]*A[2][2]+A[1][0]*A[2][1]*A[0][2]+A[2][0]*A[0][1]*A[1][2]
	 -A[2][0]*A[1][1]*A[0][2]-A[0][0]*A[2][1]*A[1][2]-A[1][0]*A[0][1]*A[2][2]);	
}

void swap (int k)//常数项与k列系数交换
{
	int i;
	float t;
	for (i=0;i<3;i++) {
		t=B[i];
		B[i]=A[i][k];
		A[i][k]=t;
		}
}	

void XYZ ( )	//求解三元一次方程组
{
	float d;
	d=DETA( );	//求系数行列式的值
	swap (0) ;	//将x1的系数与常数项交换
	X[0]=DETA()/d;	//解出x1
	swap (0) ;	//恢复原来的系数与常数项
	swap (1) ;	//将x2的系数与常数项交换
	X[1]=DETA()/d;	//解出x2
	swap (1) ;	//恢复原来的系数与常数项
	swap (2) ;	//将x3的系数与常数项交换
	X[2]=DETA()/d;	//解出x3
	swap (2) ;	//恢复原来的系数与常数项
}

main ( )
{
	XYZ () ;
	while (1) ; //在这一行设置断点,中止程序运行,以便观察程序运行的结果 
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -