姓名学号中国海洋大学偏微分方程的数值解法第一次作业.docx
- 文档编号:6636070
- 上传时间:2023-01-08
- 格式:DOCX
- 页数:10
- 大小:118.40KB
姓名学号中国海洋大学偏微分方程的数值解法第一次作业.docx
《姓名学号中国海洋大学偏微分方程的数值解法第一次作业.docx》由会员分享,可在线阅读,更多相关《姓名学号中国海洋大学偏微分方程的数值解法第一次作业.docx(10页珍藏版)》请在冰豆网上搜索。
姓名学号中国海洋大学偏微分方程的数值解法第一次作业
偏微分方程的数值解法
上机习题一
题目:
用
计算下列导函数的近似值,并作图验证差商的阶数。
求解:
(1)先编写2个函数文件primitive.m和derivative.m分别记录4个原函数和4个导函数
(2)再编写脚本文件jieshu.m,脚本文件分成三个部分:
Part
确定在
时计算哪个导函数的逼近并用字符串(以便第三部分作图时使用)记录;
Part
计算
和对应的
计算公式为:
又由
得
Part
先分别以log(h)为x轴,以log(r)为y轴作图,同时做出斜率为k的线,观察两条线是否平行,验证差商的阶数。
再将五个差商对应的线画到一张图中比较倾斜程度。
程序:
PartI——记录4个原函数
functionu=primitive(n,x)
%记录4个原函数
switchn
case1
u=sin(x);
case2
u=2/3.*x.^(3/2);
case3
ifx<0
u=-x.^2/2;
else
u=x.^2/2;
end
case4
u=exp(x);
end
end
PartII——记录4个导函数
functionu1=derivative(n,x)
%记录4个导函数
switchn
case1
u1=cos(x);
case2
u1=sqrt(x);
case3
u1=abs(x);
case4
u1=exp(x);
end
end
Part
——计算差商并作图
clc;clear;
x=2;%x为求在x处的导数
fprintf('%s\n%s\n%s\n%s\n%s\n','n导函数','1cos(x)','2sqrt(x)','3abs(x)','4exp(x)');
n=input('请问您要计算的导函数是第几个,请输入导函数前的数字n=');%求第n个导函数的逼近
%记录第n个导函数
switchn
case1
str='cos(x)';
case2
str='sqrt(x)';
case3
str='abs(x)';
case4
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);
holdon
%对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)为y轴作图,同时做出斜率为1的线,观察两条线是否平行
subplot(2,3,3);
plot(log(h),log(rf),'s',log(h),log(h)-(log(h
(1))-log(rf
(1))));
legend('D-','k=1');
title(['u‘=',str,',x=',num2str(x),'时,用一阶近似D-逼近']);
xlabel('log(h)');ylabel('log(r)');
%对D3,以log(h)为x轴,以log(r)为y轴作图,同时做出斜率为3的线,观察两条线是否平行
subplot(2,3,4);
plot(log(h),log(r3),'s',log(h),3*log(h)-(3*log(h
(1))-log(r3
(1))));
legend('D3','k=3');
title(['u‘=',str,',x=',num2str(x),'时,用三阶近似D3逼近']);
xlabel('log(h)');ylabel('log(r)');
%对D4,以log(h)为x轴,以log(r)为y轴作图,同时做出斜率为4的线,观察两条线是否平行
subplot(2,3,5);
plot(log(h),log(r4),'s',log(h),4*log(h)-(4*log(h
(1))-log(r4
(1))));
legend('D4','k=4');
title(['u‘=',str,',x=',num2str(x),'时,用四阶近似D4逼近']);
xlabel('log(h)');ylabel('log(r)');
%对所有D,以log(h)为x轴,以log(r)为y轴作图,同时做图,观察五条线倾斜程度
subplot(2,3,6);
plot(log(h),log(r0),'.',log(h),log(rz),'s',log(h),log(rf),'o',log(h),log(r3),'d',log(h),log(r4),'*');
legend('D0','D+','D-','D3','D4');
title(['u‘=',str,',x=',num2str(x),'时,用D0,D+,D-,D3,D4逼近']);
xlabel('log(h)');ylabel('log(r)');
holdoff
运行结果
(1)
(2)
(3)
(4)
结果分析
(1)分析图像
的斜率,可验证
分别为二阶,一阶,一阶,三阶,四阶。
(2)当
时,
,此时
的图像杂乱,原因为该函数三阶及以上导函数为0,
不妨设
,则
,
可知
与
无关。
(3)
改变
的值,当
的值为
的整数倍时,对
作图,可发现
有与其他图像重合的现象。
比如
时,
的图像重合。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 姓名 学号 中国海洋 大学 微分方程 数值 解法 第一次 作业
![提示](https://static.bdocx.com/images/bang_tan.gif)