답변:
나는 MATLAB central 에 같은 질문을 했고 Bill Greene은 친절하게 대답했다 .
다른 사람들에게 유용 할 수 있도록 간단히보고하고 확장합니다.
Bill의 솔루션 :
이러한 음모를 만드는 한 가지 방법이 있습니다. PDE Toolbox 메셔 p와 솔루션 벡터 u로 만든 점 행렬이 있다고 가정합니다. 아래 함수는 두 끝점의 x 및 y 위치로 정의 된 선을 따라 해당 솔루션의 플롯을 만듭니다. 내 예는 단위 제곱의 솔루션에 대한 것이며 선 (0, .5)에서 (1, .5)를 따라 플롯을 원합니다. 플롯에 25 포인트를 포함하고 싶습니다. 보시다시피, 실제 작업은
TriScatteredInterp
MATLAB 핵심 기능 으로 수행됩니다 .plotAlongLine(p, u, [0,.5], [1,.5], 25); function plotAlongLine(p, u, xy1, xy2, numpts) x = linspace(xy1(1),xy2(1),numpts); y = linspace(xy1(2),xy2(2),numpts); F = TriScatteredInterp(p(1,:)', p(2,:)', u); uxy = F(x,y); figure; plot(x, uxy); //REM: x is chosen here as a curvilinear coordinate end
나는 이전의 기능을 하나의 솔루션 플롯 할 수 있다는 더 말을하고 싶습니다 u
또는 기능을 f(u)
제공, u
(같이 일반적으로 FEM 솔루션을 근사를 위해 일) 메쉬 노드에 정의됩니다.
메쉬 중심에 정의 된 기능 섹션 (예 :의 기능 grad u
) 을 플롯해야하는 경우 , 중심 값 함수 에서 노드 값 함수 pdeprtni
를 생성 하는 기능 을 미리 사용할 수 있습니다 .