Hans
Hans

Reputation: 383

Plot symbolic derivative of a built-in MATLAB function

I am trying to compute the second derivative of the airy function. Only its first derivative is a predefined function in MATLAB (airy(1,x))

Is there a way to compute its symbolic derivative? without resorting to finite differences, etc

I tried this

syms x
aiprime = @(x) airy(1,x);
aisecond = diff(airy(1,x));

plot(-10:0.01:10,aiprime,aisecond)

But didn't work.

Error using plot
Invalid second data argument

Upvotes: 0

Views: 139

Answers (1)

m7913d
m7913d

Reputation: 11064

The problem is your plot statement. You specify the desired x-data, but did not evaluate your function in these points:

syms x
aiprime(x) = airy(1,x); % I would define it as a symbolic function instead of a function handle, although it works too.
aisecond(x) = diff(airy(1,x)); % Define as a function, to be able to evaluate the function easily

xs = -10:0.01:10; % define your desired x points
plot(xs,aiprime(xs),xs, aisecond(xs)) % evaluate your functions and plot data

enter image description here

Upvotes: 0

Related Questions