bb680263d592df529e21d101b5cf791cffaa81ff
[scilab.git] / scilab / modules / sparse / tests / unit_tests / pcg_list.dia.ref
1 // =============================================================================
2 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3 // Copyright (C) 2008 - INRIA - Michael Baudin
4 //
5 //  This file is distributed under the same license as the Scilab package.
6 // =============================================================================
7 // Numerical tests
8 // Case where A is given as a function computing the right-hand side
9 mymatrix=[ 94  0   0   0    0   28  0   0   32  0
10 0   59  13  5    0   0   0   10  0   0
11 0   13  72  34   2   0   0   0   0   65
12 0   5   34  114  0   0   0   0   0   55
13 0   0   2   0    70  0   28  32  12  0
14 28  0   0   0    0   87  20  0   33  0
15 0   0   0   0    28  20  71  39  0   0
16 0   10  0   0    32  0   39  46  8   0
17 32  0   0   0    12  33  0   8   82  11
18 0   0   65  55   0   0   0   0   11  100];
19 b = [154.
20 87.
21 186.
22 208.
23 144.
24 168.
25 158.
26 135.
27 178.
28 231.];
29 function y=Atimesx(x,mymatrix)
30   y=mymatrix*x
31 endfunction
32 // With the default 10 iterations, the algorithm performs well
33 Alist = list(Atimesx,mymatrix)
34  Alist  =
35  
36  
37        Alist(1)
38  
39 [y]=function(x,mymatrix)
40  
41        Alist(2)
42  
43  
44          column 1 to 9
45  
46     94.    0.     0.     0.      0.     28.    0.     0.     32.  
47     0.     59.    13.    5.      0.     0.     0.     10.    0.   
48     0.     13.    72.    34.     2.     0.     0.     0.     0.   
49     0.     5.     34.    114.    0.     0.     0.     0.     0.   
50     0.     0.     2.     0.      70.    0.     28.    32.    12.  
51     28.    0.     0.     0.      0.     87.    20.    0.     33.  
52     0.     0.     0.     0.      28.    20.    71.    39.    0.   
53     0.     10.    0.     0.      32.    0.     39.    46.    8.   
54     32.    0.     0.     0.      12.    33.    0.     8.     82.  
55     0.     0.     65.    55.     0.     0.     0.     0.     11.  
56  
57          column 10
58  
59     0.    
60     0.    
61     65.   
62     55.   
63     0.    
64     0.    
65     0.    
66     0.    
67     11.   
68     100.  
69 [xcomputed, fail, err, iter, res]=pcg(Alist,b);
70 xexpected=ones(10,1);
71 if norm(xcomputed-xexpected)>10**3*%eps then bugmes();quit;end
72 if fail<>0 then bugmes();quit;end
73 if iter<>10 then bugmes();quit;end
74 if err > 10**3*%eps then bugmes();quit;end