2012-01-15 14 views
5

¿Es posible obtener la derivada de un function_handle como otro function_handle?Obtener la derivada de un function_handle en MATLAB

igual:

fun1 = @(x) x^2; 
    % do that ... 
    disp(fun2); 
    @(x) x*2 

sé cómo encontrar la derivada de una función simbólica, pero no puedo convertir un function_handle a una función simbólica.

Soy nuevo en matlab y no pude encontrar ninguna manera de hacerlo. Gracias por adelantado.

+0

ver http://stackoverflow.com/q/2307705/1132686 –

Respuesta

0

Usted puede obtener una función de aproximación:

delta = 0.0001; 
d = @(x)((fun1(x+delta) - fun1(x))./delta) 
1

La respuesta corta es "no" MATLAB no tiene idea de lo que significa el contenido de la function_handle en un sentido simbólico. Es mejor crearlo usando syms en primer lugar.

Una respuesta más larga sería usar Symbolic Math Toolbox, como lo sugiere @A Danesh, o una aproximación, como lo sugiere @Andrey.

Sin embargo, si siempre se trabaja con polinomios, a continuación, puede almacenar los coeficientes como una matriz y utilizar las siguientes funciones:

  • polyval para evaluar
  • conv para multiplicar
  • deconv a dividir
  • polyder para diferenciar
  • polyint para integrar
0

no se puede analizar desde un controlador de función.

pero si tiene la caja de herramientas matemática simbólica, puede derivar la función simbólica y crear un identificador de función a partir del resultado.

Cuestiones relacionadas