Computing an specific numerical Integral

Hi,
Can anyone help me in computing the following integral?
Thanks
integral.jpg

2 Comments

Coo Boo
Coo Boo on 8 Feb 2020
Edited: Coo Boo on 8 Feb 2020
Is it really so simple that it seems to be a homework? No, it's not really a homework. It is actually the first step in a research work. It is a fitness function that I have to optimize it through heuristic methods considering weights (wi) as the optimization variables.

Sign in to comment.

 Accepted Answer

You could just expand the sumations since there are only 5.
fun=@(x)(.5*(1-x).^4+6*x.*(1-x).^3+4.5*x.^2.*(1-x).^2+4*x.^3.*(1-x)+.5*x.^4).*log(.5*(1-x).^4+6*x.*(1-x).^3+4.5*x.^2.*(1-x).^2+4*x.^3.*(1-x)+.5*x.^4);
y=integral(fun,0,1);

3 Comments

Thanks so much.
1. How can I use a 'for' loop or vectorized summation for any arbitrary n, e.g., n=100?
2. Why did you use '.*' and '.^' instead of '*' and '^'?
You could play with somethng like this.
w=[.1 .3 .3 .2 .1];%size w will have to increase with n
fun=@(x,n)sum(reshape(cell2mat(arrayfun(@(y)w(y)*factorial(n)/factorial(y-1)/factorial(n-y).*x.^(y-1).*(1-x).^(n-y),1:n,'UniformOutput',false)),length(x),[]),2);
z=integral(@(x)fun(x,5).*log(fun(x,5)),0,1,'ArrayValued',true);%n=5
Coo Boo
Coo Boo on 8 Feb 2020
Edited: Coo Boo on 8 Feb 2020
Thanks for your help.

Sign in to comment.

More Answers (1)

I think you should use a Riemann integral to estimate the answer of this integral.
Or maybe wolfram Mathematica can solve it for you.

1 Comment

Thanks. But I need it in Matlab. Do you have any idea for solving it in Matlab with a 'for' loop or vectorized summation for any arbitrary n, e.g., n=100?

Sign in to comment.

Categories

Find more on Programming in Help Center and File Exchange

Products

Release

R2018b

Asked:

on 8 Feb 2020

Edited:

on 8 Feb 2020

Community Treasure Hunt

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

Start Hunting!