การแก้ PDE $\partial_t u = \partial_x (u^2 \partial_xu)$

Sep 19 2020

ฉันกำลังพยายามใช้ Mathematica เพื่อแก้สมการต่อไปนี้ $$\partial_t u = \partial_x (u^2 \partial_xu)$$ ด้วย $$u(0,t)=u(1,t)=0$$ และ $$u_0(x)=\sin(\pi x)$$เพื่อตรวจสอบวิธีการเชิงตัวเลขที่ฉันพัฒนาด้วย Python สิ่งที่ฉันได้รับในเวลา$t=1$ ด้วย Python เป็นสิ่งต่อไปนี้:

ฉันต้องการใช้ Mathematica เพื่อดูว่าโซลูชันนั้นเหมือนกับที่ฉันได้รับหรือไม่ แต่เนื่องจากฉันไม่คุ้นเคยฉันจึงไม่สามารถทำเช่นนั้นได้และฉันต้องการการตรวจสอบ

ขอยืนยันหรือตรวจสอบใด ๆ ทั้งสิ้น!

คำตอบ

5 chris Sep 19 2020 at 02:31

เกี่ยวกับ

sol = NDSolveValue[{
   D[u[x, t], t] == D[u[x, t]^2 D[u[x, t], x], x],
   u[0, t] == 0, u[1, t] == 0, u[x, 0] == Sin[Pi x]}
  , u, {x, 0, 1}, {t, 0, 1}]

แล้ว

Plot[sol[x, t] /. t -> Range[0, 5]/5 // Evaluate, {x, 0, 1}, 
 PlotLegends -> Range[0, 5]/5, PlotStyle -> ColorData[10]]