이 번역 페이지는 최신 내용을 담고 있지 않습니다. 최신 내용을 영문으로 보려면 여기를 클릭하십시오.
fndir
함수의 방향 도함수
구문
df = fndir(f,y)
설명
df = fndir(f,y)
는 f
에 있는 함수 f의 (열) 벡터 y
방향으로의 방향 도함수의 ppform입니다. 이는 df
가 함수 를 기술한다는 것을 의미합니다.
y
가 n
열 행렬이고 f가 d
-값이면 df
의 함수는 prod(d)*n
-값입니다. x에서의 해당 값은 크기 [d,n]
으로 형태 변경되어, 해당 j번째 “열”에, y
의 j번째 열 방향인 x에서 f의 방향 도함수를 가집니다. df
가 f의 실제 크기를 명시적으로 반영하도록 하려면 대신 다음 명령을 사용하십시오.
df = fnchg( fndir(f,y), 'dim',[fnbrk(f,'dim'),size(y,2)] );
fndir
은 f
의 함수의 ppform에 따라 달라지므로, 유리 함수나 stform의 함수에 대해서는 동작하지 않습니다.
예제
예를 들어, f
가 m
-변량 d
-벡터 값 함수를 기술하고 x
가 그 정의역 내의 어떤 점이라면, 예를 들어, 스칼라 값 쌍선형 다항식을 설명하는 이 ppform f
에 대해 다음은
f = ppmak({0:1,0:1},[1 0;0 1]); x = [0;0]; [d,m] = fnbrk(f,'dim','var'); jacobian = reshape(fnval(fndir(f,eye(m)),x),d,m)
그 점에서 해당 함수의 야코비 행렬입니다. 이 경우처럼 스칼라 값 함수에서는 기울기이며 원점에서는 0입니다.
관련 예제로, 다음 명령문은 규칙 메시에서 Franke 함수에 대한 (적절한 근사의) 기울기를 플로팅합니다.
xx = linspace(-.1,1.1,13); yy = linspace(0,1,11); [x,y] = ndgrid(xx,yy); z = franke(x,y); pp2dir = fndir(csapi({xx,yy},z),eye(2)); grads = reshape(fnval(pp2dir,[x(:) y(:)].'),... [2,length(xx),length(yy)]); quiver(x,y,squeeze(grads(1,:,:)),squeeze(grads(2,:,:)))
결과 플롯은 다음과 같습니다.
알고리즘
f
의 함수는 ppform으로 변환되며, 다항식 조각의 방향 도함수는 형식적으로 단일 벡터 연산으로 계산되고, 다시 결합되어 f
의 함수의 방향 도함수의 ppform을 형성합니다.