Error during integration after differentiation
Show older comments
%%
f = @(x,y,z) x.*y.^3.*z.^3; % define the input function
syms x;
g =diff(f,x)
Q = integral3(g,0,2,0,2,0,2) % LHS of divergence theorem
Invalid argument at position 1. First input argument must be a function handle.
Any one can help above , as i differeniate a function g and then would like to integate it , but it show without function handle
Answers (2)
Dyuman Joshi
on 14 Nov 2022
Edited: Dyuman Joshi
on 14 Nov 2022
When you declare x as a symbolic variable, g will defined a symbolic variable as well. And as the error states, integral3 requires the input to be a function handle (which g is not)
f = @(x,y,z) x.*y.^3.*z.^3; % define the input function
syms x y z
g = diff(f,x)
class(g)
You can integrate like this
%y and z should be syms variable as well to use int()
val = double(int(int(int(g,x,0,2),y,0,2),z,0,2))
%verifying
h = @(x,y,z) y.^3.*z.^3;
q = integral3(h,0,2,0,2,0,2)
P.S - using matlabFunction will give a different answer, so you won't get the desired result with it and integral3()
G=matlabFunction(g)
Perhaps, this is what you asked for:
f = @(x,y,z) x.*y.^3.*z.^3; % define the input function
syms x;
g = diff(f,x);
% use eval function
h = @(x,y,z) eval(g)
Q = integral3(h,0,2,0,2,0,2) % LHS of divergence theorem
Categories
Find more on Calculus in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!