用MATLAB函数设置初始条件

使用setInitialConditions函数给偏微分方程的模型添加初始条件。该函数的语法格式为:

  • setInitialConditions(model,u0) 本语法用于平稳非线性问题或时间导数为一阶的时间相关问题。
  • setInitialConditions(model,u0,ut0) 本语法用于时间导数为二阶的时间相关问题,例如双曲型问题。
  • setInitialConditions(___,RegionType,RegionID) 指定边界类型和编号。RegionType参数的取值为'Face', 'Edge', 'Vertex'或'Cell',分别表示面、边、顶点或单元。
  • setInitialConditions(model,results) 使用上次的分析结果作为初值求解平稳非线性问题。问题的初始导数值为0。
  • setInitialConditions(model,results,iT) 使用时间编号iT对应的解作为初值求解时间相关问题。如果不指定时间编号iT,函数将使用最后一次得到的解作为初值。
  • ic = setInitialConditions(___) 返回初始条件对象。

【例16】创建一个几何模型为方形的PDE模型,给模型设置初始条件。

code.matlab
>> model = createpde;
>> R = [3,4,-1,1,1,-1,-1,-1,1,1]';
>> g = decsg(R);
>> geometryFromEdges(model,g);
>> setInitialConditions(model,0);

如果初始条件不是一个常数,而是位置的函数x+y,可以类似下面进行设置。

code.matlab
>> initfun = @(location)location.x + location.y;
>> setInitialConditions(model,initfun);