Matlab Pde Toolbox : 라인 또는 하위 매니 폴드에 솔루션 플롯


9

Matlab pde 도구 상자를 사용하여 2D에서 특정 타원 방정식을 풀고 있습니다.

주어진 선을 따라, 즉 솔루션을 나타내는 3D 메쉬에서 평면 슬라이스를 자르기 위해 플롯해야하지만 솔루션은 좋습니다.

도구 상자 기능을 똑똑하게 포함하는 방법을 알 수 없습니다 (즉, 삼각 메쉬에 낮은 수준의 보간이 포함되지 않음).

도움을 주셔서 감사합니다.

답변:


3

나는 MATLAB central 에 같은 질문을 했고 Bill Greene은 친절하게 대답했다 .

다른 사람들에게 유용 할 수 있도록 간단히보고하고 확장합니다.

Bill의 솔루션 :

이러한 음모를 만드는 한 가지 방법이 있습니다. PDE Toolbox 메셔 p와 솔루션 벡터 u로 만든 점 행렬이 있다고 가정합니다. 아래 함수는 두 끝점의 x 및 y 위치로 정의 된 선을 따라 해당 솔루션의 플롯을 만듭니다. 내 예는 단위 제곱의 솔루션에 대한 것이며 선 (0, .5)에서 (1, .5)를 따라 플롯을 원합니다. 플롯에 25 포인트를 포함하고 싶습니다. 보시다시피, 실제 작업은 TriScatteredInterpMATLAB 핵심 기능 으로 수행됩니다 .

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를 생성 하는 기능 을 미리 사용할 수 있습니다 .

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.