Main Content

이 번역 페이지는 최신 내용을 담고 있지 않습니다. 최신 내용을 영문으로 보려면 여기를 클릭하십시오.

gradient

기호 스칼라 필드로 구성된 기울기 벡터

설명

예제

g = gradient(f,v)는 카테시안 좌표에서 벡터 v에 대한 기호 스칼라 필드 f기울기 벡터를 반환합니다.

g = gradient(f)f에서 기호 변수로 구성된 디폴트 벡터에 대해 스칼라 필드 f의 기울기 벡터를 반환합니다.

예제

모두 축소

벡터 v에 대한 스칼라 함수 f의 기울기는 v의 각 요소에 대한 f의 1계 편도함수의 벡터입니다.

벡터 [x,y,z]에 대한 f(x,y,z)의 기울기 벡터를 구합니다. 기울기는 다음의 성분을 갖는 벡터입니다.

syms x y z
f(x,y,z) = 2*y*z*sin(x) + 3*x*sin(z)*cos(y);
v = [x,y,z];
gradient(f,v)
ans(x, y, z) = 

(3cos(y)sin(z)+2yzcos(x)2zsin(x)-3xsin(y)sin(z)2ysin(x)+3xcos(y)cos(z))

함수 f(x,y)의 기울기를 구하고 퀴버(속도) 플롯으로 플로팅합니다.

벡터 [x,y]에 대한 f(x,y)의 기울기 벡터를 구합니다. 기울기는 다음의 성분을 갖는 벡터 g입니다.

syms x y
f = -(sin(x) + sin(y))^2;
v = [x y];
g = gradient(f,v)
g = 

(-2cos(x)sin(x)+sin(y)-2cos(y)sin(x)+sin(y))

이제 이들 성분으로 정의된 벡터장을 플로팅합니다. MATLAB®은 이 작업을 위해 quiver 플로팅 함수를 제공합니다. 이 함수는 기호 인수를 받지 않습니다. 먼저 g 성분에 대한 표현식의 기호 변수를 숫자형 값으로 바꿉니다. 그런 다음 quiver를 사용합니다.

[X,Y] = meshgrid(-1:.1:1,-1:.1:1);
G1 = subs(g(1),v,{X,Y});
G2 = subs(g(2),v,{X,Y});
quiver(X,Y,G1,G2)

Figure contains an axes object. The axes object contains an object of type quiver.

R2021b 이후

기호 행렬 변수를 사용하여 스칼라를 반환하는 행렬 곱셈을 정의합니다.

syms X Y [3 1] matrix
A = Y.'*X
A = YTX

X에 대한 행렬 곱셈의 기울기를 구합니다.

gX = gradient(A,X)
gX = Y

Y에 대한 행렬 곱셈의 기울기를 구합니다.

gY = gradient(A,Y)
gY = X

R2021b 이후

다음 다변수 함수의 기울기를

f(x)=sin2(x1,1)+sin2(x1,2)+sin2(x1,3)

벡터 x=[x1,1,x1,2,x1,3]에 대해 구합니다.

기호 행렬 변수를 사용하여 벡터 x에 대한 함수 f와 기울기를 표현합니다.

syms x [1 3] matrix
f = sin(x)*sin(x).'
f = sin(x)sin(x)T
g = gradient(f,x)
g = 2cos(x)I3sin(x)T

x의 요소에 대한 기울기를 표현하려면 해당 결과를 symmatrix2sym을 사용하여 기호 스칼라 변수로 구성된 벡터로 변환합니다.

g = symmatrix2sym(g)
g = 

(2cos(x1,1)sin(x1,1)2cos(x1,2)sin(x1,2)2cos(x1,3)sin(x1,3))

또는 fx를 스칼라 변수로 구성된 기호 표현식으로 변환하고 이를 gradient 함수에 대한 입력값으로 사용할 수 있습니다.

g = gradient(symmatrix2sym(f),symmatrix2sym(x))
g = 

(2cos(x1,1)sin(x1,1)2cos(x1,2)sin(x1,2)2cos(x1,3)sin(x1,3))

R2023a 이후

3×1 벡터를 기호 행렬 변수 X로 만듭니다. 기호 행렬 함수 A(X)X의 함수인 스칼라 필드를 만들고, X의 기존 정의가 유지되도록 합니다.

syms X [3 1] matrix
syms A(X) [1 1] matrix keepargs

X에 대한 A(X)의 기울기를 구합니다. gradient 함수는 미평가 공식을 반환합니다.

gradA = gradient(A,X)
gradA(X) = X A(X)

A(X)의 기울기의 발산이 A(X)의 라플라시안, 즉 XXA(X)=ΔXA(X)과 같음을 보여줍니다.

divOfGradA = divergence(gradA,X)
divOfGradA(X) = ΔX A(X)
lapA = laplacian(A,X)
lapA(X) = ΔX A(X)

A(X)의 기울기의 회전이 0, 즉 X× XA(X)=03,1과 같음을 보여줍니다.

curlOfGradA = curl(gradA,X)
curlOfGradA(X) = 03,1

입력 인수

모두 축소

기호 스칼라 필드로, 기호 표현식, 기호 함수, 기호 행렬 변수 또는 기호 행렬 함수로 지정됩니다.

  • f가 기호 스칼라 변수의 함수이고 여기서 f가 유형 sym 또는 symfun인 경우, 벡터 v는 유형 sym 또는 symfun이어야 합니다.

  • f가 기호 행렬 변수의 함수이고 여기서 f가 유형 symmatrix 또는 symfunmatrix인 경우, 벡터 v는 유형 symmatrix 또는 symfunmatrix여야 합니다.

데이터형: sym | symfun | symmatrix | symfunmatrix

기울기를 구할 벡터로, 기호 스칼라 변수로 구성된 벡터, 기호 함수, 기호 행렬 변수 또는 기호 행렬 함수로 지정됩니다.

  • v를 지정하지 않고 f가 기호 스칼라 변수의 함수인 경우, gradient는 기본적으로 f에 있는 기호 스칼라 변수의 벡터 vsymvar(f)에 정의된 변수 순서대로 생성합니다.

  • v가 유형 symmatrix의 기호 행렬 변수인 경우, v의 크기는 1×N 또는 N×1이어야 합니다.

  • v가 스칼라이면 gradient(f,v) = diff(f,v)입니다.

  • v가 빈 기호 객체(예: sym([]))이면 gradient는 빈 기호 객체를 반환합니다.

데이터형: sym | symfun | symmatrix | symfunmatrix

제한 사항

  • gradient 함수는 텐서 도함수를 지원하지 않습니다. 기울기가 벡터가 아닌 텐서 필드 또는 행렬인 경우 gradient 함수는 오류를 반환합니다.

  • Symbolic Math Toolbox™는 유형 symmatrix의 기호 행렬 변수와 symfunmatrix의 기호 행렬 함수에 대해 dot 함수 또는 cross 함수를 현재 지원하지 않습니다. 벡터 미적분 항등식이 내적 또는 외적을 포함하는 경우 툴박스는 해당 항등식을 지원되는 다른 함수로 대신 표시합니다. 기호 행렬 변수와 기호 행렬 함수를 지원하는 모든 함수의 목록을 보려면 명령 methods symmatrixmethods symfunmatrix를 사용하십시오.

세부 정보

모두 축소

기울기 벡터

벡터 x=(x1,x2,,xn)에 대한 f(x)의 기울기 벡터는 f의 1계 편도함수의 벡터입니다.

xf(x)=(fx1,fx2,,fxn)

버전 내역

R2011b에 개발됨

모두 확장