| 
注册时间2018-12-8最后登录1970-1-1威望 星金币 枚贡献 分经验 点鲜花 朵魅力 点上传 次下载 次积分3549在线时间 小时 
 | 
 
 发表于 2020-6-7 14:02:15
|
显示全部楼层 
| 本帖最后由 dlpg070 于 2020-6-7 14:17 编辑 
 
 验证用代码
 "完整中学生解法"虽然只用初等方法计算,但讨论有些复杂
 这是为中学生和他们的老师看的---小题小作也是一种乐趣
 其实小题大作很简单,甚至不需要讨论各种条件
 下面的代码用Minimize,源于2#
 共计算4个例题
 1 ,2 属于第2区间 正常费马点
 3 属于第3区间 费马点F与E重合, 在BC线上
 4 属于第1区间 费马点F与A重合, 在角A
 代码:
 复制代码(*验证*)
Clear["Global`*"];
(* Minimize求解 通用 ,ok  验证用 *)
fs[a_,b_,c_]:=fs[a,b,c]=Module[{ans,out},
Clear[x,y,FA,FE,FD];
ans=Minimize[{FA+FE+FD,(*目标函数*)(*约数条件*)FA^2==(x-0)^2+(y-a)^2&&FD^2==(x-c)^2+(y-b)^2&&FE==y&&(*限制变量范围*)FA>=0&&FD>=0&&FE>=0},{x,y,FA,FD,FE}]//FullSimplify;
out=RootApproximant@N[{x,y,FA,FD,FE}/.ans[[2]],300];
{ans[[1]],out[[1]],out[[2]],out[[3]],out[[4]],out[[5]]}
]
data={{4,8,16},{6,10,16},{6,8,32},{6,16,8}};
Print["验证:"]
lst=Table[ {a,b,c}=data[[n]];
ans=fs[a,b,c];
{min,xf,yf,FAm,FDm,FEm}=ans;
Print["a=",a," b=",b," c=",c," min=",min, " =",N[min]," xf= ",xf," =",N[xf]," yf= ",yf," =",N[yf]];
{n,a,b,c,min,xf,yf}
,{n,1,Length[data]}];
Grid[lst,Alignment->Left]
 输出:
 n      a    b      c       min                     xf                   yf
 \(\begin{array}{lllllll}
 1 & 4 & 8 & 16 & 8 \sqrt{3}+6 & 8-2 \sqrt{3} & \frac{1}{3} \left(18-8 \sqrt{3}\right) \\
 2 & 6 & 10 & 16 & 8 \left(\sqrt{3}+1\right) & 8-2 \sqrt{3} & \frac{1}{3} \left(24-8 \sqrt{3}\right) \\
 3 & 6 & 8 & 32 & 2 \sqrt{305} & \frac{96}{7} & 0 \\
 4 & 6 & 16 & 8 & 2 \left(\sqrt{41}+3\right) & 0 & 6 \\
 \end{array}\)
 | 
 |