多语言展示
当前在线:1435今日阅读:39今日分享:10

网友的几何问题之暴力破解

用Mathematica来解决网友提的一个几何问题:△ABC和△ADE是正三角形,BE⊥CD于F,AF=1。求△ABC和△ADE的面积和。暴力破解,其实就是用解析的方法处理问题。
工具/原料
1

电脑

2

Mathematica

方法/步骤
1

首先,设A、B、D、F(在Mathematica里面,用AA代替A,其它点的标签类似)的坐标为:AA={0,0};BB={b,0};DD={c,d};FF={e,f};

2

然后,定义一个函数r,用来求某个点绕原点逆时针旋转60°得到的新点的坐标。比如,r作用于BB就得到CC的坐标: r = RotationTransform[Pi/3]; CC=r[BB]EE=r[DD]

3

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表示)。

4

因为BE⊥CD,所以向量(BB-EE)和(CC-DD)的点乘等于0;因为AF=1,所以FF.FF=1。用这两个方程联立,可以求出c和d的值(用b表示)。

5

然后,计算△ABC和△ADE的面积和。△ABC的面积=Det[Join[#,{1}]&/@{AA,BB,CC}]/2,一定不要忘了最后面的除以2;△ADE的面积=Det[Join[#,{1}]&/@{AA,DD,EE}]/2。并且把c和d的值带入进去,化简,就得到最终答案。

6

把代码整合到一起: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

注意事项

这个问题,用解析方法,恐怕计算量不会少!

推荐信息