('一维热传导方程Lastrevisionon21December2020一维热传导方程一.问题介绍考虑一维热传导方程:(1)∂u∂t=a∂2u∂x2+f(x),012时,向前差分格式的误差无限增长。因此向前差分格式是条件稳定。(3)向后差分格式和六点对称格式都绝对稳定,且各自的截断误差阶分别为O(τ+h2)和O(τ2+h2)。五.数值例子例1令f(x)=0和a=1,可求得u(x,t)一个解析解为u(x,t)=exp(x+t)。1.用向前差分格式验证得数值结果如下:请输入n的值(输入0结束程序):2请输入m的值(输入0结束程序):17xjtk真实值x[i][k]近似值u[i][k]误差err[i][k]当n等于2和m等于17时最大误差为其中r=1/2,格式是稳定的。2.用向后差分格式验证得数值结果如下:请输入n的值(输入0结束程序):6请输入m的值(输入0结束程序):6xj真实值x[i]近似值u[i]误差err[i]第1层结果时间节点Tk=第1层的最大误差是第2层结果时间节点Tk=第2层的最大误差是第3层结果时间节点Tk=第3层的最大误差是第4层结果时间节点Tk=第4层的最大误差是第5层结果时间节点Tk=第5层的最大误差是第6层结果时间节点Tk=第6层的最大误差是当n等于6时最大误差为3.用六点对称格式验证数值结果如下:请输入n的值(输入0结束程序):6请输入m的值(输入0结束程序):6xj真实值x[i]近似值u[i]误差err[i]第1层结果时间节点Tk=第1层的最大误差是第2层结果时间节点Tk=第2层的最大误差是第3层结果时间节点Tk=第3层的最大误差是第4层结果时间节点Tk=第4层的最大误差是第5层结果时间节点Tk=第5层的最大误差是第6层结果时间节点Tk=第6层的最大误差是当n等于6时最大误差为4.用Richardson格式验证数值结果如下:请输入n的值(输入0结束程序):5请输入m的值(输入0结束程序):5xjtk真实值x[i][k]近似值u[i][k]误差err[i][k]附录1#include<>#include<>#include<>#defineMax_N1000doubleu[Max_N][Max_N],b[Max_N],a[Max_N],c[Max_N],f[Max_N],err[Max_N][Max_N],x[Max_N][Max_N],y[Max_N],beta[Max_N],Err[Max_N];intn,m;{h=(n+1);t=(m+1);r=t/(hh);for(i=0;i<=n+1;i++){h=(n+1);t=(m+1);r=t/(hh);printf("xj真实值x[i]近似值u[i]误差err[i]\\n");doubleM=0;{h=(n+1);t=(m+1);r=t/(hh);printf("xj真实值x[i]近似值u[i]误差err[i]\\n");doubleM=0;{h=(n+1);t=(m+1);r=t/(hh);for(i=0;i<=n+1;i++)//初值条件{u[i][0]=exp(ih);}for(k=0;k<=m+1;k++)//边值条件{u[0][k]=exp(kt);u[n+1][k]=exp((n+1)h+kt);}printf("xjtk真实值x[i][k]近似值u[i][k]误差err[i][k]\\n");b[1]=1+r;c[1]=-r/2;a[n]=-r/2;b[n]=1+r;f[1]=r/2u[2][0]+(1-r)u[1][0]+r/2+r/2u[0][1];f[n]=r/2u[n+1][0]+(1-r)u[n][0]+r/2u[n-1][0]+r/2u[n+1][1];for(i=2;iu[i][k]x[i][k]-u[i][k]:u[i][k]-x[i][k];printf("%lf%lf%lf%lf%lf\\n",ih,kt,x[i][k],u[i][k],err[i][k]);}}printf("请输入n的值(输入0结束程序):");if(scanf("%d",&n))printf("请输入m的值(输入0结束程序):");}system("PASUE");return0;}',)