Error during integration after differentiation
显示 更早的评论
%%
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
回答(2 个)
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
类别
在 帮助中心 和 File Exchange 中查找有关 Calculus 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!