이 페이지의 최신 내용은 아직 번역되지 않았습니다. 최신 내용은 영문으로 볼 수 있습니다.

functionalDerivative

범함수(functional)의 도함수

설명

예제

D = functionalDerivative(f,y)는 함수 y = y(x)에 대해 범함수 F=f(x,y(x),y'(x)...)dx범함수의 도함수를 반환합니다. 여기서 x는 하나 이상의 독립 변수를 나타냅니다. y가 기호 함수로 구성된 벡터인 경우 functionalDerivativey의 함수에 대한 범함수의 도함수로 구성된 벡터를 반환합니다. 여기서 y의 모든 함수는 동일한 독립 변수를 사용해야 합니다.

예제

범함수의 도함수 구하기

함수 y에 대해 f(y)=y(x)sin(y(x))로 주어진 함수의 범함수의 도함수를 구합니다.

syms y(x)
f = y*sin(y);
D = functionalDerivative(f,y)
D(x) =
sin(y(x)) + cos(y(x))*y(x)

함수 벡터의 범함수의 도함수 구하기

함수 uv에 대해 H(u,v)=u2dvdx+vd2udx2로 주어진 함수의 범함수의 도함수를 구합니다.

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)

functionalDerivativeuv에 대해 각각 H의 범함수의 도함수를 포함하는 기호 함수로 구성된 벡터를 반환합니다.

용수철에 대한 오일러-라그랑주 방정식 구하기

먼저 질량 m과 용수철 상수 k를 사용하여 용수철에 대한 라그랑주를 구한 다음 오일러-라그랑주 방정식을 유도합니다. 라그랑주는 변위 x(t)의 함수인 운동 에너지 T와 위치 에너지 V의 차분입니다.

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

x에 대해 L의 범함수의 도함수를 구하고, 이를 0과 같다고 놓아 오일러-라그랑주 방정식을 구합니다.

eqn = functionalDerivative(L,x) == 0
eqn(t) =
- m*diff(x(t), t, t) - k*x(t) == 0

diff(x(t), t, t)는 가속도입니다. 방정식 eqn은 용수철의 거동을 설명할 것으로 기대되는 미분 방정식을 나타냅니다.

dsolve를 사용하여 eqn을 풉니다. 질량 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')

최속 강하선(Brachistochrone) 문제에 대한 미분 방정식 구하기

최속 강하선 문제는 중력이 작용하는 상태에서 가장 빠른 하강 경로를 찾는 것입니다. 중력이 작용할 때 물체가 곡선 y(x)를 따라 이동하는 시간은 다음과 같이 계산됩니다.

f=1+y'22gy,

여기서 g는 중력 가속도입니다.

경로 y에 대해 f를 최소화하여 가장 빠른 경로를 찾습니다. 최솟값에 대한 조건은 다음과 같습니다.

δfδy=0.

최속 강하선 문제를 설명하는 미분 방정식을 구하기 위해 다음 조건을 계산합니다. 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

이 방정식은 최속 강하선 문제에 대한 표준 미분 방정식입니다.

3차원 공간의 최소 표면 구하기

함수 u(x,y)가 3차원 공간의 표면을 나타내는 경우 다음 범함수를 통해 표면 면적을 구할 수 있습니다.

F(u)=f(x,y,u,ux,uy)dxdy=1+ux2+uy2dxdy,

여기서 uxuy는 x와 y에 대한 u의 편도함수입니다.

u에 대해 f의 범함수의 도함수를 구하여, 함수 u(x,y)가 표시하는 3차원 표면의 최소 표면을 설명하는 방정식을 구합니다.

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차원 공간의 최소 표면을 설명합니다.

입력 인수

모두 축소

범함수의 도함수를 구하려는 표현식으로, 기호 변수, 기호 함수 또는 기호 표현식으로 지정됩니다. 인수 f는 범함수의 밀도를 나타냅니다.

미분 함수로, 기호 함수 또는 기호 함수로 구성된 벡터, 행렬, 다차원 배열로 지정됩니다. 인수 y는 하나 이상의 독립 변수로 구성된 함수일 수 있습니다. y가 기호 함수로 구성된 벡터인 경우 functionalDerivativey의 함수에 대한 범함수의 도함수로 구성된 벡터를 반환합니다. 여기서 y의 모든 함수는 동일한 독립 변수를 사용해야 합니다.

출력 인수

모두 축소

범함수의 도함수로, 기호 함수 또는 기호 함수로 구성된 벡터로 반환됩니다. 입력값 y가 벡터이면 D도 벡터입니다.

세부 정보

모두 축소

범함수의 도함수

다음 범함수를 가정해 보겠습니다.

F(y)=Ωf(x,y(x),y'(x),y''(x),...)dx,

여기서 Ω는 x 공간에 속한 영역입니다.

y 값의 작은 변화(δy)에 대해 범함수 F의 변화는 다음과 같습니다.

δFδy=ddε|ε=0F(y+εδy)=Ωδf(x)δyδy(x)dx+boundary terms.

표현식 δf(x)δy는 y에 대한 f의 범함수의 도함수입니다.

참고 항목

| |

R2015a에 개발됨