我正在尝试编写一个程序,使用复杂的步骤微分来评估某个点的导数 complex step differentiation 。
这涉及采用一些解析函数 F(x) 并在某个虚点 F(x+ih) 处对其进行评估,其中 h 是一些实数参数。 F'(x) 由 imag(F(x+ih))/h 给出。
我已经使用this测试了这种评估导数的方法。 Swift 代码用于复数,它似乎比使用有限差分方法更快地收敛到解决方案,也更稳定。
但是,我很难弄清楚如何为用户输入的可解析函数实现此功能。
我尝试过使用 DDMathParser,但它不支持复数。我想知道使用 NSExpression 是否可以实现这一点,但是我不明白它是如何工作的,而且我不知道是否有任何方法可以用它来评估复数。
如果你们知道如何处理这个问题,我将不胜感激!
最佳答案
DDMathParser 作者在此。
尽你所能see on Github ,我考虑过添加对复数的支持。我认为解析器可以很容易地处理它们。问题是评估引擎需要完全重新设计。现在,所有评估都是使用 double 完成的,让它们都支持复数将是一个不小的改变。
NSExpression
也不支持复数。
我认为此时您可能需要寻找其他地方来满足您的解析和评估需求。
关于swift - 计算解析方程中的复数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36394271/