R数值方法类似于Matlab中的Vpasolve



我试图在R中求解一个数值方程,但想要一种在Matlab中执行类似vpasolve的方法。我有一个非线性方程(涉及很多对数函数(,当用uniroot在R中求解时,与vpasolve在matlab中给出的答案相比,它给了我完全不同的答案。

首先,需要注意的是:了解到有一种比你习惯的方式更好的做事方式通常会更有成效。

编辑

我回到MATLAB并意识到;vpa";集合正在使用扩展精度。这对你的目的来说绝对必要吗?如果没有,那么我下面的建议可能就足够了。如果您确实需要扩展精度,那么也许Rmpfr::unirootR函数就足够了。我想指出的是,由于所有这些求解器都在生成近似解(而不是解析解(,因此使用扩展精度运算似乎有点毫无意义。

接下来,您需要确定是MATLAB::vpasolve还是uniroot得到了正确的答案。或者,你只是在收敛到一个不是你想要的根,在这种情况下,你需要了解如何设置起始条件或搜索区域的限制。

最后,除了uniroot,我建议您学习使用R包BBsolvenleqslvrootsolvektsolve(免责声明:我是ktsolve的所有者和维护者(。这些软件包非常灵活,可能会为您的原始问题提供更好的解决方案。

最新更新