# [Maxima] using plot2d with numerical integration function

Jaime E. Villate villate at fe.up.pt
Mon May 28 09:28:51 CDT 2007

```On Mon, 2007-05-28 at 14:52 +0200, Detlef Schmicker wrote:
> integration. This numerical function only works, if the variable on
> the x achses of my plot is defined. Now plot2d seems to call the
> function without defined variable once.
> How can I avoid this.
> () ff:(sin(x)^2-1/2)*abs(x-y)*exp(-(x-y)^2/5);

Hi,
even if you managed to make plot2d evaluate ff for the corresponding
y value on the horizontal axis before calling quad_qag, you still have
two problems that will make plot2d fail:

1) quad_qag returns a list with four values, and not just the value
that you want to plot on the vertical axis.

2) plot2d uses an adapting step-size method that works fine for
analytical functions but might lead to a very time-consuming calculation
in the case of numerical functions.

For a numerical function like the one you have, I recommend that you use
the "discrete" option of plot2d. Choose your horizontal-axis values and
make a list with them. For instance, 101 points on the interval
[y,-5,5]:
yy: makelist(i/10.0-5.0, i, 0, 100)\$
then create another list with the corresponding numerical values of the
integral:
finally, plot the points:
plot2d([discrete, yy, int])\$

It is better to start with a few points, for instance 5, to make sure
the numerical calculations do not take too much time, and you can then
increase that number.

Regards,
Jaime Villate

```