求转子曲线所包围的封闭区域的面积
来源:互联网 发布:联通大数据宣传片 编辑:程序博客网 时间:2024/05/02 06:13
问题
碰到这样的问题,感觉很神奇。
定子方程,短幅内摆线方程:
与定子曲线方程共轭的转子曲线方程:
其中:
1.
2.
3.
4.
5.
6
7.
8.
9.
求如下转子曲线外轮廓所包围的面积。
一些推测:最初问这个问题的同学,估计是某高校不久之后自尽的一位研究生。ta后续还有一些问题,正好我自己也碰到了一些麻烦,没有及时解答。偶然从新闻上自尽的那位同学的专业和大致时间,与该同学提问之后不再上线的时间以及专业的匹配作出上面推测的。该同学后来的帖子还许诺报酬求解后续的问题(也就是知道面积反求其它参数的问题,实际用牛顿法之类的局部非线性优化方法就能容易求解)。当初也没有太在意,没想到,已经是压力大到这种程度。唏嘘感慨。就算现在解出后续的问题又有什么意义呢?(Mar 2016)
原理
我把
这种情况,曲线太复杂了,符号计算的可能性太小,投入和收获之间不成比例。所以,近似的数值计算是合理的。
涉及两方面的主要问题:
1. 如何找出外轮廓;
2. 如何计算外轮廓包围的面积。
第一个问题,因为近似计算,用曲线
第二个问题,前面一篇博客刚刚提到,把要计算部分的轮廓离散化成多边形,然后用Shoelace公式计算多边形的面积即可。对应于代码中的 PolygonSignedArea
函数。
答案
直接上代码:
ClearAll["Global`*"];R = 48.78;r = 8.13;z1 = R/r;z2 = 1 - z1;e = 7.05;f = r/e;re = 12.6;θ = ArcTan[Sin[z1 τ]/(f + Cos[z1 τ])] - τ;φ = ArcSin[f Sin[θ + τ]] - θ;ψ = z1/(z1 - 1) φ;curve01 = {(R - r) Sin[τ] + e Sin[z2 τ] -re Sin[θ], (R - r) Cos[τ] - e Cos[z2 τ] +re Cos[θ]} // FullSimplify;curve02 = {curve01[[1]] Cos[φ - ψ] - curve01[[2]] Sin[φ - ψ] - e Sin[ψ], curve01[[1]] Sin[φ - ψ] + curve01[[2]] Cos[φ - ψ] - e Cos[ψ]} // Simplify;base = ParametricPlot[Evaluate[curve02], {\[Tau], 0, 5 \[Pi]},Exclusions -> None, MaxRecursion -> 15, PlotPoints -> 1000];r1 = FindRoot[ (curve02 /. τ -> x) == (curve02 /. τ -> y), {x, .5}, {y, 5.5}];p1 = y /. FindRoot[ (ArcTan @@ (curve02 /. τ -> y)) == 3 Pi/ 10 , {y, .55}];top = x /. FindRoot[ curve02[[1]] /. τ -> x , {x, 5}];arc = Join[Table[ curve02 , {τ, top, y /. r1 , .0001}], Table[ curve02 , {τ, x /. r1, p1 , .0001}]];Show[base,Graphics[{{Red, Line[{curve02 /.τ -> top, {0, 0}, curve02 /.τ -> p1}], Line@arc }}]];PolygonSignedArea[pts_?MatrixQ] := Total[Det /@ Partition[pts, 2, 1, 1]]/2;area = 10 PolygonSignedArea[Reverse@Join[{{0, 0}}, arc]];Print[Style["Area is: ", Blue, 20], Style[NumberForm[area, 10], Red, 23]];
Area is: 7936.859683
上面是求多边形面积近似曲线包围区域的面积,基于Green定理的近似。这种方法误差跟曲线弧上离散点步长有关。另外一种直接用Green定理的方法,接上面的代码再计算得到:
5 (NIntegrate[-First[curve02] D[Last@curve02,τ]+Last[curve02] D[First@curve02, τ],{τ, top,y /. r1}] +NIntegrate[-First[curve02] D[Last@curve02,τ]+Last[curve02] D[First@curve02,τ], {τ,x/.r1, p1}]) // NumberForm[#, 15] &
结果是:
7945.519351112369
- 求转子曲线所包围的封闭区域的面积
- 用格林定理求Jordan曲线包围的封闭区域的面积
- matlab求0-1封闭区域围成的面积
- 一个转子曲线面积问题及其反问题的解答
- 【狂人C】学习笔记之求封闭曲线y=sin(x)的面积
- 包围的区域
- 如何用Green定理求五星形曲线所围面积的"精确解"
- matlab求曲线的面积 AUROC
- 封闭连续区域的面积和周长计算【2】--面积与周长
- 求多边形包围区域
- Geogebra里给带有曲线和直线混合边界的封闭区域填充颜色
- Surrounded Regions 被包围的区域
- LeetCode | Surrounded Regions(包围的区域)
- POJ2540-半平面交求线性规划可行区域的面积
- 一张二值图,求所有黑色区域的面积
- 封闭的三次贝塞尔曲线的填充
- 一个判断点是否在参数方程连续可微的封闭曲线界定的区域之内的好概念
- poj 1113 Wall 【求包围所有点、且与所有点距离至少为L的曲线的最小周长】
- Memcached入门一
- 【暑假】[ 图论 ] MST、最短路总结
- Project Euler:Problem 76 Counting summations
- android view构造函数研究
- <转>如何在CentOS 5/6上安装EPEL 源
- 求转子曲线所包围的封闭区域的面积
- android:How to delete a module in Android Studio?
- 计算机意外地重新启动或遇到错误。Windows 安装无法继续。若要安装Windows,请单击“确定”重新启动计算机,然后重新启动安装”。
- 邮件中的抄送和密送的区别
- VC 获取任务栏窗口的句柄
- 从头开始学习 Dojo,第 1 部分: 开始 Dojo 开发
- dynamic_cast和static_cast
- 一起talk C栗子吧(第二十回:C语言实例--括号匹配)
- SimpleAdapter在GridView中运用实例