lineasolvebycolum.txt
来自「对于线性非齐次方程组的求解」· 文本 代码 · 共 58 行
TXT
58 行
/********************************************************************
function: getResultW()
purpose: 列主元法求线性方程组的解
*********************************************************************/
void getResultW(double *A, double *x, double *b, int numP)
{
int i,j,k;
int iline, jline, maxline;
int num_max;
double scale, temp;
double sum = 0;
//消去
for(i=0; i<numP-1; i++)
{
num_max = i;
iline = i * numP;
//找主元
for(j=i+1; j<numP; j++)
{
if(A[j*numP+i] > A[num_max*numP+i])
num_max = j;
// if(A[j*numP+i] > A[iline+i])
// num_max = j;
}
if(i != num_max)
{
maxline = num_max * numP;
for(j=i; j<numP; j++)
{
temp = A[iline+j]; A[iline+j] = A[maxline+j]; A[maxline+j] = temp;
}
temp = b[i]; b[i] = b[num_max]; b[num_max] = temp;
}
for(j=i+1; j<numP; j++)
{
jline = j * numP;
scale = A[jline+i] / A[iline+i];
for(k=i; k<numP; k++)
{
A[jline+k] -= scale * A[iline+k];
}
b[j] -= scale * b[i];
}
}
//回代
for(i=numP-1; i>=0; i--)
{
iline = i * numP;
for(j=numP-1; j>i; j--)
{
sum += A[iline+j] * x[j];
}
x[i] = (b[i] - sum) / A[iline+i];
sum = 0;
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?