xlaplace.c

00001 /*    
00002   Пример использования функции @gall_laplace@
00003 */
00004 
00005 #include "nl.h"
00006 
00007 int main()
00008 {
00009   size_t *IA, *JA, m, n, N, nz;
00010   double *AN, *AD, **A;
00011 
00012   m = n = 3;
00013   N = m * n;
00014 
00015   printf("5-точечная аппроксимация уравнения Пуассона\n");
00016   printf("Решетка 3x3\n");
00017   printf("\nРазреженное полное представление:\n");
00018 
00019   gall_laplace_size(m, n, &N, &nz);
00020   sp_create(N, nz, &IA, &JA, &AN);
00021   gall_laplace(m, n, IA, JA, AN);
00022   sp_print(IA, JA, AN, N, N, NULL);
00023 
00024   A = nl_dmatrix_create(N, N);
00025   sp_full(IA, JA, AN, N, N, A);
00026 
00027   printf("\nПлотное представление:\n");
00028   nl_dmatrix_print(A, N, N, NULL);
00029 
00030   sp_free(IA, JA, AN);
00031 
00032   printf("\nРазреженное неполное представление\n");
00033   printf("(верхнетреугольная часть):\n");
00034 
00035   gall_laplace_sym_size(m, n, &N, &nz);
00036   sp_create_sym(N, nz, &IA, &JA, &AN, &AD);
00037   gall_laplace_sym(m, n, IA, JA, AN, AD);
00038   sp_print(IA, JA, AN, N, N, NULL);
00039 
00040   A = nl_dmatrix_create(N, N);
00041   sp_full(IA, JA, AN, N, N, A);
00042 
00043   printf("\nПлотное представление:\n");
00044   nl_dmatrix_print(A, N, N, NULL);
00045 
00046   printf("\nДиагональные элементы:\n");
00047   nl_dvector_print(AD, N, NULL);
00048 
00049   sp_free_sym(IA, JA, AN, AD);
00050   nl_dmatrix_free(A, N);
00051 
00052   return 0;
00053 }

Документация по NL. Последние изменения: Mon Oct 9 12:25:54 2006. Создано системой  doxygen 1.4.7