2012-01-15 10 views
5

Возможно ли получить производную от function_handle как другой function_handle?Получить производную от функции_handle в MATLAB

Как:

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

Я знаю, как найти производную от символической функции, но я не могу преобразовать function_handle в символической функции.

Я новичок в Matlab, и я не мог найти способа сделать это. Заранее спасибо.

+0

см. Http://stackoverflow.com/q/2307705/1132686 –

ответ

0

Вы можете получить функцию приближения:

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

Короткий ответ "Нет" MATLAB понятия не имеет, что означает значение функции function_handle в символическом смысле. Вам лучше создать его, используя syms на первом месте.

Более длинным ответом будет либо использование Символической математической панели инструментов, как предложено @A Danesh, либо приближение, как было предложено @ Andrey.

Однако, если вы всегда работаете с полиномами, то вы можете сохранить коэффициенты в виде массива и использовать следующие функции:

  • polyval оценить
  • conv умножать
  • deconv к divide
  • polyder для дифференциации
  • polyint для интеграции
0

Вы не можете аналитически определить функциональный дескриптор.

, но если вы получили символическую математическую панель инструментов, вы можете сформировать символическую функцию и создать дескриптор функции из результата.