Производная по функциям (вариационная производная)
возвращает производную функции
функционального относительно функции y = y (x), где x представляет одну или несколько независимых переменных. Функциональная производная связывает изменение функциональной S [y] с небольшим изменением y (x). Функциональная производная также известна как вариационная производная.G
= functionalDerivative(f
,y
)
Если y
- вектор символьных функций, functionalDerivative
возвращает вектор функциональных производных относительно функций в y
, где все функции в y
должны зависеть от тех же независимых переменных.
Найдите производную функции относительно функции , где интегранд .
Объявить y(x)
как символическая функция и задайте f
как интегранд . Использование f
и y
как параметры functionalDerivative
.
syms y(x)
f = y*sin(y);
G = functionalDerivative(f,y)
G(x) =
Найдите производную функции относительно функций и , где интегранд .
Объявить u(x)
и v(x)
как символические функции и задайте f
как интегранд .
syms u(x) v(x) f = u^2*diff(v,x) + v*diff(u,x,x);
Задайте вектор символьных функций [u v]
как второй входной параметр в functionalDerivative
.
G = functionalDerivative(f,[u v])
G(x) =
functionalDerivative
возвращает вектор символьных функций, содержащий производные функций integrand f
относительно u
и v
, соответственно.
Найдите уравнение Эйлера-Лагранжа массовой m
который соединяется с пружиной с коэффициентом упругости k
.
Задайте кинетическую энергию T
, потенциальная энергия V
, и Лагрангиан L
системы. Лагранжиан является различием между кинетической и потенциальной энергией.
syms m k x(t) T = 1/2*m*diff(x,t)^2; V = 1/2*k*x^2; L = T - V
L(t) =
В механике Лагранжа функция действия системы равна интегралу Лагранжа с течением времени, или . Уравнение Эйлера-Лагранжа описывает движение системы, для которой является стационарным.
Найдите уравнение Эйлера-Лагранжа, взяв функциональную производную интеграла L
и установите его равным 0
.
eqn = functionalDerivative(L,x) == 0
eqn(t) =
eqn
- дифференциальное уравнение, которое описывает масс-пружинные колебания.
Решите eqn
использование dsolve
. Примите массу m
и пружинные постоянные k
положительны. Установите начальные условия для амплитуды колебаний как и начальная скорость массы как .
assume(m,'positive') assume(k,'positive') Dx(t) = diff(x(t),t); xSol = dsolve(eqn,[x(0) == 10, Dx(0) == 0])
xSol =
Ясные предположения для дальнейших вычислений.
assume([k m],'clear')
Задача Брахистохрона состоит в том, чтобы найти самый быстрый путь спуска частицы под силу тяжести без трения. Движение ограничено вертикальной плоскостью. Время движения тела по кривой с точки кому под тяжестью дается
Найдите самый быстрый путь путем минимизации изменения в относительно небольших изменений в пути . Условием минимума является .
Вычислите производную функции, чтобы получить дифференциальное уравнение, которое описывает задачу Брахистохрона. Использование 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) =
Это уравнение является стандартным дифференциальным уравнением задачи Брахистохрона. Чтобы найти решения дифференциального уравнения, используйте dsolve
. Задайте 'Implicit'
опция для true
для возврата неявных решений, которые имеют форму .
sols = dsolve(eqn,'Implicit',true)
sols =
Символьный решатель dsolve
возвращает общие решения в комплексном пространстве. Symbolic Math Toolbox™ не принимает предположение, что символьная функция реально.
В зависимости от граничных условий существует два решения задачи Брахистохрона в реальном пространстве. Одно из двух решений ниже описывает циклоидную кривую в реальном пространстве.
solCycloid1 = sols(3)
solCycloid1 =
solCycloid2 = sols(4)
solCycloid2 =
Другим решением в реальном пространстве является горизонтальная прямая линия, где является константой.
solStraight = simplify(sols(5))
solStraight =
Чтобы проиллюстрировать решение циклоида, рассмотрим пример с граничными условиями и . В этом случае уравнение, которое может удовлетворить заданным граничным условиям, solCycloid2
. Замените два граничных условия на solCycloid2
.
eq1 = subs(solCycloid2,[x y(x)],[0 5]); eq2 = subs(solCycloid2,[x y(x)],[4 1]);
Два уравнения, eq1
и eq2
, имеют два неизвестных коэффициента, и . Использование vpasolve
чтобы найти числовые решения для коэффициентов. Замените эти решения на solCycloid2
.
coeffs = vpasolve([eq1 eq2]); eqCycloid = subs(solCycloid2,{'C1','C5'},{coeffs.C1,coeffs.C5})
eqCycloid =
Неявное уравнение eqCycloid
описывает циклоидное решение задачи Брахистохрона в терминах и .
Затем можно использовать fimplicit
для построения графика eqCycloid
. Начиная с fimplicit
принимает только неявные символьные уравнения, которые содержат символьные переменные и , преобразуйте символическую функцию в символьную переменную . Использование mapSymType
преобразовать кому . Постройте график решения циклоида в граничных условиях и .
funToVar = @(obj) sym('y'); eqPlot = mapSymType(eqCycloid,'symfun',funToVar); fimplicit(eqPlot,[0 4 1 5])
Для функции который описывает поверхность в трехмерном пространстве, площадь поверхности может быть определена функцией
где и являются частными производными по отношению к и .
Найдите производную функции integrand f
относительно u
.
syms u(x,y)
f = sqrt(1 + diff(u,x)^2 + diff(u,y)^2);
G = functionalDerivative(f,u)
G(x, y) =
Результатом является уравнение G
который описывает минимальную поверхность поверхности 3-D, заданную как u(x,y)
. Решения этого уравнения описывают минимальные поверхности в трехмерном пространстве, такие как мыльные пузыри.
f
- Интегран функциональногоИнтегранд функции, заданный как символьная переменная, функция или выражение. Аргумент f
представляет плотность функции.
y
- Дифференцирующая функцияФункция дифференциации, заданная как символьная функция или вектор, матрица или многомерный массив символьных функций. Аргумент y
может быть функцией одной или нескольких независимых переменных. Если y
- вектор символьных функций, functionalDerivative
возвращает вектор функциональных производных относительно функций в y
, где все функции в y
должны зависеть от тех же независимых переменных.
G
- Функциональная производнаяПроизводная функции, возвращенная как символьная функция или вектор символьных функций. Если входной параметр y
является вектором, тогда G
является вектором.
Рассмотрим функционал
который может взять любой путь от a до b в x -пространство.
Для небольшого изменения y(x) пути задайте изменение как в котором ϕ (x) является произвольной тестовой функцией. Изменение функциональной S
Выражение - функциональная производная S по отношению к y. Линейный функциональный DS [y] также известен как первое изменение или дифференциал Gateaux функционального S.
Одним из методов вычисления производной функции является применение Разложения Тейлора к выражению S [y + εϕ] относительно ε. Путем сохранения членов первого порядка в ε, выполнения интегрирования по частям и выбора граничных условий ϕ(a) = ϕ(b) = ϕ'(a) = ϕ'(b) = ... = 0, производная функции становится
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.