File tree 1 file changed +23
-1
lines changed
doc/d-practical-exercises
1 file changed +23
-1
lines changed Original file line number Diff line number Diff line change @@ -152,7 +152,29 @@ the null space of task 1 is:
152
152
153
153
\f$P_1 = I_9 - J_1^+ J_1\f$
154
154
155
- \f$vq_2 = vq_1 + P_1 (J_2 P_1)^+ ( v_2^* - J_2 vq_1)\f$
155
+ \f$vq_2 = vq_1 + P_1 (J_2 P_1)^+ (v_2^* - J_2 vq_1)\f$
156
+
157
+ With the mathematical property
158
+
159
+ \f$(J_2 P_1)^+ = P_1 (J_2 P_1)^+\f$
160
+
161
+ we can save a matrix multiplication:
162
+
163
+ \f$vq_2 = vq_1 + (J_2 P_1)^+ (v_2^* - J_2 vq_1)\f$
164
+
165
+ It is important to note that the null space of ` J1 ` is defined up to a numeric
166
+ threshold on its eigen values. A low threshold will lead to a trivial null space
167
+ of ` J1 ` , and task 2 could numerically interfere with task 1. It translates into
168
+ setting an appropriate ` rcond ` or ` rtol ` when computing the pseudo-inverse of
169
+ ` J2 P1 ` :
170
+
171
+ ``` py
172
+ pinv_J2_P1 = pinv(J2 @ P1, rcond = 1e-3 )
173
+ ```
174
+
175
+ Tuning ` rcond ` is a tradeoff: if ` rcond ` is too low (its default is ` 1e-15 ` ),
176
+ task 2 could interfere with task 1. If it is too high, there won't be enough
177
+ DoFs to complete task 2.
156
178
157
179
#### Question 2
158
180
You can’t perform that action at this time.
0 commit comments