5 views (last 30 days)

Show older comments

I want to do integration of two variable function w.r.t one variable.

A = @(x, y)cos(x)+sin(y)

B = @(x, y)(A-integral(@(x)A, 0 , 2*pi))

How to see the output here??

Walter Roberson
on 20 Sep 2021

A = @(x, y) cos(x)+sin(y)

B = @(x, y) A(x,y)-integral(@(X)A(X,y), 0 , 2*pi, 'ArrayValued', true)

fsurf(B, [-pi pi -pi pi])

Sargondjani
on 20 Sep 2021

Edited: Sargondjani
on 20 Sep 2021

You created only function handles. So f(x,y) = .....

To compute the numerical value you need to assign numerical values to x and y. So for example:

y=0;

x=1;

B_value = B(x,y);

Steven Lord
on 20 Sep 2021

A = @(x, y)cos(x)+sin(y);

B = @(x, y)(A-integral(@(x)A, 0 , 2*pi));

Your expression for B won't work for two reasons. The integral function requires the function handle you pass into it as the first input to return a numeric array, but yours returns a function handle. Even if that worked, you would then try to subtract that result from a function handle and arithmetic on function handles is not supported.

From your description it sounds like you want B to be a function of one variable, but you need to pass two inputs into your A function handle. Assuming you want to fix the value of x and make B just a function of y, evaluate A inside your expression for B:

A = @(x, y)cos(x)+sin(y);

fixedX = 0.5;

B = @(y) A(fixedX, y)-integral(@(z)A(fixedX, z), 0 , 2*pi)

B(0.25)

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

Start Hunting!