我想解决以下描述膜时间演化的 PDE
PDE 离散化如下
在哪里
和x(s_i) = x_i
, j=0,1
, 和x^j=x
, x^j=y
. 我们现在忽略压力项以及常数等k_t
。
我们希望x(t)
使用正向欧拉方法,通过设置x = x + h*dx/dt
,与h=1e-6
。
我的解决方案(for x(t)
)如下(y
为了方便回答,忽略条款)
l = [359,1:358];
r = [2:359,1]; %left and right indexing vectors
l1 = [358,359,1:357]; %twice left neighbour
r1 = [3:359,1,2]; %twice right neighbour
%create initial closed contour with coordinates x and y
phi = linspace(0,2*pi,360); phi(end) = []; %since closed curve
x = (5 + 0.5*sin(20*phi)).*cos(phi);
y = (5+0.5*sin(20*phi).*cos(phi);
ds2 = (1/360)^2;
for i = 1:2e5
lengths = sqrt( (x-x(r)).^2 + (y-y(r)).^2 );
Tx=(1/10)/ds2*(x(r) -2*x +x(l) - x0*(((x(r)-x)/lengths)-((x-x(l))/lengths(l)) ) );
%tension term
Bx = 1/ds2^2*(x(r1) - 2*x(r) + x -2(x(r) -2*x + x(l)) + x -2*x(l) + x(l1) ); %bending term
x = x + 1/(1e6)*(Tx); % - Bx);
% Euler forward step
end
目前,代码运行,但在最后一行,如果我取消 Bx 项,程序将无法运行。似乎我的 Bx 与离散化中的内容相匹配,但显然不是。