1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| #!/usr/bin/env python3
import numpy, math
# données initiales
x1, y1, z1, d1 = 1, 2, 10, math.sqrt(146)
x2, y2, z2, d2 = 7, -2, 0, math.sqrt(66)
x3, y3, z3, d3 = 14, 4, -2, math.sqrt(49)
x4, y4, z4, d4 = 2, 5, 8, math.sqrt(86)
# calcule les matrices a et b
a = numpy.array([[x1-x2, y1-y2, z1-z2],
[x1-x3, y1-y3, z1-z3],
[x1-x4, y1-y4, z1-z4]])
b = 0.5 * numpy.array([[d2**2-d1**2 + x1**2-x2**2 + y1**2-y2**2 + z1**2-z2**2],
[d3**2-d1**2 + x1**2-x3**2 + y1**2-y3**2 + z1**2-z3**2],
[d4**2-d1**2 + x1**2-x4**2 + y1**2-y4**2 + z1**2-z4**2]])
# resout le système ap=b (ici, on attend p = [8, 6, 1])
p = numpy.linalg.solve(a, b)
print(p) |
Partager