2010-10-26 83 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仍然是一個自由變量。你沒有提供任何方程式來限制它,所以系統是不明確的。