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

c - 多项式回归c代码

我对 C 编程非常陌生。我正在使用“C 中的数字食谱”一书中的 C 代码进行多项式回归,但我在实现/编译它时遇到了问题。

这是我正在使用的代码。一些//显示我尝试将程序更改为 C++。如果我不能让它在 C 下构建,也许它可以在 C++ 下工作?

我已将其添加int main()到程序中以实现它。nrutil.h是头文件,但我没有使用它,因为我将所需的函数转移到了 .ccp 文件(函数matrix(), vector(), nrerror(), SQR())。

我使用的编译器是 MSVC 2010 Express。

当我尝试编译这个程序时,它显示了这个错误输出:

0 投票
1 回答
2824 浏览

matlab - 在 MatLab 中制定求和目标函数以最小化 fmincon

我有一个求和目标函数(非线性投资组合优化),如下所示:

  • w是决策向量
  • cv是一个已知的 10 x 10 矩阵

我已经为约束(项目约束的单独 .m 文件)和 fmincon 的执行(下/上限、初始值和使用参数调用 fmincon 的单独 .m 文件)制定了公式。

我只是不知道如何做目标函数。我习惯于在 GLPK 而不是 matlab 中进行线性编程,所以我做得不太好。

我目前得到:

目标函数.m

...但这不起作用。

任何帮助,将不胜感激!提前致谢 :)

0 投票
1 回答
1590 浏览

matlab - 积分可变极限

嗨,我正在努力使用 matlab 解决以变量为极限的积分,我遇到的两个最大问题是 matlab 无法显式找到积分,并且除了变量之外,许多数值方法都不会

我需要解决

我知道 H、R 和 t,我的想法是先求解积分,然后求解 a 的非线性方程,我知道对非线性方程使用 fzero/fsolve,但我正在努力求解积分

0 投票
1 回答
1068 浏览

wolfram-mathematica - Mathematica:求解包含函数共轭或函数 Abs 的偏微分方程

我正在尝试使用NDSolve. 我不断收到以下错误:

由于Abs[D[f[x,y,t],x]]or的存在,我似乎只会收到此错误Conjugate[D[f[x,y,t],x]]。我创建了一个非常简单的函数来演示这个问题。

这将起作用:

这不起作用(请注意,唯一的区别是我们没有 Abs)。

现在我猜 Mathematica 试图对我的表达式求导,发现它不知道如何推导Abs函数。我的假设是否正确,如何解决这个问题?

0 投票
1 回答
2513 浏览

mapping - 将点从一个 2D 平面映射到另一个平面

给定平面 A 上的一个点,我希望能够映射到它在平面 B 上的对应点。我在两个平面之间有一组 N 对应的参考点对,但是,整体映射不是简单的仿射变换(对我来说没有单应性)。

我尝试过的事情:

  • 对于给定的点,在平面 A 中找到三个最近的参考点,计算该三角形的重心坐标,然后将该变换应用于平面 B 中的相应参考点。它是如何失败的:有时三个最近的点几乎共线,所以错误很大。此外,跨越边界时的映射也没有一致性。这是非常“紧张”的。

  • 给定 N 个参考点 (N^3),计算所有可能的三角形。按尺寸订购。对于给定的点,找到它所在的最小三角形。这解决了点的线性问题,但仍然非常紧张和缓慢。

  • 从三角平面 A 开始。遍历参考点,将每个参考点添加到参考平面。每次添加一个点时,它至少存在一个三角形中。使用新的参考点作为顶点将该三角形分成三个三角形。您最终将平面 A 进行了三角剖分,因此您可以轻松地从平面 A 映射到平面 B。问题:您可以证明每个三角形都有一个位于平面边缘的点。如果您的参考点远离平面边缘,这会导致巨大的错误。

我觉得这应该是一个相当标准的问题。是否有为此的标准算法/库?

0 投票
1 回答
823 浏览

r - 在“R”中更改 nls.lm() 中的目标函数

我正在使用函数 nls.lm {package: minpack.lm} 来优化水文模型的参数化。该功能运行良好,但我想使用另一个objective function (OF). 通常,nls.lm 中的目标函数“fn”定义为

现在我想使用Nash-Sutcliff-Efficiency定义为

或其他OF。问题是nls.lm最小化表达式sum(x)^2,只有x是可修改的。我知道best fit NSE = 1. 因此1 - NSE产生了一个真正的最小化问题。

顺便说一句:nls.lm 帮助页面中的示例 1是一个很好的示例;那里

被最小化,实际上意味着什么

nls.lm函数最小化,而getPred(p,xx)返回sim.

任何建议都会有所帮助。提前致谢。米查

0 投票
1 回答
16707 浏览

r - 优化错误:无法在初始参数处评估函数

所以我在 R 中遇到了这个奇怪的错误。我有一个简单的函数,它在比较真实价格和模拟价格时返回一个错误项,称为hestondifferences().

当我尝试通过以下方式找到局部最小值时:

我收到错误消息:

optim(fn = hestondifferences, par = c(vT = vT, rho = rho, k = k, : 函数无法在初始参数处评估) 中的错误

让我困惑的是,直接使用初始参数调用函数会hestondifferences(vT, rho, k, sigma)返回正确的值。

该函数hestondifferences()的编写方式是,只要对某些参数集无法进行模拟,它就会返回NA符合optim() 期望的值。

0 投票
1 回答
993 浏览

r - 绘制最佳拟合非线性曲线的新值

我已经为非线性函数创建了最佳拟合。它似乎工作正常:

我观察的情节是正确的。我无法在我的绘图上显示最佳拟合曲线。我创建了具有 1000 个值的 xl 自变量,并且我想使用最佳拟合来定义新值。当我调用“行”过程时,我收到错误消息:

xy.coords(x, y) 中的错误:“x”和“y”长度不同如果我尝试仅执行预测函数:

我可以看到 xl 有 1000 个组件,但“a”只有 16 个组件。我不应该在 a 中有相同数量的值吗?

使用的数据:

0 投票
1 回答
1017 浏览

c - 如何求解具有指数函数的联立非线性方程?

我有一个方程组来求解x1x2

其中BC是负数,而其余常数是正数。

我尝试使用 GSL 库中的多根函数在 C 中解决它。似乎多根无法解决系统问题。我为非线性同时多项式函数(其中没有指数部分)尝试了相同的多根实现,它运行良好并给出了正确的结果。关于如何解决这样一个系统的任何建议?或者任何其他可用于此类方程的强大库?

0 投票
1 回答
2320 浏览

matlab - Matlab 的 fsolve 收敛 *但 * 似乎给出了错误的解决方案

我正在尝试使用 fsolve 求解非线性方程组;让我们说

F(x;lambda) = 0,其中 lambda 是参数向量,x 是我要求解的向量。

我正在使用 Matlab 的 fsolve。

我有 2 个参数 lambda 值,我想解决系统问题。对于 lambda 的一个值,我得到了一个解决方案,这似乎没问题。

对于 lambda 的另一个值,我再次得到一个解决方案(matlab 以 1 的标志退出。但是我知道这不是一个实际的解决方案例如,我知道 x 的某些维度必须彼此相等,并且这个我从 fsolve 获得的解决方案并非如此。

我已经尝试过 trust-region 和 levenberg-marquardt 算法,但没有得到更好的结果。(明确强制那些 x 相同,似乎仍然给出的解决方案与我对系统属性的期望不一致)

我的问题是:fsolve 使用的算法是否取决于系统的任何稳定性?难道是在我上面提到的第二种情况下更改参数 lambda 会使系统变得不稳定,这会使 fsolve 难以正确解决它吗?

谢谢你,乔治