Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
cantaro86
GitHub Repository: cantaro86/Financial-Models-Numerical-Methods
Path: blob/master/src/C/mainSOR.c
1700 views
1
#include "SOR.h"
2
3
4
5
/*
6
GENERAL MATRIX (DIAGONAL DOMINANT)
7
8
double A[4][4] = { {10, 5, 2, 1},
9
{2, 15, 2, 3},
10
{1, 8, 13, 1},
11
{2, 3, 1, 8} };
12
double b[4] = {30, 50, 60, 43};
13
double* x = SOR(A,b, w,eps, N_max);
14
15
TRIDIAGONAL MATRIX
16
double A[4][4] = { {10, 5, 0, 0},
17
{2, 15, 2, 0},
18
{0, 8, 13, 1},
19
{0, 0, 1, 8} };
20
double b[4] = {20, 38, 59, 35};
21
double* x = SOR_trid(A, b, w, eps, N_max);
22
*/
23
24
25
26
int main()
27
{
28
// TRIDIAGONAL WITH CONSTANT aa,bb,cc
29
double A[4][4] = { {10, 5, 0, 0},
30
{2, 10, 5, 0},
31
{0, 2, 10, 5},
32
{0, 0, 2, 10} };
33
34
double b[4] = {20, 37, 54, 46};
35
36
double aa=2, bb=10, cc=5;
37
38
39
const double w = 1;
40
const double eps = 1e-10;
41
const int N_max = 100;
42
43
44
printf("Matrix A: \n");
45
print_matrix(A);
46
printf("Vector b: \n");
47
print_array(b);
48
49
// double* x = SOR_abc(aa, bb, cc, b, N, w, eps, N_max);
50
51
double* x0 = calloc(N, sizeof(double) );
52
double* x1 = calloc(N, sizeof(double) );
53
double* x = SOR_aabbcc(aa, bb, cc, b, x0, x1, N, w, eps, N_max);
54
55
printf("Solution x: \n");
56
print_array(x);
57
58
free(x0);
59
free(x1);
60
61
return 0;
62
}
63
64