问题标签 [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.
wolfram-mathematica - 当“方法”是默认牛顿时,Mathematica 的 FindRoot 的算法细节是什么?
在求解三变量非线性系统时,我尝试了不同的实现:
1)数学;(FindRoot,默认方法)
2)Matlab编程(利用中心有限差分逼近雅可比)
3)C++(通过使用中心有限差分来近似雅可比)
我发现 Mathematica 工作得最好(解决方案精度、准确性),即使工作精度只是“机器精度”而没有提供符号雅可比行列式。
但是,Mathematica 在这三者中运行速度最慢。
由于我的问题在“精度/准确性”和效率方面都非常苛刻,我如何在 Matlab 或 C++ 中复制默认的“牛顿”方法?
谢谢
floating-accuracy - 用 Newton-Raphson 方法求解非线性系统时如何确定雅可比行列式
我正在尝试用牛顿法解决一些非线性系统,解决方案的准确性对我的问题非常重要。
在不使用符号计算软件的情况下,如何通过 C++ 或其他类似编程语言计算一般非线性多项式系统的雅可比?我的困难主要是:
- 与符号雅可比一样准确
- 适用于一般非线性系统情况的算法
- 仅依赖于 C++ 或类似的编程语言;
如果我必须使用有限差分法来获得一个近似的雅可比行列式,那么所选择的步长将如何影响最终解决方案的准确性?如何确定步长,以便在相同的计算精度水平下获得最佳的求解精度?如何(定量地)确定近似雅可比对最终解决方案精度的影响?
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 ?
c# - 数值求解方程
用 C# 编码的算法:
我必须使用 Newton-Raphson 方法来解决,但我不知道如何做一个每次都放入下一个答案的循环。我如何计算这个?
这是我损坏的代码
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并填写一个等等,直到你达到了极限。现在,如果您能遵循这一点,说实话,它写得非常糟糕!那么请我需要你的帮助!
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
代码
输出
方程和导数已经过检查和双重检查,但是我仍然没有得到想要的输出
参考
matlab - 用MATLAB写一个二维实现牛顿法的函数
我正在尝试编写一个在二维中实现牛顿法的函数,虽然我已经这样做了,但我现在必须调整我的脚本,以便我的函数的输入参数必须是列向量中的 f(x),雅可比矩阵的f(x)
,初始猜测x0
和函数f(x)
及其雅可比矩阵在单独的 .m 文件中的容差。
作为我编写的实现牛顿方法的脚本示例,我有:
因此,使用此脚本,我已将函数和雅可比矩阵实现到实际脚本中,并且我正在努力研究如何实际创建具有所需输入参数的脚本。
谢谢!
matlab - 牛顿梯度下降线性回归
我正在尝试在 MatLab 中实现一个函数,该函数使用牛顿法计算最佳线性回归。然而,我陷入了困境。我不知道如何找到二阶导数。所以我无法实现它。这是我的代码。
谢谢你的帮助。
编辑::
我用一些纸和笔解决了这个问题。您所需要的只是一些微积分和矩阵运算。我找到了二阶导数,它现在正在工作。我正在为感兴趣的人分享我的工作代码。
python - 用于更高维度的牛顿法最大化的 Python 求解器
我正在尝试实现用于在更高维度上最大化的牛顿方法,我想知道 Python 中是否存在任何求解器?在 Scipy 中,有一维情况的求解器,但我没有看到多维情况的求解器。我想可以使用Numdifftools中的 Hessian 和 Gradient 求解器来实现它
编辑:看起来 scipy.optimize.minimize 是这样做的。我在多维标题下查看,但它不存在,这就是我错过它的原因。它在通用标题下
java - Commons Apache Java UnivariateFunctionDifferentiator
我在 java 中使用 UnivariateFunctionDifferentiator 接口时遇到问题。
引用自 Commons 主页:
“用户可以通过多种方式创建 UnivariateDifferentiableFunction 接口的实现。第一种方法是直接使用 DerivativeStructure 中的适当方法直接编写它来计算加法、减法、正弦、余弦……这通常很简单,而且无需记住微分规则:用户代码只代表函数本身,微分将在后台自动计算。第二种方法是编写一个经典的 UnivariateFunction 并将其传递给 UnivariateFunctionDifferentiator 接口的现有实现检索相同功能的不同版本。第一种方法更适合用户已经控制所有底层代码的小功能。第二种方法更适合使用 DerivativeStructure API 编写繁琐的大型函数,或者用户无法控制完整底层代码的函数(例如调用外部库的函数)。”
现在,我的问题很简单。上面描述的第一个方法实现起来非常简单,但不适合我的情况。原因是双重的。首先,我有一个非常大的函数(大约 40 个元素),其次,我已经花了几个小时计算导数。因此,我对使用 UnivariateFunctionDifferentiator 接口很感兴趣。
但是,我找不到任何示例或方法来使用此 UnivariateFunctionDifferentiator 接口来实现我的单变量函数 f 及其导数。究竟如何使用这个界面让我感到困惑。我的总体目标是使用 newton-raphson 方法解决 f(x) = 0。
有没有人有任何实施这个可以帮助我的经验?提前感谢您的帮助,如果有任何不清楚的地方,请告诉我!