私はMathematicaのNDSolveと非常に単純な熱伝導微分方程式を解決しようとしていますが、私が得る解決策はかなり奇妙です...

StackOverflow https://stackoverflow.com//questions/11701327

質問

これは非常に単純な一次元固相熱伝導微分方程式であり、ここではマイコードです。

 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より低いです。それはばかげている、それは熱力学の2番目の法則に反する...このエラーはどのように出てくるのですか?どうやって修正できますか?

役に立ちましたか?

他のヒント

これの数値的側面のみを扱います。初めて、方程式のない単位で方程式が$ \ partial_t f=partial_ {x、} f $になるように、スケールの時間とスペース。そして、例えば

a = NDSolve[{D[ tes[t, x], t] == D[tes[t, x], x, x], 
   tes[t, 0] \[Equal] 1,
   tes[t, 1] \[Equal] 1,
   tes[0, x] \[Equal] Cos[2 \[Pi]*x/2]^2},
  tes[t, x],
  {t, 0, 1},
  {x, 0, 1}
  ]

Plot3D[tes[t, x] /. a, {t, 0, .2}, {x, 0, 1}, PlotRange -> All, 
 AxesLabel \[Rule] {"t", "x"}]
.

Mathematica Graphics

だから熱は内側に拡散するだけです(注境界と初期条件を変更しました)。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top