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;

效果图:

Matlab:双曲方程的更多相关文章

  1. 数学图形(2.18)Hyperbolical conical spiral双曲圆锥螺线

    双曲圆锥螺线 #http://www.mathcurve.com/courbes3d/spiralehyperbolique/spiralehyperbolique.shtml vertices = ...

  2. matlab的解方程的例子

    syms x y z=exp(2*x+y)+cos(3*x*y)-exp(1)-1; zz=subs(z,x,1) solve(zz)

  3. matlab 双坐标折线图画法

    %%各时段电量需求 clc close all clear all cost_gd = [2200 1800 3800 4600]; cost_bj = [2.7 2.2 1.8 3.6]; cost ...

  4. matlab双坐标轴设定

    clc; clear all; close all; x1 = 0:.1:40; y1 = 4 * cos(x1)./(x1 + 2); x2 = 1:.2:20; y2 = x2.^2 ./ x2. ...

  5. 多重网格法简介(Multi Grid)

    原文链接 多重网格法是一种用于求解方程组的方法,可用于插值.解微分方程等. 从专业角度讲多重网格法实际上是一种多分辨率的算法,由于直接在高分辨率(用于求解的间隔小)上进行求解时对于低频部分收敛较慢,与 ...

  6. 【转】科大校长给数学系学弟学妹的忠告&本科数学参考书

    1.老老实实把课本上的题目做完.其实说科大的课本难,我以为这话不完整.科大的教材,就数学系而言还是讲得挺清楚的,难的是后面的习题.事实上做1道难题的收获是做10道简单题所不能比的. 2.每门数学必修课 ...

  7. John Morgan:黎曼几何、曲率、Ricci流以及在三维流形上的应用二讲

    本文是笔者在线看Lektorium上John Morgan在圣彼得堡国立大学欧拉研究所的讲座做的笔记.第一讲以如下内容组成 1. 黎曼曲面上的联络 黎曼流形$(M^n,g)$中,$M$为$n$维流形, ...

  8. matlab快速入门

    matlab快速入门 1矩阵 生成矩阵 ​ % 直接法 a = [1,2,3;4,5,6;7,8,9]; % 冒号一维矩阵 a = 开始:步长:结束,步长为1可省略 b = 1:1:10; % 1,2 ...

  9. MATLAB 出一张好看的图

    1.坐标轴的视点(viewpoint):从哪个方向看整个坐标系统,这决定了坐标轴的方向和位置,通过view函数实现视点的设置:view([z y ]):(将坐标系统想象为一座房子,而自己是个会飞的天使 ...

随机推荐

  1. sqlserver 导入excel

    安装完office2013和sqlserver2017时,不知道是盗版问题还是啥 原因, 在sqlserver导入excel时,报错. 在把Excel导入SQL server时出现“未在本地计算机上注 ...

  2. js时间国际化

    d = new Date(); localTime = d.getTime();localOffset = d.getTimezoneOffset() * 60000; utc = localTime ...

  3. empty和isset区别

    isset判断变量是否已存在(配置) unset把变量删除(释放)掉 empty 判断变量是否为空 is_null 判断变量是否为NULL is_null,我们可以把它看成是!isset,是isset ...

  4. [Docker] sh: docker-compose: not found

    有点坑爹,在使用  alpine 镜像的时候,明明在里面安装了docker-compose,/usr/local/bin/docker-compose也是存在的,却报 sh: docker-compo ...

  5. 畅捷通T+12.2升级时发生的错误及处理方法图解

    前言:最近处理一个客户单位的财务数据,需要从2004年的U820版本的数据升级到畅捷通T+12.2版本.经查,该升级先要将原数据升级到T6,再从T6升级到畅捷通T+12.2版本.U820升级到T6很简 ...

  6. AndroidStudio 快捷键(最实用的20个)(转)

    有时候用的编辑器多了,快捷键容易记混淆,所以我门只用记最实用的快捷键就行了,其他效率不高的到要用的时候再查也不迟 下面是我使用AndroidStudio以来最常用的也是我认为最有用的20个快捷键 给大 ...

  7. linux 扩展文件系统

    1. 创建新分区 [root@localhost ~]# fdisk -l Disk /dev/sda: bytes, sectors Units = sectors of * = bytes Sec ...

  8. 20175208 《Java程序设计》第八周学习总结

    20175208 2018-2019-3<Java程序设计>第八周学习总结 一.教材学习内容总结: 1.泛型: 泛型的主要目的是可以建立具有类型安全的集合框架(如链表.散列映射等数据结构) ...

  9. 2018-2019-2 20165215《网络攻防技术》Exp6 信息搜集与漏洞扫描

    目录 实验目的 实验内容 基础知识 实验步骤 (一)各种搜索技巧的应用 Google Hacking 搜索网址目录结构 搜索特定类型的文件 路由侦查 (二)DNS IP注册信息的查询 whois域名注 ...

  10. Appium(一)---环境搭建的一些问题

    最近开始学习Appium,一款很不错的自动化测试工具,网上已经有大量的环境搭建教程,我就不再细说,我搭建环境时主要参考如下两个博客https://www.cnblogs.com/yoyoketang/ ...