Computing an specific numerical Integral

2 views (last 30 days)
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

David Hill
David Hill on 8 Feb 2020
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
David Hill
David Hill on 8 Feb 2020
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)

Stijn Haenen
Stijn Haenen on 8 Feb 2020
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
Coo Boo
Coo Boo on 8 Feb 2020
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

Community Treasure Hunt

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

Start Hunting!