Summing integrands in a loop

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.

 Accepted Answer

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
.

More Answers (0)

Categories

Find more on Loops and Conditional Statements in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!