电脑
Mathematica
首先,设A、B、D、F(在Mathematica里面,用AA代替A,其它点的标签类似)的坐标为:AA={0,0};BB={b,0};DD={c,d};FF={e,f};
然后,定义一个函数r,用来求某个点绕原点逆时针旋转60°得到的新点的坐标。比如,r作用于BB就得到CC的坐标: r = RotationTransform[Pi/3]; CC=r[BB]EE=r[DD]
BB、EE、FF共线,也就是△BEF的面积=0,即:Det[Join[#,{1}]&/@{BB,EE,FF}]==0类似的,CC、DD、FF共线对应于:Det[Join[#,{1}]&/@{CC,DD,FF}]==0联立方程组,可以求出FF的坐标(用b、c、d表示)。
因为BE⊥CD,所以向量(BB-EE)和(CC-DD)的点乘等于0;因为AF=1,所以FF.FF=1。用这两个方程联立,可以求出c和d的值(用b表示)。
然后,计算△ABC和△ADE的面积和。△ABC的面积=Det[Join[#,{1}]&/@{AA,BB,CC}]/2,一定不要忘了最后面的除以2;△ADE的面积=Det[Join[#,{1}]&/@{AA,DD,EE}]/2。并且把c和d的值带入进去,化简,就得到最终答案。
把代码整合到一起:r = RotationTransform[Pi/3];AA={0,0};BB={b,0};DD={c,d};FF={e,f};CC=r[BB]EE=r[DD]sol=Solve[Det[Join[#,{1}]&/@{BB,EE,FF}]==0&&Det[Join[#,{1}]& /@{CC,DD,FF}]==0,{e,f}];F=FF/.sol//Flattensol0=Solve[(BB-EE).(CC-DD)==0&&F.F==1,{c,d}][[1]]FullSimplify[(Det[Join[#,{1}]&/@{BB,CC,AA}]+Det[Join[#,{1}]& /@{DD,EE,AA}])/.sol0]/2
这个问题,用解析方法,恐怕计算量不会少!