特性曲線 (線) で双曲線方程式をシミュレートできるようにしたいと考えています。基本的なものから始めます。u_{t}+2u_{x}=u^{2} 初期データ u(x,0)=cos(x)。解は u(x,t)=cos(x-2t)/(1-t*cos(x-2t)) で、特性曲線は x=2*t+x_{0} です。したがって、ソリューションは特性 (特性の方法) で定義されます。
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
誰かが私の間違いを見ることができれば、私は感謝します。