From 868c0670a1d2ee3b9256191923028bb7834058d2 Mon Sep 17 00:00:00 2001 From: Franz Zotter Date: Mon, 29 Mar 2010 07:28:46 +0000 Subject: pseudo-inverse using [mtx_svd] and a regularization parameter (0...1] svn path=/trunk/externals/iem/iemmatrix/; revision=13295 --- abs/mtx_pseudoinverse.pd | 137 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 137 insertions(+) create mode 100644 abs/mtx_pseudoinverse.pd (limited to 'abs') diff --git a/abs/mtx_pseudoinverse.pd b/abs/mtx_pseudoinverse.pd new file mode 100644 index 0000000..9583a26 --- /dev/null +++ b/abs/mtx_pseudoinverse.pd @@ -0,0 +1,137 @@ +#N canvas 727 0 495 641 10; +#X obj 66 34 inlet; +#X obj 66 73 mtx_svd; +#X obj 342 47 inlet; +#X obj 255 339 mtx_slice; +#X obj 66 337 mtx_slice; +#X obj 66 317 mtx; +#X obj 255 361 mtx_transpose; +#X obj 155 337 mtx_slice; +#X obj 155 358 mtx_.^ -1; +#X obj 172 427 mtx_diag; +#X obj 155 380 list split 3; +#X obj 172 455 mtx_*; +#X obj 128 495 mtx_*; +#X obj 171 403 list; +#X obj 66 240 t b b a; +#X obj 128 555 outlet; +#X text 386 48 regularization; +#N canvas 0 0 595 552 regularize 0; +#X obj 159 56 inlet; +#X obj 202 173 mtx_minmax; +#X obj 266 196 * \$1; +#X obj 159 244 mtx_> 0; +#X obj 159 265 mtx_transpose; +#X obj 160 286 mtx_sum; +#X msg 160 307 1 1 end \$1; +#X obj 289 56 inlet; +#X obj 160 357 outlet; +#X obj 159 152 t a a; +#X obj 337 238 pack; +#X msg 336 260 \$2 \$1; +#X obj 336 360 outlet; +#X obj 336 327 /; +#X connect 0 0 9 0; +#X connect 1 0 10 0; +#X connect 1 1 2 0; +#X connect 1 1 10 1; +#X connect 2 0 3 1; +#X connect 3 0 4 0; +#X connect 4 0 5 0; +#X connect 5 0 6 0; +#X connect 6 0 8 0; +#X connect 7 0 2 1; +#X connect 9 0 3 0; +#X connect 9 1 1 0; +#X connect 10 0 11 0; +#X connect 11 0 13 0; +#X connect 13 0 12 0; +#X restore 256 266 pd regularize; +#X obj 226 219 t a a; +#N canvas 0 0 450 300 list2mtx 0; +#X obj 140 28 inlet; +#X obj 140 229 outlet; +#X obj 140 128 mtx; +#X obj 140 106 t l l; +#X obj 182 106 length; +#X msg 233 105 size 1 \$1; +#X connect 0 0 3 0; +#X connect 2 0 1 0; +#X connect 3 0 2 0; +#X connect 3 1 4 0; +#X connect 4 0 5 0; +#X connect 5 0 2 0; +#X restore 226 196 pd list2mtx; +#N canvas 0 0 450 300 autotranspose 0; +#X obj 31 16 inlet; +#X obj 31 274 outlet; +#X obj 317 269 outlet; +#X obj 31 39 t a a; +#X obj 186 82 mtx_size; +#X obj 148 216 mtx_transpose; +#X obj 31 191 spigot; +#X obj 72 172 == 0; +#X obj 149 196 spigot; +#X obj 186 110 <; +#X connect 0 0 3 0; +#X connect 3 0 6 0; +#X connect 3 0 8 0; +#X connect 3 1 4 0; +#X connect 4 0 9 0; +#X connect 4 1 9 1; +#X connect 5 0 1 0; +#X connect 6 0 1 0; +#X connect 7 0 6 1; +#X connect 8 0 5 0; +#X connect 9 0 2 0; +#X connect 9 0 7 0; +#X connect 9 0 8 1; +#X restore 66 54 pd autotranspose; +#N canvas 0 0 450 300 autotranspose 0; +#X obj 31 274 outlet; +#X obj 148 216 mtx_transpose; +#X obj 31 191 spigot; +#X obj 72 172 == 0; +#X obj 149 196 spigot; +#X obj 186 39 inlet; +#X obj 31 39 inlet; +#X connect 1 0 0 0; +#X connect 2 0 0 0; +#X connect 3 0 2 1; +#X connect 4 0 1 0; +#X connect 5 0 3 0; +#X connect 5 0 4 1; +#X connect 6 0 2 0; +#X connect 6 0 4 0; +#X restore 128 530 pd autotranspose; +#X obj 342 562 outlet; +#X text 355 519 condition number; +#X connect 0 0 20 0; +#X connect 1 0 14 0; +#X connect 1 1 19 0; +#X connect 1 2 5 1; +#X connect 2 0 17 1; +#X connect 3 0 6 0; +#X connect 4 0 12 0; +#X connect 5 0 4 0; +#X connect 6 0 11 1; +#X connect 7 0 8 0; +#X connect 8 0 10 0; +#X connect 9 0 11 0; +#X connect 10 1 13 1; +#X connect 11 0 12 1; +#X connect 12 0 21 0; +#X connect 13 0 9 0; +#X connect 14 0 5 0; +#X connect 14 1 13 0; +#X connect 14 2 3 0; +#X connect 17 0 3 1; +#X connect 17 0 7 1; +#X connect 17 0 4 1; +#X connect 17 1 22 0; +#X connect 18 0 7 0; +#X connect 18 1 17 0; +#X connect 19 0 18 0; +#X connect 20 0 1 0; +#X connect 20 1 21 1; +#X connect 21 0 15 0; -- cgit v1.2.1