diff options
Diffstat (limited to 'gsl-1.9/doc/examples/linalglu.c')
-rw-r--r-- | gsl-1.9/doc/examples/linalglu.c | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/gsl-1.9/doc/examples/linalglu.c b/gsl-1.9/doc/examples/linalglu.c new file mode 100644 index 0000000..61b5293 --- /dev/null +++ b/gsl-1.9/doc/examples/linalglu.c @@ -0,0 +1,36 @@ +#include <stdio.h> +#include <gsl/gsl_linalg.h> + +int +main (void) +{ + double a_data[] = { 0.18, 0.60, 0.57, 0.96, + 0.41, 0.24, 0.99, 0.58, + 0.14, 0.30, 0.97, 0.66, + 0.51, 0.13, 0.19, 0.85 }; + + double b_data[] = { 1.0, 2.0, 3.0, 4.0 }; + + gsl_matrix_view m + = gsl_matrix_view_array (a_data, 4, 4); + + gsl_vector_view b + = gsl_vector_view_array (b_data, 4); + + gsl_vector *x = gsl_vector_alloc (4); + + int s; + + gsl_permutation * p = gsl_permutation_alloc (4); + + gsl_linalg_LU_decomp (&m.matrix, p, &s); + + gsl_linalg_LU_solve (&m.matrix, p, &b.vector, x); + + printf ("x = \n"); + gsl_vector_fprintf (stdout, x, "%g"); + + gsl_permutation_free (p); + gsl_vector_free (x); + return 0; +} |