C+代数库+; 我需要一个C++代数库,以便在我的项目中使用。起初我以为我能写一本,但后来我意识到我试图重新发明轮子并浪费了宝贵的时间,但没有成功。 对于算术问题,我发现了GMP库(你知道,对于无限的算术计算),以及其他类型任务的工具(标准C++库似乎足够用于伪随机数生成)。然而,我找不到适合代数作品的 有线性代数库(比如犰狳),但我不确定我是否需要这样的库。我想总结一下我的需要 #include <string> #include <somelibrary.h> int main(){ std::string str = "3*x^3+2*x^2+x+sqrt(x)*x^(1/3)"; algebraic_expression* exp = new algebraic_expression(str); } #包括 #包括 int main(){ std::string str=“3*x^3+2*x^2+x+sqrt(x)*x^(1/3)”; 代数_表达式*exp=新的代数_表达式(str); }

C+代数库+; 我需要一个C++代数库,以便在我的项目中使用。起初我以为我能写一本,但后来我意识到我试图重新发明轮子并浪费了宝贵的时间,但没有成功。 对于算术问题,我发现了GMP库(你知道,对于无限的算术计算),以及其他类型任务的工具(标准C++库似乎足够用于伪随机数生成)。然而,我找不到适合代数作品的 有线性代数库(比如犰狳),但我不确定我是否需要这样的库。我想总结一下我的需要 #include <string> #include <somelibrary.h> int main(){ std::string str = "3*x^3+2*x^2+x+sqrt(x)*x^(1/3)"; algebraic_expression* exp = new algebraic_expression(str); } #包括 #包括 int main(){ std::string str=“3*x^3+2*x^2+x+sqrt(x)*x^(1/3)”; 代数_表达式*exp=新的代数_表达式(str); },c++,algebra,C++,Algebra,我想从这样一个表达式中得到一棵树。假设它将返回一个包含一些信息的std::vector或C样式的数组。例如(考虑上面的例子)exp[0]将是“3*x^3”,或者exp[0][“base”]=“x”。为什么我需要这个?实际上,我可以通过使用正则表达式来做类似的事情,但有时我无法处理它,例如3*x^0就是3,我无法打印3*x^0,因为我想要3是没有意义的(就像3*x^1是3*x)。或者(3-3)*5*2将返回0,以此类推。 谢谢你的帮助 你应该寻找“CAS”(计算机代数系统)。我可以给你们两个建议:


我想从这样一个表达式中得到一棵树。假设它将返回一个包含一些信息的std::vector或C样式的数组。例如(考虑上面的例子)exp[0]将是“3*x^3”,或者exp[0][“base”]=“x”。

为什么我需要这个?实际上,我可以通过使用正则表达式来做类似的事情,但有时我无法处理它,例如3*x^0就是3,我无法打印3*x^0,因为我想要3是没有意义的(就像3*x^1是3*x)。或者(3-3)*5*2将返回0,以此类推。

谢谢你的帮助

你应该寻找“CAS”(计算机代数系统)。我可以给你们两个建议:

基纳克

Giac:

Giac的示例程序:

Giac还附带了一个名为XCAS的GUI应用程序。这是一个非常强大的工具,你应该尝试一下。

你应该寻找“CAS”(计算机代数系统)。我可以给你们两个建议:

基纳克

Giac:

Giac的示例程序:


Giac还附带了一个名为XCAS的GUI应用程序。这是一个非常强大的工具,你应该试一试。

我已经使用LAPACK作为我的3D代数计算硕士论文程序


我已经使用LAPACK作为我的3D代数计算硕士论文程序


这正是我想要找到的,也谢谢你的“计算机代数系统”一词。这正是我想要找到的,也谢谢你的“计算机代数系统”一词。