pimath 0.0.110 → 0.0.112
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/dist/pi.js +20 -5
- package/dist/pi.js.map +1 -1
- package/dist/pi.min.js +1 -1
- package/dist/pi.min.js.map +1 -1
- package/esm/maths/algebra/linearSystem.d.ts +6 -0
- package/esm/maths/algebra/linearSystem.js +8 -0
- package/esm/maths/algebra/linearSystem.js.map +1 -1
- package/esm/maths/geometry/line.d.ts +1 -0
- package/esm/maths/geometry/line.js +6 -5
- package/esm/maths/geometry/line.js.map +1 -1
- package/esm/maths/geometry/vector.d.ts +1 -0
- package/esm/maths/geometry/vector.js +6 -0
- package/esm/maths/geometry/vector.js.map +1 -1
- package/package.json +1 -1
- package/src/maths/algebra/linearSystem.ts +26 -14
- package/src/maths/geometry/line.ts +8 -8
- package/src/maths/geometry/vector.ts +9 -0
- package/tests/algebra/linear.test.ts +16 -6
- package/tests/geometry/line.test.ts +9 -0
|
@@ -16,6 +16,12 @@ export declare class LinearSystem {
|
|
|
16
16
|
get solution(): string;
|
|
17
17
|
buildTex: (equations: Equation[], operators?: (string[])[]) => string;
|
|
18
18
|
stepTex: (letter: string) => string;
|
|
19
|
+
get resolutionSteps(): {
|
|
20
|
+
[p: string]: {
|
|
21
|
+
equations: Equation[];
|
|
22
|
+
operations: string[][];
|
|
23
|
+
}[];
|
|
24
|
+
};
|
|
19
25
|
parse: (...equations: (string | Equation)[]) => LinearSystem;
|
|
20
26
|
clone: () => LinearSystem;
|
|
21
27
|
reorder: () => LinearSystem;
|
|
@@ -4,6 +4,7 @@ exports.LinearSystem = void 0;
|
|
|
4
4
|
const equation_1 = require("./equation");
|
|
5
5
|
const fraction_1 = require("../coefficients/fraction");
|
|
6
6
|
const polynom_1 = require("./polynom");
|
|
7
|
+
const numeric_1 = require("../numeric");
|
|
7
8
|
// TODO: Must check and rework
|
|
8
9
|
class LinearSystem {
|
|
9
10
|
constructor(...equationStrings) {
|
|
@@ -174,9 +175,16 @@ class LinearSystem {
|
|
|
174
175
|
}
|
|
175
176
|
return `\\left(${tex.join(';')}\\right)`;
|
|
176
177
|
}
|
|
178
|
+
get resolutionSteps() {
|
|
179
|
+
return this._resolutionSteps;
|
|
180
|
+
}
|
|
177
181
|
_linearReduction(eq1, eq2, letter) {
|
|
178
182
|
// Get the monom for the particular letter.
|
|
179
183
|
let c1 = eq1.left.monomByDegree(1, letter).coefficient.clone(), c2 = eq2.left.monomByDegree(1, letter).coefficient.clone().opposed();
|
|
184
|
+
// Reduce c1 and c2 by the gcd
|
|
185
|
+
const gcdN = numeric_1.Numeric.gcd(c1.numerator, c2.numerator), gcdD = numeric_1.Numeric.gcd(c1.denominator, c2.denominator);
|
|
186
|
+
c1.divide(gcdN).multiply(gcdD);
|
|
187
|
+
c2.divide(gcdN).multiply(gcdD);
|
|
180
188
|
// if one value is -1, use 1 and make the other one opposed
|
|
181
189
|
if (c2.isNegativeOne()) {
|
|
182
190
|
c1.opposed();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"linearSystem.js","sourceRoot":"","sources":["../../../src/maths/algebra/linearSystem.ts"],"names":[],"mappings":";;;AAAA,yCAA+C;AAE/C,uDAAkD;AAClD,uCAAkC;
|
|
1
|
+
{"version":3,"file":"linearSystem.js","sourceRoot":"","sources":["../../../src/maths/algebra/linearSystem.ts"],"names":[],"mappings":"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"}
|
|
@@ -189,9 +189,7 @@ class Line {
|
|
|
189
189
|
return this;
|
|
190
190
|
};
|
|
191
191
|
this.simplifyDirection = () => {
|
|
192
|
-
|
|
193
|
-
this._d.x.multiply(lcm).divide(gcd);
|
|
194
|
-
this._d.y.multiply(lcm).divide(gcd);
|
|
192
|
+
this._d.simplifyDirection();
|
|
195
193
|
return this;
|
|
196
194
|
};
|
|
197
195
|
this.intersection = (line) => {
|
|
@@ -269,15 +267,18 @@ class Line {
|
|
|
269
267
|
// canonical => ax + by + c = 0
|
|
270
268
|
// mxh => y = -a/b x - c/b
|
|
271
269
|
// parametric => (xy) = OA + k*d
|
|
272
|
-
|
|
270
|
+
// equation => ax + by = -c
|
|
271
|
+
let canonical = this.equation.clone().reorder(true);
|
|
273
272
|
// Make sur the first item is positive.
|
|
274
273
|
if (this._a.isNegative()) {
|
|
275
274
|
canonical.multiply(-1);
|
|
276
275
|
}
|
|
276
|
+
const d = this._d.clone().simplifyDirection();
|
|
277
277
|
return {
|
|
278
278
|
canonical: canonical.tex,
|
|
279
|
+
equation: canonical.clone().reorder().tex,
|
|
279
280
|
mxh: this.slope.isInfinity() ? 'x=' + this.OA.x.tex : 'y=' + new polynom_1.Polynom().parse('x', this.slope, this.height).tex,
|
|
280
|
-
parametric: `${point_1.Point.pmatrix('x', 'y')} = ${point_1.Point.pmatrix(this._OA.x, this._OA.y)} + k\\cdot ${point_1.Point.pmatrix(
|
|
281
|
+
parametric: `${point_1.Point.pmatrix('x', 'y')} = ${point_1.Point.pmatrix(this._OA.x, this._OA.y)} + k\\cdot ${point_1.Point.pmatrix(d.x, d.y)}`
|
|
281
282
|
};
|
|
282
283
|
}
|
|
283
284
|
get display() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"line.js","sourceRoot":"","sources":["../../../src/maths/geometry/line.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"line.js","sourceRoot":"","sources":["../../../src/maths/geometry/line.ts"],"names":[],"mappings":"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"}
|
|
@@ -131,6 +131,12 @@ class Vector {
|
|
|
131
131
|
return this.multiplyByScalar(numeric_1.Numeric.lcm(this._x.denominator, this._y.denominator))
|
|
132
132
|
.divideByScalar(numeric_1.Numeric.gcd(this._x.numerator, this._y.numerator));
|
|
133
133
|
};
|
|
134
|
+
this.simplifyDirection = () => {
|
|
135
|
+
let lcm = numeric_1.Numeric.lcm(this.x.denominator, this.y.denominator), gcd = numeric_1.Numeric.gcd(this.x.numerator, this.y.numerator);
|
|
136
|
+
this.x.multiply(lcm).divide(gcd);
|
|
137
|
+
this.y.multiply(lcm).divide(gcd);
|
|
138
|
+
return this;
|
|
139
|
+
};
|
|
134
140
|
this.angleWith = (V, sharp, radian) => {
|
|
135
141
|
let scalar = this.scalarProductWithVector(V).value, toDegree = radian ? 1 : 180 / Math.PI;
|
|
136
142
|
if (sharp) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vector.js","sourceRoot":"","sources":["../../../src/maths/geometry/vector.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"vector.js","sourceRoot":"","sources":["../../../src/maths/geometry/vector.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -2,6 +2,7 @@ import {Equation, ISolution} from "./equation";
|
|
|
2
2
|
import {Monom} from "./monom";
|
|
3
3
|
import {Fraction} from "../coefficients/fraction";
|
|
4
4
|
import {Polynom} from "./polynom";
|
|
5
|
+
import {Numeric} from "../numeric";
|
|
5
6
|
|
|
6
7
|
// TODO: Must check and rework
|
|
7
8
|
export class LinearSystem {
|
|
@@ -107,13 +108,13 @@ export class LinearSystem {
|
|
|
107
108
|
letters: string[] = []
|
|
108
109
|
|
|
109
110
|
// Get the letters from the linear system
|
|
110
|
-
for(let equ of equations){
|
|
111
|
+
for (let equ of equations) {
|
|
111
112
|
letters = letters.concat(equ.letters())
|
|
112
113
|
}
|
|
113
|
-
letters = [...
|
|
114
|
+
letters = [...new Set(letters)]
|
|
114
115
|
letters.sort()
|
|
115
116
|
|
|
116
|
-
for (let i=0; i<equations.length; i++) {
|
|
117
|
+
for (let i = 0; i < equations.length; i++) {
|
|
117
118
|
let equ = equations[i]
|
|
118
119
|
|
|
119
120
|
equStr = [];
|
|
@@ -134,11 +135,11 @@ export class LinearSystem {
|
|
|
134
135
|
equStr.push(equ.right.tex);
|
|
135
136
|
|
|
136
137
|
// Add the operations if existing
|
|
137
|
-
if(operators!==undefined && operators[i]!==undefined){
|
|
138
|
+
if (operators !== undefined && operators[i] !== undefined) {
|
|
138
139
|
// add extra space at the end of the equation
|
|
139
|
-
equStr[equStr.length-1] = equStr[equStr.length-1] + ' \\phantom{\\quad}'
|
|
140
|
-
for(let o of operators[i]){
|
|
141
|
-
equStr.push(`\\ \\cdot\\ ${o.startsWith('-')?"\\left("+o+"\\right)":o}`)
|
|
140
|
+
equStr[equStr.length - 1] = equStr[equStr.length - 1] + ' \\phantom{\\quad}'
|
|
141
|
+
for (let o of operators[i]) {
|
|
142
|
+
equStr.push(`\\ \\cdot\\ ${o.startsWith('-') ? "\\left(" + o + "\\right)" : o}`)
|
|
142
143
|
}
|
|
143
144
|
}
|
|
144
145
|
|
|
@@ -147,7 +148,7 @@ export class LinearSystem {
|
|
|
147
148
|
}
|
|
148
149
|
|
|
149
150
|
let operatorsColumns = 0
|
|
150
|
-
if(operators!==undefined && operators.length>0){
|
|
151
|
+
if (operators !== undefined && operators.length > 0) {
|
|
151
152
|
operatorsColumns = operators[0].length
|
|
152
153
|
}
|
|
153
154
|
return `\\left\\{\\begin{array}{${"r".repeat(letters.length)}cl ${"|l".repeat(operatorsColumns)}}${equArray.join('\\\\\ ')}\\end{array}\\right.`;
|
|
@@ -162,7 +163,7 @@ export class LinearSystem {
|
|
|
162
163
|
|
|
163
164
|
// steps = { equations[], operations: [[],[]]
|
|
164
165
|
let tex: string[] = []
|
|
165
|
-
for(let i=0; i<steps.length; i++){
|
|
166
|
+
for (let i = 0; i < steps.length; i++) {
|
|
166
167
|
tex.push(this.buildTex(steps[i].equations, steps[i].operations))
|
|
167
168
|
}
|
|
168
169
|
|
|
@@ -170,7 +171,12 @@ export class LinearSystem {
|
|
|
170
171
|
|
|
171
172
|
}
|
|
172
173
|
|
|
173
|
-
|
|
174
|
+
|
|
175
|
+
get resolutionSteps(): { [p: string]: { equations: Equation[]; operations: string[][] }[] } {
|
|
176
|
+
return this._resolutionSteps;
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
// ------------------------------------------
|
|
174
180
|
// Creation / parsing functions
|
|
175
181
|
|
|
176
182
|
// ------------------------------------------
|
|
@@ -249,6 +255,12 @@ export class LinearSystem {
|
|
|
249
255
|
let c1 = eq1.left.monomByDegree(1, letter).coefficient.clone(),
|
|
250
256
|
c2 = eq2.left.monomByDegree(1, letter).coefficient.clone().opposed();
|
|
251
257
|
|
|
258
|
+
// Reduce c1 and c2 by the gcd
|
|
259
|
+
const gcdN = Numeric.gcd(c1.numerator, c2.numerator),
|
|
260
|
+
gcdD = Numeric.gcd(c1.denominator, c2.denominator)
|
|
261
|
+
c1.divide(gcdN).multiply(gcdD)
|
|
262
|
+
c2.divide(gcdN).multiply(gcdD)
|
|
263
|
+
|
|
252
264
|
// if one value is -1, use 1 and make the other one opposed
|
|
253
265
|
if (c2.isNegativeOne()) {
|
|
254
266
|
c1.opposed()
|
|
@@ -314,20 +326,20 @@ export class LinearSystem {
|
|
|
314
326
|
E.solve()
|
|
315
327
|
const solution = E.solutions[0]
|
|
316
328
|
|
|
317
|
-
if(withResolution){
|
|
329
|
+
if (withResolution) {
|
|
318
330
|
this._resolutionSteps[letter].push({
|
|
319
331
|
equations: [LE[0]],
|
|
320
332
|
operations: [[LE[0].left.monoms[0].coefficient.tex]]
|
|
321
333
|
})
|
|
322
334
|
|
|
323
335
|
let P: Polynom
|
|
324
|
-
if(solution.exact instanceof Fraction || typeof solution.exact==="string"){
|
|
336
|
+
if (solution.exact instanceof Fraction || typeof solution.exact === "string") {
|
|
325
337
|
P = new Polynom(solution.exact)
|
|
326
|
-
}else{
|
|
338
|
+
} else {
|
|
327
339
|
P = new Polynom(solution.value)
|
|
328
340
|
}
|
|
329
341
|
this._resolutionSteps[letter].push({
|
|
330
|
-
equations: [new Equation(new Polynom(letter),P)],
|
|
342
|
+
equations: [new Equation(new Polynom(letter), P)],
|
|
331
343
|
operations: []
|
|
332
344
|
})
|
|
333
345
|
|
|
@@ -55,21 +55,25 @@ export class Line {
|
|
|
55
55
|
return new Equation(new Polynom().parse('xy', this._a, this._b, this._c), new Polynom('0')).simplify();
|
|
56
56
|
}
|
|
57
57
|
|
|
58
|
-
get tex(): { canonical: string, mxh: string, parametric: string } {
|
|
58
|
+
get tex(): { canonical: string, mxh: string, parametric: string , equation: string} {
|
|
59
59
|
// canonical => ax + by + c = 0
|
|
60
60
|
// mxh => y = -a/b x - c/b
|
|
61
61
|
// parametric => (xy) = OA + k*d
|
|
62
|
+
// equation => ax + by = -c
|
|
62
63
|
|
|
63
|
-
let canonical = this.equation;
|
|
64
|
+
let canonical = this.equation.clone().reorder(true);
|
|
64
65
|
// Make sur the first item is positive.
|
|
65
66
|
if (this._a.isNegative()) {
|
|
66
67
|
canonical.multiply(-1);
|
|
67
68
|
}
|
|
68
69
|
|
|
70
|
+
const d = this._d.clone().simplifyDirection()
|
|
71
|
+
|
|
69
72
|
return {
|
|
70
73
|
canonical: canonical.tex,
|
|
74
|
+
equation: canonical.clone().reorder().tex,
|
|
71
75
|
mxh: this.slope.isInfinity() ? 'x=' + this.OA.x.tex : 'y=' + new Polynom().parse('x', this.slope, this.height).tex,
|
|
72
|
-
parametric: `${Point.pmatrix('x', 'y')} = ${Point.pmatrix(this._OA.x, this._OA.y)} + k\\cdot ${Point.pmatrix(
|
|
76
|
+
parametric: `${Point.pmatrix('x', 'y')} = ${Point.pmatrix(this._OA.x, this._OA.y)} + k\\cdot ${Point.pmatrix(d.x, d.y)}`
|
|
73
77
|
}
|
|
74
78
|
}
|
|
75
79
|
|
|
@@ -355,11 +359,7 @@ export class Line {
|
|
|
355
359
|
}
|
|
356
360
|
|
|
357
361
|
simplifyDirection = (): Line => {
|
|
358
|
-
|
|
359
|
-
gcd = Numeric.gcd(this._d.x.numerator, this._d.y.numerator);
|
|
360
|
-
|
|
361
|
-
this._d.x.multiply(lcm).divide(gcd);
|
|
362
|
-
this._d.y.multiply(lcm).divide(gcd);
|
|
362
|
+
this._d.simplifyDirection()
|
|
363
363
|
return this;
|
|
364
364
|
}
|
|
365
365
|
intersection = (line: Line): { point: Point, hasIntersection: boolean, isParallel: boolean, isSame: boolean } => {
|
|
@@ -206,6 +206,15 @@ export class Vector {
|
|
|
206
206
|
.divideByScalar(Numeric.gcd(this._x.numerator, this._y.numerator));
|
|
207
207
|
}
|
|
208
208
|
|
|
209
|
+
simplifyDirection = (): Vector => {
|
|
210
|
+
let lcm = Numeric.lcm(this.x.denominator, this.y.denominator),
|
|
211
|
+
gcd = Numeric.gcd(this.x.numerator, this.y.numerator);
|
|
212
|
+
|
|
213
|
+
this.x.multiply(lcm).divide(gcd);
|
|
214
|
+
this.y.multiply(lcm).divide(gcd);
|
|
215
|
+
return this
|
|
216
|
+
}
|
|
217
|
+
|
|
209
218
|
angleWith = (V: Vector, sharp?: Boolean, radian?: Boolean): number => {
|
|
210
219
|
let scalar = this.scalarProductWithVector(V).value,
|
|
211
220
|
toDegree = radian ? 1 : 180 / Math.PI;
|
|
@@ -1,10 +1,8 @@
|
|
|
1
1
|
import {describe} from "mocha";
|
|
2
2
|
import {expect} from "chai";
|
|
3
|
-
import {Equation} from "../../src/maths/algebra/equation";
|
|
4
|
-
import {PiMath} from "../../src";
|
|
5
|
-
import exp = require("constants");
|
|
6
3
|
import {LinearSystem} from "../../src/maths/algebra/linearSystem";
|
|
7
4
|
import {Polynom} from "../../src/maths/algebra/polynom";
|
|
5
|
+
import exp = require("constants");
|
|
8
6
|
|
|
9
7
|
describe('Linear systems tests', () => {
|
|
10
8
|
it('should solve a 2x2 equations', () => {
|
|
@@ -14,7 +12,6 @@ describe('Linear systems tests', () => {
|
|
|
14
12
|
)
|
|
15
13
|
LS.solve(true)
|
|
16
14
|
|
|
17
|
-
console.log(LS.stepTex('x'))
|
|
18
15
|
expect(LS.solution).to.be.equal('\\left(-1;3\\right)')
|
|
19
16
|
})
|
|
20
17
|
it('should solve a 3x3 equations', () => {
|
|
@@ -47,10 +44,23 @@ describe('Linear systems tests', () => {
|
|
|
47
44
|
console.log('------------')
|
|
48
45
|
console.log(E1.tex, E2.tex)
|
|
49
46
|
|
|
50
|
-
console.log(E1.monoms.map(x=>x.tex))
|
|
51
|
-
console.log(E2.monoms.map(x=>x.tex))
|
|
47
|
+
console.log(E1.monoms.map(x => x.tex))
|
|
48
|
+
console.log(E2.monoms.map(x => x.tex))
|
|
52
49
|
E1.add(E2);
|
|
53
50
|
|
|
54
51
|
console.log(E1.tex)
|
|
55
52
|
});
|
|
53
|
+
|
|
54
|
+
it('should use a reduced linear reducation', function () {
|
|
55
|
+
let LS = new LinearSystem(
|
|
56
|
+
'3x-6y+3=0',
|
|
57
|
+
'x+12y-6=0'
|
|
58
|
+
)
|
|
59
|
+
LS.solve(true)
|
|
60
|
+
|
|
61
|
+
const tex = LS.stepTex('x')
|
|
62
|
+
|
|
63
|
+
expect(+LS.resolutionSteps['x'][0].operations[0][0]).to.be.equal(2)
|
|
64
|
+
expect(+LS.resolutionSteps['x'][0].operations[1][0]).to.be.equal(1)
|
|
65
|
+
});
|
|
56
66
|
})
|
|
@@ -13,4 +13,13 @@ describe('Geometry Line', function () {
|
|
|
13
13
|
console.log(y.tex)
|
|
14
14
|
});
|
|
15
15
|
|
|
16
|
+
it('should output nice Tex', function () {
|
|
17
|
+
let L = new Line('3x-4y-5=0')
|
|
18
|
+
|
|
19
|
+
console.log(L.tex.canonical)
|
|
20
|
+
console.log(L.tex.equation)
|
|
21
|
+
console.log(L.tex.mxh)
|
|
22
|
+
console.log(L.tex.parametric)
|
|
23
|
+
});
|
|
24
|
+
|
|
16
25
|
});
|