2,790 views (last 30 days)

Show older comments

bym
on 26 Feb 2012

Symbolically

syms x real

f = 1/x

int(f,1,2) % integration

ans =

log(2)

diff(f) %differentiation

ans =

-1/x^2

[edit - amplification]

syms x a b real positive

f = 1/x

f =

1/x

int(f) % without limits

ans =

log(x)

int(f,a,b) % with limits

ans =

log(b) - log(a)

fn = matlabFunction(f) % convert symbolic to anonymous function

fn =

@(x)1./x

quadgk(fn,1,2) % integrate numerically

ans =

0.6931

log(2) % previous result from symbolic integration

ans =

0.6931

(fn(2+1e-6)-fn(2))/1e-6 %numerical derivative at fn(2)

ans =

-0.2500

subs(diff(f),2) %substitute 2 into symbolic result previously obtained

ans =

-0.2500

Jan
on 27 Feb 2012

Magdalena Glinska
on 16 Nov 2020

f = @(x) sin(x);

second_derivative_f = matlabFunction(diff(sym(f)));

Hamza saeed khan
on 24 Nov 2020

syms x

f = x;

diff(f,x)

why this code give me error as;

>>Error in diff (line 1)

syms x

Walter Roberson
on 22 Dec 2020

You probably do not have the symbolic toolbox installed or licensed.

Also, you accidentally named your script diff.m which is going to conflict with calling diff() to differentiate.

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

Start Hunting!