资源描述:
《一维稳态导热问题数值模拟》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、.........................一维稳态导热问题数值模拟问题描述:设有一导热方程,,边界条件为编写一段程序对此问题进行数值模拟。解析:1、用控制容积有限差分方法做出内部节点和边界节点的离散化方程:首先进行离散化,先确定节点,再确定控制容积。将0-1划分为N段,共N+1个节点,N个控制容积,其中。可以得到如下:对原方程建立差分方程,内部节点有:专业资料分享.........................则转换为下式,:i=2,….,N上式即为内部节点的离散化方程。对于外部节点可有:综上可以得到内部节点和外部节点的离散化方程为:即为上式不满足系数为负数
2、,则可改用如下离散方程:内部节点:专业资料分享.........................边界节点边界节点组成代数方程组:写成矩阵方程组:专业资料分享.........................2、写出代数方程组的迭代求解程序:用Matlab编写如下求解程序;(1)高斯赛德尔迭代法(调用程序gauseidel文件)function[x,n]=gauseidel(A,b,x0,eps,M)%高斯迭代格式%线性方程组的系数:A%线性方程组中常数向量:b%迭代初始向量:x0%解的精度控制:eps%迭代步数控制:M%线性方程组的解:x%求出所需精度的解实际迭代步数
3、:nifnargin==3eps=0.000001;M=10000;elseifnargin==4M=10000;endD=diag(diag(A));L=-tril(A,-1);U=-triu(A,1);G=(D-L)U;专业资料分享.........................f=(D-L)b;x=x0;n=0;tol=1;whiletol>=epsx=G*x0+f;n=n+1;tol=norm(x-x0);x0=x;if(n>=M)disp('Warning:’迭代次数过多,可能不收敛.')return;endend(2)主程序(demo文件)如下:N=
4、input('请输入N值''')Tp=input('请输入Tp值''')x1=zeros(N,1)A0=zeros(N);A0(1,1)=N+1/(2*N);A0(1,2)=-N;A0(N,N-1)=-N;A0(N,N)=2*N+1/N;fori=2:N-1A0(i,i-1)=-N;A0(i,i)=2*N+1/N;A0(i,i+1)=-N;endb0=zeros(N,1);b0(1,1)=(1/N)*Tp;b0(N,1)=(2/N)*Tp+N;fori=2:N-1b0(i,1)=(2/N)*Tp;end专业资料分享.......................
5、..A=A0;b=b0;x0=x1;[x,n]=gauseidel(A,b,x0)x=[x;1]t=(0:1/N:1)title('一维稳态导热问题空间温度分布图')xlabel('空间分布X')ylabel('温度分布T')holdonplot(t,x)1.35171.34851.33871.32241.29921.26911.23161.18651.13321.0712方程组的解3、结果分析,以上程序计算当取=1。当N=10时,迭代次数n=3431.35191.35101.34861.34461.33891.33151.32251.31181.29931.2851
6、1.26921.25141.23171.21011.18651.16091.13321.10341.07131.0368方程组的解当N=20时,迭代次数n=1243专业资料分享.........................1.35191.35151.35041.34861.34611.34281.33891.33411.32871.32251.31551.30781.29931.29011.28001.26921.25751.24501.23171.21751.20251.18651.16971.15191.13321.11361.09291.07131.0486
7、1.0248方程组的解当N=30时,迭代次数n=2634以上图形是不同步长下一维稳态导热问题空间温度分布图,由上图可见随着步长的缩短,计算结果更加精确,数值精度越高,收敛速度越慢。(注:程序运行demo文件,gauseidel文件为调用程序)专业资料分享