3
$\begingroup$

I'm trying to get a formula to build a conic with the construction of William Braikenridge and Colin MacLaurin.

When performing the construction I want to use symbolics, because I want the final result to be the formula for the construction.

So I tried to build two general lines:

A2 = Point[{Subscript[a, x], Subscript[a, y]}];
B2 = Point[{Subscript[b, x], Subscript[b, y]}];
D2 = Point[{Subscript[d, x], Subscript[d, y]}];
E2 = Point[{Subscript[e, x], Subscript[e, y]}];
r = Line[{{A2, D2}}];
s = Line[{{B2, E2}}];

But I can't see how to get access to the equations of the lines, and I need the symbolic expression for their intersection. Of course, I could do it all on the paper, but that would be tedious, because I have to build other lines and get other intersections.

$\endgroup$
  • $\begingroup$ Ok, i'll try to work just with the determinants, thank you. $\endgroup$ – krionz Mar 19 '17 at 19:07
  • $\begingroup$ RegionIntersection[r, s]? It's not clear how far this can be pushed, though... $\endgroup$ – Michael E2 Mar 19 '17 at 19:22
  • $\begingroup$ I think Mathematica does not have symbolic geometry as advanced as you are looking for. I am not sure if there are packages that can do it. $\endgroup$ – Szabolcs Mar 19 '17 at 19:54
  • $\begingroup$ Ok, i'll do part of the job with paper and the other with mathematica. $\endgroup$ – krionz Mar 19 '17 at 20:25
  • $\begingroup$ InterpolatingPolynomial[] ("how to get access to the equations of the lines") and LinearSolve[] ("I need the symbolic expression for their intersection") ought to be useful here. $\endgroup$ – J. M.'s technical difficulties Mar 20 '17 at 0:03
5
$\begingroup$
Format[a[x_]] := Subscript[a, x];
Format[b[x_]] := Subscript[b, x];
Format[d[x_]] := Subscript[d, x];
Format[e[x_]] := Subscript[e, x];

A2 = a /@ {"x", "y"};
B2 = b /@ {"x", "y"};
D2 = d /@ {"x", "y"};
E2 = e /@ {"x", "y"};

The equation for the line passing through the points A2 and D2

r = Simplify[
   m*x + b /. Solve[#[[2]] == m*#[[1]] + b & /@ {A2, D2}, {m, b}][[1]]];

Similarly, the equation for the line passing through the points B2 and E2

s = Simplify[
   m*x + b /. Solve[#[[2]] == m*#[[1]] + b & /@ {B2, E2}, {m, b}][[1]]];

The intersection point is

ip = {x, r} /. Solve[r == s, x][[1]] // Simplify

enter image description here

As expected, you get the same result using s rather than r

ip == {x, s} /. Solve[r == s, x][[1]] // Simplify

(*  True  *)
|improve this answer|||||
$\endgroup$
  • $\begingroup$ Thank you Bob, your code is being really useful. $\endgroup$ – krionz Mar 19 '17 at 20:26

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.