exponenta event banner

разность

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

Описание

пример

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

пример

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

пример

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

пример

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

пример

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

пример

Df = diff(f,mvar) дифференцируется f относительно переменной символьной матрицы mvar типа symmatrix. (с R2021a года)

Примеры

свернуть все

Найти производную функции 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)

Найдите уравнение Эйлера - Лагранжа, описывающее движение системы масса-пружина. Определите кинетическую и потенциальную энергию системы.

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

Уравнение Эйлера - Лагранжа задаётся уравнением

0=ddt∂L (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)

Найдите уравнение Эйлера-Лагранжа движения системы масса-пружина.

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

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

С R2021a г.

Для вычисления производных относительно векторов можно использовать символьные матричные переменные. Например, найдите производные ∂α/∂x и ∂α/∂y для выражения α = yTAx, где y - вектор 3 на 1, A - матрица 3 на 4, а x - вектор 4 на 1.

Создание трех символьных переменных матрицы x, y, и A, соответствующих размеров и использовать их для определения alpha.

syms x [4 1] matrix
syms y [3 1] matrix
syms A [3 4] matrix
alpha = y.'*A*x
alpha = yTAxtranspose(symmatrix('y', [3 1]))*symmatrix('A', [3 4])*symmatrix('x', [4 1])

Найти производную от alpha относительно векторов x и y.

Dx = diff(alpha,x)
Dx = yTAtranspose(symmatrix('y', [3 1]))*symmatrix('A', [3 4])
Dy = diff(alpha,y)
Dy = xTATtranspose(symmatrix('x', [4 1]))*transpose(symmatrix('A', [3 4]))

С R2021a г.

Для вычисления дифференциала относительно матрицы можно использовать символьные переменные матрицы. Например, найдите дифференциальную ∂Y/∂A для выражения Y = XTAX, где X - вектор 3 на 1, а A - матрица 3 на 3. Здесь Y - скаляр, который является функцией вектора X и матрицы A.

Создайте две символьные матричные переменные для представления X и A. Определить Y.

syms X [3 1] matrix
syms A [3 3] matrix
Y = X.'*A*X
Y = XTAXtranspose(symmatrix('X', [3 1]))*symmatrix('A', [3 3])*symmatrix('X', [3 1])

Найти дифференциал Y относительно матрицы A.

D = diff(Y,A)
D = XTXkron(transpose(symmatrix('X', [3 1])), symmatrix('X', [3 1]))

В результате получается тензорный продукт Кронекера между XT и X, который является матрицей 3 на 3.

size(D)
ans = 1×2

     3     3

Входные аргументы

свернуть все

Выражение или функция для дифференциации, указанное как

  • символическое выражение

  • символическая функция

  • вектор или матрица символьных выражений или функций (символьный вектор или символьная матрица)

  • символьная переменная матрицы (с R2021a года)

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

Типы данных: single | double | sym | symfun | symmatrix

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

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

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

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

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

Типы данных: single | double | sym | symfun

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

Типы данных: single | double | sym | symfun

С R2021a г.

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

diff в настоящее время функция не поддерживает производные тензора. Если производная является тензором, или производная является матрицей в терминах тензоров, то diff ошибка функции. Если f - дифференцируемая скалярная функция, mvar может быть скаляром, вектором или матрицей. Дополнительные примеры см. в разделах Дифференцировать относительно векторов и Дифференцировать относительно матрицы.

Типы данных: symmatrix

Порядок дифференциации, заданный как неотрицательное целое число.

Совет

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

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

    ∂∂x∂∂yf (x, y) =∂∂y∂∂xf (x, y)

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

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

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

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