Tartalomjegyzék

File: proof_of_concepts

Teljes Matlab script (és live script) kiegészítő függvényekkel.
Tekintsd meg LiveEditor nézetben is!

Directory: /1_projects/3_outsel/Trofinos_output_selection

Author: Peter Polcz (ppolcz@gmail.com)

Created on 2018. March 07.

P_generate_symvars_v5(2,2);
A_sym = [d1^2+1 d2/(d1^2 + 1) ; d1*d2 / (d2^2 + d1^4 + 1) d1^2*d2]
warning off
lfr = P_LFR_reduction_v6(P_lfrdata_v6(sym2lfr(A_sym)),x), warning on

lfr.x
lfr.A
lfr.B
lfr.C
lfr.Pi
lfr
P_annihilator_linsolve_v6(lfr.Pib,xd)
Output:
┌P_generate_symvars_v5
└ 0.63634 [sec]
A_sym =
[                  d1^2 + 1, d2/(d1^2 + 1)]
[ (d1*d2)/(d1^4 + d2^2 + 1),       d1^2*d2]
[  OK  ] The first n elements of sigma_b must be identity permutation (in theory)
[  OK  ] The upper left (n+k)x(n+k) submatrix of Theta should be full-rank
[  OK  ] Equation of the permuted model should be the same
[  OK  ] Equation of the reduced model should be the same
lfr = 
  struct with fields:

        x: [2×1 sym]
        A: [2×2 double]
        B: [2×15 double]
        C: [15×2 double]
        D: [15×15 double]
    Delta: [15×15 sym]
        G: [15×2 sym]
        F: [15×15 sym]
       Pi: [15×1 sym]
      Pib: [17×1 sym]
      Pi0: [41×1 sym]
        q: [1×1 sym]
        S: [18×18 double]
       iS: [18×18 double]
    Gamma: [0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0]
    Theta: 'TODO'
ans =
 x1
 x2
ans =
     1     0
     0     0
ans =
  Columns 1 through 13
     1     0     0     0     0     0     0     0     0     0     0     1     0
     0     0     0     0     1     0     0     0     0     1     0     0     0
  Columns 14 through 15
     0     0
     0     0
ans =
     0     0
     1     0
     0     0
     0     1
     0     0
     0     0
     0     0
     0     0
     1     0
     0     0
     0     0
     0     1
     1     0
     0     0
     0     1
ans =
                      d1^2*x1
                        d1*x1
         (d1^2*x2)/(d1^2 + 1)
           (d1*x2)/(d1^2 + 1)
 (d1*d2*x1)/(d1^4 + d2^2 + 1)
  (d1^4*x1)/(d1^4 + d2^2 + 1)
  (d1^3*x1)/(d1^4 + d2^2 + 1)
  (d1^2*x1)/(d1^4 + d2^2 + 1)
    (d1*x1)/(d1^4 + d2^2 + 1)
                   d1^2*d2*x2
                     d1*d2*x2
           (d2*x2)/(d1^2 + 1)
    (d2*x1)/(d1^4 + d2^2 + 1)
  (d2^2*x1)/(d1^4 + d2^2 + 1)
                        d2*x2
lfr = 
  struct with fields:

        x: [2×1 sym]
        A: [2×2 double]
        B: [2×15 double]
        C: [15×2 double]
        D: [15×15 double]
    Delta: [15×15 sym]
        G: [15×2 sym]
        F: [15×15 sym]
       Pi: [15×1 sym]
      Pib: [17×1 sym]
      Pi0: [41×1 sym]
        q: [1×1 sym]
        S: [18×18 double]
       iS: [18×18 double]
    Gamma: [0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0]
    Theta: 'TODO'
┌P_annihilator_linsolve_v6
┌P_annihilator_linsolve_v6 - core computation
└ 0.76284 [sec]
┌P_annihilator_linsolve_v6 - quick check I. - obtained annihilator, prec: 10
│   - maximal difference: 3.335006e-16, row nr. 13
└ 0.5256 [sec]
┌P_annihilator_linsolve_v6 - beautify annihilator + !roundings!
└ 0.11819 [sec]
┌P_annihilator_linsolve_v6 - quick check II. - the beautified annihilator, prec: 10
│   - maximal difference: 1.207705e-15, row nr. 4
└ 0.36997 [sec]
└ 1.792 [sec]
ans =
[ x2, -x1, 0,   0,   0,   0,  0,   0,   0,   0,   0, 0,   0,   0,   0,   0,   0]
[ d1,   0, 0,   0,   0,   0,  0, -d1,   0,   0,  -1, 0,   0,   0,   0, -d1,   0]
[ d2,   0, 0,   0,   0,   0,  0, -d2,   0,   0,   0, 0,   0,   0,  -1, -d2,   0]
[  0,  d1, 0,   0, -d1,  -1,  0,   0,   0,   0,   0, 0,   0,   0,   0,   0,   0]
[  0,  d2, 0,   0,   0,   0,  0,   0,   0,   0,   0, 0,   0,   0,   0,   0,  -1]
[  0,   0, 1, -d1,   0,   0,  0,   0,   0,   0,   0, 0,   0,   0,   0,   0,   0]
[  0,   0, 0,   1,   0,   0,  0, -d1,   0,   0,  -1, 0,   0,   0,   0, -d1,   0]
[  0,   0, 0,   0,   1, -d1,  0,   0,   0,   0,   0, 0,   0,   0,   0,   0,   0]
[  0,   0, 0,   0,  d2,   0,  0,   0,   0,   0,   0, 0,   0,   1,   0,   0,  -1]
[  0,   0, 0,   0,   0,  d2,  0,   0,   0,   0,   0, 0,   0, -d1,   0,   0,   0]
[  0,   0, 0,   0,   0,   0,  1,   0,   0,   0,   0, 0,   0,   0, -d1,   0,   0]
[  0,   0, 0,   0,   0,   0, d1,   0,   0, -d2,   0, 0,   0,   0,   0,   0,   0]
[  0,   0, 0,   0,   0,   0, d2,   0,   0,   0,   0, 0,   0,   0,   0, -d1,   0]
[  0,   0, 0,   0,   0,   0,  0,   1, -d1,   0,   0, 0,   0,   0,   0,   0,   0]
[  0,   0, 0,   0,   0,   0,  0,   0,   1, -d1,   0, 0,   0,   0,   0,   0,   0]
[  0,   0, 0,   0,   0,   0,  0,   0,   0,   1, -d1, 0,   0,   0,   0,   0,   0]
[  0,   0, 0,   0,   0,   0,  0,   0,   0,   0,  d2, 0,   0,   0, -d1,   0,   0]
[  0,   0, 0,   0,   0,   0,  0,   0,   0,   0,   0, 1, -d1,   0,   0,   0,   0]
[  0,   0, 0,   0,   0,   0,  0,   0,   0,   0,   0, 0,   1,   0,   0,   0, -d1]
[  0,   0, 0,   0,   0,   0,  0,   0,   0,   0,   0, 0,   0,   0,  d2,  -1,   0]