问题标签 [newtons-method]

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 回答
1161 浏览

wolfram-mathematica - 当“方法”是默认牛顿时,Mathematica 的 FindRoot 的算法细节是什么?

在求解三变量非线性系统时,我尝试了不同的实现:

1)数学;(FindRoot,默认方法)

2)Matlab编程(利用中心有限差分逼近雅可比)

3)C++(通过使用中心有限差分来近似雅可比)

我发现 Mathematica 工作得最好(解决方案精度、准确性),即使工作精度只是“机器精度”而没有提供符号雅可比行列式。

但是,Mathematica 在这三者中运行速度最慢。

由于我的问题在“精度/准确性”和效率方面都非常苛刻,我如何在 Matlab 或 C++ 中复制默认的“牛顿”方法?

谢谢

0 投票
2 回答
641 浏览

floating-accuracy - 用 Newton-Raphson 方法求解非线性系统时如何确定雅可比行列式

我正在尝试用牛顿法解决一些非线性系统,解决方案的准确性对我的问题非常重要。

  1. 在不使用符号计算软件的情况下,如何通过 C++ 或其他类似编程语言计算一般非线性多项式系统的雅可比?我的困难主要是:

    • 与符号雅可比一样准确
    • 适用于一般非线性系统情况的算法
    • 仅依赖于 C++ 或类似的编程语言;
  2. 如果我必须使用有限差分法来获得一个近似的雅可比行列式,那么所选择的步长将如何影响最终解决方案的准确性?如何确定步长,以便在相同的计算精度水平下获得最佳的求解精度?如何(定量地)确定近似雅可比对最终解决方案精度的影响?

0 投票
2 回答
3952 浏览

matlab - Need A Newton Raphson matlab function

i have a polynomial f(x)= x^3-a and i need its matlab function with parameters

function [x,err]=cubic1(a,xinit,eps) where xinit: Initial approximation eps: iterations are performed until approximate error is less than this number x: Root approximations of the function, and it is an array. relerr: Approximate errors corresponding to the iterations and it is an array.

do you have any idea ?

0 投票
1 回答
725 浏览

c# - 数值求解方程

用 C# 编码的算法:

我必须使用 Newton-Raphson 方法来解决,但我不知道如何做一个每次都放入下一个答案的循环。我如何计算这个?

这是我损坏的代码

0 投票
2 回答
130 浏览

c# - 需要循环建议

这就是我的代码。我知道它写得很糟糕!我是初学者。所以这是我的问题,从上面我想做的是牛顿拉夫森方法。

x n+1 = x n - f(x n )/f'(x n )

现在我知道如何计算 f(x n )/f'(x n ),如上所示,但我遇到的问题是 x n部分。

对于那些不知道的人,用 newton raphson 给出 x n的猜测估计值,假设为 1 并填写它。然后您得到的新答案将成为方程的 x n并填写一个等等,直到你达到了极限。现在,如果您能遵循这一点,说实话,它写得非常糟糕!那么请我需要你的帮助!

0 投票
2 回答
2456 浏览

java - 如何应用 Newton-Raphson 方法找到五次函数的根

描述

我开发了一种算法,实现了 Newton-Raphson 方法来找到五次函数的根。我必须反映的结果是303.6。但是,我的实施未能达到标准。

数据

参数

方程

0.024*((g Ds/uj^2)^(1/3)) (Y^(5/3)) + 0.2*(Y^(2/3)) - ((2.85/W)^(2/ 3)) = 0

其中导数为Y

(0.04*d^(1/3)⋅g(1/3)⋅y^(2/3)) / u(2/3) + 2/15*y^(1/3)

解决根为Y

代码

输出

方程和导数已经过检查和双重检查,但是我仍然没有得到想要的输出

参考

牛顿法

0 投票
1 回答
13871 浏览

matlab - 用MATLAB写一个二维实现牛顿法的函数

我正在尝试编写一个在二维中实现牛顿法的函数,虽然我已经这样做了,但我现在必须调整我的脚本,以便我的函数的输入参数必须是列向量中的 f(x),雅可比矩阵的f(x),初始猜测x0和函数f(x)及其雅可比矩阵在单独的 .m 文件中的容差。

作为我编写的实现牛顿方法的脚本示例,我有:

因此,使用此脚本,我已将函数和雅可比矩阵实现到实际脚本中,并且我正在努力研究如何实际创建具有所需输入参数的脚本。

谢谢!

0 投票
1 回答
1739 浏览

matlab - 牛顿梯度下降线性回归

我正在尝试在 MatLab 中实现一个函数,该函数使用牛顿法计算最佳线性回归。然而,我陷入了困境。我不知道如何找到二阶导数。所以我无法实现它。这是我的代码。

谢谢你的帮助。

编辑::

我用一些纸和笔解决了这个问题。您所需要的只是一些微积分和矩阵运算。我找到了二阶导数,它现在正在工作。我正在为感兴趣的人分享我的工作代码。

0 投票
1 回答
733 浏览

python - 用于更高维度的牛顿法最大化的 Python 求解器

我正在尝试实现用于在更高维度上最大化的牛顿方法,我想知道 Python 中是否存在任何求解器?在 Scipy 中,有一维情况的求解器,但我没有看到多维情况的求解器。我想可以使用Numdifftools中的 Hessian 和 Gradient 求解器来实现它

编辑:看起来 scipy.optimize.minimize 是这样做的。我在多维标题下查看,但它不存在,这就是我错过它的原因。它在通用标题下

0 投票
0 回答
159 浏览

java - Commons Apache Java UnivariateFunctionDifferentiator

我在 java 中使用 UnivariateFunctionDifferentiator 接口时遇到问题。

引用自 Commons 主页:

“用户可以通过多种方式创建 UnivariateDifferentiableFunction 接口的实现。第一种方法是直接使用 DerivativeStructure 中的适当方法直接编写它来计算加法、减法、正弦、余弦……这通常很简单,而且无需记住微分规则:用户代码只代表函数本身,微分将在后台自动计算。第二种方法是编写一个经典的 UnivariateFunction 并将其传递给 UnivariateFunctionDifferentiator 接口的现有实现检索相同功能的不同版本。第一种方法更适合用户已经控制所有底层代码的小功能。第二种方法更适合使用 DerivativeStructure API 编写繁琐的大型函数,或者用户无法控制完整底层代码的函数(例如调用外部库的函数)。”

现在,我的问题很简单。上面描述的第一个方法实现起来非常简单,但不适合我的情况。原因是双重的。首先,我有一个非常大的函数(大约 40 个元素),其次,我已经花了几个小时计算导数。因此,我对使用 UnivariateFunctionDifferentiator 接口很感兴趣。

但是,我找不到任何示例或方法来使用此 UnivariateFunctionDifferentiator 接口来实现我的单变量函数 f 及其导数。究竟如何使用这个界面让我感到困惑。我的总体目标是使用 newton-raphson 方法解决 f(x) = 0。

有没有人有任何实施这个可以帮助我的经验?提前感谢您的帮助,如果有任何不清楚的地方,请告诉我!