高斯消元法

高斯消元法是用来求线性方程组的,一般的解法是

写出增广矩阵

通过列主消元法将增广矩阵化为上三角矩阵

根据增广矩阵的秩和系数矩阵的秩来决定解的个数

如果有唯一的解,通过迭代求出

下面是浮点数,有唯一解的情况

增广矩阵为m*(m+1)的矩阵

void Gauss(int S[maxn][maxn],int num)//增广矩阵为num*(num+1) 
{
for(int i=1;i<=num;i++)//枚举每一行 
{
int r=i;
for(int j=i+1;j<=num;j++)//找出那一列中系数最大的一行 
{
if(fabs(S[j][i]-S[r][i])>=eps)
  r=j;
}
if(r!=i)
{
for(int j=i;j<=num+1;j++)//交换 
     swap(S[r][j],S[i][j]); 

for(int j=i+1;j<=num;j++)
{
double term=S[j][i]/S[i][i];
for(int k=i;k<=num+1;k++)
  S[j][k]-=S[i][k]*term;
}

}//化成上三角矩阵 
for(int i=num;i>=1;i--)
{
for(int j=i+1;j<=num;j++)
{
S[i][num+1]-=S[i][j]*S[j][j];
}
S[i][i]=S[i][num+1]/S[i][i];


}




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值