我正在使用pdepe求解器同时解决4个PDE。 现在我想使用该解决方案作为下一步的初始边界条件,例如u0(1,:)= sol(end,:,1)这很有效,只要我只使用单个值作为初始值条件,例如u0(1)= sol(end,end,1),但是一旦我尝试整个向量就失败了。 这似乎实际上非常相似 ...
提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供 中文繁体 英文版本 中英对照 版本,有任何建议请联系yoyou2525@163.com。
我使用Matlab解算器pdepe解决了PDE。 初始条件是ODE的解决方案,我在另一个m.file中解决了该问题。 现在,我有了大小为NxM的矩阵形式的ODE解决方案。 我如何使用它作为pdepe中的IC? 那有可能吗? 当我使用for loop
,pdepe仅将最后一次迭代作为初始条件。 任何帮助表示赞赏。
根据pdepe
文档 ,求解器的初始条件函数具有以下语法:
u = icFun(x);
在列向量u
返回指定x
的PDE初始值。 因此,只有当PDE是具有M
空间网格点的N
未知数的系统时,初始条件才会是N x M
矩阵。
因此,可以使用N x M
矩阵来填充初始条件,但是将需要一些映射将给定列与x
的特定值相关联。 例如,在调用pdepe
的main函数中,可能存在
% 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问题之类的不同情况下:))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.