Sto cercando di risolvere un'equazione differenziale di conduzione al calore molto semplice con NDSolve in Mathematica, ma la soluzione che ottengo è abbastanza strano ...

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

Domanda

Questa è un'equazione differenziale di conduzione di calore con la fase solida molto dimensionale molto semplice, ecco il mio codice:

 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])
.

Dopo averlo eseguito, vedrai: la temperatura (nell'equazione che ha denominato TES) è inferiore a 298!È ridicolo, è contro la seconda legge della termodinamica ... Come viene fuori questo errore?Come posso correggerlo?

È stato utile?

Soluzione 2

Questo problema è stato risolto qui ,

Dovrei ammettere che non ho ancora catturato la natura in quel momento ho postato questa domanda ...

Altri suggerimenti

Mi occuperò solo degli aspetti numerici di questo.Innanzitutto, scalabilità e spazio in modo che la tua equazione diventa $ \ partial_t f=partial_ {x, x} f $ nelle unità senza dimensione.Quindi, ad esempio,

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"}]
.

Matematica grafica

Così il calore si diffonde solo verso l'interno (nota ho cambiato il limite e le condizioni iniziali).

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top