這是一個非常簡單的一維固相導熱微分方程,這裏是我的代碼:我試圖在Mathematica中用NDSolve解決一個非常簡單的熱傳導微分方程,但我得到的解決方案很奇怪...
a = NDSolve[{D[721.7013888888889` 0.009129691127380562` tes[t, x],
t] == 2.04988920646734`*^-6 D[tes[t, x], x, x],
tes[t, 0] == 298 + 200 t, tes[t, 0.01] == 298,
tes[0, x] == 298}, {tes[t, x]}, {t, 0, 0.005}, {x, 0, 0.01}]
Plot3D[tes[t, x] /. a, {t, 0, 0.005}, {x, 0, 0.01}, PlotRange -> All]
(Plot[(tes[t, x] /. a) /. t -> 0.0005, {x, 0, 0.01},
PlotRange -> All])
運行後,您會看到:溫度(在等式中命名爲tes)低於298!這是荒謬的,這是違反熱力學的第二定律......這個錯誤是怎麼產生的?我該如何糾正它?
呃......你什麼意思我應該做的是轉向(也許在這裏我應該說創造?)一個新的單位系統,使PDE的係數更簡單?看起來沒用......:a = NDSolve [{D [tes,t],x],t] == D [tes [t,x],x,x], tes [t,0] == 298 + [t,x] = {t,0.01/Sqrt [2.04988920646734 * * - 6]] 298, tes [0,x] == 298},{tes [t,x]},{t ,0, 0.005/6.588910766757118'},{x,0, 0.01/Sqrt [2.04988920646734' *^- 6]}] 繪製[(tes [t,x]/.a)/。 t - > 0.0005/6.588910766757118',{x,0, 0.01/Sqrt [2.04988920646734' *^- 6]},PlotRange - > All] – xzczd 2012-07-29 07:04:29
您可能應該閱讀關於在進行數字化之前用無量綱變量表示事物。 – acl 2012-07-29 12:06:34
呃......對不起,我的英文不太好,也許我只是誤解了你,但是......恐怕我不明白你的意思,實際上原文中的數字(如2.04988920646734' *^- 6)都是用SI單位表示的,所以......用無量綱數來表示數字的含義是什麼? – xzczd 2012-07-29 14:09:08