Calculate derivative of erfcx(x) function
8 views (last 30 days)
Show older comments
I want to know how i can calculater the derivative of an erfcx(x) function with the symbolic math toolbox. The following is what i tried so far:
>> syms x real
>> y = erfcx(x)
Undefined function 'erfcx' for input arguments of type 'sym'.
I also tried doing this with an anonymous function:
>> testing = @(x) erfcx(x)
testing =
function_handle with value:
@(x)erfcx(x)
but then i don't know how to use the diff() function, as i don't know what variable i should give: diff(testing(x)) <- instead of this x.
6 Comments
Bjorn Gustavsson
on 8 Feb 2019
Why cant you do that and plug it into the symbolic differentiation? (It took me ~5 minutes to get an analytical derivative...)
Accepted Answer
Torsten
on 8 Feb 2019
Edited: Torsten
on 8 Feb 2019
Try
x = 0:0.1:5;
analytical_derivative = -2/sqrt(pi) + 2.*x.*erfcx(x);
numerical_derivative = (erfcx(x+1.0e-6)-erfcx(x))*1e6;
plot(x,analytical_derivative,x,numerical_derivative)
So my guess is that the derivative of erfcx is erfcx'(x) = -2/sqrt(pi) + 2*x*erfcx(x) (and you can easily deduce this result by differentiating exp(x^2)*erfcx(x) using the product rule).
0 Comments
More Answers (1)
Bjorn Gustavsson
on 8 Feb 2019
Just plug in the definitions of the erfcx function into your symbolic calculations? Or do the differentiation by hand?
HTH
5 Comments
Bjorn Gustavsson
on 8 Feb 2019
If I got the definitions right you should just simply have expressed erfcx in terms of exp(x^2) and erf:
syms x
diff(exp(x^2)*(1-erf(x)),x)
ans =
- 2/pi^(1/2) - 2*x*exp(x^2)*(erf(x) - 1)
HTH
See Also
Categories
Find more on Symbolic Math Toolbox 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!