问题标签 [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 投票
1 回答
2121 浏览

c++ - Visual Studio 2012 中的三次根函数 cbrt()

我正在用 C/C++ 在 Visual Studio 2012 Professional (Windows) 中编写一个程序,其中包括使用pow(). 我运行分析器以找出为什么需要这么长时间才能运行,我发现这pow()是瓶颈。

我已经重写了诸如

pow(x,1.5)x*sqrt(x)

pow(x,1.75)sqrt(x*x*x*sqrt(x))

这显着提高了程序的速度。

一些权力是这样的,pow(x,1.0/3.0)所以我寻找立方根函数cbrt()来加快速度,但它似乎在 Visual Studio 中不可用,我几乎无法想象,所以我的问题是:

我在哪里可以找到cbrt()Visual Studio 2012 Professional 中的功能,如果没有,除了 之外还有哪些替代方法pow(x,1.0/3.0)

亲切的问候,

恩斯特·简

0 投票
2 回答
480 浏览

java - 4-sum 实现的二次时间

给定一个包含元素的数组x,我必须找到四个相加后等于 0 的数字。我还需要确定存在多少这样的总和。

所以三次时间涉及三个嵌套迭代器,所以我们只需要查找最后一个数字(使用二分搜索)。

相反,通过使用笛卡尔积(X 和 Y 的相同数组),我们可以将所有对及其总和存储在辅助数组中。所以对于每个总和d,我们只需要寻找-d.

这应该类似于(接近)二次时间:

由于x是 353(对于我们特定的数组输入),解决方案应该是 528,但我使用这个解决方案只找到 257。对于我们的立方时间,我们能够找到所有 528 个 4 和

是否有任何机会丢失了double的精度?

编辑:讨论了使用BigDecimal代替double,但我们担心它会对性能产生影响。我们只处理数组中的 353 个元素,那么这对我们来说意味着什么吗?

编辑编辑:如果我错误地使用 BigDecimal,我深表歉意。我以前从来没有和图书馆打过交道。因此,经过多次建议后,我尝试使用 BigDecimal

因此,它能够找到 261 个解决方案,而不是 257 个。这可能表明存在问题double,实际上我正在失去精度。但是261距离528很远,但我无法找到原因。

LASTEDIT:所以我相信这是可怕而丑陋的代码,但它似乎仍然有效。我们已经尝试过 while 但使用 BigDecimal 我们现在能够获得所有 528 个匹配项。

我不确定它是否足够接近二次时间,时间会证明一切。
我给你介绍怪物:

0 投票
2 回答
3518 浏览

javascript - JavaScript 中的三次回归(最佳拟合线)

我在寻找可以让我进行三次回归的 JavaScript 代码时遇到了最糟糕的情况。会自己写,但我对多项式数学的理解是次优的。

所以,这就是我要找的。给定一个数组数组的输入,其中内部数组是 [x,y],该函数会给我一个带有四个参数的数组形式的输出 - [a,b,c,d],其中 a 、b、c 和 d 是方程 y = ax^3 + bx^2 + cx + d 的参数。

示例:输入是这样的数组 [[2,5],[5,10],[07,15],[12,20],[20,25],[32,30],[50,35] ]。

这本质上是一个表格的表示:

现在,输出将是 [0.000575085,-0.058861065,2.183957502,1.127605507]。这些是三次函数的 a、b、c 和 d 参数。

(仅供参考,我使用 Excel 的 LINEST 函数并使用数组函数 {1,2,3} 在上述数字集上运行它得到的输出)。

怎么可能做到这一点?非常感谢您的任何指导。

最好的,汤姆

0 投票
4 回答
7267 浏览

r - 如何在R中解析三次方程(精确解)?

我试图在 R 中解析三次方程的解,而不是数值解。

我在互联网上查找并获得了三次根的公式并编写了以下代码:链接是: http: //www.math.vanderbilt.edu/~schectex/courses/cubic/

然而这个函数在大多数情况下不起作用,我猜这是因为公式中负数的力量,例如我注意到 R 不能得到 (-8)^(1/3) 的实根,即 -2 . 但我不确定如何修复我的代码,以便它可以用来解决一般的精确三次解决方案。

谢谢。

0 投票
1 回答
161 浏览

interpolation - 如何保证三次插值是单调的?

一般来说:给定一组本身是单调的任意数据,我应该如何计算额外的 n 个点来强制非单调三次插值(我必须使用它,没有其他选择)是单调的?

特别是对我来说:我有一个项目需要计算两个伺服器之间的关系。由于机器设计,伺服系统永远不应该备份。我希望我可以发布一张图片,但我刚刚注册并且还没有声誉。一组有代表性的点如下:

0: [0, 0](直线到 1)

1:[37.5, 45](三次曲线为 2)

2:[?, ?](三次曲线为 3)

3:[180, 60](三次曲线为 4)

4:[?, ?](三次曲线到 5)

5:[322.5, 75](直线到 6)

6:[360, 120](不适用)

我想要的行为以点 0、1、3、5 和 6 为特征。点 0 是固定的;其余的在运行时计算,并保证单调增加。保证整个绘图围绕点 3 对称。需要添加点 2 和 4,以便我必须使用的第三方线性/三次插值器产生尽可能平滑的单调曲线。(最小二阶导数)

有谁知道该怎么做?

0 投票
1 回答
288 浏览

javascript - 创建简单的功能 40% 折扣

我有动画遵循这个计时函数:cubic-bezier(0.25, 0.1, 0.25, 1.0)

我想修改这个函数,所以我只得到它的结尾 40%。为了让事情变得简单,让我们说我想要函数的 50%。我怎样才能做到这一点。

所以图形上就是这样: https ://developer.mozilla.org/files/3429/cubic-bezier,ease.png

我想用参数制作一个三次贝塞尔曲线,以便在图形上我们只能看到顶部,所以我们从该图的 0.5 到 1(在 yaxist 上)部分看到的,我想制作同一条线,但从 0为 1。

请帮助我如何制作此功能。

0 投票
2 回答
2136 浏览

javascript - 与简单三次贝塞尔函数相反

我有ease三次贝塞尔函数cubic-bezier(.25,.1,.25,1):(http://cubic-bezier.com/#.25,.1,.25,1

我想要与此相反。这是我正在尝试完成的图形表示:

左边的图表是我所拥有的,右边图表的功能是我想要实现的。

图片

0 投票
2 回答
462 浏览

javascript - 将拆分三次贝塞尔曲线外推到 1,1

我需要有关此处提供的解决方案的帮助。

创建简单的功能 40% 折扣

1,1我需要对其进行修改,以便在拆分后推断返回的左右。这是因为如果我不推断,我不能使用返回的分割三次贝塞尔曲线作为 css 过渡。

所以这是我做的测试。请帮忙,因为 real 不匹配 mike way :( 我认为问题是我需要将结果推断为 1,1。虽然我很确定,但我不能简单地将值加倍。

用于获取 Mike 方式的代码是这样的:

0 投票
4 回答
167 浏览

c - 如何在 C 编程中评估 for 循环中的表达式?

我正在尝试打印从 1 到 20 (n 3)的所有数字的立方体。我想知道我的代码是否

有必要的。那条线的目的是什么?有人可以解释吗?谢谢。这是我学习 C 的第一天。

0 投票
2 回答
2444 浏览

c - 如何在 C 编程中运行多个 for 循环?

我正在尝试使用各种类型的 for 循环找到从 1 到 10 的数字的立方。我想知道为什么在我的 for 循环评估后,程序停止并且不继续评估 while 循环?有人可以帮忙吗?顺便说一下,for 循环和 while 循环应该做同样的事情。谢谢。

PS我的第一个编程语言是Python,所以我很困惑为什么C在第一个for循环之后停止...... :(