diff

Дифференцируйте символьное выражение или функцию

Описание

пример

Df = diff(f) дифференцирует f относительно символьной переменной, определенной symvar(f,1).

пример

Df = diff(f,n) вычисляет nпроизводная th f относительно символьной переменной, определенной symvar.

пример

Df = diff(f,var) дифференцирует f относительно параметра дифференцирования varvar может быть символьная переменная, такая как x, символьная функция, такая как f(x), или производная функция, такая как diff(f(t),t).

пример

Df = diff(f,var,n) вычисляет nпроизводная th f относительно var.

пример

Df = diff(f,var1,...,varN) дифференцирует f относительно параметров var1,...,varN.

Примеры

свернуть все

Найдите производную функции sin(x^2).

syms f(x)
f(x) = sin(x^2);
Df = diff(f,x)
Df(x) = 2xcos(x2)2*x*cos (x^2)

Найдите значение производной в x = 2Конвертируйте полученное значение в числовое двойной точности.

Df2 = Df(2)
Df2 = 4cos(4)sym (4) *cos (sym (4))
double(Df2)
ans = -2.6146

Найдите первую производную этого выражения.

syms x t
Df = diff(sin(x*t^2))
Df = t2cos(t2x)t^2*cos(t^2*x)

Поскольку вы не задавали переменную дифференцирования, diff использует переменную по умолчанию, заданную symvar. Для этого выражения переменной по умолчанию является x.

var = symvar(sin(x*t^2),1)
var = xx

Теперь найдите производную этого выражения относительно переменной t.

Df = diff(sin(x*t^2),t)
Df = 2txcos(t2x)2*t*x*cos (t^2*x)

Найдите 4-е, 5-е, и 6-е производные t6.

syms t
D4 = diff(t^6,4)
D4 = 360t2360*t^2
D5 = diff(t^6,5)
D5 = 720t720*t
D6 = diff(t^6,6)
D6 = 720sym (720)

Найдите вторую производную этого выражения относительно переменной y.

syms x y
Df = diff(x*cos(x*y), y, 2)
Df = -x3cos(xy)- x^3*cos(x*y)

Вычислите вторую производную выражения x*y. Если вы не задаете переменную дифференцирования, diff использует переменную, определенную symvar. Для этого выражения, symvar(x*y,1) возвращает x. Поэтому diff вычисляет вторую производную x*y относительно x.

syms x y
Df = diff(x*y,2)
Df = 0sym (0)

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

Df = diff(diff(x*y))
Df = 1sym (1)

В первом вызове, diff дифференцирует x*y относительно x, и возвращает y. Во втором вызове, diff дифференцирует y относительно y, и возвращает 1.

Таким образом, diff(x*y,2) эквивалентно diff(x*y,x,x), и diff(diff(x*y)) эквивалентно diff(x*y,x,y).

Дифференцируйте это выражение относительно переменных x и y.

syms x y
Df = diff(x*sin(x*y),x,y)
Df = 2xcos(xy)-x2ysin(xy)2*x*cos (x*y) - x^2*y*sin(x*y)

Также можно вычислить смешанные производные высшего порядка путем обеспечения всех переменных дифференцирования.

syms x y
Df = diff(x*sin(x*y),x,x,x,y)
Df = x2y3sin(xy)-6xy2cos(xy)-6ysin(xy)x^2*y^3*sin (x*y) - 6*x*y^2*cos (x*y) - 6*y*sin (x*y)

Найдите производную функции y=f(x)2dfdx относительно f(x)

syms f(x) y
y = f(x)^2*diff(f(x),x);
Dy = diff(y,f(x))
Dy = 

2f(x)x f(x)2*f (x) *diff (f (x), x)

Найдите 2-ю производную функции y=f(x)2dfdx относительно f(x)

Dy2 = diff(y,f(x),2)
Dy2 = 

2x f(x)2*diff (f (x), x)

Найдите смешанную производную функции y=f(x)2dfdx относительно f(x) и dfdx.

Dy3 = diff(y,f(x),diff(f(x)))
Dy3 = 2f(x)2*f (x)

Найдите уравнение Euler–Lagrange, которое описывает движение массово-пружинной системы. Задайте кинетическую и потенциальную энергию системы.

syms x(t) m k
T = m/2*diff(x(t),t)^2;
V = k/2*x(t)^2;

Задайте функцию Лагранжа.

L = T - V
L = 

mt x(t)22-kx(t)22(m* (diff (x (t), t)) ^2)/2 - (k*x (t) ^2)/2

Уравнением Euler–Lagrange дают

0=ddtL(t,x,x˙)x˙-L(t,x,x˙)x

Оцените термин L/x˙.

D1 = diff(L,diff(x(t),t))
D1 = 

mt x(t)m*diff (x (t), t)

Оцените второй срок L/x.

D2 = diff(L,x)
D2(t) = -kx(t)-k*x(t)

Найдите уравнение Euler–Lagrange движения массово-пружинной системы.

diff(D1,t) - D2 == 0
ans(t) = 

m2t2 x(t)+kx(t)=0m*diff (x (t), t, 2) + k*x (t) == 0

Входные параметры

свернуть все

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

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

Если вы задаете дифференцирование относительно символьного функционального var = f(x) или производный функциональный var = diff(f(x),x), затем первый аргумент f не должен содержать:

  • интеграл преобразовывает, такие как fourier, ifourier, laplace, ilaplace, htrans, ihtrans, ztrans, и iztrans

  • неоцененные символьные выражения, которые включают limit или int

  • символьные функции выполнены в определенные моменты, такие как f(2) или g(0)

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

Порядок дифференцирования в виде неотрицательного целого числа.

Советы

  • Когда вычисление смешало производные высшего порядка больше чем с одной переменной, не используйте n задавать порядок дифференцирования. Вместо этого задайте все переменные дифференцирования явным образом.

  • Улучшать производительность, diff принимает, что все смешанные производные коммутируются. Например,

    xyf(x,y)=yxf(x,y)

    Это предположение достаточно для большинства технических и научных проблем.

  • Если вы дифференцируете многомерное выражение или функциональный f не задавая переменную дифференцирования, затем вложенный вызов diff и diff(f,n) может возвратить различные результаты. Это вызвано тем, что во вложенном вызове, каждый шаг дифференцирования определяет и использует свою собственную переменную дифференцирования. В вызовах как diff(f,n), переменная дифференцирования определяется однажды symvar(f,1) и используемый для всех шагов дифференцирования.

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

Представлено до R2006a