I want to integrate the following expression:
A = x + x^2 + x^3;
How can one do it using a for loop? For instance, I am trying something like as follows:
for k = 1:1:3
fun1{k} = @(x)(x.^k);
end
A_sum = cellfun(@sum,fun1{k});
int = integral(A_sum, 0, 1)
But this results in an error.
I know that the above expression can be evaluated easily without using a for loop. But the actual expression that I want to evaluate contains the summation of about 200 complex terms.

 Respuesta aceptada

Star Strider
Star Strider el 16 de Mzo. de 2021

0 votos

The loop is not necessary.
Try this:
fun1 = @(x,k)(x.^k);
k = 1:3;
intv = integral(@(x)sum(fun1(x,k)), 0, 1, 'ArrayValued',1)
Check = integral(@(x) x + x.^2 + x.^3, 0, 1, 'ArrayValued',1) % Check That Vectorisation Worked
Both produce the same result:
intv =
1.083333333333333
Check =
1.083333333333333
.

Más respuestas (0)

Categorías

Más información sobre Loops and Conditional Statements en Centro de ayuda y File Exchange.

Etiquetas

Preguntada:

el 16 de Mzo. de 2021

Respondida:

el 16 de Mzo. de 2021

Community Treasure Hunt

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

Start Hunting!

Translated by