# Integral error: A and B must be floating point

I want to evaluate a simple example of an integral

```
a = max(solve(x^3 - 2*x^2 + x ==0 , x));
fun = @(x) exp(-x.^2).*log(x).^2;
q = integral(fun,0,a)
```

and error

```
Error using integral (line 85)
A and B must be floating-point scalars.
```

Any tips? The lower limit of my integral should be a function, not a number.

source to share

Matlab command `solve`

returns symbolic result. `integral`

only accepts numeric input. Use `double`

to convert character to numeric. Since your code is written now, it `max`

should already be throwing an error due to symbolic input. The following works.

`syms x; a = max(double(solve(x^3 - 2*x^2 + x))); fun = @(x) exp(-x.^2).*log(x).^2; q = integral(fun,0,a)`

Output: `1.9331`

.

the lower bound of my integral should be a function, not a number

`integral`

is a numerical integration program; integration limits must be numeric.

Check the values โโof a with the mouse at the breakpoint or delete point; from the end of the line so that it prints **a** . Based on the error, **a is** not a scalar float. Converting a vector to one value may require another max () or double () operator.

Solve help: http://www.mathworks.com/help/symbolic/solve.html

Integral Help: http://www.mathworks.com/help/ref/integral.html

source to share