问题标签 [nonlinear-functions]

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 投票
7 回答
10635 浏览

minimization - 如何使用牛顿法找到非线性、多元函数的最小值(代码不是线性代数)

我正在尝试进行一些参数估计,并希望选择参数估计,以最小化大约 30 个变量的预测方程中的平方误差。如果方程是线性的,我只需计算 30 个偏导数,将它们全部设置为零,然后使用线性方程求解器。但不幸的是,这个方程是非线性的,它的导数也是如此。

如果方程超过一个变量,我会使用牛顿法(也称为 Newton-Raphson)。网络上有丰富的示例和代码来实现单变量函数的牛顿方法。

鉴于我有大约 30 个变量,我如何使用牛顿法对这个问题的数值解决方案进行编程?我有封闭形式的方程,可以计算一阶和二阶导数,但我不知道如何从那里开始。我在网上找到了大量的处理方法,但它们很快就进入了重矩阵符号。我在 Wikipedia 上发现了一些很有帮助的东西,但我在将其翻译成代码时遇到了麻烦。

我担心分解的地方是矩阵代数和矩阵求逆。我可以用线性方程求解器反转矩阵,但我担心得到正确的行和列,避免转置错误等等。

具体来说:

  • 我想使用将变量映射到它们的值的表。我可以编写这样一个表的函数,它返回给定这样一个表作为参数的平方误差。我还可以创建返回关于任何给定变量的偏导数的函数。

  • 我对表中的值有一个合理的起始估计,所以我不担心收敛。

  • 我不确定如何编写使用估计值(每个变量的值表)、函数和偏导函数表来生成新估计值的循环。

最后一个是我想要帮助的。任何直接帮助或指向良好资源的指针都将受到热烈赞赏。


编辑:由于我有封闭形式的一阶和二阶导数,我想利用它们并避免更慢收敛的方法,如单纯形搜索。

0 投票
6 回答
9007 浏览

signal-processing - 正弦表插值

我想组装一个 SDR 系统,该系统最初调谐 AM,后来调谐 FM 等。我计划用来执行此操作的系统将有一个用于直接数字合成 (DDS) 的正弦查找表。为了正确调谐,我希望能够精确控制馈送到混频器(在这种情况下为乘数)的正弦波的频率。我希望线性插值会很接近,但认为非线性方法会提供更好的结果。

什么是用于正弦表的良好且快速的插值方法。目标系统上的乘法和加法很便宜;分裂代价高昂。

编辑:我计划用乘法/移位函数实现常量,以将常量标准化为缩放整数。中间值将使用宽加,乘法将使用 18 或 17 位。可以使用浮点“预计算”,但不能在目标平台上使用。当我说“除法代价高昂”时,我的意思是它必须使用乘数和大量代码来实现。这不是不可想象的,但应该避免。然而,真正的浮点 IEEE 方法将在该平台上占用大量资源,以及自定义实现。

任何 SDR 经验都会有所帮助。

0 投票
3 回答
383 浏览

algorithm - 非线性计数器

所以我有一个柜台。它应该计算某物的当前数量。为了计算这个,我知道开始日期和开始数量,以及每秒增加计数器的数量。十分简单。棘手的部分是增长不是完全线性的。每天,增量量都会增加一个设定量。我需要在算法上重新创建这个 - 基本上根据起始值、随时间增加的数量以及随时间增加的数量来计算当前日期的确切值。

我的目标语言是 Javascript,但伪代码也可以。

基于AB的解决方案:

你们觉得这合理吗?

0 投票
2 回答
4352 浏览

r - R中的Eta/Eta平方例程

除了在应用 GLM 系列的一些技术之前使用的线性图形估计(凝视散点图方法)之外,还有几种方法可以通过算术方式进行这种估计(即不使用图形)。

现在,我将专注于 Fisher 的eta-squared - 相关比:在算术上,如果两个变量之间的关系是线性的,则它等于 Pearson 的r平方(确定系数:r 2 )。因此,您可以比较etar的值并评估关系类型(线性或非线性)。它提供了有关由自变量解释(线性或非线性)的因变量方差百分比的信息。因此,您可以在不满足线性假设时应用它。

简单地说:R 中是否有 eta/eta-squared 的例程?

0 投票
2 回答
1162 浏览

r - 非图形线性估计

在我之前的帖子中,我正在寻找 R 中的相关比(η 或 η 2)例程。令我惊讶的是,在 GLM 程序中没有人使用 η 进行线性检查。

如何检查双变量相关的线性?仅使用散点图?

有几种方法可以做到这一点,一种方法是比较线性和非线性模型 R 2,然后应用 F 检验来寻找它们之间的显着差异。

我如何检查线性度,“非图形”方式?

0 投票
1 回答
1416 浏览

opengl - 如何在 OpenGL 中进行非线性着色?

我正在 OpenGL 中开发一个可视化工具来可视化 3d 有限元建模应用程序的输出。该应用程序使用四面体网格(但我只查看外部面,即三角形)。输出是一个标量变量,我想将其映射到颜色图(我已经知道如何做到这一点)。棘手的部分是每个单元格中变量的值由该单元格中坐标的多项式函数(我认为它是 3 次,但尚未最终确定)给出。

在 OpenGL 中,如果我使用“平滑”着色模型,那么如果我创建一个多边形并为每个顶点赋予不同的值,那么它将自动(线性地)在顶点的值之间进行插值,以获得颜色值点在内部。但这只是在每个单元格中给出了一个线性函数,我希望它是我指定的非线性函数。有没有办法做到这一点?

(当然,一种解决方案是通过将每个单元格绘制为小得多的OpenGL多边形的组合来“手动”插值,这些多边形足够小,以至于每个单元的颜色都不会发生太大变化。但我想知道OpenGL本身是否有解决办法。)

0 投票
2 回答
10231 浏览

python - 用定点迭代求解这个方程

我怎样才能解出这个方程

x 3 + x - 1 = 0

使用定点迭代?

我可以在网上找到任何定点迭代代码(尤其是在 Python 中)吗?

0 投票
4 回答
4405 浏览

optimization - Levenberg-Marquardt 算法的局限性

我正在使用Levenberg-Marquardt 算法来最小化 6 个参数的非线性函数。每次最小化我都有大约 50 个数据点,但我没有得到足够准确的结果。我的参数彼此相差几个数量级这一事实是否如此重要?如果是,我应该在哪里寻找解决方案?如果没有,您在工作中遇到了什么样的 LMA 限制(这可能有助于发现我的应用程序的其他问题)?非常感谢您的帮助。

编辑:我要解决的问题是确定最佳转换 T:

使 3D 点集适合 3D 线束。详细来说,我有一组 3D 点的坐标和相应的 3D 线的方程,它们应该通过这些点(在理想情况下)。LMA 最小化转换后的 3D 点到相应 3D 线的距离总和。变换函数如下:

希望这个解释会有所帮助......

编辑2:

下面粘贴了一些示例性数据。3D 线由中心点和方向矢量描述。所有线的中心点是 (0,0,0),每个向量的“uz”坐标等于 1。方向向量的“ux”坐标集:

方向向量的 'uy' 坐标集:

和 (xyzxyzxyz ...) 形式的 3D 点集:

这是一种具有非常小的旋转的“简单”建模数据。

0 投票
1 回答
951 浏览

java - 非线性编程示例c,java?

你知道非线性规划的一个很好的例子吗?,我在谷歌上搜索过,但是任何文本都只是制定并不能解决问题,他们提到了术语,甚至擅长解决它。

您能否发布一个示例并解释一下如果?

提前致谢

Pd 你知道这个想法是使用 C、java 来查看一些结果和数字。谢谢

0 投票
1 回答
1295 浏览

math - 非维度化数学

我有一组我需要无量纲化的变量H, W, P, &的耦合方程。T有没有办法在 Mathematica 中实现这一点,因为事实证明手动操作很困难。

参数单位:a = /H/单位时间;b = /H/单位时间;B = /H/单位时间;theta = T/H/单位时间;ap = /P/单位时间;bp = /P/单位时间;up = /P/单位时间;v = /P/单位时间;L = W/P/单位时间;R = /T/单位时间;bt = /T/单位时间;phi = /T/单位时间;g = /W/单位时间;k = 常数。