## Differentiate an inline function

on 23 Nov 2012

### Matt Fig (view profile)

Hi!

I have an assignment in Matlab and I need to find a function's 8th and 9th derivate. This function is an inline function, as it is an input from the user.

I have been trying to use the function diff, but it tells me: «Function 'diff' is not supported for class 'inline'.»

Any ideas?

Walter Roberson

### Walter Roberson (view profile)

on 23 Nov 2012

Is it required that you use an inline function? Could you use a symbolic function instead? Considering that you are using the symbolic diff() routine?

Jose

### Jose (view profile)

on 23 Nov 2012

I wish, but the function is an input from the user, and I don't know any way to convert it to a symbolic one.

But if there is an alternative to the diff function, it may work.

Walter Roberson

### Walter Roberson (view profile)

on 23 Nov 2012
```syms x
f = sym(string_from_input);
diff(f,x,x,x,x,x,x,x,x)
```

## Products

No products are associated with this question.

### Matt Fig (view profile)

on 23 Nov 2012
Edited by Matt Fig

### Matt Fig (view profile)

on 23 Nov 2012

```f = inline('x^8');  % Our inline function.
D8 = diff(sym(f),8) % Find the 8th derivative
D8 == prod(1:8)     % Check.  ans = 1 as expected.
```

Jose

### Jose (view profile)

on 23 Nov 2012

Thanks you so much!

on 23 Nov 2012
Edited by Matt J

### Matt J (view profile)

on 23 Nov 2012

You cannot do symbolic differentiation on inline functions. If you don't have the Symbolic Toolbox, you will have to either consider a specific family of functions and pre-analyze their derivatives. Or, if you want to do numeric differentiation,

```t=linspace(0,T,N);
f = vectorize(inline(string_from_input));
result = diff(f(t),8)./( t(2)-t(1) )^8;
```

#### Join the 15-year community celebration.

Play games and win prizes!

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi