a i(calc-integral)[integ]命令根据提示变量计算堆栈顶部表达式的不定积分。不能保证该积分器可用于所有可积分函数,但是它能够积分多个大类的公式。特别是,任何多项式或有理函数(多项式除以多项式)都是可以接受的(有理函数不必采用显式商形式;但是'x /(1 + x ^ -2)'并不严格等于多项式的商,但它等同于'x ^ 3 /(x ^ 2 + 1)'。)而且,涉及'x'和'x ^ 2'的项的平方根可能出现在积分的有理函数中。最后,可以整合涉及三角函数和双曲线函数的有理函数。
带有一个参数(C-u a i),此命令将在堆栈顶部计算表达式的定积分。在这种情况下,该命令将再次提示输入积分变量,然后提示输入下限和上限。
如果您直接在代数公式中使用integ函数,则还可以编写'integ(f,x,v)',它用变量v而不是x来表示结果无限定积分。带有四个参数,'integ(f(x ),x,a,b)'表示从a到b的定积分。
请注意,当前Calc积分器的实现有时会产生比所需复杂得多的结果。例如,对于相同的输入,尽管Calc求出的1 /(x + sqrt(x ^ 2 + 1))的整数倍要比答案数学数倍复杂,但两种形式在数值上是等效的。此外,尽管Calc并未在其结果中写入明确的积分常数,但任何不确定的积分都应视为已添加任意积分常数。例如,由于积分常数的不同选择,Calc的“ 1 /(1 + tan(x))”解决方案与CRC数学表中给出的解决方案相差一个常数“ pi i / 2”。
计算器会记住已完成的所有积分。如果条件发生变化而使旧的积分无效,例如,从“度”转换为“弧度”模式,则它们将被丢弃。如果您怀疑这种情况在适当的时候没有发生,请使用calc-flush-caches命令;请参阅缓存。
Calc通常会通过替换或最多进行3次嵌套的方式进行积分,然后放弃无效的方法。如果积分器花费的时间太长,则可以通过在变量IntegLimit中存储一个数字(如2)来降低此限制。 (s命令是编辑IntegLimit的便捷方法。)如果此变量没有存储值或不包含非负整数,则使用3的限制。此限制越低,Calc将无法集成原本可以处理的功能的机会就越大。提高此极限可以使计算器求解更多的积分,尽管花费的时间可能呈指数增长。您可以通过创建一个名为* Trace *的Emacs缓冲区来监视集成商的操作。如果存在这样的缓冲区,则i命令将在其中写入其操作的日志。
如果要以纯粹的符号方式操作积分,可以将积分嵌套限制设置为0,以防止除快速表查找积分之外的所有积分。然后,您可能希望定义重写规则,以按部分,各种替换等进行集成。请参阅重写规则。