在 Matlab 中结合符号和数值计算有多容易?

计算科学 matlab 符号计算
2021-11-29 13:17:22

CS Beta 人员:

我一直在结合符号积分和数值积分进行一些多重积分(因为符号答案并不总是可能的)。我一直在使用 Mathematica 进行符号积分,将结果剪切并粘贴到 Matlab 中,然后在 Matlab 中使用 quad 或 dblquad。我可能可以在 Mathematica 中做所有事情,但我想发展我的 Matlab 技能。我的问题是,有没有一种方便的方法可以使用 Matlab 的符号功能更有效地做到这一点,而无需剪切和粘贴?

我在 Matlab 中可以访问的唯一符号引擎是 mupad(例如,我没有 Maple Toolbox)。我会查阅 Mathworks 文档,但我发现它在其他几个问题上存在不足,我想听听实际做过的人的意见。

编辑(3 月 5 日):有人要求我说得更具体一些。这是我正在做的一部分。我想评估三重积分

1RmaxOverRmin1r20r2r1r13t2r23exp(t24dOverRmin2)dtdr1dr2.

Mathematica 不能象征性地做到这一点,所以它可能是不可能的。Mathematica 可以象征性地做内二重积分。所以我做到了,将结果剪切并粘贴到 Matlab 函数文件中,并使用 Matlab 的“四边形”将结果整合为变为r21RmaxOverRmin

Stefan(堆栈交换风扇)

1个回答

最简单的方法可能是使用mEngine我没有使用过它,但我很确定安装和使用它会轻而易举。虽然不确定表达式将如何传输。

否则,您可以将表达式写入文本文件。然后您可以运行f=sym(somestring);让 MATLAB 将其解析为符号对象。然后只需使用subs().

编辑:检查这个答案。