Wolfram mathematica Mathematica中的非线性偏微分方程求解

Wolfram mathematica Mathematica中的非线性偏微分方程求解,wolfram-mathematica,physics,pde,Wolfram Mathematica,Physics,Pde,我正在尝试使用NDsolve求解以下与金兹堡-朗道相关的非线性耦合偏微分方程。我是Mathematica的新手。我犯了以下错误。我犯了什么错误 pde = {D[u[t, x, y], t] == D[u[t, x, y], {x, x}] + D[u[t, x, y], {y, y}] - (1/u[t, x, y])^3*(D[v[t, x, y], y]^2 + D[v[t, x, y], x]^2) - u[t, x, y] + u[t, x, y]^3,

我正在尝试使用NDsolve求解以下与金兹堡-朗道相关的非线性耦合偏微分方程。我是Mathematica的新手。我犯了以下错误。我犯了什么错误

pde = {D[u[t, x, y], t] == 
D[u[t, x, y], {x, x}] + 
 D[u[t, x, y], {y, 
   y}] - (1/u[t, x, y])^3*(D[v[t, x, y], y]^2 + 
    D[v[t, x, y], x]^2) - u[t, x, y] + u[t, x, y]^3, 
   D[v[t, x, y], t] == 
D[v[t, x, y], {x, x}] + D[v[t, x, y], {y, y}] - 
 v[t, x, y]*u[t, x, y] + 
       (2/u[t, x, y])*(D[u[t, x, y], x]*D[v[t, x, y], x] - 
    D[u[t, x, y], y]*D[v[t, x, y], y])};bc = {u[0, x, y] == 0, v[0, x, y]== 0, u[t, 5, y] == 1, u[t, x, 5] == 1, D[v[t, 0, y], x] == 0, D[v[t, x, 0], y] == 0};
NDSolve[{pde, bc}, {u, v}, {x, 0, 5}, {y, 0, 5}, {t, 0, 2}]

'Error: NDSolve::deqn: Equation or list of equations expected instead of True in the first argument {{(u^(1,0,0))[t,x,y]==-u[t,x,y]+u[t,x,y]^3+(u^(0,0,y))[t,x,y]-((<<1>>^(<<3>>))[<<3>>]^2+(<<1>>^(<<3>>))[<<3>>]^2)/u[t,x,y]^3+(u^(0,x,0))[t,x,y],(v^(1,0,0))[t,x,y]==-u[t,x,y] v[t,x,y]+(v^(0,0,y))[t,x,y]+(2 (-(<<1>>^(<<3>>))[<<3>>] (<<1>>^(<<3>>))[<<3>>]+(<<1>>^(<<3>>))[<<3>>] (<<1>>^(<<3>>))[<<3>>]))/u[t,x,y]+(v^(0,x,0))[t,x,y]},{u[0,x,y]==0,v[0,x,y]==0,u[t,5,y]==1,u[t,x,5]==1,True,True}}.

NDSolve[{{Derivative[1, 0, 0][u][t, x, y] == -u[t, x, y] + 
     u[t, x, y]^3 + Derivative[0, 0, y][u][t, x, y] - 
              (Derivative[0, 0, 1][v][t, x, y]^2 + 
     Derivative[0, 1, 0][v][t, x, y]^2)/u[t, x, y]^3 + 
     Derivative[0, x, 0][u][t, x, y], 
       Derivative[1, 0, 0][v][t, x, y] == (-u[t, x, y])*v[t, x, y] + 
     Derivative[0, 0, y][v][t, x, y] + 
           (2*((-Derivative[0, 0, 1][u][t, x, y])*
           Derivative[0, 0, 1][v][t, x, y] + 
          Derivative[0, 1, 0][u][t, x, y]*
           Derivative[0, 1, 0][v][t, x, y]))/u[t, x, y] + 
           Derivative[0, x, 0][v][t, x, y]}, {u[0, x, y] == 0, 
   v[0, x, y] == 0, u[t, 5, y] == 1, u[t, x, 5] == 1, True, 
   True}}, {u, v}, {x, 0, 5}, {y, 0, 5}, {t, 0, 2}]
pde={D[u[t,x,y],t]==
D[u[t,x,y],{x,x}]+
D[u[t,x,y],{y,
y} ]-(1/u[t,x,y])^3*(D[v[t,x,y],y]^2+
D[v[t,x,y],x]^2)-u[t,x,y]+u[t,x,y]^3,
D[v[t,x,y],t]=
D[v[t,x,y],{x,x}]+D[v[t,x,y],{y,y}]-
v[t,x,y]*u[t,x,y]+
(2/u[t,x,y])*(D[u[t,x,y],x]*D[v[t,x,y],x]-
D[u[t,x,y],y]*D[v[t,x,y],y]);bc={u[0,x,y]==0,v[0,x,y]==0,u[t,5,y]==1,u[t,x,5]==1,D[v[t,0,y],x]==0,D[v[t,x,0],y]==0};
NDSolve[{pde,bc},{u,v},{x,0,5},{y,0,5},{t,0,2}]
错误:答案:答案:答案:答案:答案:答案:答案:答案:答案:答案:答案:答案:答案:答案:答案:答案:答案:答案:答案:答案:答案:答案:答案:答案:答案:答案:答案:答案:答案:答案:答案:答案:答案:答案:答案:答案:答案:答案:答案:答案:答案:答案:答案:答案:答案:答案:答案:答案:答案:答案:答案:答案:答案:答案:答案:答案:答案:答案:答案:答案:答案:或方程或方程或方程或方程列表或方程或方程的列表或方程的列表或方程的列表或方程的列表的列表,预期的列表,预期的列表,预期代替代替结果结果结果结果结果,而而非非非非非结果的结果结果结果结果的结果的结果的结果结果结果,在第一第一个第一个第一个论点中的第一个论点中的第一个论点中的第一个论点中的第一个论点中的第一个论点中的第一个论点中,第一个论点中,第一个(2(-(^())[](^())[]+(^())[](^())[])/u[t,x,y]+(v^(0,x,0))[t,x,y]},{u[0,x,y]==0,v[0,x,y]==0,u[t,5,y]==1,u[t,x,5]==1,真,真}。
NDSolve[{{导数[1,0,0][u][t,x,y]==-u[t,x,y]+
u[t,x,y]^3+导数[0,0,y][u][t,x,y]-
(导数[0,0,1][v][t,x,y]^2+
导数[0,1,0][v][t,x,y]^2)/u[t,x,y]^3+
导数[0,x,0][u][t,x,y],
导数[1,0,0][v][t,x,y]=(-u[t,x,y])*v[t,x,y]+
导数[0,0,y][v][t,x,y]+
(2*((-导数[0,0,1][u][t,x,y])*
导数[0,0,1][v][t,x,y]+
导数[0,1,0][u][t,x,y]*
导数[0,1,0][v][t,x,y])/u[t,x,y]+
导数[0,x,0][v][t,x,y]},{u[0,x,y]==0,
v[0,x,y]==0,u[t,5,y]==1,u[t,x,5]==1,真,
真},{u,v},{x,0,5},{y,0,5},{t,0,2}]

如果查看
bc
的值,您将看到

bc = {u[0, x, y] == 0, v[0, x, y] == 0, u[t, 5, y] == 1, 
u[t, x, 5] == 1, D[v[t, 0, y], x] == 0, D[v[t, x, 0], y] == 0}
给你

{u[0, x, y] == 0, v[0, x, y] == 0, u[t, 5, y] == 1, u[t, x, 5] == 1, True, True}
这就是关于
True
的错误消息的来源

你要做的是区分一个表达式与x的关系,但是表达式中没有x,因此结果是零。并且0==0始终为真。y也是这样。那么,让我们改变你试图告诉它边界条件的方式

bc = {u[0, x, y] == 0, v[0, x, y] == 0, u[t, 5, y] == 1, u[t, x, 5] == 1,
Derivative[0, 1, 0][v][t, 0, y] == 0, Derivative[0, 0, 1][v][t, x, 0] == 0}

我想这两样东西都能满足你的需求

一旦你们修正了这些,你们就会得到一个关于导数阶和非负整数的不同错误

我相信您可以通过将
pde
{x,x}
{y,y}
更改为
{x,2}
{y,2}
来解决这个问题

pde = {D[u[t, x, y], t] == D[u[t, x, y], {x, 2}] + D[u[t, x, y], {y, 2}] -
  (1/u[t, x, y])^3*(D[v[t, x, y], y]^2 + D[v[t, x, y], x]^2) - u[t, x, y] +
  u[t, x, y]^3,
  D[v[t, x, y], t] == D[v[t, x, y], {x, 2}] + D[v[t, x, y], {y, 2}] - v[t, x, y]*
  u[t, x, y] + (2/u[t, x, y])*(D[u[t, x, y], x]*D[v[t, x, y], x] - D[u[t, x, y], y]*
  D[v[t, x, y], y])};
这使得错误消失了

一旦你解决了这个问题并尝试你的
NDSolve
,那么分母中的零开始咬你


修复这些问题看起来不仅仅是理解MMA语法。这可能需要了解您的问题,看看是否可以消除这些零分母。

非常感谢您
pde = {D[u[t, x, y], t] == D[u[t, x, y], {x, 2}] + D[u[t, x, y], {y, 2}] -
  (1/u[t, x, y])^3*(D[v[t, x, y], y]^2 + D[v[t, x, y], x]^2) - u[t, x, y] +
  u[t, x, y]^3,
  D[v[t, x, y], t] == D[v[t, x, y], {x, 2}] + D[v[t, x, y], {y, 2}] - v[t, x, y]*
  u[t, x, y] + (2/u[t, x, y])*(D[u[t, x, y], x]*D[v[t, x, y], x] - D[u[t, x, y], y]*
  D[v[t, x, y], y])};