Функциональная производная (вариационная производная)
возвращает функциональную производную
из функционального относительно функционального y = y (x), где x представляет одну или несколько независимых переменных. Функциональная производная связывает изменение в функциональном S [y] относительно маленького изменения y (x).The, функциональная производная также известна как вариационную производную.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 возвращает вектор из символьных функций, содержащих функциональные производные подынтегрального выражения f относительно u и v, соответственно.
Найдите уравнение Euler–Lagrange массового 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) =
В лагранжевой механике действие, функциональное из системы, равно интегралу функции Лагранжа в зависимости от времени, или . Уравнение Euler–Lagrange описывает движение системы для который является стационарным.
Найдите уравнение Euler–Lagrange путем взятия функциональной производной подынтегрального выражения 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™ не принимает предположение что символьная функция isreal.
В зависимости от граничных условий существует два решения действительного пробела Задачи о брахистохроне. Одно из этих двух решений ниже описывает циклоидную кривую на действительном пробеле.
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])

Для функции это описывает поверхность в трехмерном пространстве, площадь поверхности может быть определена функциональным
где и частные производные относительно и .
Найдите функциональную производную подынтегрального выражения 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] также известен как первое изменение или дифференциал Гато функционального S.
Один метод, чтобы вычислить функциональную производную должен применить Разложение Тейлора к выражению S [y + εϕ] относительно ε. Путем хранения условий первого порядка в ε, выполнения интегрирования частями и выбора граничных условий ϕ(a) = ϕ(b) = ϕ'(a) = ϕ'(b) = ... = 0, функциональная производная становится
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.