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. day14 python各种推导式详解

    推导式的套路 之前我们已经学习了最简单的列表推导式和生成器表达式.但是除此之外,其实还有字典推导式.集合推导式等等. 下面是一个以列表推导式为例的推导式详细格式,同样适用于其他推导式. variabl ...

  2. python,Day2,基础 2

    list和dict list是一种有序的集合,可以随时添加和删除其中的元素. 例如: >>>classmates = ['eason','grace','alice'] >&g ...

  3. Qt QML 2D shader

    --------------------------------------------------- Qt quick 2d shader effect ---------------------- ...

  4. eclipse发布到tomcat

    1.用maven集成的工程,在发布的时候,发现其中的变量没有改变,类似${}不存在之类 解决方式:这个类问题是由于缓存导致,基本方法就是clean一下,重启eclipse,最后不行重启电脑 2.今天遇 ...

  5. centos安装图形界面

    1.首先安装X(X Window System),命令为  yum groupinstall "X Window System"   回车 2.由于这个软件组比较大,安装过程会比较 ...

  6. Bootstrap的$(...).modal is not a function错误

    使用模态对话框的时候报错了,$(...).modal is not a function 有点蒙,modal是boostrap的函数,而我已经导入了 然后在pycharm的terminal中看到了这一 ...

  7. MacOS修改用户名后变为普通用户,无法创建管理员账号

    摘要:有的时候用户修改原电脑用户名,会把该用户降为普通用户,点击下方的锁会弹出下方图示,导致无法修改任何设置 解决方案: 重启电脑Restart按Command+S进入终端terminal输入以下命令 ...

  8. Intellij IDEA 远程链接hive,执行hsql

    https://note.youdao.com/share/?id=75d82d9c5fab1e00de41c504a54dfcde&type=note#/

  9. 重新使用linux的一些事情

    workstatin版基本上已经有了常用的那些功能了, 代码开发完全足够了, 不需要再去加什么东东了 httpd已经有了, 结构: /usr/lib: 库,放置的是 (操作)系统的静态库, 大多数是直 ...

  10. ValueObject

    ValueObject When programming, I often find it's useful to represent things as a compound混合物. A 2D co ...