问题标签 [cubic]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
3432 浏览

approximation - 插值建议(线性,三次?)

我需要找到未定义函数与阈值相交点的良好近似值。我正在步入我的空间,每当我发现两个后续步骤位于阈值的不同侧时,我都会在两者之间添加一个点:

实际情况

(来源:宁网

我的第一种方法是只选择中点,但这显然是一个糟糕的解决方案:

中点

(来源:宁网

我现在使用线性插值,它给出了一个合理的结果,但底层函数实际上永远不会是线性的。因此,只有当我的步长足够小时,这才有效:

线性插值

(来源:宁网

对基本函数进行采样可能会非常昂贵,但是我想尝试添加一两个额外的样本以获得更好的近似值。是否可以在这里使用三次插值?像这样:

三次插值
(来源:宁网

还是有更好的方法?

非常感谢,大卫·鲁滕

附言。我正在用 C# 编写,但这是一个与语言无关的问题。

0 投票
5 回答
30335 浏览

python - 求解三次方程

作为我正在编写的程序的一部分,我需要精确求解三次方程(而不是使用数字求根器):

我正在尝试使用此处的方程式。但是,请考虑以下代码(这是 Python,但它是非常通用的代码):

但输出是:

所以输出不为零,所以 x1 实际上不是一个解决方案。维基百科的文章有错误吗?

ps:我知道 numpy.roots 会解决这种方程,但我需要为数百万个方程做这个,所以我需要实现它来处理系数数组。

0 投票
1 回答
144 浏览

image - 三次图像转换器?

我正在寻找可以在 Windows 或 osx 上运行的软件(最好是免费的),它可以获取列表立方图像(分为前、后、上、下、左、右)并将它们转换为视频。我也在寻找从这些图像创建鱼眼投影的软件。

环顾四周,似乎找不到任何真正适合我目的的东西。请帮忙!

谢谢。

0 投票
1 回答
902 浏览

formula - 求解三次以找到曲线上离点最近的点

好的,

我有一个弹丸,其位置定义如下:

我希望能够预测该弹丸将与我的环境中的哪些障碍物相撞。我计划检查从A曲线上最近的点到点P的距离。

我认为在点A处,曲线的切线将垂直于矢量AP,并且曲线在A处的切线将只是该点处弹丸的速度V。

APV = 0

=>

APV =

从这里我可以看到这是一个三次函数。我花了一些时间在网上研究,发现有一个通用方程似乎适用于某些值来寻找根。

这是我试图实施的过程。 http://www.sosmath.com/algebra/factor/fac11/fac11.html

当我将 x 作为时间插回曲线的原始方程时,这应该给我A。这似乎对某些值很有效,但是当 py 高于某个值时,我在二次方程中没有取平方根的正数。

我对数学的理解不够全面,无法理解为什么会发生这种情况,或者我能做些什么来解决这个问题。

对此的任何帮助将不胜感激。

更新:

我已经调整了我的算法来处理复杂的根,但是我仍然遇到了麻烦。如果判别式为负,这就是我现在要做的:

出于某种原因,这仍然没有给我预期的结果。这里有什么明显的错误吗?

0 投票
3 回答
2603 浏览

iphone - Obj C或C的三次样条类?

我需要在 iPhone 应用程序中使用自然三次样条插值。有谁知道类似这样的 Obj C 或 C 类: http ://www.ee.ucl.ac.uk/~mflanaga/java/CubicSpline.html

“使用三次样条在数据点的一维数组 y = f(x) 内执行插值。”

0 投票
1 回答
7852 浏览

matlab - matlab中的三次样条

我无法让 matlab 代码正常工作!我在 matlab 中找到了一个三次样条代码来给我插值多项式。我只是举一个例子来工作:

Xi = [0 0.05 0.1]

Fi = [1 1.105171 1.221403]

Fi' = [2 _ 2.442806]

但它给了我这个错误:

这是非结条件的完整代码

同样对于夹紧条件,它给了我这个错误:

钳位模式的完整代码:

对于这个,它只给了我前 2 列!

所以有人知道我怎样才能使这两个工作吗?

0 投票
1 回答
5634 浏览

r - R中的三次样条插值

我正在尝试在 R 中实现三次样条曲线。我已经使用了 R 库中可用的样条曲线、smooth.spline 和 smooth.Pspline 函数,但我对结果并不满意,所以我想说服自己“自制”样条函数的结果的一致性。我已经计算了三次多项式的系数,但我不确定如何绘制结果……它们似乎是随机点。您可以在下面找到源代码。任何帮助,将不胜感激。

谢谢

0 投票
1 回答
371 浏览

math - 通过三次和/或二次贝塞尔曲线近似 n 级贝塞尔曲线

我正在尝试绘制 6 级(起点、4 个控制点、终点)贝塞尔曲线,但 API 仅提供三次和二次曲线方法。

有没有办法仅通过三次或二次分割或近似 6(或 n)等级曲线?


[编辑] 经过一番努力,我决定自己编写库。看看这里如何使用 Canvas API 绘制 n 级贝塞尔曲线

0 投票
2 回答
10582 浏览

python - 三次样条 Python 代码生成线性样条

编辑:我不是在找你调试这段代码。如果您熟悉这个众所周知的算法,那么您可能会有所帮助。请注意,该算法会正确生成系数。

三次样条插值的这段代码正在产生线性样条,我似乎无法弄清楚为什么(还)。该算法来自 Burden 的数值分析,与此处的伪代码几乎相同,或者您可以从评论中的链接中找到该书(参见第 3 章,无论如何都值得拥有)。该代码正在产生正确的系数;我相信我误解了实施。非常感谢任何反馈。另外,我是编程新手,所以也欢迎任何关于我的编码有多糟糕的反馈。我尝试用 h、a 和 c 上传线性系统的图片,但作为新用户,我不能。如果您想要算法求解的三对角线性系统的视觉效果,并且由 var alpha 设置,请参阅本书评论中的链接,请参阅第 3 章。该系统是严格对角占优的,所以我们知道那里存在唯一解 c0,...,cn。一旦我们知道了 ci 值,其他系数就会随之而来。

对于无聊的人,或成绩优异的人...

下面是测试代码,区间为 x: [1, 9], y:[0, 19.7750212]。测试函数是 xln(x),所以我们从 1 开始并增加 0.1 直到 9。

...并用于绘图:

0 投票
2 回答
1269 浏览

bezier - 当三次贝塞尔曲线上的 P0 == P1 时,如何在 t = 0 时计算非零 dx/dt 和 dy/dt?

在开始这个问题之前,我使用 P0、P1、P2 和 P3 来表示四个三次贝塞尔点,并使用“t”,因为它是参数化的。另外,我在这个站点以及谷歌中搜索过类似的问题,但找不到。如果这是一个常见问题,我深表歉意。

问题:在这两种情况下,三次贝塞尔曲线的 dx/dt 和 dy/dt 的斜率均为 0

这是一个示例来说明 (1),其中 t = 0 且 P0 == P1。

求下列三次贝塞尔曲线在 t = 0 处的切线(即 dx/dt 和 dy/dt):

为了求切线,我们需要三次贝塞尔曲线的一阶导数:

将 t = 0 代入一阶导数方程,我们得到

最后,回想一下 P0 = P1 = (100, 100),所以 dx/dt 和 dy/dt 是:

这告诉我......对于这个三次贝塞尔曲线,在 t = 0 处没有切线。如果您要绘制图表并查看它,这是没有意义的。

为了得到非零斜率,我所做的是:将点 P1、P2 和 P3 视为二次贝塞尔曲线,将它们转换为等效的三次贝塞尔曲线,然后在 t = 0 处找到一阶导数。有没有我可以避免这样做吗?我发现很难接受 dx/dt 和 dy/dt 为 0 的切线。谢谢你的帮助。