【问题标题】:Objective C / Solving math systemsObjective C / 解决数学系统
【发布时间】:2013-03-31 21:31:30
【问题描述】:

我一直在尝试开发一个简单的应用程序,该应用程序使用用户提供的信息计算曲线方程。

例如,假设用户有一个圆方程和一个椭圆方程,他想知道交点。 从数学上讲,这是一个非常简单的问题,但我不知道如何告诉 Xcode 解决该系统。

我查看了 Accelerate 框架,发现了 Lapack 的“dgesv”功能。对于线系统来说,这将是一个完美的解决方案,但是像我之前所说的更复杂的系统呢?

我什至想知道如何计算曲线的切线,以及其他类似的几何问题。

【问题讨论】:

  • Numerical Mathematics 在大学里会是一门有用的学科。如果您深入研究,它可以帮助您。
  • 在分析上解决非线性问题可能相当复杂,但在数值上变得更容易。如果您以前使用过二分法或 Newton-Raphson 数值方法,那么您就知道需要做什么,但不清楚如何做。
  • 查找 Groebner 基和 Buchberger 算法。 (我会包含链接,但 Markdown 此刻似乎真的很讨厌我。)
  • 赞成该问题,但反对 2 个答案,因为它们对于一个非常具体的问题(如何获得非线性方程组的一组解)过于宽泛。如果给出具体细节,很高兴删除我的反对票!我只知道如何获得单个解决方案(就像任何非线性优化一样),但不知道 N 个非线性方程之间的整个交集子空间。
  • (虽然如果你有一个问题的单一解决方案,你可能会找到一个保留解决方案的切向量,并沿着这条路径走,如果你知道它应该是一条曲线)。

标签: objective-c xcode math computational-geometry


【解决方案1】:

例如,假设用户有一个圆方程和一个椭圆方程,他想知道交点。从数学上讲,这是一个非常简单的问题,但我不知道如何告诉 Xcode 解决该系统。

圆和椭圆相交的问题通常涉及求解四次多项式方程。您可以将其分解为三度,但仅平方根是不够的。所以我会说这不是一个真正的“安静简单的问题”。话虽如此,一些数值库确实支持查找单变量多项式的实根或复根的算法。因此,您将消除一个变量(例如,使用结果或 Gröbner 基),然后将生成的多项式提供给该变量。不确定哪些库最适合 Objective C 世界。但无论如何,一个要求建议特定库的问题都将被视为离题,因此请使用我提到的关键字来找到适合您需求的内容。

我什至想知道如何计算曲线的切线,以及其他类似的几何问题。

切线方向与隐式形式的梯度简单正交。换句话说,不要将曲线参数化地描述为 x=f(t) 和 y=g(t),而是隐含地描述为 f(x,y)=0。如果圆圈看起来像 x2+y2+ax++c=0。然后计算关于 xy 的偏导数。即 2x+a 和 2y+b。所以 (2x+a, 2y+b) 垂直于圆,而 (2y+b, -2x-a) 是切线的。不确定您认为与此类似的内容。

【讨论】:

    猜你喜欢
    • 2012-05-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-26
    • 2012-01-13
    • 2023-03-11
    • 1970-01-01
    相关资源
    最近更新 更多