Integrate multivariate fuction with respect to one variable and pass the result to another function for integration.

8 次查看(过去 30 天)
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.

采纳的回答

Walter Roberson
Walter Roberson 2017-9-28
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.

更多回答(1 个)

KSSV
KSSV 2017-9-28
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);

类别

Help CenterFile Exchange 中查找有关 Numerical Integration and Differentiation 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by