找回密码
 欢迎注册
楼主: nyy

[提问] P是△ABC内的动点,求7*AP+5*BP+8*CP的最小值

[复制链接]
 楼主| 发表于 2024-4-22 08:39:44 | 显示全部楼层
nyy 发表于 2024-4-19 09:30
@hujunhua 看看,为什么图上有最小值,然后拉格朗日乘子法找不到最小值?难道导数不存在? ...

  1. Clear["Global`*"];
  2. (*计算余弦值子函数,利用三边计算余弦值*)
  3. cs[a_,b_,c_]:=((a^2+b^2-c^2)/(2*a*b))
  4. aaa=Solve[cs[3,25/8,BC]==1/2&&BC>0,{BC}] (*用余弦定理求解BC的长度*)
  5. (*子函数,四面体体积公式,a,b,c分别是从一个顶点出发的三条棱,x,y,z分别是对棱*)
  6. fun[a_,b_,c_,x_,y_,z_]:=Sqrt[Det[{{0,1,1,1,1},{1,0,a^2,b^2,c^2},{1,a^2,0,z^2,y^2},{1,b^2,z^2,0,x^2},{1,c^2,y^2,x^2,0}}]/288]
  7. {AB,BC,AC}={3,(BC/.aaa[[1]]),25/8};(*线段长度赋值*)
  8. cond=fun[AP,BP,CP,BC,AC,AB]^2 (*体积等于零的约束条件*)
  9. obj=2*AP+5*BP+8*CP (*目标函数*)
  10. (*求解出最小值*)
  11. 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
这个似乎应该用kkt条件来求解  发表于 2024-4-22 08:48
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 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#说得很清楚了,再不清楚就看你自己了。
  1. Table[NMinimize[{7 AP + 8 BP + 9 CP, 7^2 == 8^2 + 9^2 - 2*8*9*Cos[x], Sin[A Pi/180]^2 == BP^2 + CP^2 + 2*BP*CP*Cos[x], Sin[B Pi/180]^2 == CP^2 + AP^2 + 2*CP*AP*Cos[y],
  2.    Sin[(A + B) Pi/180]^2 == AP^2 + BP^2 - 2*AP*BP*Cos[x + y], 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}}}}
  1. Table[NSolve[{s==7AP+8BP+9CP, 7^2==8^2+9^2-2*8*9*Cos[x], 8^2==9^2+7^2-2*9*7*Cos[y], Sin[A Pi/180]^2==BP^2+CP^2+2*BP*CP*Cos[x], Sin[B Pi/180]^2==CP^2+AP^2+2*CP*AP*Cos[y],
  2. Sin[(A + B) Pi/180]^2 == AP^2 + BP^2 - 2*AP*BP*Cos[x + y], 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:44
nyy
老同志,要用四面体当约束条件,因为四面体体积等于零是多项式约束条件,要尽可能地避免引入三角函数!  发表于 2024-4-23 10:40
nyy
吐死了,老同志,10楼的代码没你写的好吗?你的多行代码在一行,恶心死了  发表于 2024-4-23 10:33
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2024-4-23 10:39:13 | 显示全部楼层
hujunhua 发表于 2024-4-15 21:10
如果这3个数不能构成三角形,那么最值就不是极值,不在`\nabla f=0`时取得。
最值将在边界上取得。 ...

我觉得应该是在顶点取得,而不是边界上。当然,也有一些特殊的情况下,在边界能有最值
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2024-4-27 18:36:40 | 显示全部楼层
本帖最后由 hejoseph 于 2024-4-27 18:46 编辑

1.png
完整的结论如下:
如果求 $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$。

评分

参与人数 1威望 +6 金币 +8 贡献 +6 经验 +6 鲜花 +6 收起 理由
hujunhua + 6 + 8 + 6 + 6 + 6 三线共点正解

查看全部评分

毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 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,四点共圆,对吧?

点评

对的  发表于 2024-4-28 16:46
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2024-4-28 13:38:16 | 显示全部楼层
还是kkt条件好,永远都不变,都是那个方法!
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 7 天前 | 显示全部楼层
hejoseph 发表于 2024-4-27 18:36
完整的结论如下:
如果求 $k_1PA+k_2PB+k_3PC$ 的最小值,其中 $k_1$、$k_2$、$k_3$ 都是已知正数。这里设 ...

你这个k_1PA+k_2PB+k_3PC的结果表达式,是怎么搞到的?
硬算的吗?还是有什么技巧?
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 7 天前 | 显示全部楼层
本帖最后由 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公式太丑了,直接用图片
1.png

点评

nyy
你很聪明,懂得用把正弦转换成面积,而我就没那么聪明了  发表于 6 天前
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
回复 支持 1 反对 0

使用道具 举报

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

PABC1等三个四点共圆,达到极值的时候,是什么条件呢?

点评

并不是什么条件,都是从 6# 的分析结果得到的相应结论  发表于 5 天前
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
您需要登录后才可以回帖 登录 | 欢迎注册

本版积分规则

小黑屋|手机版|数学研发网 ( 苏ICP备07505100号 )

GMT+8, 2024-5-6 09:49 , Processed in 0.090622 second(s), 18 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表