用Matlab求解二維熱傳導方程的執行個體
①求滿足下列條件的二維熱傳導方程的解:
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIyZuBnL0UTOzgzYjJWZwYjZygDZiFWOlRTM3ATZlRWZ4gjNiBzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
在MATLAB指令視窗中輸入求解程式:
a=0.5;
u_xy0=inline('0','x','y');
u_xyt=inline('x^2*sin(y)-y^2*sin(x)','x','y','t');
D=[0,5,0,5];
T=1000;
Mx=50;
My=50;
N=50;
[u,x,y,t]=sjy(a,D,T,u_xy0,u_xyt,Mx,My,N);
mesh(x,y,u)
xlabel('x')
ylabel('y')
zlabel('U')
輸出計算結果為:
rx =
1.0000e+003
ry =
1.0000e+003
運作結果如下:
此解即為差分方程的近似解。
可以利用MATLAB的工具箱PDETOOL:
②求解如下二維熱傳導方程
在MATLAB指令視窗中輸入求解程式:
a=10;
u_xy0=inline('0','x','y');
u_xyt=inline('x*sin(pi*y)-y*sin(pi*x)','x','y','t');
D=[0,2,0,4];
T=500;
Mx=80;
My=80;
N=40;
[u,x,y,t]=sjy(a,D,T,u_xy0,u_xyt,Mx,My,N);
mesh(x,y,u)
xlabel('x')
ylabel('y')
zlabel('t')
輸出計算結果為:
rx =
2.0000e+005
ry =
5.0000e+004
計算結果如下:
可以利用MATLAB的工具箱PDETOOL:
關注我,更多MATLAB程式設計基礎問題持續更新~~