Main Content

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

fndir

함수의 방향 도함수

구문

df = fndir(f,y)

설명

df = fndir(f,y) f에 있는 함수 f의 (열) 벡터 y 방향으로의 방향 도함수의 ppform입니다. 이는 df가 함수 Dyf(x):=limt0(f(x+ty)f(x))/t를 기술한다는 것을 의미합니다.

yn열 행렬이고 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)] );

fndirf의 함수의 ppform에 따라 달라지므로, 유리 함수나 stform의 함수에 대해서는 동작하지 않습니다.

예제

예를 들어, fm-변량 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을 형성합니다.

참고 항목

| | |