mathjs 11.8.2 → 11.9.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/HISTORY.md +17 -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/dependenciesFreqz.generated.js +28 -0
- package/lib/cjs/entry/dependenciesAny/dependenciesRange.generated.js +4 -0
- package/lib/cjs/entry/dependenciesAny/dependenciesRangeTransform.generated.js +4 -0
- package/lib/cjs/entry/dependenciesAny/dependenciesSolveODE.generated.js +46 -0
- package/lib/cjs/entry/dependenciesAny/dependenciesZpk2tf.generated.js +26 -0
- package/lib/cjs/entry/dependenciesAny.generated.js +21 -0
- package/lib/cjs/entry/dependenciesNumber/dependenciesRange.generated.js +4 -0
- package/lib/cjs/entry/dependenciesNumber/dependenciesRangeTransform.generated.js +4 -0
- package/lib/cjs/entry/impureFunctionsAny.generated.js +35 -30
- package/lib/cjs/entry/impureFunctionsNumber.generated.js +2 -0
- package/lib/cjs/entry/pureFunctionsAny.generated.js +82 -45
- package/lib/cjs/entry/pureFunctionsNumber.generated.js +2 -0
- package/lib/cjs/expression/embeddedDocs/core/typed.js +1 -1
- package/lib/cjs/expression/embeddedDocs/embeddedDocs.js +11 -3
- package/lib/cjs/expression/embeddedDocs/function/{matrix → algebra}/lyap.js +2 -2
- package/lib/cjs/expression/embeddedDocs/function/algebra/polynomialRoot.js +1 -1
- package/lib/cjs/expression/embeddedDocs/function/{matrix → algebra}/schur.js +2 -2
- package/lib/cjs/expression/embeddedDocs/function/algebra/simplifyConstant.js +1 -1
- package/lib/cjs/expression/embeddedDocs/function/{matrix → algebra}/sylvester.js +2 -2
- package/lib/cjs/expression/embeddedDocs/function/arithmetic/invmod.js +1 -1
- package/lib/cjs/expression/embeddedDocs/function/expression/evaluate.js +2 -2
- package/lib/cjs/expression/embeddedDocs/function/matrix/diff.js +1 -1
- package/lib/cjs/expression/embeddedDocs/function/matrix/range.js +1 -1
- package/lib/cjs/expression/embeddedDocs/function/numeric/solveODE.js +15 -0
- package/lib/cjs/expression/embeddedDocs/function/signal/freqz.js +15 -0
- package/lib/cjs/expression/embeddedDocs/function/signal/zpk2tf.js +15 -0
- package/lib/cjs/expression/embeddedDocs/function/utils/numeric.js +1 -1
- package/lib/cjs/expression/transform/range.transform.js +7 -3
- package/lib/cjs/factoriesAny.js +21 -0
- package/lib/cjs/function/algebra/simplify.js +3 -0
- package/lib/cjs/function/matrix/range.js +34 -110
- package/lib/cjs/function/numeric/solveODE.js +315 -0
- package/lib/cjs/function/signal/freqz.js +117 -0
- package/lib/cjs/function/signal/zpk2tf.js +95 -0
- package/lib/cjs/header.js +2 -2
- package/lib/cjs/type/unit/Unit.js +15 -13
- package/lib/cjs/version.js +1 -1
- package/lib/esm/entry/dependenciesAny/dependenciesFreqz.generated.js +20 -0
- package/lib/esm/entry/dependenciesAny/dependenciesRange.generated.js +4 -0
- package/lib/esm/entry/dependenciesAny/dependenciesRangeTransform.generated.js +4 -0
- package/lib/esm/entry/dependenciesAny/dependenciesSolveODE.generated.js +38 -0
- package/lib/esm/entry/dependenciesAny/dependenciesZpk2tf.generated.js +18 -0
- package/lib/esm/entry/dependenciesAny.generated.js +3 -0
- package/lib/esm/entry/dependenciesNumber/dependenciesRange.generated.js +4 -0
- package/lib/esm/entry/dependenciesNumber/dependenciesRangeTransform.generated.js +4 -0
- package/lib/esm/entry/impureFunctionsAny.generated.js +34 -29
- package/lib/esm/entry/impureFunctionsNumber.generated.js +2 -0
- package/lib/esm/entry/pureFunctionsAny.generated.js +70 -36
- package/lib/esm/entry/pureFunctionsNumber.generated.js +2 -0
- package/lib/esm/expression/embeddedDocs/core/typed.js +1 -1
- package/lib/esm/expression/embeddedDocs/embeddedDocs.js +11 -3
- package/lib/esm/expression/embeddedDocs/function/{matrix → algebra}/lyap.js +2 -2
- package/lib/esm/expression/embeddedDocs/function/algebra/polynomialRoot.js +1 -1
- package/lib/esm/expression/embeddedDocs/function/{matrix → algebra}/schur.js +2 -2
- package/lib/esm/expression/embeddedDocs/function/algebra/simplifyConstant.js +1 -1
- package/lib/esm/expression/embeddedDocs/function/{matrix → algebra}/sylvester.js +2 -2
- package/lib/esm/expression/embeddedDocs/function/arithmetic/invmod.js +1 -1
- package/lib/esm/expression/embeddedDocs/function/expression/evaluate.js +2 -2
- package/lib/esm/expression/embeddedDocs/function/matrix/diff.js +1 -1
- package/lib/esm/expression/embeddedDocs/function/matrix/range.js +1 -1
- package/lib/esm/expression/embeddedDocs/function/numeric/solveODE.js +8 -0
- package/lib/esm/expression/embeddedDocs/function/signal/freqz.js +8 -0
- package/lib/esm/expression/embeddedDocs/function/signal/zpk2tf.js +8 -0
- package/lib/esm/expression/embeddedDocs/function/utils/numeric.js +1 -1
- package/lib/esm/expression/transform/range.transform.js +7 -3
- package/lib/esm/factoriesAny.js +3 -0
- package/lib/esm/function/algebra/simplify.js +3 -0
- package/lib/esm/function/matrix/range.js +34 -110
- package/lib/esm/function/numeric/solveODE.js +284 -0
- package/lib/esm/function/signal/freqz.js +115 -0
- package/lib/esm/function/signal/zpk2tf.js +82 -0
- package/lib/esm/type/unit/Unit.js +15 -13
- package/lib/esm/version.js +1 -1
- package/package.json +1 -1
- package/types/index.d.ts +51 -6
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
import { factory } from '../../utils/factory.js';
|
|
2
|
+
var name = 'freqz';
|
|
3
|
+
var dependencies = ['typed', 'add', 'multiply', 'Complex', 'divide', 'matrix'];
|
|
4
|
+
export var createFreqz = /* #__PURE__ */factory(name, dependencies, _ref => {
|
|
5
|
+
var {
|
|
6
|
+
typed,
|
|
7
|
+
add,
|
|
8
|
+
multiply,
|
|
9
|
+
Complex,
|
|
10
|
+
divide,
|
|
11
|
+
matrix
|
|
12
|
+
} = _ref;
|
|
13
|
+
/**
|
|
14
|
+
* Calculates the frequency response of a filter given its numerator and denominator coefficients.
|
|
15
|
+
*
|
|
16
|
+
* Syntax:
|
|
17
|
+
* math.freqz(b, a)
|
|
18
|
+
* math.freqz(b, a, w)
|
|
19
|
+
*
|
|
20
|
+
* Examples:
|
|
21
|
+
* math.freqz([1, 2], [1, 2, 3], 4) // returns { h: [0.5 + 0i, 0.4768589245763655 + 0.2861153547458193i, 0.25000000000000006 + 0.75i, -0.770976571635189 + 0.4625859429811135i], w: [0, 0.7853981633974483, 1.5707963267948966, 2.356194490192345 ] }
|
|
22
|
+
* math.freqz([1, 2], [1, 2, 3], [0, 1]) // returns { h: [0.5 + 0i, 0.45436781 + 0.38598051i], w: [0, 1] }
|
|
23
|
+
*
|
|
24
|
+
* See also:
|
|
25
|
+
* zpk2tf
|
|
26
|
+
*
|
|
27
|
+
* @param {Array.<number>} b The numerator coefficients of the filter.
|
|
28
|
+
* @param {Array.<number>} a The denominator coefficients of the filter.
|
|
29
|
+
* @param {Array.<number>} [w] A vector of frequencies (in radians/sample) at which the frequency response is to be computed or the number of points to compute (if a number is not provided, the default is 512 points)
|
|
30
|
+
* @returns {Object} An object with two properties: h, a vector containing the complex frequency response, and w, a vector containing the normalized frequencies (in radians/sample) at which the response was computed.
|
|
31
|
+
*
|
|
32
|
+
*
|
|
33
|
+
*/
|
|
34
|
+
return typed(name, {
|
|
35
|
+
'Array, Array': function ArrayArray(b, a) {
|
|
36
|
+
var w = createBins(512);
|
|
37
|
+
return _freqz(b, a, w);
|
|
38
|
+
},
|
|
39
|
+
'Array, Array, Array': function ArrayArrayArray(b, a, w) {
|
|
40
|
+
return _freqz(b, a, w);
|
|
41
|
+
},
|
|
42
|
+
'Array, Array, number': function ArrayArrayNumber(b, a, w) {
|
|
43
|
+
if (w < 0) {
|
|
44
|
+
throw new Error('w must be a positive number');
|
|
45
|
+
}
|
|
46
|
+
var w2 = createBins(w);
|
|
47
|
+
return _freqz(b, a, w2);
|
|
48
|
+
},
|
|
49
|
+
'Matrix, Matrix': function MatrixMatrix(b, a) {
|
|
50
|
+
// console.log('here')
|
|
51
|
+
var _w = createBins(512);
|
|
52
|
+
var {
|
|
53
|
+
w,
|
|
54
|
+
h
|
|
55
|
+
} = _freqz(b.valueOf(), a.valueOf(), _w);
|
|
56
|
+
return {
|
|
57
|
+
w: matrix(w),
|
|
58
|
+
h: matrix(h)
|
|
59
|
+
};
|
|
60
|
+
},
|
|
61
|
+
'Matrix, Matrix, Matrix': function MatrixMatrixMatrix(b, a, w) {
|
|
62
|
+
var {
|
|
63
|
+
h
|
|
64
|
+
} = _freqz(b.valueOf(), a.valueOf(), w.valueOf());
|
|
65
|
+
return {
|
|
66
|
+
h: matrix(h),
|
|
67
|
+
w: matrix(w)
|
|
68
|
+
};
|
|
69
|
+
},
|
|
70
|
+
'Matrix, Matrix, number': function MatrixMatrixNumber(b, a, w) {
|
|
71
|
+
if (w < 0) {
|
|
72
|
+
throw new Error('w must be a positive number');
|
|
73
|
+
}
|
|
74
|
+
var _w = createBins(w);
|
|
75
|
+
var {
|
|
76
|
+
h
|
|
77
|
+
} = _freqz(b.valueOf(), a.valueOf(), _w);
|
|
78
|
+
return {
|
|
79
|
+
h: matrix(h),
|
|
80
|
+
w: matrix(_w)
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
});
|
|
84
|
+
function _freqz(b, a, w) {
|
|
85
|
+
var num = [];
|
|
86
|
+
var den = [];
|
|
87
|
+
for (var i = 0; i < w.length; i++) {
|
|
88
|
+
var sumNum = Complex(0, 0);
|
|
89
|
+
var sumDen = Complex(0, 0);
|
|
90
|
+
for (var j = 0; j < b.length; j++) {
|
|
91
|
+
sumNum = add(sumNum, multiply(b[j], Complex(Math.cos(-j * w[i]), Math.sin(-j * w[i]))));
|
|
92
|
+
}
|
|
93
|
+
for (var _j = 0; _j < a.length; _j++) {
|
|
94
|
+
sumDen = add(sumDen, multiply(a[_j], Complex(Math.cos(-_j * w[i]), Math.sin(-_j * w[i]))));
|
|
95
|
+
}
|
|
96
|
+
num.push(sumNum);
|
|
97
|
+
den.push(sumDen);
|
|
98
|
+
}
|
|
99
|
+
var h = [];
|
|
100
|
+
for (var _i = 0; _i < num.length; _i++) {
|
|
101
|
+
h.push(divide(num[_i], den[_i]));
|
|
102
|
+
}
|
|
103
|
+
return {
|
|
104
|
+
h,
|
|
105
|
+
w
|
|
106
|
+
};
|
|
107
|
+
}
|
|
108
|
+
function createBins(n) {
|
|
109
|
+
var bins = [];
|
|
110
|
+
for (var i = 0; i < n; i++) {
|
|
111
|
+
bins.push(i / n * Math.PI);
|
|
112
|
+
}
|
|
113
|
+
return bins;
|
|
114
|
+
}
|
|
115
|
+
});
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import { factory } from '../../utils/factory.js';
|
|
2
|
+
var name = 'zpk2tf';
|
|
3
|
+
var dependencies = ['typed', 'add', 'multiply', 'Complex', 'number'];
|
|
4
|
+
export var createZpk2tf = /* #__PURE__ */factory(name, dependencies, _ref => {
|
|
5
|
+
var {
|
|
6
|
+
typed,
|
|
7
|
+
add,
|
|
8
|
+
multiply,
|
|
9
|
+
Complex,
|
|
10
|
+
number
|
|
11
|
+
} = _ref;
|
|
12
|
+
/**
|
|
13
|
+
* Compute the transfer function of a zero-pole-gain model.
|
|
14
|
+
*
|
|
15
|
+
* Syntax:
|
|
16
|
+
* math.zpk2tf(z, p, k)
|
|
17
|
+
*
|
|
18
|
+
* Examples:
|
|
19
|
+
* math.zpk2tf([1, 2], [-1, -2], 1) // returns [[1, -3, 2], [1, 3, 2]]
|
|
20
|
+
*
|
|
21
|
+
* See also:
|
|
22
|
+
* freqz
|
|
23
|
+
*
|
|
24
|
+
* @param {Array} z Array of zeros values
|
|
25
|
+
* @param {Array} p Array of poles values
|
|
26
|
+
* @param {number} k Gain value
|
|
27
|
+
* @return {Array} Two dimensional array containing the numerator (first row) and denominator (second row) polynomials
|
|
28
|
+
*
|
|
29
|
+
*/
|
|
30
|
+
return typed(name, {
|
|
31
|
+
'Array,Array,number': function ArrayArrayNumber(z, p, k) {
|
|
32
|
+
return _zpk2tf(z, p, k);
|
|
33
|
+
},
|
|
34
|
+
'Array,Array': function ArrayArray(z, p) {
|
|
35
|
+
return _zpk2tf(z, p, 1);
|
|
36
|
+
},
|
|
37
|
+
'Matrix,Matrix,number': function MatrixMatrixNumber(z, p, k) {
|
|
38
|
+
return _zpk2tf(z.valueOf(), p.valueOf(), k);
|
|
39
|
+
},
|
|
40
|
+
'Matrix,Matrix': function MatrixMatrix(z, p) {
|
|
41
|
+
return _zpk2tf(z.valueOf(), p.valueOf(), 1);
|
|
42
|
+
}
|
|
43
|
+
});
|
|
44
|
+
function _zpk2tf(z, p, k) {
|
|
45
|
+
// if z is bignumber, convert it to number
|
|
46
|
+
if (z.some(el => el.type === 'BigNumber')) {
|
|
47
|
+
z = z.map(el => number(el));
|
|
48
|
+
}
|
|
49
|
+
// if p is bignumber, convert it to number
|
|
50
|
+
if (p.some(el => el.type === 'BigNumber')) {
|
|
51
|
+
p = p.map(el => number(el));
|
|
52
|
+
}
|
|
53
|
+
var num = [Complex(1, 0)];
|
|
54
|
+
var den = [Complex(1, 0)];
|
|
55
|
+
for (var i = 0; i < z.length; i++) {
|
|
56
|
+
var zero = z[i];
|
|
57
|
+
if (typeof zero === 'number') zero = Complex(zero, 0);
|
|
58
|
+
num = _multiply(num, [Complex(1, 0), Complex(-zero.re, -zero.im)]);
|
|
59
|
+
}
|
|
60
|
+
for (var _i = 0; _i < p.length; _i++) {
|
|
61
|
+
var pole = p[_i];
|
|
62
|
+
if (typeof pole === 'number') pole = Complex(pole, 0);
|
|
63
|
+
den = _multiply(den, [Complex(1, 0), Complex(-pole.re, -pole.im)]);
|
|
64
|
+
}
|
|
65
|
+
for (var _i2 = 0; _i2 < num.length; _i2++) {
|
|
66
|
+
num[_i2] = multiply(num[_i2], k);
|
|
67
|
+
}
|
|
68
|
+
return [num, den];
|
|
69
|
+
}
|
|
70
|
+
function _multiply(a, b) {
|
|
71
|
+
var c = [];
|
|
72
|
+
for (var i = 0; i < a.length + b.length - 1; i++) {
|
|
73
|
+
c[i] = Complex(0, 0);
|
|
74
|
+
for (var j = 0; j < a.length; j++) {
|
|
75
|
+
if (i - j >= 0 && i - j < b.length) {
|
|
76
|
+
c[i] = add(c[i], multiply(a[j], b[i - j]));
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
return c;
|
|
81
|
+
}
|
|
82
|
+
});
|
|
@@ -25,12 +25,12 @@ export var createUnitClass = /* #__PURE__ */factory(name, dependencies, _ref =>
|
|
|
25
25
|
equal,
|
|
26
26
|
isNumeric,
|
|
27
27
|
format,
|
|
28
|
-
number,
|
|
28
|
+
number: _number,
|
|
29
29
|
Complex,
|
|
30
30
|
BigNumber: _BigNumber,
|
|
31
31
|
Fraction: _Fraction
|
|
32
32
|
} = _ref;
|
|
33
|
-
var toNumber =
|
|
33
|
+
var toNumber = _number;
|
|
34
34
|
/**
|
|
35
35
|
* A unit can be constructed in the following ways:
|
|
36
36
|
*
|
|
@@ -780,13 +780,13 @@ export var createUnitClass = /* #__PURE__ */factory(name, dependencies, _ref =>
|
|
|
780
780
|
/* Need to adjust value by difference in offset to convert */
|
|
781
781
|
var convert = Unit._getNumberConverter(typeOf(value)); // convert to Fraction or BigNumber if needed
|
|
782
782
|
|
|
783
|
-
var thisUnitValue =
|
|
784
|
-
var thisNominalOffset =
|
|
783
|
+
var thisUnitValue = this.units[0].unit.value;
|
|
784
|
+
var thisNominalOffset = this.units[0].unit.offset;
|
|
785
785
|
var thisUnitOffset = multiplyScalar(thisUnitValue, thisNominalOffset);
|
|
786
|
-
var otherUnitValue =
|
|
787
|
-
var otherNominalOffset =
|
|
786
|
+
var otherUnitValue = other.units[0].unit.value;
|
|
787
|
+
var otherNominalOffset = other.units[0].unit.offset;
|
|
788
788
|
var otherUnitOffset = multiplyScalar(otherUnitValue, otherNominalOffset);
|
|
789
|
-
other.value =
|
|
789
|
+
other.value = addScalar(value, convert(subtract(thisUnitOffset, otherUnitOffset)));
|
|
790
790
|
}
|
|
791
791
|
other.fixPrefix = true;
|
|
792
792
|
other.skipAutomaticSimplification = true;
|
|
@@ -2734,8 +2734,8 @@ export var createUnitClass = /* #__PURE__ */factory(name, dependencies, _ref =>
|
|
|
2734
2734
|
},
|
|
2735
2735
|
// Temperature
|
|
2736
2736
|
// K(C) = °C + 273.15
|
|
2737
|
-
// K(F) = (°F + 459.67) /
|
|
2738
|
-
// K(R) = °R /
|
|
2737
|
+
// K(F) = (°F + 459.67) * (5 / 9)
|
|
2738
|
+
// K(R) = °R * (5 / 9)
|
|
2739
2739
|
K: {
|
|
2740
2740
|
name: 'K',
|
|
2741
2741
|
base: BASE_UNITS.TEMPERATURE,
|
|
@@ -2754,14 +2754,14 @@ export var createUnitClass = /* #__PURE__ */factory(name, dependencies, _ref =>
|
|
|
2754
2754
|
name: 'degF',
|
|
2755
2755
|
base: BASE_UNITS.TEMPERATURE,
|
|
2756
2756
|
prefixes: PREFIXES.SHORT,
|
|
2757
|
-
value:
|
|
2757
|
+
value: new _Fraction(5, 9),
|
|
2758
2758
|
offset: 459.67
|
|
2759
2759
|
},
|
|
2760
2760
|
degR: {
|
|
2761
2761
|
name: 'degR',
|
|
2762
2762
|
base: BASE_UNITS.TEMPERATURE,
|
|
2763
2763
|
prefixes: PREFIXES.SHORT,
|
|
2764
|
-
value:
|
|
2764
|
+
value: new _Fraction(5, 9),
|
|
2765
2765
|
offset: 0
|
|
2766
2766
|
},
|
|
2767
2767
|
kelvin: {
|
|
@@ -2782,14 +2782,14 @@ export var createUnitClass = /* #__PURE__ */factory(name, dependencies, _ref =>
|
|
|
2782
2782
|
name: 'fahrenheit',
|
|
2783
2783
|
base: BASE_UNITS.TEMPERATURE,
|
|
2784
2784
|
prefixes: PREFIXES.LONG,
|
|
2785
|
-
value:
|
|
2785
|
+
value: new _Fraction(5, 9),
|
|
2786
2786
|
offset: 459.67
|
|
2787
2787
|
},
|
|
2788
2788
|
rankine: {
|
|
2789
2789
|
name: 'rankine',
|
|
2790
2790
|
base: BASE_UNITS.TEMPERATURE,
|
|
2791
2791
|
prefixes: PREFIXES.LONG,
|
|
2792
|
-
value:
|
|
2792
|
+
value: new _Fraction(5, 9),
|
|
2793
2793
|
offset: 0
|
|
2794
2794
|
},
|
|
2795
2795
|
// amount of substance
|
|
@@ -3510,6 +3510,7 @@ export var createUnitClass = /* #__PURE__ */factory(name, dependencies, _ref =>
|
|
|
3510
3510
|
*/
|
|
3511
3511
|
Unit.typeConverters = {
|
|
3512
3512
|
BigNumber: function BigNumber(x) {
|
|
3513
|
+
if (x !== null && x !== void 0 && x.isFraction) return new _BigNumber(x.n).div(x.d).times(x.s);
|
|
3513
3514
|
return new _BigNumber(x + ''); // stringify to prevent constructor error
|
|
3514
3515
|
},
|
|
3515
3516
|
|
|
@@ -3520,6 +3521,7 @@ export var createUnitClass = /* #__PURE__ */factory(name, dependencies, _ref =>
|
|
|
3520
3521
|
return x;
|
|
3521
3522
|
},
|
|
3522
3523
|
number: function number(x) {
|
|
3524
|
+
if (x !== null && x !== void 0 && x.isFraction) return _number(x);
|
|
3523
3525
|
return x;
|
|
3524
3526
|
}
|
|
3525
3527
|
};
|
package/lib/esm/version.js
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "mathjs",
|
|
3
|
-
"version": "11.
|
|
3
|
+
"version": "11.9.0",
|
|
4
4
|
"description": "Math.js is an extensive math library for JavaScript and Node.js. It features a flexible expression parser with support for symbolic computation, comes with a large set of built-in functions and constants, and offers an integrated solution to work with different data types like numbers, big numbers, complex numbers, fractions, units, and matrices.",
|
|
5
5
|
"author": "Jos de Jong <wjosdejong@gmail.com> (https://github.com/josdejong)",
|
|
6
6
|
"homepage": "https://mathjs.org",
|
package/types/index.d.ts
CHANGED
|
@@ -1989,9 +1989,9 @@ declare namespace math {
|
|
|
1989
1989
|
includeEnd?: boolean
|
|
1990
1990
|
): Matrix
|
|
1991
1991
|
range(
|
|
1992
|
-
start: number | BigNumber,
|
|
1993
|
-
end: number | BigNumber,
|
|
1994
|
-
step: number | BigNumber,
|
|
1992
|
+
start: number | BigNumber | Unit,
|
|
1993
|
+
end: number | BigNumber | Unit,
|
|
1994
|
+
step: number | BigNumber | Unit,
|
|
1995
1995
|
includeEnd?: boolean
|
|
1996
1996
|
): Matrix
|
|
1997
1997
|
|
|
@@ -2566,6 +2566,28 @@ declare namespace math {
|
|
|
2566
2566
|
*/
|
|
2567
2567
|
setUnion<T extends MathCollection>(a1: T, a2: MathCollection): T
|
|
2568
2568
|
|
|
2569
|
+
/*************************************************************************
|
|
2570
|
+
* Signal functions
|
|
2571
|
+
************************************************************************/
|
|
2572
|
+
/**
|
|
2573
|
+
* Compute the transfer function of a zero-pole-gain model.
|
|
2574
|
+
* @param z Zeroes of the model
|
|
2575
|
+
* @param p Poles of the model
|
|
2576
|
+
* @param k Gain of the model
|
|
2577
|
+
* @returns The transfer function as array of numerator and denominator
|
|
2578
|
+
*/
|
|
2579
|
+
zpk2tf<T extends MathCollection>(z: T, p: T, k?: number): T
|
|
2580
|
+
|
|
2581
|
+
/**
|
|
2582
|
+
* Calculates the frequency response of a filter given its numerator and denominator coefficients.
|
|
2583
|
+
* @param b The numerator polynomial of the filter
|
|
2584
|
+
* @param a The denominator polynomial of the filter
|
|
2585
|
+
* @param w The range of frequencies in which the response is to be calculated
|
|
2586
|
+
* @returns The frequency response
|
|
2587
|
+
*
|
|
2588
|
+
*/
|
|
2589
|
+
freqz<T extends MathCollection>(b: T, a: T, w?: number | T): { w: T; h: T }
|
|
2590
|
+
|
|
2569
2591
|
/*************************************************************************
|
|
2570
2592
|
* Special functions
|
|
2571
2593
|
************************************************************************/
|
|
@@ -3611,6 +3633,8 @@ declare namespace math {
|
|
|
3611
3633
|
setSizeDependencies: FactoryFunctionMap
|
|
3612
3634
|
setSymDifferenceDependencies: FactoryFunctionMap
|
|
3613
3635
|
setUnionDependencies: FactoryFunctionMap
|
|
3636
|
+
zpk2tfDependencies: FactoryFunctionMap
|
|
3637
|
+
freqzDependencies: FactoryFunctionMap
|
|
3614
3638
|
addDependencies: FactoryFunctionMap
|
|
3615
3639
|
hypotDependencies: FactoryFunctionMap
|
|
3616
3640
|
normDependencies: FactoryFunctionMap
|
|
@@ -5453,9 +5477,9 @@ declare namespace math {
|
|
|
5453
5477
|
includeEnd?: boolean
|
|
5454
5478
|
): MathJsChain<Matrix>
|
|
5455
5479
|
range(
|
|
5456
|
-
this: MathJsChain<number | BigNumber>,
|
|
5457
|
-
end: number | BigNumber,
|
|
5458
|
-
step: number | BigNumber,
|
|
5480
|
+
this: MathJsChain<number | BigNumber | Unit>,
|
|
5481
|
+
end: number | BigNumber | Unit,
|
|
5482
|
+
step: number | BigNumber | Unit,
|
|
5459
5483
|
includeEnd?: boolean
|
|
5460
5484
|
): MathJsChain<Matrix>
|
|
5461
5485
|
|
|
@@ -5920,6 +5944,27 @@ declare namespace math {
|
|
|
5920
5944
|
a2: MathCollection
|
|
5921
5945
|
): MathJsChain<T>
|
|
5922
5946
|
|
|
5947
|
+
/*************************************************************************
|
|
5948
|
+
* Signal functions
|
|
5949
|
+
************************************************************************/
|
|
5950
|
+
/**
|
|
5951
|
+
* Compute the transfer function of a zero-pole-gain model.
|
|
5952
|
+
*/
|
|
5953
|
+
zpk2tf<T extends MathCollection>(
|
|
5954
|
+
this: MathJsChain<T>, // chained variable will be used as z
|
|
5955
|
+
p: T,
|
|
5956
|
+
k?: number
|
|
5957
|
+
): MathJsChain<T>
|
|
5958
|
+
|
|
5959
|
+
/**
|
|
5960
|
+
* Calculates the frequency response of a filter given its numerator and denominator coefficients.
|
|
5961
|
+
*/
|
|
5962
|
+
freqz<T extends number | MathArray | MathArray[]>(
|
|
5963
|
+
this: MathJsChain<T>,
|
|
5964
|
+
a: T,
|
|
5965
|
+
w?: T | number
|
|
5966
|
+
): MathJsChain<{ w: T; h: T }>
|
|
5967
|
+
|
|
5923
5968
|
/*************************************************************************
|
|
5924
5969
|
* Special functions
|
|
5925
5970
|
************************************************************************/
|