How do I integrate a combined function?

For my own script, I need to combine several functions and finally calculate the integral of the lot. To simplify it, I made a simple problem with the same error:
"Input function must return 'double' or 'single' values. Found 'function_handle'.". The actual code is much larger, has more parameters and because of the size of the function I prefer multiple seperate functions.
a = @(x) x;
b = @(x) a*cos(x);
C = integral(@(x) b,0,5);
I understand the @(x) is not the right way for using the integral-function, because it should have double or single values, as stated in the error. But in what way should I handle this problem to get the right answer out this simple example? (ans = -5,51...)

 Respuesta aceptada

Star Strider
Star Strider el 3 de Nov. de 2019
Since ‘a’ is a function of ‘x’, call it as a function.
Try this:
a = @(x) x;
b = @(x) a(x).*cos(x);
C = integral(b,0,5)
returning:
C =
-5.51095918785247
Also, since ‘b’ already exists as a function, the extra function handle is not necessary (unless it is a function of several variables, and only integrating with respect to one). In that event, it is still necessary to refer to it as a function:
C = integral(@(x)b(x),0,5)

2 comentarios

Jasper Kregting
Jasper Kregting el 3 de Nov. de 2019
I tried this solution within my own script and it works! Thanks a lot.
Star Strider
Star Strider el 3 de Nov. de 2019
As always, my pleasure!

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Mathematics en Centro de ayuda y File Exchange.

Preguntada:

el 3 de Nov. de 2019

Comentada:

el 3 de Nov. de 2019

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by