سؤال

أنا أعمل على تعيين تدرج درجة الحرارة في بعدين ولدي الكثير من المتاعب. تتمثل مقاربي الحالية في تحديد وظيفة الإقامة ثم محاولة رسمها في عدة مرات ، ثم تحريك جدول الرسوم البيانية. هذا ما لدي حتى الآن:

RT = 388.726919
R = 1
FUNC == NDSolve[{D[T[x, y, t], t] == 
RT*(D[T[x, y, t], x, x] + D[T[x, y, t], y, y]),

   T[x, y, 0] == 0,
   T[0, y, t] == R*t,
   T[9, y, t] == R*t,
   T[x, 0, t] == R*t,
   T[x, 9, t] == R*t},

  T, {x, 0, 9}, {y, 0, 9}, {t, 0, 6}]

وبالتالي فإن المتغيرين الأولين يتحكمان فقط في معدل التغيير. المعادلة التي أحلها هي معادلة الحرارة 2D الأساسية ، حيث dt/dt = a (d^2t/dx^2+d^2t/dy^2). تضع الشروط الأولية كل شيء على 0 ، ثم تحدد الحواف كمصدر لتغيير الحرارة. في الوقت الحالي ، يكتسح كتلة 9x9 من t = 0 إلى t = 6.

الجزء الثاني يحاول تحريك الوظيفة العمل.

ListAnimate[
Table[
   DensityPlot[T[x, y, t] /. FUNC, {x, 0, 9}, {y, 0, 9}, Mesh -> 9]
, {t, 0, 6}]
]

لسوء الحظ ، هذا لا يعمل ، وأنا مجنون بمحاولة معرفة السبب. اعتقدت أولاً أن لديها علاقة بوظيفة التداخل ، لكنني لست واثقًا من أن رمز الرسوم المتحركة يعمل أيضًا. هل لدي احد اى افكار؟

هل كانت مفيدة؟

المحلول

مجرد فحص سريع:

RT = 1
R = 1
FUNC = NDSolve[{D[T[x, y, t], t] == 
     RT*(D[T[x, y, t], x, x] + D[T[x, y, t], y, y]), T[x, y, 0] == 0, 
    T[0, y, t] == R*t,
    T[9, y, t] == R*t,
    T[x, 0, t] == R*t,
    T[x, 9, t] == R*t}, T,
   {x, 0, 9}, {y, 0, 9}, {t, 0, 6}];
a = Table[
  Plot3D[T[x, y, t] /. FUNC, {x, 0, 9}, {y, 0, 9}, Mesh -> 15, 
   PlotRange -> {{0, 9}, {0, 9}, {-1, 10}}, 
   ColorFunction -> Function[{x, y, z}, Hue[.3 (1 - z)]]], {t, 0, 6}]
Export["c:\anim.gif", a]

alt text

ملاحظة: يتم تجنب الكثير من الأخطاء باستخدام حرف صغير كأول Char لرموزك ...

نصائح أخرى

أنا مع مارك - لا حرج في برنامجك. المشكلة هي أن لا شيء مثير للاهتمام يحدث لوظيفتك بعد t=0: حاول إلقاء نظرة على

ListAnimate[
 Table[Plot3D[T[x, y, t] /. FUNC, {x, 0, 9}, {y, 0, 9}, Mesh -> 9], {t, 0, 6}]]

كما ترون ، كل ما يحدث هو التحجيم ، بحيث عندما DensityPlot يقوم كل إطار باستقلال بشكل مستقل ، وينتهي بهم الأمر إلى أن يبدو متطابقًا :)

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top