MATLAB Answers

Computing an specific numerical Integral

1 view (last 30 days)
Coo Boo
Coo Boo on 8 Feb 2020
Edited: Coo Boo on 8 Feb 2020
Hi,
Can anyone help me in computing the following integral?
Thanks
integral.jpg

  2 Comments

Coo Boo
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

Coo Boo
Coo Boo on 8 Feb 2020
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 '^'?
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

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.

Products


Release

R2018b