Получить производную дескриптора функции в MATLAB

Можно ли получить производную дескриптора function_handle как другой дескриптор function_handle?

Подобно:

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

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

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

3 ответа

syms x 
f = @(x) x^2 + 1; 
diff(f,x)

Ответ:

2*x + 1

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

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

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

  • polyval оценить
  • conv чтобы умножить
  • deconv делить
  • polyder различать
  • polyint интегрировать

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

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

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

 delta = 0.0001;
 d = @(x)( (fun1(x+delta) - fun1(x))./delta)
Другие вопросы по тегам