jacobi and gauss solve function working
This commit is contained in:
18
main.c
18
main.c
@@ -256,16 +256,26 @@ Vector* solve(Method method, Matrix* A, Vector* b, Vector* x, double e) {
|
||||
Vector* vectors = malloc(sizeof(Vector) * (MAX_ITERATION_STEPS + 1));
|
||||
|
||||
initVector(&vectors[0], b->n);
|
||||
memcpy(vectors[0].data, b->data, b->n * sizeof(double));
|
||||
memcpy(vectors[0].data, x->data, b->n * sizeof(double));
|
||||
|
||||
int vectorCount = 1;
|
||||
|
||||
double temp;
|
||||
double delta = 0.0;
|
||||
|
||||
do {
|
||||
|
||||
delta= 0.0;
|
||||
for(int i=0; i<b->n; i++){
|
||||
temp=0.0;
|
||||
for(int j=0; j<b->n; j++){
|
||||
if(j!=i){
|
||||
temp= temp+A->data[i][j]*vectors[vectorCount-1].data[j];
|
||||
}
|
||||
}
|
||||
vectors[vectorCount].data[i]=1/A->data[i][i]*(b->data[i]-temp);
|
||||
delta=fmax(fabs(vectors[vectorCount].data[i]-vectors[vectorCount-1].data[i]),delta);
|
||||
}
|
||||
// CODE
|
||||
|
||||
printVector(&vectors[vectorCount]);
|
||||
vectorCount++;
|
||||
} while (delta < e && vectorCount < MAX_ITERATION_STEPS);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user