姓名_学号_中国海洋大学偏微分方程的数值解法第一次作业.docVIP

  • 1
  • 0
  • 约3.19千字
  • 约 10页
  • 2018-04-30 发布于河南
  • 举报

姓名_学号_中国海洋大学偏微分方程的数值解法第一次作业.doc

姓名_学号_中国海洋大学偏微分方程的数值解法第一次作业.doc

偏微分方程的数值解法 上机习题一 题目: 用 计算下列导函数的近似值,并作图验证差商的阶数。 求解: 先编写2个函数文件primitive.m和derivative.m分别记录4个原函数和4个导函数 再编写脚本文件jieshu.m,脚本文件分成三个部分: Part I确定在时计算哪个导函数的逼近并用字符串(以便第三部分作图时使用)记录; Part II计算和对应的 计算公式为: 又由 得 Part III 先分别以log(h)为x轴,以log(r)为y轴作图,同时做出斜率为k的线,观察两条线是否平行,验证差商的阶数。再将五个差商对应的线画到一张图中比较倾斜程度。 程序: Part I——记录4个原函数 function u=primitive(n,x) %记录4个原函数 switch n case 1 u=sin(x); case 2 u=2/3.*x.^(3/2); case 3 if x0 u=-x.^2/2; else u=x.^2/2; end case 4 u=exp(x); end end Part II——记录4个导函数 function u1=derivative(n,x) %记录4个导函数 switch n case 1 u1=cos(x); case 2 u1=sqrt(x); case 3 u1=abs(x); case 4 u1=exp(x); end end Part III——计算差商并作图 clc;clear; x=2;%x为求在x处的导数 fprintf(%s\n%s\n%s\n%s\n%s\n,n 导函数,1 cos(x),2 sqrt(x),3 abs(x),4 exp(x)); n=input(请问您要计算的导函数是第几个,请输入导函数前的数字n=);%求第n个导函数的逼近 %记录第n个导函数 switch n case 1 str=cos(x); case 2 str=sqrt(x); case 3 str=abs(x); case 4 str=exp(x); end %给出h,计算D0,D+,D-,D3,D4和对应的r(h) h=0.01:0.001:0.02; D0=(primitive(n,x+h)-primitive(n,x-h))./(2*h);r0=abs(derivative(n,x)-D0); Dz=(primitive(n,x+h)-primitive(n,x))./h;rz=abs(derivative(n,x)-Dz); Df=(primitive(n,x)-primitive(n,x-h))./h;rf=abs(derivative(n,x)-Df); D3=(2*primitive(n,x+h)+3*primitive(n,x)-6*primitive(n,x-h)+primitive(n,x-2*h))./(6*h);r3=abs(derivative(n,x)-D3); D4=4/3*D0-(primitive(n,x+2*h)-primitive(n,x-2*h))./(12*h);r4=abs(derivative(n,x)-D4); hold on %对D0,以log(h)为x轴,以log(r)为y轴作图,同时做出斜率为2的线,观察两条线是否平行 subplot(2,3,1); plot(log(h),log(r0),s,log(h),2*log(h)-(2*log(h(1))-log(r0(1)))); legend(D0,k=2); title([u‘=,str,,x=,num2str(x), 时,用二阶近似D0逼近]); xlabel(log(h));ylabel(log(r)); %对D+,以log(h)为x轴,以log(r)为y轴作图,同时做出斜率为1的线,观察两条线是否平行 subplot(2,3,2); plot(log(h),log(rz),s,log(h),log(h)-(log(h(1))-log(rz(1)))); legend(D+,k=1); title([u‘=,str,,x=,num2str(x), 时,用一阶近似D+逼近]); xlabel(log(h));ylabel(log(r)); %对D-,以log(h)为x轴,以log(r)为

文档评论(0)

1亿VIP精品文档

相关文档