Hệ thống NonLinear để điều trị hóa chất

Sep 29 2020

Tôi muốn giải quyết chế độ hóa học, được đưa ra bởi hệ thống phi tuyến tính tiếp theo :

Nó được trích từ cuốn sách của Murray: phương trình (11.30) tại trang. 408

$$\frac{\partial n}{\partial t} = D \frac{\partial^2 n}{\partial x^2} -\xi_0 \partial_x \Bigl( n \frac{\partial a}{\partial x} \Bigr)$$

$$\frac{\partial a}{\partial t} = hn - ka + D_a \frac{\partial^2 a}{\partial x^2}$$

Ở đâu $h,k,D_a,D$ chỉ là các tham số và $D_a>D$ và miền là $x \in [-6,6]$

Tôi quyết định coi như không có điều kiện biên dòng chảy , tức là$$\partial_x(n(-6,t))=\partial_x (a(-6,t))=0$$ $$\partial_x(n(6,t))=\partial_x (a(6,t))=0$$

và như điều kiện ban đầu $$n(0,x)=e^{-x^2}$$ $$a(0,x)=\cos( \pi x)$$

Lưu ý rằng về mặt số lượng các điều kiện là tương đối vì hàm mũ là "bằng phẳng". Tôi biết điều đó về mặt phân tích là không đúng.

Tôi đã tích hợp theo thời gian $T=0.1$ với bộ giải FEM của riêng tôi (với các phần tử hữu hạn tuyến tính) và nhận được thông tin sau, sử dụng các tham số $$D = 2 \quad D_a = 5.5 \quad h = 0.5 \quad k = 0.5 \quad \xi_0 = 0.2$$

Tôi muốn sử dụng Mathematica để kiểm tra kết quả của mình và thử những gì xuất hiện bằng cách thay đổi một số tham số, nhưng tôi không thể hiểu cách giải một hệ thống phi tuyến tính như ở trên. Ai đó có thể chỉ ra cốt truyện mà tôi nên lấy bằng Mathematica và, nếu có thể, đoạn mã phù hợp không?


BIÊN TẬP:

Đây là những gì tôi thu được, có hình dạng của câu trả lời Daniel, có vẻ giống với câu trả lời của anh ấy

BIÊN TẬP:

Nguyên tắc kỳ lạ đằng sau mô hình là:

Amip của nấm nhầy Dictyostelium discoideum, với mật độ n (x, t), tiết ra chất hấp dẫn hóa học, AMP vòng, và các tập hợp không gian của amip bắt đầu hình thành. Cuốn sách nói rằng ti sử dụng các điều kiện biên không thông lượng , và điều đó là tốt. Nhưng những điều kiện ban đầu tôi có thể sử dụng cho$n(x,t)$ và $a(x,t)$ có liên quan về mặt vật lý không?

Trả lời

7 TimLaska Sep 29 2020 at 08:32

Nếu bạn sử dụng Phương pháp phần tử hữu hạn, no fluxlà điều kiện biên mặc định, vì vậy không cần chỉ định. Một thay thế cho câu trả lời của Daniel sẽ là:

(* Define parameters *)
l = 6;
tend = 0.1;
parms = {d -> 2, da -> 5.5, h -> 0.5, k -> 0.5, x0 -> 0.2};
(* Create Parametric PDE operators for n and a *)
parmnop = 
  D[n[t, x], t] - d D[n[t, x], x, x] + x0 D[n[t, x] D[a[t, x], x], x];
parmaop = D[a[t, x], t] - da D[a[t, x], x, x] + k a[t, x] - h n[t, x];
(* Setup PDE System *)
pden = (parmnop == 0) /. parms;
pdea = (parmaop == 0) /. parms;
icn = n[0, x] == Exp[-x^2];
ica = a[0, x] == Cos[π x];
(* Solve System *)
{nif, aif} = 
  NDSolveValue[{pden, pdea, icn, ica}, {n, a}, {t, 0, tend}, {x, -l, 
    l}, Method -> {"MethodOfLines", 
     "SpatialDiscretization" -> {"FiniteElement", 
       "MeshOptions" -> MaxCellMeasure -> 0.1}}];

(* Display results *)
Manipulate[
 Plot[{nif[t, x], aif[t, x]}, {x, -l, l}, PlotRange -> All], {t, 0, 
  tend}, ControlPlacement -> Top]

5 DanielHuber Sep 29 2020 at 02:18

Đây là mã của tôi. Thật không may, tại t == 0,1, nó không trùng lặp kết quả của bạn. Tôi hy vọng tôi đã không phạm sai lầm.

eq = {D[n[x, t], t] == 
     d  D[n[x, t], {x, 2}] - c0 D[n[x, t] D[a[x, t], x], x],
    D[a[x, t], t] == h  n[x, t ] - k a[x, t] + da  D[a[x, t], {x, 2}],
    (D[n[x, t], x] /. x -> -6) == 0, (D[a[x, t], x] /. x -> -6) == 
     0, (D[n[x, t], x] /. x ->   6) == 
     0, (D[a[x, t], x] /. x ->   6) == 0,
    n[x, 0] == Exp[-x^2], a[x, 0] == Cos[Pi x]} /. {d -> 2, da -> 5.5,
     h -> 0.5, k -> 0.5, c0 -> 0.2};
sol[x_] = {n[x, 0.1], a[x, 0.1]} /. 
  NDSolve[eq, {n, a}, {t, 0, 0.1}, {x, -6, 6}][[1]]
Plot[sol[x], {x, -6, 6}, PlotRange -> All]