Adding an element during each iteration of the loop at the end of an existing array

MacLaurin equation
function result = MacLaurin(a,n)
% Program to calculate MacLaurin expression
% calculating factorial for the expression
fact = [1];
a = [1]
vec = [1:n];
% loop to calculate factorial and add the element to fact
for i = 2:n
c = prod(1:i);
% now i want to add c to array fact
fact[,c];
end
% here i want to put respective factorial values, how to write this part?
a = [a, 1./fact];
b = [1, a.^vec];
% adding respective elements to obtain final expression
result = 1 + b./a;
result = sum(result);
end

 Accepted Answer

Try this:
function Res = MacLaurin(a,n)
% Program to calculate MacLaurin expression
% calculating factorial for the expression
Res=0;
% loop to calculate factorial and sum to the previous
for i = 0:n
Res = Res + a^i/factorial(i);
end
end
Regards

3 Comments

Thanks for answering query!
I got answer.
But just out of curiosity, can it be done by using code which I mentioned in question. I am encoutering problem in appending the element after calculating factorial. I wanted to calculate factorial and add it to vector array and use it by vector array operations.
% loop to calculate factorial and add the element to fact
for i = 2:n
c = prod(1:i);
% now i want to add c to array fact
fact[,c];
end
% here i want to put respective factorial values, how to write this part?
I'm sorry but I do not understand your question.
In the following version, you create a long vector with each term in the for loop, and at the end you sum all the terms. Is it answer to your question?
function Res = MacLaurin(a,n)
% Program to calculate MacLaurin expression
% calculating factorial for the expression
Res=0;
% loop to calculate each factorial term in the Res array
for i = 0:n
Res(i+1) = a^i/factorial(i);
end
Res=sum(Res);
end
Hi Alberto,
Yes, your method is correct and answer it is giving is also correct but,
I was trying to ask that if we can do by this method -->
function result = MacLaurin(a,n)
% Program to calculate MacLaurin expression
% calculating factorial for the expression
a = cumprod(1:5);
disp(a);
b = 1./a;
vec = 1:5;
d = 0.5.^vec;
c = 1 + sum(d.*b);
result = c;
end
I did some brain storming and found out one silly mistake that was creating some error.
By the way thanks for answering my doubt and showing me another method which can give the same result.
I was particular about this method because my assignement was to solve in this way, without using loops.

Sign in to comment.

More Answers (0)

Products

Release

R2018a

Community Treasure Hunt

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

Start Hunting!