【发布时间】:2018-02-02 12:05:17
【问题描述】:
令 (0,0) 和 (Xo,Yo) 为笛卡尔平面上的两个点。我们要确定抛物线,Y = AX^2 + BX + C,它从这两点经过并且给定的弧长等于 S。显然,S > sqrt(Xo^2 + Yo^2)。由于曲线必须从 (0,0) 通过,它应该是 C=0。因此,曲线方程简化为:Y = AX^2 + BX。知道 {Xo,Yo,S} 如何确定 {A,B}?有两种解决方案,我想要一个 A>0 的解决方案。
我有一个解析解(复数),它为给定的一组 {A,B,Xo,Yo} 给出 S,尽管这里的问题是相反的......我可以通过数值求解一个复杂的方程组来继续。 .. 但也许有一个数字程序可以做到这一点?
任何有用的 Python 库?其他想法?
非常感谢:-)
【问题讨论】:
-
@ReblochonMasque 不一定。任何通过原点的多项式都以
x - 0或简单地以x为根。因此它不能有一个独立于x的常数项。 -
弧长为
S,我假设你的意思是0, 0和x0, y0形成的弧长是S? -
对我来说,这似乎更像是一个数学问题而不是编程问题。先在纸上试出解析解?
-
你读过en.wikipedia.org/wiki/Parabola#Length_of_an_arc_of_a_parabola吗?在该部分的命名法中,您知道 s 和 p 并且想要计算 f,作为第一步。那里的方程式对我来说似乎是超然的,所以我不希望有一个确切的公式。不同的数值方法可能值得尝试。
-
如果你有
(A, B, x0, y0) -> S0并且它不容易反转,这是一个简单的 2D 最小化问题,你想最小化 ´ abs( S - S0 )`,所以你可以尝试一个简单的平方算法....实际上它是一维的,因为你有它必须通过的点的限制
标签: python geometry curve-fitting