Integrate multivariate fuction with respect to one variable and pass the result to another function for integration.
2 views (last 30 days)
Show older comments
Shweta Rajoria
on 28 Sep 2017
Commented: Shweta Rajoria
on 28 Sep 2017
Hi.. I a trying to evaluate the integral in matlab but not able to getting error in matlab. code is given below:
fun= @(x, y) x.*exp(-y.*x);
c= @(y)integral(@(x) fun, 0,1);
fun1= @(y) 1/2-(1/pi).*y.*c;
c1 = integral(fun1, 0,1);
Could any one can help me regard this. Any suggestions will be appreciated. Thanks in advance.
0 Comments
Accepted Answer
Walter Roberson
on 28 Sep 2017
Notice you have:
fun= @(x, y) x.*exp(-y.*x);
which is a function of two variables. But you try
c= @(y)integral(@(x) fun, 0,1);
which does not pass any parameters to the function. You probably intended
c= @(y)integral(@(x) fun(x), 0,1);
But notice that you are not passing y, so you would need
c= @(y) integral(@(x) fun(x, y), 0,1);
Then you have
fun1= @(y) 1/2-(1/pi).*y.*c;
c1 = integral(fun1, 0,1);
this attempts to invoke c, but c is a function handle. You have to pass a value to the handle:
fun1 = @(y) 1/2-(1/pi).*y.*c(y);
c1 = integral(fun1, 0,1);
I think that should work.
More Answers (1)
KSSV
on 28 Sep 2017
You have to provide the value of c. Check the below code for c = 1 ;
fun= @(x, y) x.*exp(-y.*x);
c= @(y)integral(@(x) fun, 0,1);
% fun1= @(y) 1/2-(1/pi).*y.*c;
fun1= @(y) 1/2-(1/pi)*y;
c1 = integral(fun1, 0,1);
0 Comments
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!