网格堆栈的特征曲线(线)

时间:2012-07-13 22:16:37

标签: matlab math pde

我希望能够在特征曲线(线)上模拟双曲线方程。我将从一个基本的开始。 u_ {t} + 2u_ {x} = u ^ {2},初始数据为u(x,0)= cos(x)。解是u(x,t)= cos(x-2t)/(1-t * cos(x-2t))其中,charackteristic曲线是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
mesh(u)

显然,特征线和矩形网格的网格彼此不适合。我如何在特征上绘制解决方案?

1 个答案:

答案 0 :(得分:1)

首先,由于此行

,您没有矩形网格
x(i,j)=2*t(j)+x0(i);

我不完全确定你在问什么。我得到的印象是,您可能希望在不规则网格u上绘制x的表面。如果确实如此,您可能会发现以下内容使您能够执行所需的操作 - 尽管看起来您需要对代码进行一些调整。

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

或者,您可以重新设计代码,以便x生成矩形网格 - 我无法肯定地说,因为您可能只考虑这些特定点。

如果您没有得到更好的答案,上面的链接可以让您得到您想要的(假设我已正确理解您的问题)。