Производная по функциям (вариационная производная)
возвращает производную функции
функционального относительно функции 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. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.