@pawells/math-extended 1.1.1 → 3.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +15 -21
- package/build/angles.d.ts +28 -18
- package/build/angles.d.ts.map +1 -1
- package/build/angles.js +28 -18
- package/build/angles.js.map +1 -1
- package/build/clamp.d.ts +2 -0
- package/build/clamp.d.ts.map +1 -1
- package/build/clamp.js +2 -0
- package/build/clamp.js.map +1 -1
- package/build/core.d.ts +23 -0
- package/build/core.d.ts.map +1 -0
- package/build/core.js +25 -0
- package/build/core.js.map +1 -0
- package/build/index.d.ts +1 -4
- package/build/index.d.ts.map +1 -1
- package/build/index.js +1 -6
- package/build/index.js.map +1 -1
- package/build/interpolation.d.ts +62 -13
- package/build/interpolation.d.ts.map +1 -1
- package/build/interpolation.js +66 -23
- package/build/interpolation.js.map +1 -1
- package/build/matrices/arithmetic.d.ts +65 -76
- package/build/matrices/arithmetic.d.ts.map +1 -1
- package/build/matrices/arithmetic.js +65 -107
- package/build/matrices/arithmetic.js.map +1 -1
- package/build/matrices/asserts.d.ts +26 -273
- package/build/matrices/asserts.d.ts.map +1 -1
- package/build/matrices/asserts.js +106 -350
- package/build/matrices/asserts.js.map +1 -1
- package/build/matrices/core.d.ts +150 -79
- package/build/matrices/core.d.ts.map +1 -1
- package/build/matrices/core.js +128 -104
- package/build/matrices/core.js.map +1 -1
- package/build/matrices/decompositions.d.ts +41 -44
- package/build/matrices/decompositions.d.ts.map +1 -1
- package/build/matrices/decompositions.js +51 -94
- package/build/matrices/decompositions.js.map +1 -1
- package/build/matrices/index.d.ts +2 -2
- package/build/matrices/index.d.ts.map +1 -1
- package/build/matrices/index.js +2 -2
- package/build/matrices/index.js.map +1 -1
- package/build/matrices/linear-algebra.d.ts +56 -19
- package/build/matrices/linear-algebra.d.ts.map +1 -1
- package/build/matrices/linear-algebra.js +80 -36
- package/build/matrices/linear-algebra.js.map +1 -1
- package/build/matrices/normalization.d.ts +36 -15
- package/build/matrices/normalization.d.ts.map +1 -1
- package/build/matrices/normalization.js +32 -23
- package/build/matrices/normalization.js.map +1 -1
- package/build/matrices/transformations.d.ts +39 -52
- package/build/matrices/transformations.d.ts.map +1 -1
- package/build/matrices/transformations.js +8 -11
- package/build/matrices/transformations.js.map +1 -1
- package/build/matrices/types.d.ts +39 -67
- package/build/matrices/types.d.ts.map +1 -1
- package/build/matrices/types.js +63 -1
- package/build/matrices/types.js.map +1 -1
- package/build/quaternions/asserts.d.ts +114 -15
- package/build/quaternions/asserts.d.ts.map +1 -1
- package/build/quaternions/asserts.js +189 -51
- package/build/quaternions/asserts.js.map +1 -1
- package/build/quaternions/conversions.d.ts +18 -8
- package/build/quaternions/conversions.d.ts.map +1 -1
- package/build/quaternions/conversions.js +14 -4
- package/build/quaternions/conversions.js.map +1 -1
- package/build/quaternions/core.d.ts +31 -2
- package/build/quaternions/core.d.ts.map +1 -1
- package/build/quaternions/core.js +32 -4
- package/build/quaternions/core.js.map +1 -1
- package/build/quaternions/index.d.ts +2 -2
- package/build/quaternions/index.d.ts.map +1 -1
- package/build/quaternions/index.js +3 -2
- package/build/quaternions/index.js.map +1 -1
- package/build/quaternions/interpolation.d.ts +7 -1
- package/build/quaternions/interpolation.d.ts.map +1 -1
- package/build/quaternions/interpolation.js +12 -6
- package/build/quaternions/interpolation.js.map +1 -1
- package/build/quaternions/predefined.d.ts +7 -1
- package/build/quaternions/predefined.d.ts.map +1 -1
- package/build/quaternions/predefined.js +6 -0
- package/build/quaternions/predefined.js.map +1 -1
- package/build/quaternions/types.d.ts +24 -13
- package/build/quaternions/types.d.ts.map +1 -1
- package/build/quaternions/types.js +51 -1
- package/build/quaternions/types.js.map +1 -1
- package/build/random.d.ts +66 -20
- package/build/random.d.ts.map +1 -1
- package/build/random.js +73 -20
- package/build/random.js.map +1 -1
- package/build/vectors/asserts.d.ts +33 -99
- package/build/vectors/asserts.d.ts.map +1 -1
- package/build/vectors/asserts.js +145 -181
- package/build/vectors/asserts.js.map +1 -1
- package/build/vectors/core.d.ts +76 -44
- package/build/vectors/core.d.ts.map +1 -1
- package/build/vectors/core.js +128 -119
- package/build/vectors/core.js.map +1 -1
- package/build/vectors/index.d.ts.map +1 -1
- package/build/vectors/index.js +1 -0
- package/build/vectors/index.js.map +1 -1
- package/build/vectors/interpolation.d.ts +13 -1
- package/build/vectors/interpolation.d.ts.map +1 -1
- package/build/vectors/interpolation.js +48 -47
- package/build/vectors/interpolation.js.map +1 -1
- package/build/vectors/predefined.d.ts +73 -25
- package/build/vectors/predefined.d.ts.map +1 -1
- package/build/vectors/predefined.js +62 -18
- package/build/vectors/predefined.js.map +1 -1
- package/build/vectors/types.d.ts +26 -4
- package/build/vectors/types.d.ts.map +1 -1
- package/build/vectors/types.js +50 -1
- package/build/vectors/types.js.map +1 -1
- package/package.json +4 -3
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import { AssertNumber, AssertInstanceOf, ArraySortBy } from '@pawells/typescript-common';
|
|
2
2
|
import { MatrixMultiply } from './arithmetic.js';
|
|
3
|
-
import { AssertMatrix,
|
|
3
|
+
import { AssertMatrix, AssertMatrix1, AssertMatrix2, AssertMatrixSquare, MatrixError } from './asserts.js';
|
|
4
4
|
import { MatrixSize, MatrixCreate, MatrixClone, MatrixIdentity, MatrixTranspose } from './core.js';
|
|
5
5
|
import { MatrixGramSchmidt } from './linear-algebra.js';
|
|
6
6
|
const MATRIX_NUMERICAL_TOLERANCE = 1e-12;
|
|
7
7
|
const EIGEN_CONVERGENCE_TOLERANCE = 1e-10;
|
|
8
|
+
const EIGEN_MAX_ITERATIONS = 50;
|
|
8
9
|
/**
|
|
9
10
|
* Performs Cholesky decomposition for symmetric positive definite matrices A = L × L^T.
|
|
10
11
|
*
|
|
@@ -22,53 +23,45 @@ const EIGEN_CONVERGENCE_TOLERANCE = 1e-10;
|
|
|
22
23
|
*
|
|
23
24
|
* @param matrix - The symmetric positive definite square matrix to decompose
|
|
24
25
|
* @returns Lower triangular matrix L such that A = L × L^T
|
|
25
|
-
* @throws {
|
|
26
|
+
* @throws {MatrixError} If matrix is not square, not symmetric, or not positive definite
|
|
26
27
|
*
|
|
27
28
|
* @example
|
|
28
|
-
* ```
|
|
29
|
+
* ```typescript
|
|
29
30
|
* // Symmetric positive definite matrix
|
|
30
31
|
* const A = [[4, 2], [2, 3]];
|
|
31
32
|
* const L = MatrixCholesky(A);
|
|
32
33
|
* // L = [[2, 0], [1, √2]] ≈ [[2, 0], [1, 1.414]]
|
|
33
|
-
*
|
|
34
34
|
* // Verify: L × L^T should equal A
|
|
35
35
|
* const LT = MatrixTranspose(L);
|
|
36
36
|
* const reconstructed = MatrixMultiply(L, LT);
|
|
37
37
|
* // reconstructed ≈ [[4, 2], [2, 3]]
|
|
38
38
|
* ```
|
|
39
|
-
*
|
|
40
39
|
* @complexity Time: O(n³/3), Space: O(n²) - About 2x faster than general LU decomposition
|
|
41
40
|
* @see {@link MatrixLU} For general square matrices that may not be positive definite
|
|
42
41
|
*/
|
|
43
42
|
export function MatrixCholesky(matrix) {
|
|
44
|
-
|
|
43
|
+
AssertMatrixSquare(matrix);
|
|
45
44
|
const [n] = MatrixSize(matrix);
|
|
46
45
|
const L = MatrixCreate(n, n);
|
|
47
46
|
// Perform Cholesky decomposition using the Cholesky-Banachiewicz algorithm
|
|
48
47
|
for (let i = 0; i < n; i++) {
|
|
49
48
|
const lRowI = L[i];
|
|
50
49
|
const matrixRowI = matrix[i];
|
|
51
|
-
AssertMatrixRow(lRowI);
|
|
52
|
-
AssertMatrixRow(matrixRowI);
|
|
53
50
|
for (let j = 0; j <= i; j++) {
|
|
54
51
|
const lRowJ = L[j];
|
|
55
|
-
AssertMatrixRow(lRowJ);
|
|
56
52
|
if (i === j) {
|
|
57
53
|
// Compute diagonal elements: L[i,i] = √(A[i,i] - Σ(k=0 to i-1) L[i,k]²)
|
|
58
54
|
let sum = 0;
|
|
59
55
|
// Sum of squares of elements in row i before column j
|
|
60
56
|
for (let k = 0; k < j; k++) {
|
|
61
57
|
const lVal = lRowI[k];
|
|
62
|
-
AssertMatrixValue(lVal, { rowIndex: i, columnIndex: k });
|
|
63
58
|
sum += lVal * lVal;
|
|
64
59
|
}
|
|
65
60
|
const matrixVal = matrixRowI[j];
|
|
66
|
-
AssertMatrixValue(matrixVal, { rowIndex: i, columnIndex: j });
|
|
67
61
|
const diagonal = matrixVal - sum;
|
|
68
62
|
// Check positive definiteness - diagonal must be positive
|
|
69
|
-
if (diagonal <= 0)
|
|
70
|
-
throw new
|
|
71
|
-
}
|
|
63
|
+
if (diagonal <= 0)
|
|
64
|
+
throw new MatrixError(`Matrix is not positive definite at element [${i},${j}]`);
|
|
72
65
|
lRowI[j] = Math.sqrt(diagonal);
|
|
73
66
|
}
|
|
74
67
|
else {
|
|
@@ -78,17 +71,13 @@ export function MatrixCholesky(matrix) {
|
|
|
78
71
|
for (let k = 0; k < j; k++) {
|
|
79
72
|
const lIVal = lRowI[k];
|
|
80
73
|
const lJVal = lRowJ[k];
|
|
81
|
-
AssertMatrixValue(lIVal, { rowIndex: i, columnIndex: k });
|
|
82
|
-
AssertMatrixValue(lJVal, { rowIndex: j, columnIndex: k });
|
|
83
74
|
sum += lIVal * lJVal;
|
|
84
75
|
}
|
|
85
76
|
const matrixVal = matrixRowI[j];
|
|
86
77
|
const lJDiag = lRowJ[j];
|
|
87
|
-
AssertMatrixValue(matrixVal, { rowIndex: i, columnIndex: j });
|
|
88
|
-
AssertMatrixValue(lJDiag, { rowIndex: j, columnIndex: j });
|
|
89
78
|
// Check for numerical stability - diagonal element should not be too small
|
|
90
79
|
if (Math.abs(lJDiag) < MATRIX_NUMERICAL_TOLERANCE) {
|
|
91
|
-
throw new
|
|
80
|
+
throw new MatrixError(`Zero diagonal element at [${j},${j}] - matrix not positive definite`);
|
|
92
81
|
}
|
|
93
82
|
lRowI[j] = (matrixVal - sum) / lJDiag;
|
|
94
83
|
}
|
|
@@ -117,28 +106,26 @@ export function MatrixCholesky(matrix) {
|
|
|
117
106
|
*
|
|
118
107
|
* @param matrix - The square matrix to decompose
|
|
119
108
|
* @returns Object containing eigenvalues and eigenvectors
|
|
120
|
-
* @throws {
|
|
109
|
+
* @throws {MatrixError} If matrix is not square, contains invalid values, or has complex eigenvalues
|
|
121
110
|
*
|
|
122
111
|
* @example
|
|
123
|
-
* ```
|
|
112
|
+
* ```typescript
|
|
124
113
|
* // Simple 2x2 matrix
|
|
125
114
|
* const A = [[3, 1], [0, 2]];
|
|
126
115
|
* const { eigenvalues, eigenvectors } = MatrixEigen(A);
|
|
127
116
|
* // eigenvalues: [3, 2]
|
|
128
117
|
* // eigenvectors: matrix where each column corresponds to an eigenvalue
|
|
129
|
-
*
|
|
130
118
|
* // Verify eigenvalue equation: A × v = λ × v
|
|
131
119
|
* const v = Matrix_GetColumn(eigenvectors, 0); // First eigenvector
|
|
132
120
|
* const Av = MatrixMultiplyVector(A, v);
|
|
133
121
|
* const lambdaV = Matrix_ScaleVector(v, eigenvalues[0]);
|
|
134
122
|
* // Av should approximately equal lambdaV
|
|
135
123
|
* ```
|
|
136
|
-
*
|
|
137
124
|
* @complexity O(n³) time for an n×n matrix
|
|
138
125
|
* @see {@link MatrixEigenQRIteration} For the iterative algorithm used for larger matrices
|
|
139
126
|
*/
|
|
140
127
|
export function MatrixEigen(matrix) {
|
|
141
|
-
|
|
128
|
+
AssertMatrixSquare(matrix);
|
|
142
129
|
const [n] = MatrixSize(matrix);
|
|
143
130
|
// For small matrices, use direct analytical computation for efficiency and accuracy
|
|
144
131
|
if (n === 1) {
|
|
@@ -162,7 +149,7 @@ export function MatrixEigen(matrix) {
|
|
|
162
149
|
const discriminant = (trace * trace) - (4 * det);
|
|
163
150
|
// Check for complex eigenvalues
|
|
164
151
|
if (discriminant < 0) {
|
|
165
|
-
throw new
|
|
152
|
+
throw new MatrixError('Complex eigenvalues not supported in this implementation');
|
|
166
153
|
}
|
|
167
154
|
const sqrtDisc = Math.sqrt(discriminant);
|
|
168
155
|
const lambda1 = (trace + sqrtDisc) / 2;
|
|
@@ -175,8 +162,6 @@ export function MatrixEigen(matrix) {
|
|
|
175
162
|
// First eigenvector: [1, 0] (for lambda1 = a)
|
|
176
163
|
// Second eigenvector: [1, (lambda2 - a)/b]
|
|
177
164
|
const [eigenvectorsRow0, eigenvectorsRow1] = eigenvectors;
|
|
178
|
-
AssertMatrixRow(eigenvectorsRow0);
|
|
179
|
-
AssertMatrixRow(eigenvectorsRow1);
|
|
180
165
|
eigenvectorsRow0[0] = 1;
|
|
181
166
|
eigenvectorsRow1[0] = 0;
|
|
182
167
|
eigenvectorsRow0[1] = 1;
|
|
@@ -185,8 +170,6 @@ export function MatrixEigen(matrix) {
|
|
|
185
170
|
else if (Math.abs(c) > MATRIX_NUMERICAL_TOLERANCE) {
|
|
186
171
|
// Use the first row to find eigenvectors when c ≠ 0
|
|
187
172
|
const [eigenvectorsRow0, eigenvectorsRow1] = eigenvectors;
|
|
188
|
-
AssertMatrixRow(eigenvectorsRow0);
|
|
189
|
-
AssertMatrixRow(eigenvectorsRow1);
|
|
190
173
|
eigenvectorsRow0[0] = lambda1 - d;
|
|
191
174
|
eigenvectorsRow1[0] = c;
|
|
192
175
|
eigenvectorsRow0[1] = lambda2 - d;
|
|
@@ -195,8 +178,6 @@ export function MatrixEigen(matrix) {
|
|
|
195
178
|
else {
|
|
196
179
|
// Diagonal matrix case - eigenvectors are standard basis vectors
|
|
197
180
|
const [eigenvectorsRow0, eigenvectorsRow1] = eigenvectors;
|
|
198
|
-
AssertMatrixRow(eigenvectorsRow0);
|
|
199
|
-
AssertMatrixRow(eigenvectorsRow1);
|
|
200
181
|
eigenvectorsRow0[0] = 1;
|
|
201
182
|
eigenvectorsRow1[0] = 0;
|
|
202
183
|
eigenvectorsRow0[1] = 0;
|
|
@@ -208,7 +189,6 @@ export function MatrixEigen(matrix) {
|
|
|
208
189
|
// Calculate the norm (length) of the eigenvector
|
|
209
190
|
for (let i = 0; i < 2; i++) {
|
|
210
191
|
const eigenvectorsRowI = eigenvectors[i];
|
|
211
|
-
AssertMatrixRow(eigenvectorsRowI);
|
|
212
192
|
const val = eigenvectorsRowI[j];
|
|
213
193
|
AssertNumber(val, {}, { message: `Eigenvector[${i},${j}] Not a Number` });
|
|
214
194
|
norm += val * val;
|
|
@@ -218,9 +198,7 @@ export function MatrixEigen(matrix) {
|
|
|
218
198
|
if (norm > MATRIX_NUMERICAL_TOLERANCE) {
|
|
219
199
|
for (let i = 0; i < 2; i++) {
|
|
220
200
|
const eigenvectorsRowI = eigenvectors[i];
|
|
221
|
-
AssertMatrixRow(eigenvectorsRowI);
|
|
222
201
|
const val = eigenvectorsRowI[j];
|
|
223
|
-
AssertMatrixValue(val, { rowIndex: i, columnIndex: j });
|
|
224
202
|
eigenvectorsRowI[j] = val / norm;
|
|
225
203
|
}
|
|
226
204
|
}
|
|
@@ -248,15 +226,22 @@ export function MatrixEigen(matrix) {
|
|
|
248
226
|
* 4. Repeat until convergence (off-diagonal elements become small)
|
|
249
227
|
* 5. Eigenvalues are the diagonal elements of the final matrix
|
|
250
228
|
*
|
|
229
|
+
* **Convergence Notes:**
|
|
230
|
+
* The convergence check (examining off-diagonal elements) is optimized for symmetric
|
|
231
|
+
* inputs, which SVD provides via A^T A. For practical n×n matrices with well-conditioned
|
|
232
|
+
* symmetric inputs, convergence typically occurs within 2–5n iterations. The default
|
|
233
|
+
* maximum of 50 iterations is sufficient for matrices up to size ~10×10; larger matrices
|
|
234
|
+
* may require heuristic adjustments.
|
|
235
|
+
*
|
|
251
236
|
* @private
|
|
252
237
|
* @param matrix - Square matrix to compute eigenvalues for
|
|
253
|
-
* @param iterations - Maximum number of QR iterations (default: 50)
|
|
238
|
+
* @param iterations - Maximum number of QR iterations (default: EIGEN_MAX_ITERATIONS = 50)
|
|
254
239
|
* @returns Object containing eigenvalues and approximated eigenvectors
|
|
255
240
|
*
|
|
256
241
|
* @complexity O(n³) per iteration, typically converges in O(n) iterations
|
|
257
242
|
* @see {@link MatrixQR} For the QR decomposition used in each iteration
|
|
258
243
|
*/
|
|
259
|
-
export function MatrixEigenQRIteration(matrix, iterations =
|
|
244
|
+
export function MatrixEigenQRIteration(matrix, iterations = EIGEN_MAX_ITERATIONS) {
|
|
260
245
|
const [n] = MatrixSize(matrix);
|
|
261
246
|
// Copy matrix for iteration to avoid modifying the original
|
|
262
247
|
let A = MatrixClone(matrix);
|
|
@@ -271,7 +256,7 @@ export function MatrixEigenQRIteration(matrix, iterations = 50) {
|
|
|
271
256
|
catch (err) {
|
|
272
257
|
// If QR fails due to linear dependence, fill Q with orthonormal basis and R with zeros
|
|
273
258
|
AssertInstanceOf(err, Error, { message: 'Unexpected error in QR iteration' });
|
|
274
|
-
if (err
|
|
259
|
+
if (err.message.includes('linearly dependent')) {
|
|
275
260
|
Q = MatrixGramSchmidt(A);
|
|
276
261
|
R = MatrixCreate(n, n); // All zeros
|
|
277
262
|
}
|
|
@@ -285,10 +270,8 @@ export function MatrixEigenQRIteration(matrix, iterations = 50) {
|
|
|
285
270
|
let converged = true;
|
|
286
271
|
for (let i = 0; i < n - 1; i++) {
|
|
287
272
|
const aRowI = A[i];
|
|
288
|
-
AssertMatrixRow(aRowI);
|
|
289
273
|
for (let j = i + 1; j < n; j++) {
|
|
290
274
|
const aVal = aRowI[j];
|
|
291
|
-
AssertMatrixValue(aVal, { rowIndex: i, columnIndex: j });
|
|
292
275
|
if (Math.abs(aVal) > EIGEN_CONVERGENCE_TOLERANCE) {
|
|
293
276
|
converged = false;
|
|
294
277
|
break;
|
|
@@ -304,9 +287,7 @@ export function MatrixEigenQRIteration(matrix, iterations = 50) {
|
|
|
304
287
|
const eigenvalues = [];
|
|
305
288
|
for (let i = 0; i < n; i++) {
|
|
306
289
|
const aRowI = A[i];
|
|
307
|
-
AssertMatrixRow(aRowI);
|
|
308
290
|
const eigenvalue = aRowI[i];
|
|
309
|
-
AssertMatrixValue(eigenvalue, { rowIndex: i, columnIndex: i });
|
|
310
291
|
eigenvalues.push(eigenvalue);
|
|
311
292
|
}
|
|
312
293
|
return {
|
|
@@ -338,22 +319,20 @@ export function MatrixEigenQRIteration(matrix, iterations = 50) {
|
|
|
338
319
|
* @throws {MatrixError} If matrix is not square, singular (zero pivot), or contains invalid values
|
|
339
320
|
*
|
|
340
321
|
* @example
|
|
341
|
-
* ```
|
|
322
|
+
* ```typescript
|
|
342
323
|
* const A = [[2, 1], [1, 1]];
|
|
343
324
|
* const { L, U, P } = MatrixLU(A);
|
|
344
325
|
* // L = [[1, 0], [0.5, 1]], U = [[2, 1], [0, 0.5]], P = [0, 1]
|
|
345
|
-
*
|
|
346
326
|
* // Verify: L × U should equal P-permuted A
|
|
347
327
|
* const product = MatrixMultiply(L, U);
|
|
348
328
|
* // product ≈ [[2, 1], [1, 1]]
|
|
349
329
|
* ```
|
|
350
|
-
*
|
|
351
330
|
* @complexity Time: O(n³/3), Space: O(n²)
|
|
352
331
|
* @see {@link MatrixCholesky} For symmetric positive definite matrices (more efficient)
|
|
353
332
|
* @see {@link MatrixSolve} For solving Ax = b directly
|
|
354
333
|
*/
|
|
355
334
|
export function MatrixLU(matrix) {
|
|
356
|
-
|
|
335
|
+
AssertMatrixSquare(matrix);
|
|
357
336
|
const [n] = MatrixSize(matrix);
|
|
358
337
|
// Work on a mutable copy so partial pivoting can reorder rows
|
|
359
338
|
const A = matrix.map((row) => [...row]);
|
|
@@ -435,24 +414,21 @@ export function MatrixLU(matrix) {
|
|
|
435
414
|
*
|
|
436
415
|
* @param matrix - Matrix to decompose (m×n where m ≥ n, must have full column rank)
|
|
437
416
|
* @returns Object containing orthogonal Q and upper triangular R matrices
|
|
438
|
-
* @throws {
|
|
417
|
+
* @throws {MatrixError} If matrix has more columns than rows or columns are linearly dependent
|
|
439
418
|
*
|
|
440
419
|
* @example
|
|
441
|
-
* ```
|
|
420
|
+
* ```typescript
|
|
442
421
|
* const A = [[1, 1], [1, 0], [0, 1]]; // 3×2 matrix
|
|
443
422
|
* const { Q, R } = MatrixQR(A);
|
|
444
423
|
* // Q: 3×2 orthogonal matrix with Q^T × Q = I₂
|
|
445
424
|
* // R: 2×2 upper triangular matrix
|
|
446
|
-
*
|
|
447
425
|
* // Verify: Q × R should equal A
|
|
448
426
|
* const reconstructed = MatrixMultiply(Q, R);
|
|
449
427
|
* // reconstructed ≈ A
|
|
450
|
-
*
|
|
451
428
|
* // Check orthogonality: Q^T × Q should be identity
|
|
452
429
|
* const QT = MatrixTranspose(Q);
|
|
453
430
|
* const identity = MatrixMultiply(QT, Q);
|
|
454
431
|
* ```
|
|
455
|
-
*
|
|
456
432
|
* @complexity Time: O(mn²), Space: O(mn) where m ≥ n
|
|
457
433
|
* @see {@link MatrixGramSchmidt} {@link MatrixLU} {@link MatrixEigenQRIteration}
|
|
458
434
|
*/
|
|
@@ -461,7 +437,7 @@ export function MatrixQR(matrix, allowDependentColumns = false) {
|
|
|
461
437
|
const [m, n] = MatrixSize(matrix);
|
|
462
438
|
// Verify that the matrix has at least as many rows as columns
|
|
463
439
|
if (m < n) {
|
|
464
|
-
throw new
|
|
440
|
+
throw new MatrixError('QR decomposition requires matrix to have at least as many rows as columns');
|
|
465
441
|
}
|
|
466
442
|
const Q = MatrixClone(matrix);
|
|
467
443
|
const R = MatrixCreate(n, n);
|
|
@@ -472,16 +448,13 @@ export function MatrixQR(matrix, allowDependentColumns = false) {
|
|
|
472
448
|
const qRow = Q[i];
|
|
473
449
|
if (!qRow)
|
|
474
450
|
continue;
|
|
475
|
-
AssertMatrixRow(qRow);
|
|
476
451
|
const qVal = qRow[k];
|
|
477
|
-
AssertMatrixValue(qVal, { rowIndex: i, columnIndex: k });
|
|
478
452
|
norm += qVal * qVal;
|
|
479
453
|
}
|
|
480
454
|
norm = Math.sqrt(norm);
|
|
481
455
|
if (norm < MATRIX_NUMERICAL_TOLERANCE) {
|
|
482
|
-
if (!allowDependentColumns)
|
|
483
|
-
throw new
|
|
484
|
-
}
|
|
456
|
+
if (!allowDependentColumns)
|
|
457
|
+
throw new MatrixError(`Column ${k} is linearly dependent on previous columns`);
|
|
485
458
|
// Fill Q[:,k] with an orthonormal vector not in the span of previous columns
|
|
486
459
|
const candidate = Array(m).fill(0);
|
|
487
460
|
candidate[k % m] = 1;
|
|
@@ -489,16 +462,12 @@ export function MatrixQR(matrix, allowDependentColumns = false) {
|
|
|
489
462
|
let dot = 0;
|
|
490
463
|
for (let i = 0; i < m; i++) {
|
|
491
464
|
const qRow = Q[i];
|
|
492
|
-
AssertMatrixRow(qRow);
|
|
493
465
|
const qVal = qRow[j];
|
|
494
|
-
AssertMatrixValue(qVal, { rowIndex: i, columnIndex: j });
|
|
495
466
|
dot += qVal * candidate[i];
|
|
496
467
|
}
|
|
497
468
|
for (let i = 0; i < m; i++) {
|
|
498
469
|
const qRow = Q[i];
|
|
499
|
-
AssertMatrixRow(qRow);
|
|
500
470
|
const qVal = qRow[j];
|
|
501
|
-
AssertMatrixValue(qVal, { rowIndex: i, columnIndex: j });
|
|
502
471
|
const candidateVal = candidate[i];
|
|
503
472
|
AssertNumber(candidateVal, {}, { message: `candidate[${i}] Not a Number` });
|
|
504
473
|
candidate[i] = candidateVal - (dot * qVal);
|
|
@@ -509,7 +478,7 @@ export function MatrixQR(matrix, allowDependentColumns = false) {
|
|
|
509
478
|
for (let i = 0; i < m; i++) {
|
|
510
479
|
const qRow = Q[i];
|
|
511
480
|
if (!Array.isArray(qRow))
|
|
512
|
-
throw new
|
|
481
|
+
throw new MatrixError(`Internal error: Q[${i}] is not an array`);
|
|
513
482
|
qRow[k] = candidate[i] / candNorm;
|
|
514
483
|
}
|
|
515
484
|
}
|
|
@@ -517,53 +486,47 @@ export function MatrixQR(matrix, allowDependentColumns = false) {
|
|
|
517
486
|
for (let i = 0; i < m; i++) {
|
|
518
487
|
const qRow = Q[i];
|
|
519
488
|
if (!Array.isArray(qRow))
|
|
520
|
-
throw new
|
|
489
|
+
throw new MatrixError(`Internal error: Q[${i}] is not an array`);
|
|
521
490
|
qRow[k] = 0;
|
|
522
491
|
}
|
|
523
492
|
}
|
|
524
493
|
const rRow = R[k];
|
|
525
|
-
|
|
526
|
-
for (let j = 0; j < n; j++) {
|
|
494
|
+
for (let j = 0; j < n; j++)
|
|
527
495
|
rRow[j] = 0;
|
|
528
|
-
}
|
|
529
496
|
continue;
|
|
530
497
|
}
|
|
531
498
|
const rRow = R[k];
|
|
532
|
-
AssertMatrixRow(rRow);
|
|
533
499
|
rRow[k] = norm;
|
|
534
500
|
for (let i = 0; i < m; i++) {
|
|
535
501
|
const qRow = Q[i];
|
|
536
502
|
if (!qRow)
|
|
537
503
|
continue;
|
|
538
|
-
AssertMatrixRow(qRow);
|
|
539
504
|
const qVal = qRow[k];
|
|
540
|
-
AssertMatrixValue(qVal, { rowIndex: i, columnIndex: k });
|
|
541
505
|
qRow[k] = qVal / norm;
|
|
542
506
|
}
|
|
507
|
+
// Extract k-th column of Q for cache-efficient access
|
|
508
|
+
const qColK = [];
|
|
509
|
+
for (let i = 0; i < m; i++) {
|
|
510
|
+
const qRow = Q[i];
|
|
511
|
+
if (qRow)
|
|
512
|
+
qColK[i] = qRow[k];
|
|
513
|
+
}
|
|
543
514
|
for (let j = k + 1; j < n; j++) {
|
|
544
515
|
let dot = 0;
|
|
545
516
|
for (let i = 0; i < m; i++) {
|
|
546
517
|
const qRow = Q[i];
|
|
547
518
|
if (!qRow)
|
|
548
519
|
continue;
|
|
549
|
-
AssertMatrixRow(qRow);
|
|
550
|
-
const qValK = qRow[k];
|
|
551
520
|
const qValJ = qRow[j];
|
|
552
|
-
|
|
553
|
-
AssertMatrixValue(qValJ, { rowIndex: i, columnIndex: j });
|
|
554
|
-
dot += qValK * qValJ;
|
|
521
|
+
dot += qColK[i] * qValJ;
|
|
555
522
|
}
|
|
556
523
|
rRow[j] = dot;
|
|
557
524
|
for (let i = 0; i < m; i++) {
|
|
558
525
|
const qRow = Q[i];
|
|
559
526
|
if (!qRow)
|
|
560
527
|
continue;
|
|
561
|
-
AssertMatrixRow(qRow);
|
|
562
|
-
const qValK = qRow[k];
|
|
563
528
|
const qValJ = qRow[j];
|
|
564
|
-
|
|
565
|
-
AssertMatrixValue(qValJ, { rowIndex: i, columnIndex: j });
|
|
566
|
-
qRow[j] = qValJ - (dot * qValK);
|
|
529
|
+
qRow[j] = qValJ - (dot * qColK[i]);
|
|
567
530
|
}
|
|
568
531
|
}
|
|
569
532
|
}
|
|
@@ -599,27 +562,23 @@ export function MatrixQR(matrix, allowDependentColumns = false) {
|
|
|
599
562
|
*
|
|
600
563
|
* @param matrix - Matrix to decompose (any m×n matrix)
|
|
601
564
|
* @returns Object containing U, S (singular values), and VT matrices
|
|
602
|
-
* @throws {
|
|
565
|
+
* @throws {MatrixError} If matrix contains invalid values (NaN, Infinity)
|
|
603
566
|
*
|
|
604
567
|
* @example
|
|
605
|
-
* ```
|
|
568
|
+
* ```typescript
|
|
606
569
|
* const A = [[1, 2], [3, 4], [5, 6]]; // 3×2 matrix
|
|
607
570
|
* const { U, S, VT } = MatrixSVD(A);
|
|
608
571
|
* // U: 3×2 matrix with orthonormal columns
|
|
609
572
|
* // S: [σ₁, σ₂] singular values in descending order
|
|
610
573
|
* // VT: 2×2 orthogonal matrix (V transposed)
|
|
611
|
-
*
|
|
612
574
|
* // Verify reconstruction: U × diag(S) × VT ≈ A
|
|
613
|
-
*
|
|
614
|
-
* const reconstructed = MatrixMultiply(MatrixMultiply(U,
|
|
615
|
-
*
|
|
575
|
+
* // Note: Create diagonal matrix Sigma with S on diagonal, then: reconstructed = U × Sigma × VT
|
|
576
|
+
* const reconstructed = MatrixMultiply(MatrixMultiply(U, [[S[0], 0], [0, S[1]]]), VT);
|
|
616
577
|
* // Matrix rank from singular values (count non-zero values)
|
|
617
578
|
* const rank = S.filter(s => s > 1e-10).length;
|
|
618
|
-
*
|
|
619
579
|
* // Condition number for stability analysis
|
|
620
580
|
* const conditionNumber = S[0] / S[S.length - 1];
|
|
621
581
|
* ```
|
|
622
|
-
*
|
|
623
582
|
* @complexity Time: O(min(m²n, mn²)), Space: O(m² + n²)
|
|
624
583
|
* @see {@link MatrixQR} {@link MatrixEigenQRIteration} {@link Matrix_PseudoInverse}
|
|
625
584
|
*/
|
|
@@ -701,18 +660,21 @@ export function MatrixSVD(matrix) {
|
|
|
701
660
|
* @throws {MatrixError} If A is not square, singular, or b has the wrong length
|
|
702
661
|
*
|
|
703
662
|
* @example
|
|
663
|
+
* ```typescript
|
|
704
664
|
* // 2x + y = 8
|
|
705
665
|
* // 5x + 3y = 20
|
|
706
666
|
* MatrixSolve([[2, 1], [5, 3]], [8, 20]); // [4, 0]
|
|
707
|
-
*
|
|
667
|
+
* ```
|
|
708
668
|
* @example
|
|
669
|
+
* ```typescript
|
|
709
670
|
* // Solve a 3×3 system
|
|
710
671
|
* const A = [[1, 2, -1], [2, 1, 1], [3, -1, 2]];
|
|
711
672
|
* const b = [4, 7, 2];
|
|
712
673
|
* MatrixSolve(A, b); // solution vector x
|
|
674
|
+
* ```
|
|
713
675
|
*/
|
|
714
676
|
export function MatrixSolve(a, b) {
|
|
715
|
-
|
|
677
|
+
AssertMatrixSquare(a);
|
|
716
678
|
const [n] = MatrixSize(a);
|
|
717
679
|
if (b.length !== n) {
|
|
718
680
|
throw new MatrixError(`Right-hand side vector length (${b.length}) must match matrix dimension (${n})`);
|
|
@@ -722,18 +684,16 @@ export function MatrixSolve(a, b) {
|
|
|
722
684
|
const bPerm = P.map((pi) => {
|
|
723
685
|
const val = b[pi];
|
|
724
686
|
if (val === undefined)
|
|
725
|
-
throw new
|
|
687
|
+
throw new Error(`b[${pi}] is undefined`);
|
|
726
688
|
return val;
|
|
727
689
|
});
|
|
728
690
|
// Forward substitution: solve Ly = b_perm (L has 1s on its diagonal)
|
|
729
691
|
const y = new Array(n).fill(0);
|
|
730
692
|
for (let i = 0; i < n; i++) {
|
|
731
693
|
const lRow = L[i];
|
|
732
|
-
AssertMatrixRow(lRow);
|
|
733
694
|
let sum = 0;
|
|
734
695
|
for (let j = 0; j < i; j++) {
|
|
735
696
|
const lVal = lRow[j];
|
|
736
|
-
AssertMatrixValue(lVal);
|
|
737
697
|
sum += lVal * y[j];
|
|
738
698
|
}
|
|
739
699
|
y[i] = bPerm[i] - sum;
|
|
@@ -742,15 +702,12 @@ export function MatrixSolve(a, b) {
|
|
|
742
702
|
const x = new Array(n).fill(0);
|
|
743
703
|
for (let i = n - 1; i >= 0; i--) {
|
|
744
704
|
const uRow = U[i];
|
|
745
|
-
AssertMatrixRow(uRow);
|
|
746
705
|
let sum = 0;
|
|
747
706
|
for (let j = i + 1; j < n; j++) {
|
|
748
707
|
const uVal = uRow[j];
|
|
749
|
-
AssertMatrixValue(uVal);
|
|
750
708
|
sum += uVal * x[j];
|
|
751
709
|
}
|
|
752
710
|
const uDiag = uRow[i];
|
|
753
|
-
AssertMatrixValue(uDiag);
|
|
754
711
|
if (uDiag === 0)
|
|
755
712
|
throw new MatrixError('Matrix is singular — cannot solve the linear system');
|
|
756
713
|
x[i] = (y[i] - sum) / uDiag;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"decompositions.js","sourceRoot":"","sources":["../../src/matrices/decompositions.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"decompositions.js","sourceRoot":"","sources":["../../src/matrices/decompositions.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
+
export * from './types.js';
|
|
2
|
+
export * from './core.js';
|
|
1
3
|
export * from './arithmetic.js';
|
|
2
4
|
export * from './asserts.js';
|
|
3
|
-
export * from './core.js';
|
|
4
5
|
export * from './decompositions.js';
|
|
5
6
|
export * from './linear-algebra.js';
|
|
6
7
|
export * from './normalization.js';
|
|
7
8
|
export * from './transformations.js';
|
|
8
|
-
export * from './types.js';
|
|
9
9
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/matrices/index.ts"],"names":[],"mappings":"AAAA,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/matrices/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC"}
|
package/build/matrices/index.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
+
export * from './types.js';
|
|
2
|
+
export * from './core.js';
|
|
1
3
|
export * from './arithmetic.js';
|
|
2
4
|
export * from './asserts.js';
|
|
3
|
-
export * from './core.js';
|
|
4
5
|
export * from './decompositions.js';
|
|
5
6
|
export * from './linear-algebra.js';
|
|
6
7
|
export * from './normalization.js';
|
|
7
8
|
export * from './transformations.js';
|
|
8
|
-
export * from './types.js';
|
|
9
9
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/matrices/index.ts"],"names":[],"mappings":"AAAA,cAAc,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/matrices/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC"}
|