首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用牛顿-拉夫森法求解非线性系统时如何确定雅可比

用牛顿-拉夫森法求解非线性系统时如何确定雅可比
EN

Stack Overflow用户
提问于 2013-11-12 08:50:53
回答 2查看 699关注 0票数 0

我试图用牛顿法求解一些非线性系统,解的精度对我的问题很重要。

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

代码语言:javascript
复制
- as accurate as symbolic Jacobian
- an algorithm suitable for general nonlinear system cases
- only dependent on C++ or similar programming languages;

  1. 如果我不得不用有限差分法来获得近似雅可比,所选择的步长将如何影响最终解的精度?如何确定步长,以便在相同的计算精度水平下获得最佳解的精度?如何定量地确定近似雅可比对最终解的精度的影响?
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-12-13 11:10:35

看看对偶数字的概念,在C++中有几个示例实现。使用适当初始化的对偶数对函数进行评估,结果是求出一个方向导数。对所有坐标方向重复这一步骤。

关于一个很好的介绍,请参阅Piponi: AD,C++和摄影测量(http://el.mdu.edu.tw/datacos/09820722022O/paper.pdf)。

如果L是求函数的努力,一个方向导数的代价约为3*L,则完全jacobian 3n*L.如果将所有方向组合在一个求值中,这将降为(1+2n)*L.但到那时,我们已经进入了自动或算法微分的领域。

查找FADBAD/TADIFF以便于实现,对于真正快速的代码,可以使用Tapenade项目提供的代码转换。ADOL介于两者之间,比Tapenade更自动化,比FADBAD更快.

票数 2
EN

Stack Overflow用户

发布于 2013-12-03 02:23:16

用Jacobian有限差分逼近法解决了这一问题;

用符号Jacobian法或有限差分Jacobian法求解非线性系统,无论在效率上还是在精度上似乎都没有本质上的区别。

唯一的区别是:符号Jacobian需要更少的步骤才能达到期望的收敛;如果可以提供Jacobian,那么它就会更快。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19924669

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档