Nouvelle ellipse

Bravo!

a = 2 (slider from -5 to 5, step 1)
b = 4 (slider from -5 to 5, step 1)
S_1: (a, 0)
S_2: (-a, 0)
f: sqrt(a^(2) + b^(2))
S_3: (0, b)
S_4: (0, -b)
A1 = -20
A2 = -19
A3: 2 * A2 - A1
A4: 2 * A3 - A2
A5: 2 * A4 - A3
A6: 2 * A5 - A4
A7: 2 * A6 - A5
A8: 2 * A7 - A6
A9: 2 * A8 - A7
A10: 2 * A9 - A8
A11: 2 * A10 - A9
A12: 2 * A11 - A10
A13: 2 * A12 - A11
A14: 2 * A13 - A12
A15: 2 * A14 - A13
A16: 2 * A15 - A14
A17: 2 * A16 - A15
A18: 2 * A17 - A16
A19: 2 * A18 - A17
A20: 2 * A19 - A18
A21: 2 * A20 - A19
A22: 2 * A21 - A20
A23: 2 * A22 - A21
A24: 2 * A23 - A22
A25: 2 * A24 - A23
A26: 2 * A25 - A24
A27: 2 * A26 - A25
A28: 2 * A27 - A26
A29: 2 * A28 - A27
A30: 2 * A29 - A28
A31: 2 * A30 - A29
A32: 2 * A31 - A30
A33: 2 * A32 - A31
A34: 2 * A33 - A32
A35: 2 * A34 - A33
A36: 2 * A35 - A34
A37: 2 * A36 - A35
A38: 2 * A37 - A36
A39: 2 * A38 - A37
A40: 2 * A39 - A38
A41: 2 * A40 - A39
B1: sqrt((A1^(2) * b^(2)) / a^(2) + b^(2))
B2: sqrt((A2^(2) * b^(2)) / a^(2) + b^(2))
B3: sqrt((A3^(2) * b^(2)) / a^(2) + b^(2))
B4: sqrt((A4^(2) * b^(2)) / a^(2) + b^(2))
B5: sqrt((A5^(2) * b^(2)) / a^(2) + b^(2))
B6: sqrt((A6^(2) * b^(2)) / a^(2) + b^(2))
B7: sqrt((A7^(2) * b^(2)) / a^(2) + b^(2))
B8: sqrt((A8^(2) * b^(2)) / a^(2) + b^(2))
B9: sqrt((A9^(2) * b^(2)) / a^(2) + b^(2))
B10: sqrt((A10^(2) * b^(2)) / a^(2) + b^(2))
B11: sqrt((A11^(2) * b^(2)) / a^(2) + b^(2))
B12: sqrt((A12^(2) * b^(2)) / a^(2) + b^(2))
B13: sqrt((A13^(2) * b^(2)) / a^(2) + b^(2))
B14: sqrt((A14^(2) * b^(2)) / a^(2) + b^(2))
B15: sqrt((A15^(2) * b^(2)) / a^(2) + b^(2))
B16: sqrt((A16^(2) * b^(2)) / a^(2) + b^(2))
B17: sqrt((A17^(2) * b^(2)) / a^(2) + b^(2))
B18: sqrt((A18^(2) * b^(2)) / a^(2) + b^(2))
B19: sqrt((A19^(2) * b^(2)) / a^(2) + b^(2))
B20: sqrt((A20^(2) * b^(2)) / a^(2) + b^(2))
B21: sqrt((A21^(2) * b^(2)) / a^(2) + b^(2))
B22: sqrt((A22^(2) * b^(2)) / a^(2) + b^(2))
B23: sqrt((A23^(2) * b^(2)) / a^(2) + b^(2))
B24: sqrt((A24^(2) * b^(2)) / a^(2) + b^(2))
B25: sqrt((A25^(2) * b^(2)) / a^(2) + b^(2))
B26: sqrt((A26^(2) * b^(2)) / a^(2) + b^(2))
B27: sqrt((A27^(2) * b^(2)) / a^(2) + b^(2))
B28: sqrt((A28^(2) * b^(2)) / a^(2) + b^(2))
B29: sqrt((A29^(2) * b^(2)) / a^(2) + b^(2))
B30: sqrt((A30^(2) * b^(2)) / a^(2) + b^(2))
B31: sqrt((A31^(2) * b^(2)) / a^(2) + b^(2))
B32: sqrt((A32^(2) * b^(2)) / a^(2) + b^(2))
B33: sqrt((A33^(2) * b^(2)) / a^(2) + b^(2))
B34: sqrt((A34^(2) * b^(2)) / a^(2) + b^(2))
B35: sqrt((A35^(2) * b^(2)) / a^(2) + b^(2))
B36: sqrt((A36^(2) * b^(2)) / a^(2) + b^(2))
B37: sqrt((A37^(2) * b^(2)) / a^(2) + b^(2))
B38: sqrt((A38^(2) * b^(2)) / a^(2) + b^(2))
B39: sqrt((A39^(2) * b^(2)) / a^(2) + b^(2))
B40: sqrt((A40^(2) * b^(2)) / a^(2) + b^(2))
B41: sqrt((A41^(2) * b^(2)) / a^(2) + b^(2))
g: x^(2) / a^(2) + y^(2) / b^(2) = 1
texte1: "" + a + "² = " + b + "² + c²"
distcentrefoyer1: sqrt(a^(2) - b^(2))
texte2: "" + b + "² = " + a + "² + c²"
distcentrefoyer2: sqrt(b^(2) - a^(2))
F_1: (0, distcentrefoyer2)
F_2: (0, -distcentrefoyer2)
F_3: (distcentrefoyer1, 0)
F_4: (-distcentrefoyer1, 0)
c: 2 * abs(a)
texte3: "Longueur axe horizontal: " + c + ""
d: x^(2) / Random[-5, 5]^(2) + y^(2) / Random[-5, 5]^(2) = 1
texte4: "Longueur axe vertical: " + d + ""
texte5: "$ \frac{x^2}{(" + (LaTeX[a]) + " )^2} \; + \; \frac{y^2}{(" + (LaTeX[b]) + " )^2} \; = \;  1$"
e: x^(2) / Random[-5, 5]^(2) + y^(2) / Random[-5, 5]^(2) = 1