Heron Formula

>sol &= solve([x^2+y^2=b^2,(x-a)^2+y^2=c^2],[x,y])
2 2 2
- c + b + a
[[x = --------------, y =
2 a
4 2 2 2 2 4 2 2 4
sqrt(- c + 2 b c + 2 a c - b + 2 a b - a )
- --------------------------------------------------],
2 a
2 2 2
- c + b + a
[x = --------------, y =
2 a
4 2 2 2 2 4 2 2 4
sqrt(- c + 2 b c + 2 a c - b + 2 a b - a )
--------------------------------------------------]]
2 a
>ysol &= y with sol[2][2]
4 2 2 2 2 4 2 2 4
sqrt(- c + 2 b c + 2 a c - b + 2 a b - a )
--------------------------------------------------
2 a
>function F(a,b,c) &= sqrt(factor((ysol*a/2)^2))
sqrt((- c + b + a) (c - b + a) (c + b - a) (c + b + a))
-------------------------------------------------------
4
>F(3,4,5)
6
>plot2d(&F(3,4,x),1,7); insimg;

>&solve(diff(F(a,b,c)^2,c)=0,c)
2 2 2 2
[c = - sqrt(b + a ), c = sqrt(b + a ), c = 0]
>s1 &= subst(d-c,b,sol[2])
2 2 2
(d - c) - c + a
[x = ------------------, y =
2 a
4 2 2 2 2 4 2 2 4
sqrt(- (d - c) + 2 c (d - c) + 2 a (d - c) - c + 2 a c - a )
--------------------------------------------------------------------]
2 a
>function fx(a,c,d) &= rhs(s1[1]), function fy(a,c,d) &= rhs(s1[2])
2 2 2
(d - c) - c + a
------------------
2 a
4 2 2 2 2 4 2 2 4
sqrt(- (d - c) + 2 c (d - c) + 2 a (d - c) - c + 2 a c - a )
--------------------------------------------------------------------
2 a
>plot2d(&fx(3,x,5),&fy(3,x,5),xmin=1,xmax=4,square=1); insimg;


>&ratsimp((fx(a,c,d)-a/2)^2/u^2+fy(a,c,d)^2/v^2 with [u=d/2,v=sqrt(d^2-a^2)/2])
1
>eqns &= [diff(F(a,b,d-(a+b))^2,a)=0,diff(F(a,b,d-(a+b))^2,b)=0]
d (d - 2 a) (d - 2 b) (- d + 2 b + 2 a) d (d - 2 b)
[--------------------- - ----------------------------- = 0,
8 8
d (d - 2 a) (d - 2 b) (- d + 2 b + 2 a) d (d - 2 a)
--------------------- - ----------------------------- = 0]
8 8
>&solve(eqns,[a,b])
d d d d
[[a = -, b = -], [a = 0, b = -], [a = -, b = 0],
3 3 2 2
d d
[a = -, b = -]]
2 2
>&solve([diff(F(a,b,c)^2,a)=la,diff(F(a,b,c)^2,b)=la, ...
> diff(F(a,b,c)^2,c)=la,a+b+c=d],[a,b,c,la])
d d
[[a = 0, b = -, c = -, la = 0],
2 2
d d d d
[a = -, b = 0, c = -, la = 0], [a = -, b = -, c = 0, la = 0],
2 2 2 2
3
d d d d
[a = -, b = -, c = -, la = ---]]
3 3 3 108
>load geometry;
>A &= at([x,y],sol[2])
2 2 2
- c + b + a
[--------------,
2 a
4 2 2 2 2 4 2 2 4
sqrt(- c + 2 b c + 2 a c - b + 2 a b - a )
--------------------------------------------------]
2 a
>B &= [0,0], C &= [a,0]
[0, 0]
[a, 0]
>setPlotRange(0,5,-2,3); ...
>a=4; b=3; c=2; ...
>plotPoint(mxmeval("B"),"B"); plotPoint(mxmeval("C"),"C"); ...
>plotPoint(mxmeval("A"),"A"); insimg;

>plotSegment(mxmeval("A"),mxmeval("C")); ...
>plotSegment(mxmeval("B"),mxmeval("C")); ...
>plotSegment(mxmeval("B"),mxmeval("A")); insimg;

>h &= middlePerpendicular(A,B); g &= middlePerpendicular(B,C);
>U &= lineIntersection(h,g);
>&assume(a>0,b>0,c>0); & distance(U,B) | radcan
I a b c
---------------------------------------------------------------
sqrt(c - b - a) sqrt(c - b + a) sqrt(c + b - a) sqrt(c + b + a)
>plotPoint(U()); ...
>plotCircle(circleWithCenter(mxmeval("U"),mxmeval("distance(U,C)"))); insimg;


>& c^2/sin(computeAngle(A,B,C))^2 | factor
2 2 2
4 a b c
- -----------------------------------------------
(c - b - a) (c - b + a) (c + b - a) (c + b + a)
>
Examples Homepage