Finding the gradient of the function

1 次查看(过去 30 天)
I need to find the gradient (differentiation) of the below function k1 wrt a11 for the values of z1 and plot with respect a11.
z1 = [0.00008 0.009]';
a11 = -2:0.002:2;
k1 = atan(((0.02 + a11)./z1)) + atan((0.03 - a11)./z1);

采纳的回答

Star Strider
Star Strider 2022-4-14
Symbolically —
syms a11 z1
sympref('AbbreviateOutput',false);
k1 = atan(((0.02 + a11)./z1)) + atan((0.03 - a11)./z1)
k1 = 
grad_k1 = gradient(k1)
grad_k1 = 
grad_k1_fcn = matlabFunction(grad_k1)
grad_k1_fcn = function_handle with value:
@(a11,z1)[1.0./(z1.*(1.0./z1.^2.*(a11+1.0./5.0e+1).^2+1.0))-1.0./(z1.*(1.0./z1.^2.*(a11-3.0./1.0e+2).^2+1.0));-(1.0./z1.^2.*(a11+1.0./5.0e+1))./(1.0./z1.^2.*(a11+1.0./5.0e+1).^2+1.0)+(1.0./z1.^2.*(a11-3.0./1.0e+2))./(1.0./z1.^2.*(a11-3.0./1.0e+2).^2+1.0)]
.
  2 个评论
Amy Topaz
Amy Topaz 2022-4-14
Could you plot and show me the plot please
Star Strider
Star Strider 2022-4-14
编辑:Star Strider 2022-4-14
Sure!
syms a11 z1
sympref('AbbreviateOutput',false);
k1 = atan(((0.02 + a11)./z1)) + atan((0.03 - a11)./z1)
k1 = 
grad_k1 = gradient(k1)
grad_k1 = 
grad_k1_fcn = matlabFunction(grad_k1)
grad_k1_fcn = function_handle with value:
@(a11,z1)[1.0./(z1.*(1.0./z1.^2.*(a11+1.0./5.0e+1).^2+1.0))-1.0./(z1.*(1.0./z1.^2.*(a11-3.0./1.0e+2).^2+1.0));-(1.0./z1.^2.*(a11+1.0./5.0e+1))./(1.0./z1.^2.*(a11+1.0./5.0e+1).^2+1.0)+(1.0./z1.^2.*(a11-3.0./1.0e+2))./(1.0./z1.^2.*(a11-3.0./1.0e+2).^2+1.0)]
figure
hfs = fsurf(grad_k1, [-1 1 -1 1]*4, 'MeshDensity',75);
hfs(1).EdgeColor = 'interp'; % Optional
hfs(2).EdgeColor = 'interp'; % Optional
EDIT — (14 Apr 2022 at 13:22)
Changed (increased) 'MeshDensity'.
.

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Surface and Mesh Plots 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by