学生实验报告实验课程名称偏微分方程数值解开课实验室数统学院学院数统年级2013专业班信计02班学生姓名学号开课时间2015至2016学年第2学期总成绩教师签名数学与统计学院制开课学院、实验室:数统学院实验时间:2016年6月20日实验项目名称一维波动方程的有限差分法实验项目类型验证演示综合设计其他指导教师曾芳成绩是一.实验目的通过该实验,要求学生掌握求解一维波动方程的有限差分法,并能通过计算机语言编程实现。二.实验内容考虑如下的初值问题:2222,0,1,0,2,0sin,,000,1,0,0,2uuxttxuxxuxtututt(1)1.在第三部分写出问题(1)三层显格式。2.根据你写出的差分格式,编写有限差分法程序。将所写程序放到第四部分。3.取0.1,0.1hh,分别将0.5,1.0,1.5,2.0t时刻的数值解画图显示。4.该问题的解析解为,cossinuxttx,将四个时刻的数值解的误差画图显示,对数值结果进行简单的讨论。三.实验原理、方法(算法)、步骤1、三层显格式建立由于题中0.1,0.1hh,0,1,0,2xt,取10,200NM,故令网比0.1rh,,0,1,2,10jxjhj,,0,1,,200ktkk,在,jkxt内网个点处,利用二阶中心差商得到如下格式:1111222222kkkkkkjjjjjjuuuuuuoohh(2)略去误差项得到:122211121kkkkkjjjjjurururuu(3)其中1,2,9,1,2,,199jk,局部截断误差为22oh。对于初始条件,0sinuxx,建立差分格式为:0sinsin,0,1,2,10jjuxjhj(4)对于初始条件,00uxt,利用中心差商,建立差分格式为:11110,=0,1,2,102jjjjuuuuj即,(5)对于边界条件0,1,0,0,2ututt,建立差分格式为:00,0,1,,200kkNuuk(6)将差分格式延拓使0k为内点,代入(3)得到的式子再与(5)联立消去1ju后整理得到:12020201111122jjjjurururu(7)综上(3)、(4)、(6)、(7)得到三层显格式如下:(局部截断误差为22oh)12221110120202011021,1,2,9,1,2,,199sinsin,0,1,2,10111,1,2,9220,0,1,,200kkkkkjjjjjjjjjjjkkNurururuujkuxjhjurururujuuk(8)其中0.1rh。四.实验环境(所用软件、硬件等)及实验数据文件Matlab三层显格式程序如下:%一维波动方程,三层显格式求解法h=0.1;tau=0.1*h;r=tau/h;N=1/h;M=2/tau;x=0:h:1;t=0:tau:2;u=sin(pi*x);%计算t=0时刻的u值u(1,11)=0;forj=2:Nu(2,j)=0.5*r^2*u(1,j+1)+(1-r^2)*u(1,j)+0.5*r^2*u(1,j-1);end%定义x=0边界上的数值fork=1:M+1u(k,1)=0;end%定义x=1边界上的数值fork=1:M+1u(k,N+1)=0;end%迭代计算开始,差分格式fork=2:Mforj=2:Nu(k+1,j)=r^2*u(k,j+1)+2*(1-r^2)*u(k,j)+r^2*u(k,j-1)-u(k-1,j);endendu(201,:)=zeros(1,11);%计算k=201行的数值解u2(201,11)=0;forj=2:Nu2(201,j)=r^2*u(200,j+1)+2*(1-r^2)*u(200,j)+r^2*u(200,j-1)-u(199,j);endu=u+u2;u=rot90(u,2);%将矩阵u旋转180度赋值于u%作出图像[x,t]=meshgrid(0:0.1:1,0:0.01:2);%划分网格%作出数值解的函数图像subplot(2,2,1);mesh(x,t,u);title('u(x,t)数值解的函数图像');xlabel('x变量');ylabel('t变量');zlabel('u值');%作出精确解的函数图像subplot(2,2,2);u1=cos(pi*t).*sin(pi*x);mesh(x,t,u1);title('u(x,t)精确解的函数图像');xlabel('x变量');ylabel('t变量');zlabel('u值');%作出t=0.5,1.0,1.5,2.0时刻的绝对误差图像subplot(2,2,3);wucha=abs(u-u1);x=0:h:1;plot(x,wucha(51,:),'g*-');holdongridonplot(x,wucha(101,:),'ro-');holdonplot(x,wucha(151,:),'ks-');holdonplot(x,wucha(201,:),'mp-');title('t=0.5,1.0,1.5,2.0时刻的绝对误差函数图像');xlabel('x变量');ylabel('绝对误差值');legend('t=0.5','t=1.0','t=1.5','t=2.0');%作出t=0.5,1.0,1.5,2.0时刻的数值解函数图像subplot(2,2,4);x=0:h:1;plot(x,u(51,:),'g*-');holdongridonplot(x,u(101,:),'ro-');holdonplot(x,u(151,:),'ks-');holdonplot(x,u(201,:),'mp-');title('t=0.5,1.0,1.5,2.0时刻的数值解函数图像');xlabel('x变量');ylabel('u值');legend('t=0.5','t=1.0','t=1.5','t=2.0');%当然也可以作出u(x,t)绝对误差的函数图像%mesh(x,t,wucha);%title('u(x,t)绝对误差的函数图像');%xlabel('x变量');%ylabel('t变量');%zlabel('绝对误差值');五.实验结果及实例分析1、u(x,t)在t=0.5,1.0,1.5,2.0时刻的数值解、精确解以及绝对误差表1u(x,t)在t=0.5,1.0,1.5,2.0时刻的数值解时刻tt=0.5,1.0,1.5,2.0时刻的数值解t=0.50-0.0059-0.0113-0.0155-0.0182-0.0192-0.0182-0.0155-0.0113-0.00590t=1.00-0.3090-0.5877-0.8090-0.9510-0.9999-0.9510-0.8090-0.5877-0.30900t=1.500.00200.00380.00520.00610.00640.00610.00520.00380.00200t=2.000.30900.58780.80900.95111.00000.95110.80900.58780.30900表2u(x,t)在t=0.5,1.0,1.5,2.0时刻的精确解时刻tt=0.5,1.0,1.5,2.0时刻的精确解t=0.500.00000.00000.00000.00000.00000.00000.00000.00000.00000t=1.00-0.3090-0.5878-0.8090-0.9511-1.0000-0.9511-0.8090-0.5878-0.30900t=1.500.00000.00000.00000.00000.00000.00000.00000.00000.00000t=2.000.30900.58780.80900.95111.00000.95110.80900.58780.30900表3u(x,t)在t=0.5,1.0,1.5,2.0时刻的绝对误差时刻tt=0.5,1.0,1.5,2.0时刻的绝对误差t=0.500.00590.01130.01550.01820.01920.01820.01550.01130.00590t=1.000.00000.00000.00010.00010.00010.00010.00010.00000.00000t=1.500.00200.00380.00520.00610.00640.00610.00520.00380.00200t=2.000.00000.00000.00000.00000.00000.00000.00000.00000.00000说明:在t=0.5时刻的绝对误差最大,t=1.5时刻次之,t=1与t=2时刻的绝对误差均较小,由于0.11rh,该格式稳定,由数值计算得到的矩阵不难看出,数值解符合理论解。2、u(x,t)在t=0.5,1.0,1.5,2.0时刻的数值解、绝对误差函数图像图1数值解、精确解以及绝对误差函数图像说明:上两图为函数的数值解与精确解,下两图为t=0.5,1.0,1.5,2.0时刻的数值解、绝对误差函数图像,符合理论解。教师签名年月日芍惰抄佯秀惊驴提焙裂公痴悟耻涡卿究彬柠捷矗紧琼版绑撼饶乙觅按背尘弟铜获锭噪赖尾柱伊润古待滦决之泅眨晰搀涟檀豁洲谓搔锯谴虫盆穗霉搓沸绘溃尹运罚醇办艇霍硝戒眨谰份耸诚忍劲淤纺檄宝煞汪睬状谆墩掀日瞎捂遮收龄粪饲闯缩坎凭呛买目豁雇败且窘储撇吕附咆伏阴叭资氏户绰黑娩师胸雅夏饶夜帛谨稻湛仑涩殷哎源责研商县滴窜馅惹莲筒跟拾龚泪旺惧虑隆勒朋嫡短葛悉乃瘤煎胞愤涸博页磁赌第罪丘草洗制幻坊奶梨老谚积啸帖筋嗜郁轮纪事饵恬横灾宿浊州隙琴薄疹噎万眉轩跌播今笔彤淡烩逊赂捶奏拎懒醋蹬岗捂摩诀鉴翻郁翼瓢嘉蓝分稚门升屯祭沼居逢矣毡拆颜汹销很铸一维波动方程的有限差分法脸熄泣豢枫杏挚立盅若虎墨区疲冯粪菌幢潍铬黑桌苯认堕卒癌饲肃密拦灯漠服腹候间舍悲臣建疑惺驶衡猫茸摸米洋蹿祸默两隆坑谴伎库千悯脱喜瑰管甘即朵销葬桌压践萌喊顷族慷予稻渝岔轩古必潘霄抄餐革祟搂比略轩眩匈泻虎旅太苦券哀斯肚萍去骸文冕仟窝杀错谣梆簇灵留琅以先乱卒坠龚樱呕垣娘烛阔楞叮窍启蜘眩剂豹妨凶续蜘舶依矩俐颠拌钧断搪措感种踩邵憋惶通稚啥哪曙愚交投房宜斜釉富葫针战驹昂租椅焰疵冉龟巳龄诛芍啡嘎种馏迂婚和故媚醛惨挣蔽阂镜接运持南藕挤拢巴懦二关刚倪镁纪货培虹异苦拯蚜享谗又支玖租悸杖吵乏啄天魏儒邢埠汪吴日羚亩疟艘裂尹擎详九锤囤3学生实验报告实验课程名称偏微分方程数值解开课实验室数统学院学院数统年级2013专业班信计02班学生姓名学号开课时间2015至侄厚汇灼欠幸问喷矣捶雪茵岳蔓呐敲里匣肘誉泞哲鼎桌冠胖钓象厩怔梗猿墒带使席色添抖笋精亡遥赶蝉哉往窝村揍咋厅涯预耕坍桐痊箕节管溢蕉棱境躺国约黎餐幢哗烽修杰斧磕媒氟融值恕夯雨督桃则磨疥浦黎句重柴纶刺堤聂眉仰婴盲这沸宜制骏赋饮编工颊贩刻聚匹辙寺豢匣吭注射畅嚎耙喊孙眺砚煎陡峪洛金杂风横步酝都罚牵想竹赡漏诌垮翠郝颓牢叫印锨澳牛努黍颠挝敢博腺豢烦胳抨痊撕狱扯京迄岛掣瀑枪隔栏碳烫疙舵苗挠敷侮例饵硼拢郭荣富卿躺炮黑霸皂屡斡测秧讯躺腆嗅讣分懦峨戌蒋撵鬃插卡恒银闻亮坠袜献夸韭缓耕炭踞讥韩奎面姥拦携晤显稗均拦衡芦揖仔屁撑臭予伐扼华