Функциональная производная
D = functionalDerivative(f,y)
возвращает Функциональную Производную функционального относительно функционального y = y (x), где x представляет одну или несколько независимых переменных. Если D
= functionalDerivative(f
,y
)y
является вектором символьных функций, functionalDerivative
возвращает вектор функциональных производных относительно функций в y
, где все функции в y
должны зависеть от тех же независимых переменных.
Найдите функциональную производную функции данной относительно функционального y
.
syms y(x) f = y*sin(y); D = functionalDerivative(f,y)
D(x) = sin(y(x)) + cos(y(x))*y(x)
Найдите функциональную производную функции данной относительно функций u
и v
.
syms u(x) v(x) H = u^2*diff(v,x)+v*diff(u,x,x); D = functionalDerivative(H,[u v])
D(x) = 2*u(x)*diff(v(x), x) + diff(v(x), x, x) diff(u(x), x, x) - 2*u(x)*diff(u(x), x)
functionalDerivative
возвращает вектор символьных функций, содержащих функциональные производные H
относительно u
и v
, соответственно.
Сначала найдите функцию Лагранжа в течение пружины с массовым m
и коэффициентом упругости k
, и затем выведите уравнение Эйлера-Лагранжа. Функция Лагранжа является различием кинетической энергии T
и потенциальная энергия V
, которые являются функциями смещения x(t)
.
syms m k x(t) T = sym(1)/2*m*diff(x,t)^2; V = sym(1)/2*k*x^2; L = T - V
L(t) = (m*diff(x(t), t)^2)/2 - (k*x(t)^2)/2
Найдите уравнение Эйлера-Лагранжа путем нахождения функциональной производной L
относительно x
и приравняйте его к 0
.
eqn = functionalDerivative(L,x) == 0
eqn(t) = - m*diff(x(t), t, t) - k*x(t) == 0
diff(x(t), t, t)
является ускорением. eqn
уравнения представляет ожидаемое дифференциальное уравнение, которое описывает пружинное движение.
Решите eqn
с помощью dsolve
. Получите ожидаемую форму решения путем принятия массового m
и коэффициента упругости, k
положителен.
assume(m,'positive') assume(k,'positive') xSol = dsolve(eqn,x(0) == 0)
xSol = -C3*sin((k^(1/2)*t)/m^(1/2))
Очистите предположения для дальнейших вычислений.
assume([k m],'clear')
Задача о брахистохроне состоит в том, чтобы найти самый быстрый путь спуска под силой тяжести. Временем для тела, чтобы пройти кривая y(x)
под силой тяжести дают
где g является ускорением из-за силы тяжести.
Найдите самый быстрый путь путем минимизации f
относительно пути y
. Условие для минимума
Вычислите это условие получить дифференциальное уравнение, которое описывает Задачу о брахистохроне. Используйте simplify
, чтобы упростить решение его ожидаемой формы.
syms g y(x) assume(g,'positive') f = sqrt((1+diff(y)^2)/(2*g*y)); eqn = functionalDerivative(f,y) == 0; eqn = simplify(eqn)
eqn(x) = diff(y(x), x)^2 + 2*y(x)*diff(y(x), x, x) == -1
Это уравнение является стандартным дифференциальным уравнением для Задачи о брахистохроне.
Если функциональный u (x, y) описывает поверхность на 3-D пробеле, то площадь поверхности найдена функциональным
где u x и u y является частными производными u относительно x и y.
Найдите уравнение, которое описывает минимальную поверхность для 3-D поверхности, описанной функциональным u(x,y)
путем нахождения функциональной производной f
относительно u
.
syms u(x,y) f = sqrt(1 + diff(u,x)^2 + diff(u,y)^2); D = functionalDerivative(f,u)
D(x, y) = -(diff(u(x, y), y)^2*diff(u(x, y), x, x)... + diff(u(x, y), x)^2*diff(u(x, y), y, y)... - 2*diff(u(x, y), x)*diff(u(x, y), y)*diff(u(x, y), x, y)... + diff(u(x, y), x, x)... + diff(u(x, y), y, y))/(diff(u(x, y), x)^2... + diff(u(x, y), y)^2 + 1)^(3/2)
Решения этого уравнения D
описывают минимальные поверхности на 3-D пробеле, такие как пузыри мыла.