94bd11bf65a2107582087389ab66e1cd99530153
[scilab.git] / scilab / modules / sparse / tests / unit_tests / pcg_list.tst
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
8 // <-- CLI SHELL MODE -->
9
10 // Numerical tests
11 // Case where A is given as a function computing the right-hand side
12 mymatrix=[ 94  0   0   0    0   28  0   0   32  0
13 0   59  13  5    0   0   0   10  0   0
14 0   13  72  34   2   0   0   0   0   65
15 0   5   34  114  0   0   0   0   0   55
16 0   0   2   0    70  0   28  32  12  0
17 28  0   0   0    0   87  20  0   33  0
18 0   0   0   0    28  20  71  39  0   0
19 0   10  0   0    32  0   39  46  8   0
20 32  0   0   0    12  33  0   8   82  11
21 0   0   65  55   0   0   0   0   11  100];
22 b = [154.
23 87.
24 186.
25 208.
26 144.
27 168.
28 158.
29 135.
30 178.
31 231.];
32 function y=Atimesx(x,mymatrix)
33   y=mymatrix*x
34 endfunction
35 // With the default 10 iterations, the algorithm performs well
36 Alist = list(Atimesx,mymatrix)
37 [xcomputed, fail, err, iter, res]=pcg(Alist,b);
38 xexpected=ones(10,1);
39 if norm(xcomputed-xexpected)>10**3*%eps then pause,end
40 if fail<>0 then pause,end
41 if iter<>10 then pause,end
42 if err > 10**3*%eps then pause,end
43