mathjs 11.8.2 → 11.9.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|
************************************************************************/
|