2010-11-18 19 views

回答

4

fzero不是微不足道的。
如果你的函数是多项式,尝试GSL http://www.gnu.org/software/gsl/

+0

不是多项式。这是一个非常复杂的代数函数。 – Brian 2010-11-18 00:30:01

4

试着看一下GNU Octave。它是MATLAB的FLOSS替代品,具有许多相同的功能。看看它的实现fzero,请记住代码是GPL的。

1

我在C++中为科学和工程应用做了很多工作。我最喜欢的参考之一是Numerical Recipes nr.com。本书的一些较早版本包括看起来像Fortran但是用C编写的代码,例如从1开始的数组索引。2007年的最新版本(仅限C++第三版)纠正了许多投诉,如1个索引数组和混淆命名空间。即使你不喜欢这些代码,数学的简单解释也会让这本书值得购买。被警告一些人认为代码的许可证很苛刻,但与Matlab相比,这是一个巨大的飞跃。其他要尝试的是GSL和Intel Math Kernel Lib。祝你好运。

+0

查看布伦特方法的数值处方章节9.3。 – 2010-11-18 22:08:55

0

查看嵌入式matlab子集。它允许你将matlab脚本转换为C代码。我使用它来创建我通过链接形成C++项目的matlab函数库。它只支持一部分函数,​​但fzero包含在列表中,但有一些限制。 。 。

http://www.mathworks.com/help/toolbox/eml/ug/bq1h2z7-9.html

这可以让你做你的算法开发中的温暖和舒适Matlab环境下。 Matlab甚至会建立C库。你所要做的就是链接到它。这是方式比学习一堆C++数值库更容易,如果你已经熟悉Matlab的话。

0

我不认为它包含一个fzero等价物,但Armadillo确实有许多MATLAB函数的C++版本(所以对于某些实例可能会这样做)。例如参见this conversion table