找回密码
 欢迎注册
查看: 3676|回复: 143

[求助] 如何求出这个三元方程组的数值解?

[复制链接]
发表于 2023-8-11 10:44:08 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?欢迎注册

×
四个公式.png
已知 S25=25,S20=20,S12=12,如何由前面三个方程解出 R、u、v 三个未知数(已知它们都是正的实数)?或者由前面三个方程求出第四个式子的值也行。
由反正弦表示的角度均在 0 到 180 度之间,四个角度之和等于 360 度。

毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2023-8-11 11:07:19 | 显示全部楼层
本帖最后由 nyy 于 2023-8-11 11:15 编辑

我只能建议你用牛顿迭代法慢慢搞

FindRoot伺候

点评

你说的没错!就是用FindRoot即可。原先我以为这个指令只能解一元方程,其实多元的也行。  发表于 2023-8-11 15:41
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2023-8-11 11:16:53 | 显示全部楼层
你至少也要把代码粘贴成文本,搞上来,难道你指望别人对着你的图片把公式输入到mathematica,然后求解?????????????????????????????????????????????????????
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2023-8-11 12:17:47 | 显示全部楼层
我倒是觉得应该把原始问题提出来。
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2023-8-11 15:21:29 | 显示全部楼层
本帖最后由 TSC999 于 2023-8-11 22:21 编辑

原始问题及解答是:
求面积题与解答.png

点评

nyy
参考我在34楼写的代码,越写越棒!  发表于 2023-8-15 09:45
nyy
用角度,代码容易写,且不累人,且容易懂,我用的就是角度。  发表于 2023-8-14 08:56
nyy
我写的代码比你的简洁易懂  发表于 2023-8-14 08:55
@nyy: 程序代码见: http://kuing.infinityfreeapp.com/forum.php?mod=viewthread&tid=10863&page=1&extra=#pid55655  发表于 2023-8-12 20:28
nyy
文本代码贴上来?  发表于 2023-8-12 12:44
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2023-8-11 17:04:58 | 显示全部楼层
TSC999 发表于 2023-8-11 16:24
以上只是 S 的数字解答。谁能给出 S 的公式表达?

高精度数值解,然后RootA*,这个函数去找精确解(如果能找到的话!)
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2023-8-11 17:38:53 | 显示全部楼层
若 $a$, $b$是方程组
\[\left\{ \begin{array}{l}
37a + 8\pi  + 37\sin a + 90\sin b - 90\sin (a + b) = 0 \\
13a + 90b + 32\pi  - 32\sin a - 45\sin (a + 2b) = 0 \\
\end{array} \right.\]
在 a -> -0.387047, b -> -1.286039 附近的解,则所求面积为
\[S = \frac{{57a + 33\pi  + 57\sin a}}{{\pi  - a - \sin a}}\]

  1. Clear["Global`"];
  2. eqs = {37 a + 8 \[Pi] + 37 Sin[a] + 90 Sin[b] - 90 Sin[a + b],
  3.    13 a + 90 b + 32 \[Pi] - 32 Sin[a] - 45 Sin[a + 2 b]};
  4. sols = FindRoot[eqs == 0, {a, -0.5}, {b, -1}, WorkingPrecision -> 10];
  5. area = (3 (19 a + 11 \[Pi] + 19 Sin[a]))/(-a + \[Pi] - Sin[a]);
  6. Print["待求面积为: ", area /. sols]
  7. points = {A -> 0,
  8.    C -> (6 Sqrt[5] Sqrt[1 + Cos[a]])/Sqrt[-a + \[Pi] - Sin[a]],
  9.    D -> (6 Sqrt[10] E^(-((I b)/2)) Cos[(a + b)/2])/
  10.     Sqrt[-a + \[Pi] - Sin[a]],
  11.    P -> (6 Sqrt[10] Cos[b/2] Cos[(a + b)/2])/
  12.     Sqrt[-a + \[Pi] - Sin[a]],
  13.    B -> (3 Sqrt[10] E^((I a)/2) (1 + E^(I b)))/
  14.     Sqrt[-a + \[Pi] - Sin[a]]};
  15. Print["各点的一个表示: ", points /. sols]
复制代码


结果约为: 15.38514806
各点的一个表示: {A->0,C->9.420979154,D->5.147813190+3.856986685 I,P->5.147813190,B->5.147813190-5.703276135 I}

点评

nyy
ab分别表示啥意思呀  发表于 2023-8-12 09:56
@nyy: ”两人的结果差的有点远“,这是因为我的前一个帖子中计算有误导致的,现已更正,更正后两人的结果完全一样了。  发表于 2023-8-12 06:21
nyy
思路思路!思路是啥?这很重要!  发表于 2023-8-11 19:57
nyy
两人的结果差的有点远  发表于 2023-8-11 17:56
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2023-8-11 23:17:16 | 显示全部楼层
本帖最后由 creasson 于 2023-8-11 23:27 编辑
creasson 发表于 2023-8-11 17:38
若 $a$, $b$是方程组
\[\left\{ \begin{array}{l}
37a + 8\pi  + 37\sin a + 90\sin b - 90\sin (a + b) ...


较完整的求解如下:

  1. Clear["Global`*"];
  2. (*获得各点的表示*)
  3. points = {A->0, C->c,B->c ( 1 - I Tan[\[Theta]] )/(1 + I Tan[\[Phi] - \[Theta]]), D->c ( 1 - I Tan[\[Theta]] )/(1 - I Tan[\[Phi]]),T->c (1-I Tan[\[Theta]])/(1-I u)};
  4. assums = {0 < \[Theta] < \[Pi]/2, \[Theta] < \[Phi] < \[Pi]/2};
  5. AppendTo[points, P->Factor[ComplexExpand[Re[D/.points]]]//FullSimplify];
  6. (*面积计算*)
  7. kernel = -(1/2)Factor[ComplexExpand[Im[# * D[ComplexExpand[Conjugate[#]], u]]]]&@((T-P)/.points);
  8. integral = Integrate[kernel, u];
  9. area1 = Limit[integral, u->-Tan[\[Phi] - \[Theta]]] - Limit[integral, u->-\[Infinity]];
  10. area1 = FullSimplify[area1, Assumptions->assums];
  11. area2 = Limit[integral, u->Tan[\[Theta]]] - Limit[integral, u->-Tan[\[Phi] - \[Theta]]];
  12. area2 = FullSimplify[area2, Assumptions->assums];
  13. area3 = Limit[integral, u-> Tan[\[Phi]]] - Limit[integral, u->Tan[\[Theta]]];
  14. area3 = FullSimplify[area3, Assumptions->assums];
  15. area4 = Limit[integral, u->\[Infinity]] - Limit[integral, u->Tan[\[Phi]]];
  16. area4 = FullSimplify[area4, Assumptions->assums];
  17. areas = {area1, area2, area3, area4};
  18. (*数值求解*)
  19. eqs = {area1 - 25, area2 - 20, area3 - 12};
  20. sols = FindRoot[ eqs == 0, {c, 5}, {\[Theta], \[Pi]/4}, {\[Phi], \[Pi]/3}, WorkingPrecision->100];
  21. Print["待求区域面积为: ", area4/.sols];
  22. (*公式求解, 消元参数c*)
  23. eq1 = Factor[SubresultantPolynomialRemainders[eqs[[1]], eqs[[2]], c][[-1]]];
  24. eq1 = FactorList[eq1][[-1]][[1]];
  25. Print["条件式1:", eq1];
  26. eq2 = Factor[SubresultantPolynomialRemainders[eqs[[3]], eqs[[2]], c][[-1]]];
  27. eq2 = FactorList[eq2][[-1]][[1]];
  28. Print["条件式2:", eq2];
  29. eq3 = Factor[SubresultantPolynomialRemainders[(area4 - S), eqs[[2]], c][[-1]]];
  30. eq3 = FactorList[eq3][[-1]][[1]];
  31. Print["待求区域面积表示:", Solve[eq3 == 0, S]//Factor//Flatten];
复制代码



这将给出如下输出
微信截图_20230811231316.png

再人工化简一下即可:
  1. Clear["Global`"];
  2. eqs = {32 \[Pi]+77 \[Theta]-90 \[Phi]+32 Sin[\[Theta]]-45 Sin[\[Theta]-2 \[Phi]], 8 \[Pi]-37 \[Theta]-37 Sin[\[Theta]]+90 Sin[\[Theta]-\[Phi]]+90 Sin[\[Phi]]};
  3. sols = FindRoot[eqs == 0, {\[Theta], \[Pi]/2}, {\[Phi], (2 \[Pi])/3}, WorkingPrecision -> 1000];
  4. area = (3 (11 \[Pi]-19 \[Theta]-19 Sin[\[Theta]]))/(\[Pi]+\[Theta]+Sin[\[Theta]]);
  5. Print["待求面积为: ", area /. sols]
复制代码

这里所给的表示与前面的有细微差异.  

点评

nyy
这题用到了格林公式??  发表于 2023-8-12 09:56
nyy
配个图,再把思路好好说说  发表于 2023-8-12 09:53
nyy
配个图吧  发表于 2023-8-12 09:52
先得到以AC为基边的圆的有理表示,然后使用格林公式求面积,再消元化简即得.  发表于 2023-8-12 09:40
nyy
你的思路是什么?  发表于 2023-8-12 06:27
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2023-8-12 16:59:02 | 显示全部楼层
本帖最后由 northwolves 于 2023-8-12 18:28 编辑

令$u=Rcosx,v=Rcosy$
可得:
$R^2[ (\pi/4 + (x + y)/2) + (Sin[2 x] + Sin[2 y])/4 + Cos[x] Cos[y]] = 25$,
$R^2[(\pi/4 + (x - y)/2) - (Sin[2 x] - Sin[2 y])/4 - Cos[x] Cos[y] ]= 20$
$R^2[ (\pi/4 - (x + y)/2) - (Sin[2 x] + Sin[2 y])/4 + Cos[x] Cos[y] ]= 12$
$S=R^2[ (\pi/4 - (x - y)/2) + (Sin[2 x] - Sin[2 y])/4 - Cos[x] Cos[y]] $

点评

nyy
这个题目也许更适合极坐标。  发表于 2023-8-12 19:32
1楼的式子转换的  发表于 2023-8-12 17:50
nyy
你这个是格林公式得到的?  发表于 2023-8-12 17:34
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2023-8-12 18:53:23 | 显示全部楼层
利用 Excel “规划求解” 得到的数值解:
圆内面积分割A.png

应变量:
\[S=15.3851269409354\]

自变量值:
\[R=4.80009216042285\]
\[u=0.437324075395741\]
\[v=0.923145822993236\]

点评

也玩了一下,LZ 的公式有没有问题现在不知道,但发现可能还有一个解,就是 S > 20 的情况。现在的答案好像都是 S < 20 的情况。  发表于 2023-8-14 09:04
nyy
Excel求解出来的面积,能有四位小数的精度,也算不错了!  发表于 2023-8-14 08:59
与 Excel “规划求解” 相对应的工具,在 Matlab 中为:数学和优化->Optimization Toolbox 。在 Mathematica 中为 Optimization :: NMinimize (适用本题的命令) 、 NMaximize ……等。  发表于 2023-8-13 20:21
用 1# 的公式计算 4 个部分的面积、与“给定值”的误差,并将所有误差的平方和设定为目标值。“规划求解”用其算法自动调整自变量的值,使得目标值达到最小,即求解出了 LZ 出的题。  发表于 2023-8-13 20:01
nyy
原理是什么??  发表于 2023-8-13 16:18
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
您需要登录后才可以回帖 登录 | 欢迎注册

本版积分规则

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

GMT+8, 2024-5-3 21:43 , Processed in 0.055228 second(s), 20 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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