Matlab 如何使用NxM矩阵作为`pdepe中的初始条件`

Matlab 如何使用NxM矩阵作为`pdepe中的初始条件`,matlab,Matlab,我用Matlab解算器pdepe解出了一个PDE。初始条件是ODE的解决方案,我在另一个m文件中解决了这个问题。现在,我有一个大小为NxM的矩阵形式的ODE解决方案。如何将其用作pdepe中的IC?这可能吗?当我对循环使用时,pdepe只将最后一次迭代作为初始条件。非常感谢您的帮助。根据,解算器的初始条件函数具有以下语法: u = icFun(x); 其中,在向量u列中返回指定值为x的PDE初始值。 因此,只有当PDE是一个由N未知量和M空间网格点组成的系统时,初始条件才会是nxm矩阵 因此,

我用Matlab解算器pdepe解出了一个PDE。初始条件是ODE的解决方案,我在另一个m文件中解决了这个问题。现在,我有一个大小为NxM的矩阵形式的ODE解决方案。如何将其用作pdepe中的IC?这可能吗?当我对循环使用
,pdepe只将最后一次迭代作为初始条件。非常感谢您的帮助。

根据,解算器的初始条件函数具有以下语法:

u = icFun(x);
其中,在向量
u
列中返回指定值为
x
的PDE初始值。 因此,只有当PDE是一个由
N
未知量和
M
空间网格点组成的系统时,初始条件才会是
nxm
矩阵

因此,可以使用
nxm
矩阵来填充初始条件,但需要有一些映射将给定列与特定值
x
关联起来。例如,在调用
pdepe
的主函数中,可能有

% icData is the NxM matrix of data
% xMesh is an 1xM row vector that has the spatial value for each column of icData
icFun = @(x) icData(:,x==xMesh);
这种方法的唯一缺点是初始条件的网格,以及因此的
pdepe
解,受到初始数据的约束。这可以通过使用以下插值方案来克服:

% icData is the NxM matrix of data
% xMesh is an 1xM row vector that has the spatial value for each column of icData
icFun = @(x) interp1(xMesh,icData',x,'pchip')';

如果存在转置以符合数据解释。

则u更容易使用“线方法”样式在每个网格上定义不同的条件,而不是使用pdepe

MOL也更灵活地用于不同的情况,如3D问题
只是说:)

这是一个系统吗?(如果ODE输出是
NxM
,但要检查,我假设是这样)。是MATLAB解算器之一的ODE解吗?模型方程是单个pde。初始条件是pde的稳定状态(即,它是ode)。我用Euler方法解决了ODE,我编写了自己的m文件。ode的解是NxM矩阵,N是空间点,M是它们对应的值@TroyHaskinDoes
M
对应于获取所有空间网格点数据的时间坐标?我想我对单方程偏微分方程如何具有由ODE系统定义的初始条件感到困惑(因为你的评论对我来说意味着
m
解)。你能给我更多的细节吗。