sysy-data/h-p/sy/h-5-02.sy

75 lines
1.1 KiB
Plaintext
Raw Permalink Normal View History

2024-08-08 00:23:26 +08:00
//#include "sylib.h"
int n = 1400;
int A[1400][1400];
int b[1400];
int x[1400];
int y[1400];
void kernel_ludcmp(int n,int A[][1400],int b[],int x[],int y[])
{
int i, j, k, w;
i = 0;
while (i < n) {
j = 0;
while (j < i) {
w = A[i][j];
k = 0;
while (k < j) {
w = w - A[i][k] * A[k][j];
k = k +1;
}
A[i][j] = w / A[j][j];
j = j +1;
}
j = i;
while (j < n) {
w = A[i][j];
k = 0;
while (k < i) {
w = w - A[i][k] * A[k][j];
k = k +1;
}
A[i][j] = w;
j = j +1;
}
i = i +1;
}
i = 0;
while (i < n) {
w = b[i];
j = 0;
while (j < i) {
w = w - A[i][j] * y[j];
j = j +1;
}
y[i] = w;
i = i +1;
}
i = n -1;
while (i >=0) {
w = y[i];
j = i + 1;
while (j < n) {
w = w - A[i][j] * x[j];
j = j+1;
}
x[i] = w / A[i][i];
i = i -1;
}
}
int main()
{
getarray(A);
getarray(b);
getarray(x);
getarray(y);
starttime();
kernel_ludcmp (n, A, b, x, y);
stoptime();
putarray(n, x);
return 0;
}