Дифференцируйте символьное выражение или функцию
diff(F)
diff(F,var)
diff(F,n)
diff(F,var,n)
diff(F,var1,...,varN)
diff(
дифференцирует F
,var1,...,varN
)F
относительно переменных var1,...,varN
.
Найдите производную функционального sin(x^2)
.
syms f(x) f(x) = sin(x^2); df = diff(f,x)
df(x) = 2*x*cos(x^2)
Найдите значение производной в x = 2
. Преобразуйте значение, чтобы удвоиться.
df2 = df(2)
df2 = 4*cos(4)
double(df2)
ans = -2.6146
Найдите первую производную этого выражения:
syms x t diff(sin(x*t^2))
ans = t^2*cos(t^2*x)
Поскольку вы не задавали переменную дифференцирования, diff
использует переменную по умолчанию, заданную symvar
. Для этого выражения переменной по умолчанию является x
:
symvar(sin(x*t^2),1)
ans = x
Теперь, найдите производную этого выражения относительно переменной t
:
diff(sin(x*t^2),t)
ans = 2*t*x*cos(t^2*x)
Найдите 4-е, 5-е, и 6-е производные этого выражения:
syms t d4 = diff(t^6,4) d5 = diff(t^6,5) d6 = diff(t^6,6)
d4 = 360*t^2 d5 = 720*t d6 = 720
Найдите вторую производную этого выражения относительно переменной y
:
syms x y diff(x*cos(x*y), y, 2)
ans = -x^3*cos(x*y)
Вычислите вторую производную выражения x*y
. Если вы не задаете переменную дифференцирования, diff
использует переменную, определенную symvar
. Для этого выражения symvar(x*y,1)
возвращает x
. Поэтому diff
вычисляет вторую производную x*y
относительно x
.
syms x y diff(x*y, 2)
ans = 0
Если вы используете, вложил вызовы diff
, и не задавайте переменную дифференцирования, diff
определяет переменную дифференцирования для каждого вызова. Например, дифференцируйте выражение x*y
путем вызывания функции diff
дважды:
diff(diff(x*y))
ans = 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 diff(x*sin(x*y), x, y)
ans = 2*x*cos(x*y) - x^2*y*sin(x*y)
Также можно вычислить смешанные производные высшего порядка путем обеспечения всех переменных дифференцирования:
syms x y diff(x*sin(x*y), x, x, x, y)
ans = x^2*y^3*sin(x*y) - 6*x*y^2*cos(x*y) - 6*y*sin(x*y)
Когда вычисление смешало производные высшего порядка, не используйте n
, чтобы задать порядок дифференцирования. Вместо этого задайте все переменные дифференцирования явным образом.
Чтобы улучшать производительность, diff
принимает, что все смешанные производные коммутируются. Например,
Это предположение достаточно для большинства технических и научных проблем.
Если вы дифференцируете многомерное выражение или функциональный F
, не задавая переменную дифференцирования, то вложенный вызов diff
и diff(F,n)
может возвратить различные результаты. Это вызвано тем, что во вложенном вызове, каждый шаг дифференцирования определяет и использует свою собственную переменную дифференцирования. В вызовах как diff(F,n)
переменная дифференцирования определяется однажды symvar(F,1)
и используется для всех шагов дифференцирования.
Если вы дифференцируете выражение или функцию, содержащую abs
или sign
, гарантируете, что аргументы являются действительными значениями. Для сложных аргументов abs
и sign
, функция diff
официально вычисляет производную, но этот результат не обычно допустим, потому что abs
и sign
не дифференцируемы по комплексным числам.
curl
| divergence
| functionalDerivative
| gradient
| hessian
| int
| jacobian
| laplacian
| symvar