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
не дифференцируемы по комплексным числам.
Вычислите производную x 2 относительно x
:
diff(x^2, x)
Можно дифференцироваться относительно нескольких переменных в одном diff
вызвать. Например, дифференцируйте это выражение относительно x
, и затем с дифференцируют результат относительно y
:
diff(x^2*sin(y), x, y) = diff(diff(x^2*sin(y), x), y)
MuPAD внутренне преобразует, вложил diff
вызовы в один diff
вызов с несколькими аргументами:
diff(diff(f(x, y), x), y)
Используйте оператор последовательности $
как ярлык, чтобы вычислить третью производную этого выражения относительно x
:
diff(sin(x)*cos(x), x $ 3)
Можно дифференцироваться относительно индексируемого идентификатора. Например, дифференцируйте это выражение относительно x[1]
:
diff(x[1]*y + x[1]*x[r], x[1])
Можно дифференцировать polynomials
относительно полинома indeterminates или параметров в коэффициентах. Например, дифференцируйте этот полином относительно неопределенного x
:
diff(poly(sin(a)*x^3 + 2*x, [x]), x)
Теперь дифференцируйте тот же полином относительно его символьного параметра a
:
diff(poly(sin(a)*x^3 + 2*x, [x]), a)
MuPAD возвращает производную неизвестной функции как неразрешенный diff
вызов:
diff(f(x) + x, x)
MuPAD принимает, что все частные производные относительно различного indeterminates коммутируются. Поэтому система может изменить порядок indeterminates:
diff(f(x, y), x, y) = diff(f(x, y), y, x);
Можно использовать diff
дифференцировать символьные интегралы. Например, вычислите вторую производную этого неопределенного интеграла:
F1 := int(f(x), x): diff(F1, x, x)
Теперь вычислите производную определенного интеграла:
F2 := int(f(t, x), t = x..x^2): diff(F2, x)
Используйте оператор 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)
Можно расширить 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:
|
Арифметическое выражение или полином типа |
|
Indeterminates: идентификаторы или индексированные идентификаторы |
f