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. CentOS 7下 部署Redis-cluster集群

    redis集群是一个无中心的分布式redis存储架构,可以在多个节点之间进行数据共享,解决了redis高可用.可扩展等问题,redis集群提供了以下两个好处:1)将数据自动切分(split)到多个节点 ...

  2. 目标检测方法——R-FCN

    R-FCN论文阅读(R-FCN: Object Detection via Region-based Fully Convolutional Networks ) 目录 作者及相关链接 方法概括 方法 ...

  3. pygame 游戏舞台搭建典型应用

    #两个文件要放在同一目录中,包括图片 一.搭建游戏舞台主程序 #!/usr/bin/env python3#_*_coding:utf-8_*_ author ==$ VACyp import sys ...

  4. 【数据结构】算法 LinkList (Reverse LinkedList) Java

    反转链表,该链表为单链表. head 节点指向的是头节点. 最简单的方法,就是建一个新链表,将原来链表的节点一个个找到,并且使用头插法插入新链表.时间复杂度也就是O(n),空间复杂度就需要定义2个节点 ...

  5. Tarjan求LCA

    LCA问题算是一类比较经典的树上的问题 做法比较多样 比如说暴力啊,倍增啊等等 今天在这里给大家讲一下tarjan算法! tarjan求LCA是一种稳定高速的算法 时间复杂度能做到预处理O(n + m ...

  6. App 基本图片配置(I)

    UITabBarController 的底部Item图片设置 分为三种: imageName@1x.png 图片像素(30 * 30) imageName@2x.png 图片像素(60 * 60) i ...

  7. JQuery选择器,动画,事件和DOM操作

    JQuery是由JS封装的一些方法,供我们调用,可以快速的实现某些JS功能,实际是JS编写的方法包 将JQuery文件放到JS文件夹下,然后引用到<head></head>中 ...

  8. Mysql如何进行分组,并且让每一组的结果按照某个字段排序,并且获取每一组的第一个字段

    select * from (select * from table_name order by id desc) h where h.catagory_id in(value1,value2,val ...

  9. storm-sql-kafka问题情况

    首先上官方文档:http://storm.apache.org/releases/1.2.2/storm-sql.html 解决的问题 1.kafka版本不对 开始测试时采用storm1.2.2+ka ...

  10. SynchronousQueueDemo

    1.ArrayDeque, (数组双端队列) 2.PriorityQueue, (优先级队列) 3.ConcurrentLinkedQueue, (基于链表的并发队列) 4.DelayQueue, ( ...