Maxima 数值积分语法

问题描述

我正在尝试获得以下积分的数值解:

numerical integral

1

正确答案是 -0.324 + 0.382i,但如下所示,我没有得到数字答案,希望能得到有关 Maxima 语法的帮助。

Maxima input and output

2

也许与我没有得到数字输出的原因有关的是两个具体问题:

  1. 我读到 Maxima 中的 e 和 i 需要在输入中以 % 开头,但它们是否也应显示为 %e 和 %i,如在 Maxima 输出中看到的那样?
  2. 为什么在 Maxima 输出的积分末尾缺少 dy?

谢谢!

解决方法

在我看来,您的输入没问题,但是,计算积分近似值的函数名为 quad_qags。 (实际上有几个相关的函数。有关更多信息,请参阅 ?? quad_。)此外,这里的一个问题是被积函数是一个复值函数(实变量的),而 quad_qags 只能工作在实值被积函数上,所以我们必须解决它。这是我安排的方式。

myintegrand: exp(%i*(1 + %i*y))/(1 + %i*y + 1/(1 + %i*y));
result_realpart: quad_qags (realpart (myintegrand),y,6);
result_imagpart: quad_qags (imagpart (myintegrand),6);
result: result_realpart[1] + %i*result_imagpart[1];

我得到 0.3243496676292901*%i + 0.3820529930785175 作为最终结果。跟你说的有点不一样;也许减号不见了?或者有 %i 的缺失或额外因素?

快速近似

0.1 * lsum (x,x,float (rectform (makelist (ev (myintegrand,y = k/10),k,60))));

似乎表明 quad_qags 的结果是合理的。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...