mathjs 11.3.3 → 11.5.0
Sign up to get free protection for your applications and to get access to all the features.
- package/HISTORY.md +25 -0
- package/lib/browser/math.js +1 -1
- package/lib/browser/math.js.LICENSE.txt +2 -2
- package/lib/browser/math.js.map +1 -1
- package/lib/cjs/entry/dependenciesAny/dependenciesLyap.generated.js +26 -0
- package/lib/cjs/entry/dependenciesAny/dependenciesPolynomialRoot.generated.js +42 -0
- package/lib/cjs/entry/dependenciesAny/dependenciesSchur.generated.js +30 -0
- package/lib/cjs/entry/dependenciesAny/dependenciesSylvester.generated.js +46 -0
- package/lib/cjs/entry/dependenciesAny.generated.js +28 -0
- package/lib/cjs/entry/impureFunctionsAny.generated.js +21 -17
- package/lib/cjs/entry/pureFunctionsAny.generated.js +100 -48
- package/lib/cjs/expression/embeddedDocs/embeddedDocs.js +8 -0
- package/lib/cjs/expression/embeddedDocs/function/algebra/polynomialRoot.js +15 -0
- package/lib/cjs/expression/embeddedDocs/function/matrix/lyap.js +15 -0
- package/lib/cjs/expression/embeddedDocs/function/matrix/reshape.js +1 -1
- package/lib/cjs/expression/embeddedDocs/function/matrix/schur.js +15 -0
- package/lib/cjs/expression/embeddedDocs/function/matrix/sylvester.js +15 -0
- package/lib/cjs/factoriesAny.js +28 -0
- package/lib/cjs/function/algebra/decomposition/schur.js +75 -0
- package/lib/cjs/function/algebra/lyap.js +57 -0
- package/lib/cjs/function/algebra/polynomialRoot.js +139 -0
- package/lib/cjs/function/algebra/simplify/wildcards.js +38 -0
- package/lib/cjs/function/algebra/simplify.js +161 -48
- package/lib/cjs/function/algebra/simplifyConstant.js +29 -12
- package/lib/cjs/function/algebra/sylvester.js +127 -0
- package/lib/cjs/function/matrix/forEach.js +1 -1
- package/lib/cjs/function/matrix/reshape.js +1 -1
- package/lib/cjs/function/string/format.js +24 -24
- package/lib/cjs/header.js +2 -2
- package/lib/cjs/version.js +1 -1
- package/lib/esm/entry/dependenciesAny/dependenciesLyap.generated.js +18 -0
- package/lib/esm/entry/dependenciesAny/dependenciesPolynomialRoot.generated.js +34 -0
- package/lib/esm/entry/dependenciesAny/dependenciesSchur.generated.js +22 -0
- package/lib/esm/entry/dependenciesAny/dependenciesSylvester.generated.js +38 -0
- package/lib/esm/entry/dependenciesAny.generated.js +4 -0
- package/lib/esm/entry/impureFunctionsAny.generated.js +22 -18
- package/lib/esm/entry/pureFunctionsAny.generated.js +87 -39
- package/lib/esm/expression/embeddedDocs/embeddedDocs.js +8 -0
- package/lib/esm/expression/embeddedDocs/function/algebra/polynomialRoot.js +8 -0
- package/lib/esm/expression/embeddedDocs/function/matrix/lyap.js +8 -0
- package/lib/esm/expression/embeddedDocs/function/matrix/reshape.js +1 -1
- package/lib/esm/expression/embeddedDocs/function/matrix/schur.js +8 -0
- package/lib/esm/expression/embeddedDocs/function/matrix/sylvester.js +8 -0
- package/lib/esm/factoriesAny.js +4 -0
- package/lib/esm/function/algebra/decomposition/schur.js +70 -0
- package/lib/esm/function/algebra/lyap.js +52 -0
- package/lib/esm/function/algebra/polynomialRoot.js +122 -0
- package/lib/esm/function/algebra/simplify/wildcards.js +20 -0
- package/lib/esm/function/algebra/simplify.js +162 -49
- package/lib/esm/function/algebra/simplifyConstant.js +29 -12
- package/lib/esm/function/algebra/sylvester.js +118 -0
- package/lib/esm/function/matrix/forEach.js +1 -1
- package/lib/esm/function/matrix/reshape.js +1 -1
- package/lib/esm/function/string/format.js +24 -24
- package/lib/esm/version.js +1 -1
- package/package.json +14 -14
- package/types/index.d.ts +88 -6
@@ -0,0 +1,34 @@
|
|
1
|
+
/**
|
2
|
+
* THIS FILE IS AUTO-GENERATED
|
3
|
+
* DON'T MAKE CHANGES HERE
|
4
|
+
*/
|
5
|
+
import { addDependencies } from './dependenciesAdd.generated.js';
|
6
|
+
import { cbrtDependencies } from './dependenciesCbrt.generated.js';
|
7
|
+
import { divideDependencies } from './dependenciesDivide.generated.js';
|
8
|
+
import { equalScalarDependencies } from './dependenciesEqualScalar.generated.js';
|
9
|
+
import { imDependencies } from './dependenciesIm.generated.js';
|
10
|
+
import { isZeroDependencies } from './dependenciesIsZero.generated.js';
|
11
|
+
import { multiplyDependencies } from './dependenciesMultiply.generated.js';
|
12
|
+
import { reDependencies } from './dependenciesRe.generated.js';
|
13
|
+
import { sqrtDependencies } from './dependenciesSqrt.generated.js';
|
14
|
+
import { subtractDependencies } from './dependenciesSubtract.generated.js';
|
15
|
+
import { typeOfDependencies } from './dependenciesTypeOf.generated.js';
|
16
|
+
import { typedDependencies } from './dependenciesTyped.generated.js';
|
17
|
+
import { unaryMinusDependencies } from './dependenciesUnaryMinus.generated.js';
|
18
|
+
import { createPolynomialRoot } from '../../factoriesAny.js';
|
19
|
+
export var polynomialRootDependencies = {
|
20
|
+
addDependencies,
|
21
|
+
cbrtDependencies,
|
22
|
+
divideDependencies,
|
23
|
+
equalScalarDependencies,
|
24
|
+
imDependencies,
|
25
|
+
isZeroDependencies,
|
26
|
+
multiplyDependencies,
|
27
|
+
reDependencies,
|
28
|
+
sqrtDependencies,
|
29
|
+
subtractDependencies,
|
30
|
+
typeOfDependencies,
|
31
|
+
typedDependencies,
|
32
|
+
unaryMinusDependencies,
|
33
|
+
createPolynomialRoot
|
34
|
+
};
|
@@ -0,0 +1,22 @@
|
|
1
|
+
/**
|
2
|
+
* THIS FILE IS AUTO-GENERATED
|
3
|
+
* DON'T MAKE CHANGES HERE
|
4
|
+
*/
|
5
|
+
import { identityDependencies } from './dependenciesIdentity.generated.js';
|
6
|
+
import { matrixDependencies } from './dependenciesMatrix.generated.js';
|
7
|
+
import { multiplyDependencies } from './dependenciesMultiply.generated.js';
|
8
|
+
import { normDependencies } from './dependenciesNorm.generated.js';
|
9
|
+
import { qrDependencies } from './dependenciesQr.generated.js';
|
10
|
+
import { subtractDependencies } from './dependenciesSubtract.generated.js';
|
11
|
+
import { typedDependencies } from './dependenciesTyped.generated.js';
|
12
|
+
import { createSchur } from '../../factoriesAny.js';
|
13
|
+
export var schurDependencies = {
|
14
|
+
identityDependencies,
|
15
|
+
matrixDependencies,
|
16
|
+
multiplyDependencies,
|
17
|
+
normDependencies,
|
18
|
+
qrDependencies,
|
19
|
+
subtractDependencies,
|
20
|
+
typedDependencies,
|
21
|
+
createSchur
|
22
|
+
};
|
@@ -0,0 +1,38 @@
|
|
1
|
+
/**
|
2
|
+
* THIS FILE IS AUTO-GENERATED
|
3
|
+
* DON'T MAKE CHANGES HERE
|
4
|
+
*/
|
5
|
+
import { absDependencies } from './dependenciesAbs.generated.js';
|
6
|
+
import { addDependencies } from './dependenciesAdd.generated.js';
|
7
|
+
import { concatDependencies } from './dependenciesConcat.generated.js';
|
8
|
+
import { identityDependencies } from './dependenciesIdentity.generated.js';
|
9
|
+
import { indexDependencies } from './dependenciesIndex.generated.js';
|
10
|
+
import { lusolveDependencies } from './dependenciesLusolve.generated.js';
|
11
|
+
import { matrixDependencies } from './dependenciesMatrix.generated.js';
|
12
|
+
import { matrixFromColumnsDependencies } from './dependenciesMatrixFromColumns.generated.js';
|
13
|
+
import { multiplyDependencies } from './dependenciesMultiply.generated.js';
|
14
|
+
import { rangeDependencies } from './dependenciesRange.generated.js';
|
15
|
+
import { schurDependencies } from './dependenciesSchur.generated.js';
|
16
|
+
import { subsetDependencies } from './dependenciesSubset.generated.js';
|
17
|
+
import { subtractDependencies } from './dependenciesSubtract.generated.js';
|
18
|
+
import { transposeDependencies } from './dependenciesTranspose.generated.js';
|
19
|
+
import { typedDependencies } from './dependenciesTyped.generated.js';
|
20
|
+
import { createSylvester } from '../../factoriesAny.js';
|
21
|
+
export var sylvesterDependencies = {
|
22
|
+
absDependencies,
|
23
|
+
addDependencies,
|
24
|
+
concatDependencies,
|
25
|
+
identityDependencies,
|
26
|
+
indexDependencies,
|
27
|
+
lusolveDependencies,
|
28
|
+
matrixDependencies,
|
29
|
+
matrixFromColumnsDependencies,
|
30
|
+
multiplyDependencies,
|
31
|
+
rangeDependencies,
|
32
|
+
schurDependencies,
|
33
|
+
subsetDependencies,
|
34
|
+
subtractDependencies,
|
35
|
+
transposeDependencies,
|
36
|
+
typedDependencies,
|
37
|
+
createSylvester
|
38
|
+
};
|
@@ -182,6 +182,7 @@ export { lsolveDependencies } from './dependenciesAny/dependenciesLsolve.generat
|
|
182
182
|
export { lsolveAllDependencies } from './dependenciesAny/dependenciesLsolveAll.generated.js';
|
183
183
|
export { lupDependencies } from './dependenciesAny/dependenciesLup.generated.js';
|
184
184
|
export { lusolveDependencies } from './dependenciesAny/dependenciesLusolve.generated.js';
|
185
|
+
export { lyapDependencies } from './dependenciesAny/dependenciesLyap.generated.js';
|
185
186
|
export { madDependencies } from './dependenciesAny/dependenciesMad.generated.js';
|
186
187
|
export { magneticConstantDependencies } from './dependenciesAny/dependenciesMagneticConstant.generated.js';
|
187
188
|
export { magneticFluxQuantumDependencies } from './dependenciesAny/dependenciesMagneticFluxQuantum.generated.js';
|
@@ -240,6 +241,7 @@ export { planckLengthDependencies } from './dependenciesAny/dependenciesPlanckLe
|
|
240
241
|
export { planckMassDependencies } from './dependenciesAny/dependenciesPlanckMass.generated.js';
|
241
242
|
export { planckTemperatureDependencies } from './dependenciesAny/dependenciesPlanckTemperature.generated.js';
|
242
243
|
export { planckTimeDependencies } from './dependenciesAny/dependenciesPlanckTime.generated.js';
|
244
|
+
export { polynomialRootDependencies } from './dependenciesAny/dependenciesPolynomialRoot.generated.js';
|
243
245
|
export { powDependencies } from './dependenciesAny/dependenciesPow.generated.js';
|
244
246
|
export { printDependencies } from './dependenciesAny/dependenciesPrint.generated.js';
|
245
247
|
export { prodDependencies } from './dependenciesAny/dependenciesProd.generated.js';
|
@@ -274,6 +276,7 @@ export { rydbergDependencies } from './dependenciesAny/dependenciesRydberg.gener
|
|
274
276
|
export { SQRT1_2Dependencies } from './dependenciesAny/dependenciesSQRT1_2.generated.js'; // eslint-disable-line camelcase
|
275
277
|
export { SQRT2Dependencies } from './dependenciesAny/dependenciesSQRT2.generated.js';
|
276
278
|
export { sackurTetrodeDependencies } from './dependenciesAny/dependenciesSackurTetrode.generated.js';
|
279
|
+
export { schurDependencies } from './dependenciesAny/dependenciesSchur.generated.js';
|
277
280
|
export { secDependencies } from './dependenciesAny/dependenciesSec.generated.js';
|
278
281
|
export { sechDependencies } from './dependenciesAny/dependenciesSech.generated.js';
|
279
282
|
export { secondRadiationDependencies } from './dependenciesAny/dependenciesSecondRadiation.generated.js';
|
@@ -317,6 +320,7 @@ export { subsetTransformDependencies } from './dependenciesAny/dependenciesSubse
|
|
317
320
|
export { subtractDependencies } from './dependenciesAny/dependenciesSubtract.generated.js';
|
318
321
|
export { sumDependencies } from './dependenciesAny/dependenciesSum.generated.js';
|
319
322
|
export { sumTransformDependencies } from './dependenciesAny/dependenciesSumTransform.generated.js';
|
323
|
+
export { sylvesterDependencies } from './dependenciesAny/dependenciesSylvester.generated.js';
|
320
324
|
export { SymbolNodeDependencies } from './dependenciesAny/dependenciesSymbolNode.generated.js';
|
321
325
|
export { symbolicEqualDependencies } from './dependenciesAny/dependenciesSymbolicEqual.generated.js';
|
322
326
|
export { tanDependencies } from './dependenciesAny/dependenciesTan.generated.js';
|
@@ -4,10 +4,10 @@ import _extends from "@babel/runtime/helpers/extends";
|
|
4
4
|
* DON'T MAKE CHANGES HERE
|
5
5
|
*/
|
6
6
|
import { config } from './configReadonly.js';
|
7
|
-
import { createNode, createObjectNode, createOperatorNode, createParenthesisNode, createRelationalNode, createArrayNode, createBlockNode, createConditionalNode, createConstantNode, createRangeNode, createReviver, createChainClass, createFunctionAssignmentNode, createChain, createAccessorNode, createAssignmentNode, createIndexNode, createSymbolNode, createFunctionNode, createParse, createResolve, createSimplifyConstant, createCompile, createHelpClass, createLeafCount, createSimplifyCore, createEvaluate, createHelp, createParserClass,
|
7
|
+
import { createNode, createObjectNode, createOperatorNode, createParenthesisNode, createRelationalNode, createArrayNode, createBlockNode, createConditionalNode, createConstantNode, createRangeNode, createReviver, createChainClass, createFunctionAssignmentNode, createChain, createAccessorNode, createAssignmentNode, createIndexNode, createSymbolNode, createFunctionNode, createParse, createResolve, createSimplifyConstant, createCompile, createHelpClass, createLeafCount, createSimplifyCore, createEvaluate, createHelp, createParserClass, createSimplify, createSymbolicEqual, createDerivative, createParser, createRationalize, createFilterTransform, createForEachTransform, createMapTransform, createApplyTransform, createDiffTransform, createSubsetTransform, createConcatTransform, createMaxTransform, createMinTransform, createRangeTransform, createSumTransform, createCumSumTransform, createRowTransform, createColumnTransform, createIndexTransform, createMeanTransform, createVarianceTransform, createStdTransform } from '../factoriesAny.js';
|
8
8
|
import { BigNumber, Complex, e, _false, fineStructure, Fraction, i, _Infinity, LN10, LOG10E, Matrix, _NaN, _null, phi, Range, ResultSet, SQRT1_2,
|
9
9
|
// eslint-disable-line camelcase
|
10
|
-
sackurTetrode, tau, _true, version, DenseMatrix, efimovFactor, LN2, pi, replacer, SQRT2, typed, unaryPlus, weakMixingAngle, abs, acos, acot, acsc, addScalar, arg, asech, asinh, atan, atanh, bignumber, bitNot, boolean, clone, combinations, complex, conj, cosh, coth, csc, cube, equalScalar, erf, exp, expm1, filter, forEach, format, getMatrixDataType, hex, im, isInteger, isNegative, isPositive, isZero, LOG2E, lgamma, log10, log2, map, multiplyScalar, not, number, oct, pickRandom, print, random, re, sec, sign, sin, SparseMatrix, splitUnit, square, string, tan, typeOf, acosh, acsch, apply, asec, bin, combinationsWithRep, cos, csch, isNaN, isPrime, randomInt, sech, sinh, sparse, sqrt, tanh, unaryMinus, acoth, cot, fraction, isNumeric, matrix, matrixFromFunction, mod, nthRoot, numeric, or, prod, reshape, size, smaller, squeeze, subset, subtract, to, transpose, xgcd, zeros, and, bitAnd, bitXor, cbrt, compare, compareText, concat, count, ctranspose, diag, divideScalar, dotDivide, equal, fft, flatten, gcd, hasNumericValue, hypot, ifft, kron, largerEq, leftShift, lsolve, matrixFromColumns, min, mode, nthRoots, ones, partitionSelect, resize, rightArithShift, round, smallerEq, unequal, usolve, xor, add, atan2, bitOr, catalan, compareNatural, cumsum, deepEqual, diff, dot, equalText, floor, identity, invmod, larger, log, lsolveAll, matrixFromRows, multiply, qr, range, rightLogShift, setSize, slu, sum, trace, usolveAll, asin, ceil, composition, cross, det, distance, dotMultiply, FibonacciHeap, fix, ImmutableDenseMatrix, Index, intersect, lcm, log1p, max, quantileSeq, row, setCartesian, setDistinct, setIsSubset, setPowerset, sort, column, index, inv, pinv, pow, setDifference, setMultiplicity, Spa, sqrtm, Unit, vacuumImpedance, wienDisplacement, atomicMass, bohrMagneton, boltzmann, conductanceQuantum, createUnit, deuteronMass, dotPow, electricConstant, elementaryCharge, expm, faraday, firstRadiation, gamma, gravitationConstant, hartreeEnergy, klitzing, loschmidt, magneticConstant, molarMass, molarPlanckConstant, neutronMass, nuclearMagneton, planckCharge, planckLength, planckTemperature, protonMass, reducedPlanckConstant, rydberg,
|
10
|
+
sackurTetrode, tau, _true, version, DenseMatrix, efimovFactor, LN2, pi, replacer, SQRT2, typed, unaryPlus, weakMixingAngle, abs, acos, acot, acsc, addScalar, arg, asech, asinh, atan, atanh, bignumber, bitNot, boolean, clone, combinations, complex, conj, cosh, coth, csc, cube, equalScalar, erf, exp, expm1, filter, forEach, format, getMatrixDataType, hex, im, isInteger, isNegative, isPositive, isZero, LOG2E, lgamma, log10, log2, map, multiplyScalar, not, number, oct, pickRandom, print, random, re, sec, sign, sin, SparseMatrix, splitUnit, square, string, tan, typeOf, acosh, acsch, apply, asec, bin, combinationsWithRep, cos, csch, isNaN, isPrime, randomInt, sech, sinh, sparse, sqrt, tanh, unaryMinus, acoth, cot, fraction, isNumeric, matrix, matrixFromFunction, mod, nthRoot, numeric, or, prod, reshape, size, smaller, squeeze, subset, subtract, to, transpose, xgcd, zeros, and, bitAnd, bitXor, cbrt, compare, compareText, concat, count, ctranspose, diag, divideScalar, dotDivide, equal, fft, flatten, gcd, hasNumericValue, hypot, ifft, kron, largerEq, leftShift, lsolve, matrixFromColumns, min, mode, nthRoots, ones, partitionSelect, resize, rightArithShift, round, smallerEq, unequal, usolve, xor, add, atan2, bitOr, catalan, compareNatural, cumsum, deepEqual, diff, dot, equalText, floor, identity, invmod, larger, log, lsolveAll, matrixFromRows, multiply, qr, range, rightLogShift, setSize, slu, sum, trace, usolveAll, asin, ceil, composition, cross, det, distance, dotMultiply, FibonacciHeap, fix, ImmutableDenseMatrix, Index, intersect, lcm, log1p, max, quantileSeq, row, setCartesian, setDistinct, setIsSubset, setPowerset, sort, column, index, inv, pinv, pow, setDifference, setMultiplicity, Spa, sqrtm, Unit, vacuumImpedance, wienDisplacement, atomicMass, bohrMagneton, boltzmann, conductanceQuantum, createUnit, deuteronMass, dotPow, electricConstant, elementaryCharge, expm, faraday, firstRadiation, gamma, gravitationConstant, hartreeEnergy, klitzing, loschmidt, magneticConstant, molarMass, molarPlanckConstant, neutronMass, nuclearMagneton, planckCharge, planckLength, planckTemperature, protonMass, reducedPlanckConstant, rydberg, secondRadiation, setSymDifference, speedOfLight, stefanBoltzmann, thomsonCrossSection, avogadro, bohrRadius, coulomb, divide, electronMass, factorial, gravity, inverseConductanceQuantum, lup, magneticFluxQuantum, molarMassC12, multinomial, permutations, planckMass, polynomialRoot, setIntersect, stirlingS2, unit, bellNumbers, eigs, fermiCoupling, mean, molarVolume, planckConstant, quantumOfCirculation, setUnion, variance, classicalElectronRadius, lusolve, median, kldivergence, mad, std, gasConstant, norm, rotationMatrix, planckTime, schur, rotate, sylvester, lyap } from './pureFunctionsAny.generated.js';
|
11
11
|
var math = {}; // NOT pure!
|
12
12
|
var mathWithTransform = {}; // NOT pure!
|
13
13
|
var classes = {}; // NOT pure!
|
@@ -169,10 +169,6 @@ export var help = createHelp({
|
|
169
169
|
export var Parser = createParserClass({
|
170
170
|
evaluate
|
171
171
|
});
|
172
|
-
export var parser = createParser({
|
173
|
-
Parser,
|
174
|
-
typed
|
175
|
-
});
|
176
172
|
export var simplify = createSimplify({
|
177
173
|
bignumber,
|
178
174
|
fraction,
|
@@ -221,6 +217,10 @@ export var derivative = createDerivative({
|
|
221
217
|
simplify,
|
222
218
|
typed
|
223
219
|
});
|
220
|
+
export var parser = createParser({
|
221
|
+
Parser,
|
222
|
+
typed
|
223
|
+
});
|
224
224
|
export var rationalize = createRationalize({
|
225
225
|
bignumber,
|
226
226
|
fraction,
|
@@ -490,7 +490,8 @@ _extends(math, {
|
|
490
490
|
protonMass,
|
491
491
|
reducedPlanckConstant,
|
492
492
|
rydberg,
|
493
|
-
|
493
|
+
secondRadiation,
|
494
|
+
setSymDifference,
|
494
495
|
speedOfLight,
|
495
496
|
stefanBoltzmann,
|
496
497
|
thomsonCrossSection,
|
@@ -509,9 +510,9 @@ _extends(math, {
|
|
509
510
|
parse,
|
510
511
|
permutations,
|
511
512
|
planckMass,
|
512
|
-
|
513
|
+
polynomialRoot,
|
513
514
|
resolve,
|
514
|
-
|
515
|
+
setIntersect,
|
515
516
|
simplifyConstant,
|
516
517
|
stirlingS2,
|
517
518
|
unit,
|
@@ -523,7 +524,8 @@ _extends(math, {
|
|
523
524
|
mean,
|
524
525
|
molarVolume,
|
525
526
|
planckConstant,
|
526
|
-
|
527
|
+
quantumOfCirculation,
|
528
|
+
setUnion,
|
527
529
|
simplifyCore,
|
528
530
|
variance,
|
529
531
|
classicalElectronRadius,
|
@@ -531,20 +533,22 @@ _extends(math, {
|
|
531
533
|
help,
|
532
534
|
lusolve,
|
533
535
|
median,
|
534
|
-
setUnion,
|
535
|
-
std,
|
536
|
-
gasConstant,
|
537
|
-
mad,
|
538
|
-
parser,
|
539
536
|
simplify,
|
540
537
|
symbolicEqual,
|
541
538
|
derivative,
|
542
|
-
|
539
|
+
kldivergence,
|
540
|
+
mad,
|
541
|
+
parser,
|
543
542
|
rationalize,
|
543
|
+
std,
|
544
|
+
gasConstant,
|
545
|
+
norm,
|
544
546
|
rotationMatrix,
|
545
|
-
kldivergence,
|
546
|
-
rotate,
|
547
547
|
planckTime,
|
548
|
+
schur,
|
549
|
+
rotate,
|
550
|
+
sylvester,
|
551
|
+
lyap,
|
548
552
|
config
|
549
553
|
});
|
550
554
|
_extends(mathWithTransform, math, {
|
@@ -5,7 +5,7 @@
|
|
5
5
|
import { config } from './configReadonly.js';
|
6
6
|
import { createBigNumberClass, createComplexClass, createE, createFalse, createFineStructure, createFractionClass, createI, createInfinity, createLN10, createLOG10E, createMatrixClass, createNaN, createNull, createPhi, createRangeClass, createResultSet, createSQRT1_2,
|
7
7
|
// eslint-disable-line camelcase
|
8
|
-
createSackurTetrode, createTau, createTrue, createVersion, createDenseMatrixClass, createEfimovFactor, createLN2, createPi, createReplacer, createSQRT2, createTyped, createUnaryPlus, createWeakMixingAngle, createAbs, createAcos, createAcot, createAcsc, createAddScalar, createArg, createAsech, createAsinh, createAtan, createAtanh, createBignumber, createBitNot, createBoolean, createClone, createCombinations, createComplex, createConj, createCosh, createCoth, createCsc, createCube, createEqualScalar, createErf, createExp, createExpm1, createFilter, createForEach, createFormat, createGetMatrixDataType, createHex, createIm, createIsInteger, createIsNegative, createIsPositive, createIsZero, createLOG2E, createLgamma, createLog10, createLog2, createMap, createMultiplyScalar, createNot, createNumber, createOct, createPickRandom, createPrint, createRandom, createRe, createSec, createSign, createSin, createSparseMatrixClass, createSplitUnit, createSquare, createString, createTan, createTypeOf, createAcosh, createAcsch, createApply, createAsec, createBin, createCombinationsWithRep, createCos, createCsch, createIsNaN, createIsPrime, createRandomInt, createSech, createSinh, createSparse, createSqrt, createTanh, createUnaryMinus, createAcoth, createCot, createFraction, createIsNumeric, createMatrix, createMatrixFromFunction, createMod, createNthRoot, createNumeric, createOr, createProd, createReshape, createSize, createSmaller, createSqueeze, createSubset, createSubtract, createTo, createTranspose, createXgcd, createZeros, createAnd, createBitAnd, createBitXor, createCbrt, createCompare, createCompareText, createConcat, createCount, createCtranspose, createDiag, createDivideScalar, createDotDivide, createEqual, createFft, createFlatten, createGcd, createHasNumericValue, createHypot, createIfft, createKron, createLargerEq, createLeftShift, createLsolve, createMatrixFromColumns, createMin, createMode, createNthRoots, createOnes, createPartitionSelect, createResize, createRightArithShift, createRound, createSmallerEq, createUnequal, createUsolve, createXor, createAdd, createAtan2, createBitOr, createCatalan, createCompareNatural, createCumSum, createDeepEqual, createDiff, createDot, createEqualText, createFloor, createIdentity, createInvmod, createLarger, createLog, createLsolveAll, createMatrixFromRows, createMultiply, createQr, createRange, createRightLogShift, createSetSize, createSlu, createSum, createTrace, createUsolveAll, createAsin, createCeil, createComposition, createCross, createDet, createDistance, createDotMultiply, createFibonacciHeapClass, createFix, createImmutableDenseMatrixClass, createIndexClass, createIntersect, createLcm, createLog1p, createMax, createQuantileSeq, createRow, createSetCartesian, createSetDistinct, createSetIsSubset, createSetPowerset, createSort, createColumn, createIndex, createInv, createPinv, createPow, createSetDifference, createSetMultiplicity, createSpaClass, createSqrtm, createUnitClass, createVacuumImpedance, createWienDisplacement, createAtomicMass, createBohrMagneton, createBoltzmann, createConductanceQuantum, createCreateUnit, createDeuteronMass, createDotPow, createElectricConstant, createElementaryCharge, createExpm, createFaraday, createFirstRadiation, createGamma, createGravitationConstant, createHartreeEnergy, createKlitzing, createLoschmidt, createMagneticConstant, createMolarMass, createMolarPlanckConstant, createNeutronMass, createNuclearMagneton, createPlanckCharge, createPlanckLength, createPlanckTemperature, createProtonMass, createReducedPlanckConstant, createRydberg,
|
8
|
+
createSackurTetrode, createTau, createTrue, createVersion, createDenseMatrixClass, createEfimovFactor, createLN2, createPi, createReplacer, createSQRT2, createTyped, createUnaryPlus, createWeakMixingAngle, createAbs, createAcos, createAcot, createAcsc, createAddScalar, createArg, createAsech, createAsinh, createAtan, createAtanh, createBignumber, createBitNot, createBoolean, createClone, createCombinations, createComplex, createConj, createCosh, createCoth, createCsc, createCube, createEqualScalar, createErf, createExp, createExpm1, createFilter, createForEach, createFormat, createGetMatrixDataType, createHex, createIm, createIsInteger, createIsNegative, createIsPositive, createIsZero, createLOG2E, createLgamma, createLog10, createLog2, createMap, createMultiplyScalar, createNot, createNumber, createOct, createPickRandom, createPrint, createRandom, createRe, createSec, createSign, createSin, createSparseMatrixClass, createSplitUnit, createSquare, createString, createTan, createTypeOf, createAcosh, createAcsch, createApply, createAsec, createBin, createCombinationsWithRep, createCos, createCsch, createIsNaN, createIsPrime, createRandomInt, createSech, createSinh, createSparse, createSqrt, createTanh, createUnaryMinus, createAcoth, createCot, createFraction, createIsNumeric, createMatrix, createMatrixFromFunction, createMod, createNthRoot, createNumeric, createOr, createProd, createReshape, createSize, createSmaller, createSqueeze, createSubset, createSubtract, createTo, createTranspose, createXgcd, createZeros, createAnd, createBitAnd, createBitXor, createCbrt, createCompare, createCompareText, createConcat, createCount, createCtranspose, createDiag, createDivideScalar, createDotDivide, createEqual, createFft, createFlatten, createGcd, createHasNumericValue, createHypot, createIfft, createKron, createLargerEq, createLeftShift, createLsolve, createMatrixFromColumns, createMin, createMode, createNthRoots, createOnes, createPartitionSelect, createResize, createRightArithShift, createRound, createSmallerEq, createUnequal, createUsolve, createXor, createAdd, createAtan2, createBitOr, createCatalan, createCompareNatural, createCumSum, createDeepEqual, createDiff, createDot, createEqualText, createFloor, createIdentity, createInvmod, createLarger, createLog, createLsolveAll, createMatrixFromRows, createMultiply, createQr, createRange, createRightLogShift, createSetSize, createSlu, createSum, createTrace, createUsolveAll, createAsin, createCeil, createComposition, createCross, createDet, createDistance, createDotMultiply, createFibonacciHeapClass, createFix, createImmutableDenseMatrixClass, createIndexClass, createIntersect, createLcm, createLog1p, createMax, createQuantileSeq, createRow, createSetCartesian, createSetDistinct, createSetIsSubset, createSetPowerset, createSort, createColumn, createIndex, createInv, createPinv, createPow, createSetDifference, createSetMultiplicity, createSpaClass, createSqrtm, createUnitClass, createVacuumImpedance, createWienDisplacement, createAtomicMass, createBohrMagneton, createBoltzmann, createConductanceQuantum, createCreateUnit, createDeuteronMass, createDotPow, createElectricConstant, createElementaryCharge, createExpm, createFaraday, createFirstRadiation, createGamma, createGravitationConstant, createHartreeEnergy, createKlitzing, createLoschmidt, createMagneticConstant, createMolarMass, createMolarPlanckConstant, createNeutronMass, createNuclearMagneton, createPlanckCharge, createPlanckLength, createPlanckTemperature, createProtonMass, createReducedPlanckConstant, createRydberg, createSecondRadiation, createSetSymDifference, createSpeedOfLight, createStefanBoltzmann, createThomsonCrossSection, createAvogadro, createBohrRadius, createCoulomb, createDivide, createElectronMass, createFactorial, createGravity, createInverseConductanceQuantum, createLup, createMagneticFluxQuantum, createMolarMassC12, createMultinomial, createPermutations, createPlanckMass, createPolynomialRoot, createSetIntersect, createStirlingS2, createUnitFunction, createBellNumbers, createEigs, createFermiCoupling, createMean, createMolarVolume, createPlanckConstant, createQuantumOfCirculation, createSetUnion, createVariance, createClassicalElectronRadius, createLusolve, createMedian, createKldivergence, createMad, createStd, createGasConstant, createNorm, createRotationMatrix, createPlanckTime, createSchur, createRotate, createSylvester, createLyap } from '../factoriesAny.js';
|
9
9
|
export var BigNumber = /* #__PURE__ */createBigNumberClass({
|
10
10
|
config
|
11
11
|
});
|
@@ -1308,10 +1308,15 @@ export var rydberg = /* #__PURE__ */createRydberg({
|
|
1308
1308
|
Unit,
|
1309
1309
|
config
|
1310
1310
|
});
|
1311
|
-
export var
|
1312
|
-
|
1311
|
+
export var secondRadiation = /* #__PURE__ */createSecondRadiation({
|
1312
|
+
BigNumber,
|
1313
|
+
Unit,
|
1314
|
+
config
|
1315
|
+
});
|
1316
|
+
export var setSymDifference = /* #__PURE__ */createSetSymDifference({
|
1313
1317
|
Index,
|
1314
|
-
|
1318
|
+
concat,
|
1319
|
+
setDifference,
|
1315
1320
|
size,
|
1316
1321
|
subset,
|
1317
1322
|
typed
|
@@ -1416,15 +1421,28 @@ export var planckMass = /* #__PURE__ */createPlanckMass({
|
|
1416
1421
|
Unit,
|
1417
1422
|
config
|
1418
1423
|
});
|
1419
|
-
export var
|
1420
|
-
|
1421
|
-
|
1422
|
-
|
1424
|
+
export var polynomialRoot = /* #__PURE__ */createPolynomialRoot({
|
1425
|
+
add,
|
1426
|
+
cbrt,
|
1427
|
+
divide,
|
1428
|
+
equalScalar,
|
1429
|
+
im,
|
1430
|
+
isZero,
|
1431
|
+
multiply,
|
1432
|
+
re,
|
1433
|
+
sqrt,
|
1434
|
+
subtract,
|
1435
|
+
typeOf,
|
1436
|
+
typed,
|
1437
|
+
unaryMinus
|
1423
1438
|
});
|
1424
|
-
export var
|
1425
|
-
|
1426
|
-
|
1427
|
-
|
1439
|
+
export var setIntersect = /* #__PURE__ */createSetIntersect({
|
1440
|
+
DenseMatrix,
|
1441
|
+
Index,
|
1442
|
+
compareNatural,
|
1443
|
+
size,
|
1444
|
+
subset,
|
1445
|
+
typed
|
1428
1446
|
});
|
1429
1447
|
export var stirlingS2 = /* #__PURE__ */createStirlingS2({
|
1430
1448
|
bignumber,
|
@@ -1505,10 +1523,16 @@ export var planckConstant = /* #__PURE__ */createPlanckConstant({
|
|
1505
1523
|
Unit,
|
1506
1524
|
config
|
1507
1525
|
});
|
1508
|
-
export var
|
1526
|
+
export var quantumOfCirculation = /* #__PURE__ */createQuantumOfCirculation({
|
1527
|
+
BigNumber,
|
1528
|
+
Unit,
|
1529
|
+
config
|
1530
|
+
});
|
1531
|
+
export var setUnion = /* #__PURE__ */createSetUnion({
|
1509
1532
|
Index,
|
1510
1533
|
concat,
|
1511
|
-
|
1534
|
+
setIntersect,
|
1535
|
+
setSymDifference,
|
1512
1536
|
size,
|
1513
1537
|
subset,
|
1514
1538
|
typed
|
@@ -1543,13 +1567,22 @@ export var median = /* #__PURE__ */createMedian({
|
|
1543
1567
|
partitionSelect,
|
1544
1568
|
typed
|
1545
1569
|
});
|
1546
|
-
export var
|
1547
|
-
|
1548
|
-
|
1549
|
-
|
1550
|
-
|
1551
|
-
|
1552
|
-
|
1570
|
+
export var kldivergence = /* #__PURE__ */createKldivergence({
|
1571
|
+
divide,
|
1572
|
+
dotDivide,
|
1573
|
+
isNumeric,
|
1574
|
+
log,
|
1575
|
+
map,
|
1576
|
+
matrix,
|
1577
|
+
multiply,
|
1578
|
+
sum,
|
1579
|
+
typed
|
1580
|
+
});
|
1581
|
+
export var mad = /* #__PURE__ */createMad({
|
1582
|
+
abs,
|
1583
|
+
map,
|
1584
|
+
median,
|
1585
|
+
subtract,
|
1553
1586
|
typed
|
1554
1587
|
});
|
1555
1588
|
export var std = /* #__PURE__ */createStd({
|
@@ -1563,13 +1596,6 @@ export var gasConstant = /* #__PURE__ */createGasConstant({
|
|
1563
1596
|
Unit,
|
1564
1597
|
config
|
1565
1598
|
});
|
1566
|
-
export var mad = /* #__PURE__ */createMad({
|
1567
|
-
abs,
|
1568
|
-
map,
|
1569
|
-
median,
|
1570
|
-
subtract,
|
1571
|
-
typed
|
1572
|
-
});
|
1573
1599
|
export var norm = /* #__PURE__ */createNorm({
|
1574
1600
|
abs,
|
1575
1601
|
add,
|
@@ -1599,15 +1625,18 @@ export var rotationMatrix = /* #__PURE__ */createRotationMatrix({
|
|
1599
1625
|
typed,
|
1600
1626
|
unaryMinus
|
1601
1627
|
});
|
1602
|
-
export var
|
1603
|
-
|
1604
|
-
|
1605
|
-
|
1606
|
-
|
1607
|
-
|
1628
|
+
export var planckTime = /* #__PURE__ */createPlanckTime({
|
1629
|
+
BigNumber,
|
1630
|
+
Unit,
|
1631
|
+
config
|
1632
|
+
});
|
1633
|
+
export var schur = /* #__PURE__ */createSchur({
|
1634
|
+
identity,
|
1608
1635
|
matrix,
|
1609
1636
|
multiply,
|
1610
|
-
|
1637
|
+
norm,
|
1638
|
+
qr,
|
1639
|
+
subtract,
|
1611
1640
|
typed
|
1612
1641
|
});
|
1613
1642
|
export var rotate = /* #__PURE__ */createRotate({
|
@@ -1615,8 +1644,27 @@ export var rotate = /* #__PURE__ */createRotate({
|
|
1615
1644
|
rotationMatrix,
|
1616
1645
|
typed
|
1617
1646
|
});
|
1618
|
-
export var
|
1619
|
-
|
1620
|
-
|
1621
|
-
|
1647
|
+
export var sylvester = /* #__PURE__ */createSylvester({
|
1648
|
+
abs,
|
1649
|
+
add,
|
1650
|
+
concat,
|
1651
|
+
identity,
|
1652
|
+
index,
|
1653
|
+
lusolve,
|
1654
|
+
matrix,
|
1655
|
+
matrixFromColumns,
|
1656
|
+
multiply,
|
1657
|
+
range,
|
1658
|
+
schur,
|
1659
|
+
subset,
|
1660
|
+
subtract,
|
1661
|
+
transpose,
|
1662
|
+
typed
|
1663
|
+
});
|
1664
|
+
export var lyap = /* #__PURE__ */createLyap({
|
1665
|
+
matrix,
|
1666
|
+
multiply,
|
1667
|
+
sylvester,
|
1668
|
+
transpose,
|
1669
|
+
typed
|
1622
1670
|
});
|
@@ -36,6 +36,7 @@ import { lsolveDocs } from './function/algebra/lsolve.js';
|
|
36
36
|
import { lsolveAllDocs } from './function/algebra/lsolveAll.js';
|
37
37
|
import { lupDocs } from './function/algebra/lup.js';
|
38
38
|
import { lusolveDocs } from './function/algebra/lusolve.js';
|
39
|
+
import { polynomialRootDocs } from './function/algebra/polynomialRoot.js';
|
39
40
|
import { qrDocs } from './function/algebra/qr.js';
|
40
41
|
import { rationalizeDocs } from './function/algebra/rationalize.js';
|
41
42
|
import { resolveDocs } from './function/algebra/resolve.js';
|
@@ -78,6 +79,9 @@ import { roundDocs } from './function/arithmetic/round.js';
|
|
78
79
|
import { signDocs } from './function/arithmetic/sign.js';
|
79
80
|
import { sqrtDocs } from './function/arithmetic/sqrt.js';
|
80
81
|
import { sqrtmDocs } from './function/arithmetic/sqrtm.js';
|
82
|
+
import { sylvesterDocs } from './function/matrix/sylvester.js';
|
83
|
+
import { schurDocs } from './function/matrix/schur.js';
|
84
|
+
import { lyapDocs } from './function/matrix/lyap.js';
|
81
85
|
import { squareDocs } from './function/arithmetic/square.js';
|
82
86
|
import { subtractDocs } from './function/arithmetic/subtract.js';
|
83
87
|
import { unaryMinusDocs } from './function/arithmetic/unaryMinus.js';
|
@@ -478,6 +482,7 @@ export var embeddedDocs = {
|
|
478
482
|
lup: lupDocs,
|
479
483
|
lusolve: lusolveDocs,
|
480
484
|
leafCount: leafCountDocs,
|
485
|
+
polynomialRoot: polynomialRootDocs,
|
481
486
|
resolve: resolveDocs,
|
482
487
|
simplify: simplifyDocs,
|
483
488
|
simplifyConstant: simplifyConstantDocs,
|
@@ -599,6 +604,9 @@ export var embeddedDocs = {
|
|
599
604
|
zeros: zerosDocs,
|
600
605
|
fft: fftDocs,
|
601
606
|
ifft: ifftDocs,
|
607
|
+
sylvester: sylvesterDocs,
|
608
|
+
schur: schurDocs,
|
609
|
+
lyap: lyapDocs,
|
602
610
|
// functions - probability
|
603
611
|
combinations: combinationsDocs,
|
604
612
|
combinationsWithRep: combinationsWithRepDocs,
|
@@ -0,0 +1,8 @@
|
|
1
|
+
export var polynomialRootDocs = {
|
2
|
+
name: 'polynomialRoot',
|
3
|
+
category: 'Algebra',
|
4
|
+
syntax: ['x=polynomialRoot(-6, 3)', 'x=polynomialRoot(4, -4, 1)', 'x=polynomialRoot(-8, 12, -6, 1)'],
|
5
|
+
description: 'Finds the roots of a univariate polynomial given by its coefficients starting from constant, linear, and so on, increasing in degree.',
|
6
|
+
examples: ['a = polynomialRoot(-6, 11, -6 1)'],
|
7
|
+
seealso: ['cbrt', 'sqrt']
|
8
|
+
};
|
@@ -0,0 +1,8 @@
|
|
1
|
+
export var lyapDocs = {
|
2
|
+
name: 'lyap',
|
3
|
+
category: 'Matrix',
|
4
|
+
syntax: ['lyap(A,Q)'],
|
5
|
+
description: 'Solves the Continuous-time Lyapunov equation AP+PA\'+Q=0 for P',
|
6
|
+
examples: ['lyap([[-2, 0], [1, -4]], [[3, 1], [1, 3]])', 'lyap(A,Q)'],
|
7
|
+
seealso: ['schur', 'sylvester']
|
8
|
+
};
|
@@ -3,6 +3,6 @@ export var reshapeDocs = {
|
|
3
3
|
category: 'Matrix',
|
4
4
|
syntax: ['reshape(x, sizes)'],
|
5
5
|
description: 'Reshape a multi dimensional array to fit the specified dimensions.',
|
6
|
-
examples: ['reshape([1, 2, 3, 4, 5, 6], [2, 3])', 'reshape([[1, 2], [3, 4]], [1, 4])', 'reshape([[1, 2], [3, 4]], [4])'],
|
6
|
+
examples: ['reshape([1, 2, 3, 4, 5, 6], [2, 3])', 'reshape([[1, 2], [3, 4]], [1, 4])', 'reshape([[1, 2], [3, 4]], [4])', 'reshape([1, 2, 3, 4], [-1, 2])'],
|
7
7
|
seealso: ['size', 'squeeze', 'resize']
|
8
8
|
};
|
@@ -0,0 +1,8 @@
|
|
1
|
+
export var sylvesterDocs = {
|
2
|
+
name: 'sylvester',
|
3
|
+
category: 'Matrix',
|
4
|
+
syntax: ['sylvester(A,B,C)'],
|
5
|
+
description: 'Solves the real-valued Sylvester equation AX+XB=C for X',
|
6
|
+
examples: ['sylvester([[-1, -2], [1, 1]], [[-2, 1], [-1, 2]], [[-3, 2], [3, 0]])', 'sylvester(A,B,C)'],
|
7
|
+
seealso: ['schur', 'lyap']
|
8
|
+
};
|
package/lib/esm/factoriesAny.js
CHANGED
@@ -210,6 +210,7 @@ export { createLup } from './function/algebra/decomposition/lup.js';
|
|
210
210
|
export { createQr } from './function/algebra/decomposition/qr.js';
|
211
211
|
export { createSlu } from './function/algebra/decomposition/slu.js';
|
212
212
|
export { createLusolve } from './function/algebra/solver/lusolve.js';
|
213
|
+
export { createPolynomialRoot } from './function/algebra/polynomialRoot.js';
|
213
214
|
export { createHelpClass } from './expression/Help.js';
|
214
215
|
export { createChainClass } from './type/chain/Chain.js';
|
215
216
|
export { createHelp } from './expression/function/help.js';
|
@@ -220,6 +221,9 @@ export { createPinv } from './function/matrix/pinv.js';
|
|
220
221
|
export { createEigs } from './function/matrix/eigs.js';
|
221
222
|
export { createExpm } from './function/matrix/expm.js';
|
222
223
|
export { createSqrtm } from './function/matrix/sqrtm.js';
|
224
|
+
export { createSylvester } from './function/algebra/sylvester.js';
|
225
|
+
export { createSchur } from './function/algebra/decomposition/schur.js';
|
226
|
+
export { createLyap } from './function/algebra/lyap.js';
|
223
227
|
export { createDivide } from './function/arithmetic/divide.js';
|
224
228
|
export { createDistance } from './function/geometry/distance.js';
|
225
229
|
export { createIntersect } from './function/geometry/intersect.js';
|
@@ -0,0 +1,70 @@
|
|
1
|
+
import { factory } from '../../../utils/factory.js';
|
2
|
+
var name = 'schur';
|
3
|
+
var dependencies = ['typed', 'matrix', 'identity', 'multiply', 'qr', 'norm', 'subtract'];
|
4
|
+
export var createSchur = /* #__PURE__ */factory(name, dependencies, _ref => {
|
5
|
+
var {
|
6
|
+
typed,
|
7
|
+
matrix,
|
8
|
+
identity,
|
9
|
+
multiply,
|
10
|
+
qr,
|
11
|
+
norm,
|
12
|
+
subtract
|
13
|
+
} = _ref;
|
14
|
+
/**
|
15
|
+
*
|
16
|
+
* Performs a real Schur decomposition of the real matrix A = UTU' where U is orthogonal
|
17
|
+
* and T is upper quasi-triangular.
|
18
|
+
* https://en.wikipedia.org/wiki/Schur_decomposition
|
19
|
+
*
|
20
|
+
* Syntax:
|
21
|
+
*
|
22
|
+
* math.schur(A)
|
23
|
+
*
|
24
|
+
* Examples:
|
25
|
+
*
|
26
|
+
* const A = [[1, 0], [-4, 3]]
|
27
|
+
* math.schur(A) // returns {T: [[3, 4], [0, 1]], R: [[0, 1], [-1, 0]]}
|
28
|
+
*
|
29
|
+
* See also:
|
30
|
+
*
|
31
|
+
* sylvester, lyap, qr
|
32
|
+
*
|
33
|
+
* @param {Array | Matrix} A Matrix A
|
34
|
+
* @return {{U: Array | Matrix, T: Array | Matrix}} Object containing both matrix U and T of the Schur Decomposition A=UTU'
|
35
|
+
*/
|
36
|
+
return typed(name, {
|
37
|
+
Array: function Array(X) {
|
38
|
+
var r = _schur(matrix(X));
|
39
|
+
return {
|
40
|
+
U: r.U.valueOf(),
|
41
|
+
T: r.T.valueOf()
|
42
|
+
};
|
43
|
+
},
|
44
|
+
Matrix: function Matrix(X) {
|
45
|
+
return _schur(X);
|
46
|
+
}
|
47
|
+
});
|
48
|
+
function _schur(X) {
|
49
|
+
var n = X.size()[0];
|
50
|
+
var A = X;
|
51
|
+
var U = identity(n);
|
52
|
+
var k = 0;
|
53
|
+
var A0;
|
54
|
+
do {
|
55
|
+
A0 = A;
|
56
|
+
var QR = qr(A);
|
57
|
+
var Q = QR.Q;
|
58
|
+
var R = QR.R;
|
59
|
+
A = multiply(R, Q);
|
60
|
+
U = multiply(U, Q);
|
61
|
+
if (k++ > 100) {
|
62
|
+
break;
|
63
|
+
}
|
64
|
+
} while (norm(subtract(A, A0)) > 1e-4);
|
65
|
+
return {
|
66
|
+
U,
|
67
|
+
T: A
|
68
|
+
};
|
69
|
+
}
|
70
|
+
});
|
@@ -0,0 +1,52 @@
|
|
1
|
+
import { factory } from '../../utils/factory.js';
|
2
|
+
var name = 'lyap';
|
3
|
+
var dependencies = ['typed', 'matrix', 'sylvester', 'multiply', 'transpose'];
|
4
|
+
export var createLyap = /* #__PURE__ */factory(name, dependencies, _ref => {
|
5
|
+
var {
|
6
|
+
typed,
|
7
|
+
matrix,
|
8
|
+
sylvester,
|
9
|
+
multiply,
|
10
|
+
transpose
|
11
|
+
} = _ref;
|
12
|
+
/**
|
13
|
+
*
|
14
|
+
* Solves the Continuous-time Lyapunov equation AP+PA'+Q=0 for P, where
|
15
|
+
* Q is an input matrix. When Q is symmetric, P is also symmetric. Notice
|
16
|
+
* that different equivalent definitions exist for the Continuous-time
|
17
|
+
* Lyapunov equation.
|
18
|
+
* https://en.wikipedia.org/wiki/Lyapunov_equation
|
19
|
+
*
|
20
|
+
* Syntax:
|
21
|
+
*
|
22
|
+
* math.lyap(A, Q)
|
23
|
+
*
|
24
|
+
* Examples:
|
25
|
+
*
|
26
|
+
* const A = [[-2, 0], [1, -4]]
|
27
|
+
* const Q = [[3, 1], [1, 3]]
|
28
|
+
* const P = math.lyap(A, Q)
|
29
|
+
*
|
30
|
+
* See also:
|
31
|
+
*
|
32
|
+
* sylvester, schur
|
33
|
+
*
|
34
|
+
* @param {Matrix | Array} A Matrix A
|
35
|
+
* @param {Matrix | Array} Q Matrix Q
|
36
|
+
* @return {Matrix | Array} Matrix P solution to the Continuous-time Lyapunov equation AP+PA'=Q
|
37
|
+
*/
|
38
|
+
return typed(name, {
|
39
|
+
'Matrix, Matrix': function MatrixMatrix(A, Q) {
|
40
|
+
return sylvester(A, transpose(A), multiply(-1, Q));
|
41
|
+
},
|
42
|
+
'Array, Matrix': function ArrayMatrix(A, Q) {
|
43
|
+
return sylvester(matrix(A), transpose(matrix(A)), multiply(-1, Q));
|
44
|
+
},
|
45
|
+
'Matrix, Array': function MatrixArray(A, Q) {
|
46
|
+
return sylvester(A, transpose(matrix(A)), matrix(multiply(-1, Q)));
|
47
|
+
},
|
48
|
+
'Array, Array': function ArrayArray(A, Q) {
|
49
|
+
return sylvester(matrix(A), transpose(matrix(A)), matrix(multiply(-1, Q))).toArray();
|
50
|
+
}
|
51
|
+
});
|
52
|
+
});
|