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