nyy 发表于 2024-4-22 08:39:44

nyy 发表于 2024-4-19 09:30
@hujunhua 看看,为什么图上有最小值,然后拉格朗日乘子法找不到最小值?难道导数不存在? ...

Clear["Global`*"];
(*计算余弦值子函数,利用三边计算余弦值*)
cs:=((a^2+b^2-c^2)/(2*a*b))
aaa=Solve==1/2&&BC>0,{BC}] (*用余弦定理求解BC的长度*)
(*子函数,四面体体积公式,a,b,c分别是从一个顶点出发的三条棱,x,y,z分别是对棱*)
fun:=Sqrt/288]
{AB,BC,AC}={3,(BC/.aaa[]),25/8};(*线段长度赋值*)
cond=fun^2 (*体积等于零的约束条件*)
obj=2*AP+5*BP+8*CP (*目标函数*)
(*求解出最小值*)
ans=Minimize[{obj,cond==0&&AP>=0&&BP>=0&&CP>=0},{AP,BP,CP}]//FullSimplify


我自己找到最小值了。

约束条件,并且非负变量
\[\frac{-4923392 \text{AP}^4+5324800 \text{AP}^2 \text{BP}^2+4521984 \text{AP}^2 \text{CP}^2+46156800 \text{AP}^2-5120000 \text{BP}^4+4915200 \text{BP}^2 \text{CP}^2+44160000 \text{BP}^2-4718592 \text{CP}^4+47923200 \text{CP}^2-432720000}{75497472}=0\]


求解结果

\[\left\{\frac{5}{8} \left(\sqrt{601}+10\right),\left\{\text{AP}\to \frac{25}{8},\text{BP}\to \frac{\sqrt{601}}{8},\text{CP}\to 0\right\}\right\}\]

这个是在定点求得最小值。

函数的最值有可能在边界上取得,然后这儿的导数未必等于零,是这个意思吧?
@hujunhua

nyy 发表于 2024-4-22 09:54:26

nyy 发表于 2024-4-22 08:39
我自己找到最小值了。

约束条件,并且非负变量


极值出现在不可导点、kkt条件点

王守恩 发表于 2024-4-23 10:26:59

本帖最后由 王守恩 于 2024-4-23 10:43 编辑

谢谢 hujunhua!5#,8#说得很清楚了,再不清楚就看你自己了。
Table, Sin^2 == BP^2 + CP^2 + 2*BP*CP*Cos, Sin^2 == CP^2 + AP^2 + 2*CP*AP*Cos,
   Sin[(A + B) Pi/180]^2 == AP^2 + BP^2 - 2*AP*BP*Cos, Pi/3 > x > 0, Pi/2 > y > 0, AP > 0, BP > 0, CP > 0}, {x, y, AP, BP, CP}], {A, 54, 54}, {B, A + 1, (180 - A)/2}]
BC=54°, CA=55°, AB=71°。{11.6240, {x -> 0.841069, y -> 1.01948, AP -> 0.611658, BP -> 0.567144, CP -> 0.311696}},
BC=54°, CA=56°, AB=70°。{11.6564, {x -> 0.841069, y -> 1.01948, AP -> 0.613516, BP -> 0.557750, CP -> 0.322201}},
BC=54°, CA=57°, AB=69°。{11.6859, {x -> 0.841069, y -> 1.01948, AP -> 0.615052, BP -> 0.548262, CP -> 0.332713}},
BC=54°, CA=58°, AB=68°。{11.7124, {x -> 0.841069, y -> 1.01948, AP -> 0.616269, BP -> 0.538685, CP -> 0.343227}},
BC=54°, CA=59°, AB=67°。{11.7360, {x -> 0.841069, y -> 1.01948, AP -> 0.617167, BP -> 0.529023, CP -> 0.353737}},
BC=54°, CA=60°, AB=66°。{11.7566, {x -> 0.841069, y -> 1.01948, AP -> 0.617746, BP -> 0.519279, CP -> 0.364238}},
BC=54°, CA=61°, AB=65°。{11.7742, {x -> 0.841069, y -> 1.01948, AP -> 0.618006, BP -> 0.509459, CP -> 0.374724}},
BC=54°, CA=62°, AB=64°。{11.7889, {x -> 0.841069, y -> 1.01948, AP -> 0.617949, BP -> 0.499566, CP -> 0.385191}},
BC=54°, CA=63°, AB=63°。{11.8006, {x -> 0.841069, y -> 1.01948, AP -> 0.617575, BP -> 0.489604, CP -> 0.395633}}}}
Table, 8^2==9^2+7^2-2*9*7*Cos, Sin^2==BP^2+CP^2+2*BP*CP*Cos, Sin^2==CP^2+AP^2+2*CP*AP*Cos,
Sin[(A + B) Pi/180]^2 == AP^2 + BP^2 - 2*AP*BP*Cos, Pi/2 > x > 0, Pi/2 > y > 0, AP > 0, BP > 0, CP > 0}, {x, y, AP, BP, CP, s}], {A, 54, 54}, {B, A + 1, (180 - A)/2}]
BC=54°, CA=55°, AB=71°。{{x -> 0.841069, y -> 1.01948, AP -> 0.611658, BP -> 0.567144, CP -> 0.311696, s -> 11.6240}},
BC=54°, CA=56°, AB=70°。{{x -> 0.841069, y -> 1.01948, AP -> 0.613516, BP -> 0.557750, CP -> 0.322201, s -> 11.6564}},
BC=54°, CA=57°, AB=69°。{{x -> 0.841069, y -> 1.01948, AP -> 0.615052, BP -> 0.548262, CP -> 0.332713, s -> 11.6859}},
BC=54°, CA=58°, AB=68°。{{x -> 0.841069, y -> 1.01948, AP -> 0.616269, BP -> 0.538685, CP -> 0.343227, s -> 11.7124}},
BC=54°, CA=59°, AB=67°。{{x -> 0.841069, y -> 1.01948, AP -> 0.617167, BP -> 0.529023, CP -> 0.353737, s -> 11.7360}},
BC=54°, CA=60°, AB=66°。{{x -> 0.841069, y -> 1.01948, AP -> 0.617746, BP -> 0.519279, CP -> 0.364238, s -> 11.7566}},
BC=54°, CA=61°, AB=65°。{{x -> 0.841069, y -> 1.01948, AP -> 0.618006, BP -> 0.509459, CP -> 0.374724, s -> 11.7742}},
BC=54°, CA=62°, AB=64°。{{x -> 0.841069, y -> 1.01948, AP -> 0.617949, BP -> 0.499566, CP -> 0.385191, s -> 11.7889}},
BC=54°, CA=63°, AB=63°。{{x -> 0.841069, y -> 1.01948, AP -> 0.617575, BP -> 0.489604, CP -> 0.395633, s -> 11.8006}}}}

现在来总结一下:
假设加权费马问题如下:
对于a*PA+b*PB+c*PC的形式(BC=sin(A),CA=sin(B),AB=sin(A+B))
关键是 \(\frac{a}{\sin(A)}=\frac{b}{\sin(B)}=\frac{c}{\sin(A+B)}\) 要在一个合理的范围。

nyy 发表于 2024-4-23 10:39:13

hujunhua 发表于 2024-4-15 21:10
如果这3个数不能构成三角形,那么最值就不是极值,不在`\nabla f=0`时取得。
最值将在边界上取得。 ...
我觉得应该是在顶点取得,而不是边界上。当然,也有一些特殊的情况下,在边界能有最值

hejoseph 发表于 2024-4-27 18:36:40

本帖最后由 hejoseph 于 2024-4-27 18:46 编辑


完整的结论如下:
如果求 $k_1PA+k_2PB+k_3PC$ 的最小值,其中 $k_1$、$k_2$、$k_3$ 都是已知正数。这里设 $BC=a$,$CA=b$,$AB=c$,$\triangle ABC$ 的面积为 $S$。
当 $k_1$、$k_2$、$k_3$ 不能构成三角形,那么所求的点 $P$ 就是 $k_1PA+k_2PB+k_3PC$ 中 $k_1$、$k_2$、$k_3$ 最大的那个三角形顶点。
当$k_1$、$k_2$、$k_3$ 能构成三角形,设 $k_1$、$k_2$、$k_3$ 所对的内角分别为 $\alpha$、$\beta$、$\gamma$,面积为 $S'$。当 $\angle A+\alpha<180^\circ$,$\angle B+\beta<180^\circ$,$\angle C+\gamma<180^\circ$ 时所求的点 $P$ 在 $\triangle ABC$ 内部,且
\begin{align*}
&k_1PA+k_2PB+k_3PC=\sqrt{bck_1^2\cos A+ack_2^2\cos B+abk_3^2\cos C+8SS'}\\
&PA=\frac{bck_1k_2k_3\sin(A+\alpha)}{2S'\sqrt{bck_1^2\cos A+ack_2^2\cos B+abk_3^2\cos C+8SS'}}\\
&PB=\frac{ack_1k_2k_3\sin(B+\beta)}{2S'\sqrt{bck_1^2\cos A+ack_2^2\cos B+abk_3^2\cos C+8SS'}}\\
&PC=\frac{abk_1k_2k_3\sin(C+\gamma)}{2S'\sqrt{bck_1^2\cos A+ack_2^2\cos B+abk_3^2\cos C+8SS'}}
\end{align*}
在$\triangle ABC$ 外作 $\triangle CBA_1$、$\triangle ACB_1$、$\triangle BAC_1$,使 $\angle BA_1C=\angle B_1AC=\angle BAC_1=\alpha$,$\angle CBA_1=\angle CB_1A=\angle C_1BA=\beta$,$\angle A_1CB=\angle ACB_1=\angle AC_1B=\gamma$,则 \(AA_1\)、\(BB_1\)、\(CC_1\) 共点,这个公共点就是所求的点 $P$。当 $\angle A+\alpha<180^\circ$,$\angle B+\beta<180^\circ$,$\angle C+\gamma<180^\circ$ 其中一个不满足时,则不满足条件的那个不等式的三角形顶点就是所求的点 $P$。

nyy 发表于 2024-4-28 09:42:05

hejoseph 发表于 2024-4-27 18:36
完整的结论如下:
如果求 $k_1PA+k_2PB+k_3PC$ 的最小值,其中 $k_1$、$k_2$、$k_3$ 都是已知正数。这里设 ...

PABC1,四点共圆,对吧?

nyy 发表于 2024-4-28 13:38:16

还是kkt条件好,永远都不变,都是那个方法!

nyy 发表于 2024-4-29 14:22:16

hejoseph 发表于 2024-4-27 18:36
完整的结论如下:
如果求 $k_1PA+k_2PB+k_3PC$ 的最小值,其中 $k_1$、$k_2$、$k_3$ 都是已知正数。这里设 ...

你这个k_1PA+k_2PB+k_3PC的结果表达式,是怎么搞到的?
硬算的吗?还是有什么技巧?

hejoseph 发表于 2024-4-29 16:33:01

本帖最后由 hejoseph 于 2024-4-29 16:55 编辑

nyy 发表于 2024-4-29 14:22
你这个k_1PA+k_2PB+k_3PC的结果表达式,是怎么搞到的?
硬算的吗?还是有什么技巧? ...

BC=a,B1C=bk1/k2,∠BCB1=C+γ,直接用6#分析的结果知BB1=(k1PA+k2PB+k3PC)/k2,再用余弦定理求BB1,
BB1^2
=a^2+b^2k1^2/k2^2-2abk1/k2cos(C+γ)
=a^2+b^2k1^2/k2^2-2abk1/k2·(cosCcosγ-sinCsinγ)
=a^2+b^2k1^2/k2^2-2abk1/k2·(k1^2+k2^2-k3^2)/(2k1k2)·cosC+2abk1/k2·2S/(ab)·2S'/(k1k2)
=(a^2k2^2+b^2k1^2-ab·(k1^2+k2^2-k3^2)·cosC+8SS')/(k2^2)
=((a^2-abcosC)k2^2+(b^2-abcosC)k1^2+abk3^2cosC+8SS')/(k2^2)
=((b^2-abcosC)k1^2+(a^2-abcosC)k2^2+abk3^2cosC+8SS')/(k2^2)
利用bcosC+ccosB=a,acosC+ccosA=b就得
b^2-abcosC=b(b-acosC)=bccosA
a^2-abcosC=a(a-bcosC)=accosB
这样
BB1^2=(bck1^2cosA+ack2^2cosB+abk3^2cosC+8SS')/(k2^2)
所以
k1PA+k2PB+k3PC=√(bck1^2cosA+ack2^2cosB+abk3^2cosC+8SS')

网站显示的LaTeX公式太丑了,直接用图片

nyy 发表于 2024-4-30 09:58:11

hejoseph 发表于 2024-4-27 18:36
完整的结论如下:
如果求 $k_1PA+k_2PB+k_3PC$ 的最小值,其中 $k_1$、$k_2$、$k_3$ 都是已知正数。这里设 ...

PABC1等三个四点共圆,达到极值的时候,是什么条件呢?
页: 1 2 [3]
查看完整版本: P是△ABC内的动点,求7*AP+5*BP+8*CP的最小值