tic;
clear
clc
M=[, ];%空间步数
N=*M;%时间步数
for k=:length(M)
h=/M(k);%空间步长
tau=/N(k);%时间步长
s=tau/h;%步长比
x=:h:;
t=:tau:;
y=inline('exp(x+t)','x','t');%真解函数
for i=:length(x)
for j=:length(t)
exact(i,j)=y(x(i),t(j));%真解
end
end
u=zeros(M(k)+,N(k)+);%数值解内存单元
for i=:M(k)
u(i,)=exp(x(i));%初值u(i,)
u(i,)=exp(x(i))+tau*exp(x(i))+(tau^/)*exp(x(i));%第二层值u(i,)
end
u(,:)=exp(t);%边值u(,t)
u(M(k)+,:)=exp(+t);%边值u(,t)
phi=zeros(M(k)-,N(k));
for i=:N(k)
phi(,i)=exp(t(i));
phi(M(k)-,i)=exp(+t(i));
end A=diag((*(-s^))*ones(M(k)-,))+diag(s^*ones(M(k)-,),)+diag(s^*ones(M(k)-,),-);
for j=:N(k)
u(:M(k),j+)=A*u(:M(k),j)-u(:M(k),j-)+s^*phi(:,j);%数值解
end
error=abs(u(:M(k),:end)-exact(:M(k),:end));%误差
error_inf(k)=max(max(error));
%error=exact-u;
subplot(,,)
[X,Y]=meshgrid(t(end:-:),x(:M(k)));
mesh(X,Y,error);
xlabel('t');
ylabel('x');
zlabel('error');
grid on
% pan on;
% zoom on;
pause(0.05)
hold on
end
legend('h=1/10,tau=1/20','h=1/20,tau=1/40','h=1/40,tau=1/80','h=1/80,tau=1/160');
title('Numerical Result')
for p=:length(M)-
H=error_inf(p)/error_inf(p+);
NORM(p)=log2(H);
end
subplot(,,)
plot(:length(M)-,NORM,'-bp')
ylabel('误差阶数');
text(,,'这就是误差阶数!!!!!')
grid on
axis square
toc;

效果图:

最新文章

  1. linux输入子系统(input subsystem)之按键输入和LED控制
  2. Redis——学习之路二(初识redis服务器命令)
  3. 【51nod】区间求和
  4. cherry Tree的严重漏洞
  5. win7下配置Apache本地虚拟主机
  6. power 做表
  7. Codeforces Round #350 (Div. 2) D2 二分
  8. IIS6.0下 Asp.Net 拦截jpg请求
  9. Git教程(10)git比较复杂的功能
  10. DataSet排序
  11. python基础学习笔记1
  12. HTML+CSS - 搜索 And 高级搜索
  13. cmd markdown 使用教程
  14. thinkphp中使用phpexcel读取所有的行记录
  15. [NOI 2010]能量采集
  16. vs 为什么使用#include "stdafx.h"
  17. 吴裕雄 python深度学习与实践(7)
  18. 自适应电脑、手机和iPad的网页设计方法
  19. 2018-2019-2 网络对抗技术 20165301 Exp2 后门原理与实践
  20. 开工:创建虚拟机,xshell连接虚拟机,复制虚拟机,docker安装,添加加速器

热门文章

  1. 新增职责 不能从IE进入的问题 此责任无可用函数 (转)
  2. 内存泄漏(I)
  3. python -yield理解
  4. 2018-2019-2 《网络对抗技术》Exp0 Kali安装 Week1 20165316
  5. dlo,学习清单
  6. RESTClient 使用
  7. 3、SpringBoot集成Storm WorldCount
  8. iOS 开发 Tips
  9. Configuring VNC Server on Linux
  10. Guitar Pro中如何添加与删除音轨