2010-10-26 87 views
0

我想找到数值广场上ÿ∈[0,1]中,x∈[0,1]数学求解微分方程

其中f = 1,如果在该溶液

u_t - u_xx - u_yy = f单位圆,否则f = 0。所有四条边的边界条件都是u = 0。

我一直试图使用ND解决了很久,但我不断收到错误消息。我是Mathematica的新手,所以我不知道如何在ND-Solve之前定义f。

预先感谢您。

回答

1

对于像这样的东西,Mathematica帮助文件非常完整。我要去reference the online version,但请注意,在Mathematica的帮助浏览器中,您可以交互式修改和评估帮助示例。这是我学习Mathematica的唯一途径。打算做一个比较语句时,这是很容易定义一个函数,如ü˚F

一点,然后再开始尝试更多的东西。毫无疑问,虽然有些懒惰,但解决潜在的问题的方法是退出当前的内核,然后再评估一下。退出内核会丢失您可能意外定义的所有符号。 (启动一个新的内核也是为什么Mathematica会在第一次做任何操作时搅动一点点,即使它是简单的加法。)

继续处理手头的问题......在上面链接的参考文献中,给出一个样本,它解决了与你的例子非常相似的一维热方程。让我们开始与和修改:

NDSolve[{D[u[t, x], t] == D[u[t, x], x, x], u[0, x] == Q0, 
    u[t, 0] == Sin[t], u[t, 5] == 0}, 
    u, {t, 0, 10}, {x, 0, 5}] 

他们的方程是∂ù = ∂Ü XX与初始能量为Q0的边界条件在时间0&的forall; x,则能量在x = 0时为(t)的和在X = 5的能量为0 &的forall;吨。你可以在上面看到希望如何映射。现在,让我们尝试同为你的条件:

NDSolve[{D[u[t, x, y], t] - D[u[t, x, y], x, x] - D[u[t, x, y], y, y] == f[x, y], 
    f[x,y] == If[x^2 + y^2 < 1, 1, 0], 
    u[t, 0, y] == 0, u[t, 1, y] == 0, 
    u[t, x, 0] == 0, u[t, y, 1] == 0 } 
    u, {x, 0, 1}, {y, 0, 1}] 

我认为这是对的。不过,这里至少还有一个问题。 t仍然是一个自由变量。你没有提供任何方程式来限制它,所以系统是不明确的。