2012-07-13 3 views
0

특성 곡선 (선)에서 쌍곡선 방정식을 시뮬레이션 할 수 있기를 원합니다. 나는 기본적인 것으로 시작할 것입니다. 초기 데이터 u (x, 0) = cos (x)를 갖는 u_ {t} + 2u_ {x} = u^{2}. 해결책은 x = 2 * t + x_ {0} 인 곳에서 u (x, t) = cos (x-2t)/(1-t * cos (x-2t))이다. 따라서 솔루션은 특성 (특성의 방법)에 대해 정의됩니다.특성 곡선 (선)의 격자 스택

x=zeros(10,5); 
u=zeros(10,5); 
x0=linspace(0,10,10); 
t=linspace(0,5,5); 
for i=1:length(x0) 
    for j=1:length(t) 
     x(i,j)=2*t(j)+x0(i); 
     if t(j)*cos(x(i,j)-2*t(j))==1 
      u(i,j)=0; 
     else 
      u(i,j)=cos(x(i,j)-2*t(j))/(1-t(j)*cos(x(i,j)-2*t(j))); 
     end 
    end 
end 
mesh(u) 

또한 특성 선 그리드와 직사각형 그리드는 서로 맞지 않습니다. 특성에 대한 솔루션을 어떻게 계획 할 수 있습니까?

답변

1

첫째로, 당신은 당신이 요구하는 것을 완전히 확실하지 않다 때문에이 라인

x(i,j)=2*t(j)+x0(i); 

에 사각형 격자가 없습니다. 불규칙한 메쉬 x 위에 u의 표면을 플로팅하려는 인상을받습니다. 이것이 사실이라면 다음과 같이 원하는 것을 할 수 있습니다. 코드를 수정해야 할 필요가있는 것처럼 보일지라도. 어쩌면 당신은 이러한 특정 사항을 고려 이유가 존재하는 한 내가 확실히 말할 수 없다 -

http://blogs.mathworks.com/videos/2007/11/02/advanced-matlab-surface-plot-of-nonuniform-data/

또는, 당신은 단지 사각형 격자에 x 결과가 있도록 코드를 재 설계 할 수있다.

더 좋은 답변을 얻지 못하면 위의 링크를 통해 원하는 내용을 얻을 수 있습니다 (질문을 올바르게 이해했다고 가정).