diff

Дифференцируйте выражение или полином

Блокноты MuPAD® будут демонтированы в будущем релизе. Используйте live скрипты MATLAB® вместо этого.

Live скрипты MATLAB поддерживают большую часть функциональности MuPAD, хотя существуют некоторые различия. Для получения дополнительной информации смотрите, Преобразуют Notebook MuPAD в Live скрипты MATLAB.

Синтаксис

diff(f)
diff(f, x)
diff(f, x1, x2, …)

Описание

diff(f, x) вычисляет производную функционального f относительно переменной x.

diff(f, x) вычисляет частную производную арифметического выражения (или полином) f относительно неопределенного x.

diff(f) вычисляет 0th производную f. Начиная с 0th производной f f самостоятельно, diff(f) возвращает его оцененный аргумент.

diff(f, x1, x2, ...) эквивалентно diff(...diff(diff(f, x1), x2)...). В обоих случаях MuPAD® сначала дифференцирует f относительно x1, затем дифференцирует результат относительно x2, и так далее. Результатом является частная производная. Смотрите Пример 2.

Если вы используете, вложил diff вызовы, система внутренне преобразует их в один diff вызовите с несколькими аргументами. Смотрите Пример 3.

При вычислении вторых и производных высшего порядка используйте оператор последовательности в качестве ярлыка. Если n неотрицательное целое число, diff(f, x $ n) возвращает n th производная f относительно x. Смотрите пример 4.

indeterminates x, x1, x2, ... должны быть идентификаторы доменного типа DOM_IDENT или индексированные идентификаторы формы x[n] где x идентификатор и n целое число. Если кто-либо неопределенный приезжает в какую-либо другую форму, MuPAD возвращает неразрешенный diff вызвать. Смотрите Пример 5.

Если f арифметическое выражение, diff возвращает арифметическое выражение. Если f полином, diff возвращает полином. Смотрите Пример 6.

Если система не может вычислить производную, она возвращает неразрешенный diff вызвать. Смотрите Пример 7.

MuPAD принимает, что частные производные относительно различного indeterminates коммутируются. Вызовы функции diff(f, x1, x2) и diff(f, x2, x1) приведите к тому же результату diff(f, y1, y2). Здесь [y1, y2] = sort([x1, x2]). Смотрите пример 8.

MuPAD обеспечивает две функции, diff и D, для вычислительных производных. Используйте дифференциальный оператор D вычислить производные функций. Используйте diff функция, чтобы вычислить производные арифметических выражений. Математически, D(f)(x) совпадает с diff(f(x), x) и D([1, 2], f)(x, y) совпадает с diff(f(x, y), x, y). Можно преобразовать символьные вызовы D к вызовам diff и наоборот при помощи rewrite. Смотрите пример 10.

Можно расширить функциональность diff для ваших собственных специальных математических функций через перегрузку. Этот подход работает путем превращения соответствующей функции в функциональную среду и реализации правила дифференцирования для функции как "diff" slot из функциональной среды.

Если подвыражение формы g(..) происходит в f, и g функциональная среда, затем diff(f, x) попытки вызвать "diff" паз g определить производную g(..).

Системные вызовы "diff" паз с аргументами g(..), x.

Если g не имеет "diff" паз, затем системная функция diff возвращает символьное выражение diff(g(..), x) для производной подвыражения.

Система всегда вызывает "diff" паз точно с двумя аргументами. Если вы вызываете diff функция с большим количеством indeterminates (например, если вы вычисляете производную высшего порядка), затем MuPAD вызывает "diff" вставляйте несколько раз. Каждый вызов вычисляет производную относительно одного неопределенного. Система кэширует результаты вызовов "diff" пазы в diff для того, чтобы предотвратить избыточные вызовы функции. Смотрите Пример 11.

Точно так же, если элемент d из области библиотеки T происходит как подвыражение f, затем diff(f, x) вызывает паз T::diff(d, x) вычислить производную d.

Если доменный T не имеет "diff" паз, затем diff рассматривает этот объект как константу и возвращается 0 для соответствующего подвыражения.

Если вы дифференцируете выражение или функцию, содержащую abs или sign, гарантируйте, что аргументы являются действительными значениями. Для сложных аргументов abs и sign, diff функция официально вычисляет производную, но этот результат не обычно допустим потому что abs и sign не дифференцируемы по комплексным числам.

Примеры

Пример 1

Вычислите производную x 2 относительно x:

diff(x^2, x)

Пример 2

Можно дифференцироваться относительно нескольких переменных в одном diff вызвать. Например, дифференцируйте это выражение относительно x, и затем с дифференцируют результат относительно y:

diff(x^2*sin(y), x, y) = diff(diff(x^2*sin(y), x), y)

Пример 3

MuPAD внутренне преобразует, вложил diff вызовы в один diff вызов с несколькими аргументами:

diff(diff(f(x, y), x), y)

Пример 4

Используйте оператор последовательности $ как ярлык, чтобы вычислить третью производную этого выражения относительно x:

diff(sin(x)*cos(x), x $ 3)

Пример 5

Можно дифференцироваться относительно индексируемого идентификатора. Например, дифференцируйте это выражение относительно x[1]:

diff(x[1]*y + x[1]*x[r], x[1])

Пример 6

Можно дифференцировать polynomials относительно полинома indeterminates или параметров в коэффициентах. Например, дифференцируйте этот полином относительно неопределенного x:

diff(poly(sin(a)*x^3 + 2*x, [x]), x)

Теперь дифференцируйте тот же полином относительно его символьного параметра a:

diff(poly(sin(a)*x^3 + 2*x, [x]), a)

Пример 7

MuPAD возвращает производную неизвестной функции как неразрешенный diff вызов:

diff(f(x) + x, x)

Пример 8

MuPAD принимает, что все частные производные относительно различного indeterminates коммутируются. Поэтому система может изменить порядок indeterminates:

diff(f(x, y), x, y) = diff(f(x, y), y, x);

Пример 9

Можно использовать diff дифференцировать символьные интегралы. Например, вычислите вторую производную этого неопределенного интеграла:

F1 := int(f(x), x):
diff(F1, x, x)

Теперь вычислите производную определенного интеграла:

F2 := int(f(t, x), t = x..x^2):
diff(F2, x)

Пример 10

Используйте оператор D вычислить производные функций. Используйте diff функция, чтобы вычислить производные выражений:

D(sin), diff(sin(x), x)

Применение D к выражениям и diff к функциям не имеет никакого смысла:

D(sin(x)), diff(sin, x)

Используйте rewrite функционируйте, чтобы переписать выражение, заменяющее оператор D с diff функция:

rewrite(D(f)(x), diff), rewrite(D(D(f))(x), diff)

Кроме того, используйте rewrite переписать выражение, заменяющее diff с D:

diff(f(x, x), x) = rewrite(diff(f(x, x), x), D)

Пример 11

Можно расширить diff к вашим собственным специальным функциям. Для этого встройте свою функцию, f, в функциональную среду, g, и реализуйте поведение diff для этой функции как "diff" паз функциональной среды.

Если подвыражение формы g(..) происходит в выражении f, затем diff(f, x) вызовы g::diff(g(..), x) определить производную подвыражения g(..).

Этот пример демонстрирует расширение diff к показательной функции. Начиная с функциональной среды exp уже имеет "diff" паз, вызовите новую функциональную среду Exp постараться не перезаписывать существующую системную функцию exp.

Здесь, "diff" паз реализует цепочечное правило для показательной функции. Производная является продуктом исходного вызова функции и производной аргумента:

Exp := funcenv(Exp):
Exp::diff := proc(f, x)
begin
   // f = Exp(something), i.e., something = op(f, 1)
   f*diff(op(f, 1), x):
end_proc:
diff(Exp(x^2), x)

Отчет создается prog::trace показывает один вызов Exp::diff с двумя аргументами. Вместо того, чтобы вызвать Exp::diff дважды, система читает необходимый результат второго вызова из внутреннего кэша для промежуточных результатов в diff:

prog::trace(Exp::diff):
diff(Exp(x^2), x, x)
enter Exp::diff(Exp(x^2), x)
computed 2*x*Exp(x^2)

prog::untrace(Exp::diff):  delete f, Exp:

Возвращаемые значения

арифметическое выражение или полином

Перегруженный

f