how to differentiate this function
1 次查看(过去 30 天)
显示 更早的评论
ph=t-z+2*tan(z/zr)-(z/zr)*(r/r0*f)^2;
a=r*exp(-r^2/r0^2*f^2)*cos(ph);
how to differentiate with r in matlab
2 个评论
Dyuman Joshi
2022-5-7
Have you tried anything yet? If yes, show us.
Otherwise provide more info, Which are independent variables? Which are the dependent ones?
Sam Chak
2022-5-8
@shiv gaur, can you share the link, where a MATLAB function can be used to differentiate symbolic expression or function? This helps me to find a relevant example and help you to solve the mathematical problem.
回答(2 个)
KSSV
2022-5-8
syms ph(t,z,zr,r,r0,f) a(r,f,r0,ph)
ph = t-z+2*tan(z/zr)-(z/zr)*(r/r0*f)^2;
a = r*exp(-r^2/r0^2*f^2)*cos(ph);
dphdr = diff(ph,r)
dadr = diff(a,r)
0 个评论
Riccardo Scorretti
2022-5-8
Assuming that you want to differentiate ph and a with respect of r, you have several options (and the best option depends on what you want to do: we cannot know in your place):
- use your own brain: compute the derivative and program it by hand,
- let MATLAB to do it at your place, if you have the Symbolic Computational Toolbox,
- derive numerically (this is not elegant and somehow dangerous).
As for the option 2:
syms r z zr r0 f t
ph = t-z+2*tan(z/zr)-(z/zr)*(r/r0*f)^2;
a = r*exp(-r^2/r0^2*f^2)*cos(ph);
ph_r = diff(ph, r)
a_r = diff(a, r)
Then, you can even ask to Matlab to program the numerical computation in your place:
matlabFunction([a_r phi_r], 'File', 'my_function.m');
As for the option 3, basically you can use finite differences:
fun_ph = @(r) t-z+2*tan(z/zr)-(z/zr)*(r/r0*f)^2;
fun_a = @(r) r*exp(-r^2/r0^2*f^2)*cos(ph);
dr = 1.0E-6; % *** this may be tricky to choice ***
fun_ph_r = @(r) (fun_ph(r+dr) - fun_ph(r)) / dr;
fun_a_r = @(r) (fun_a(r+dr) - fun_a(r) ) / dr;
This is the simplest example (= first order, forward finite differences). You can enjoy a more detailed analysis, and high order formulas, here: ChE 205 — Formulas for Numerical Differentiation
0 个评论
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!