mainc的博客分享 http://blog.sciencenet.cn/u/mainc

博文

对流方程的有限差分解法(步长定律、固有差分格式、程序和图形)

已有 7966 次阅读 2011-1-14 00:53 |个人分类:偏微分方程有限差分数值解法|系统分类:论文交流| 计算流体力学, 偏微分方程, 有限差分, 双曲型方程, 对流方程

【分享】对流方程的有限差分数值解法(步长定律、固有差分格式、matlab程序和输出图形)

一维对流方程

1.1  一维对流方程的形式:

    其中,u代表物质的量或者其他参量,a代表物质的运动速度。此一维对流方程仅仅表示物质的运动情况,而与边界条件或是约束条件无关。当a为常数时,此一维对流方程为一维常系数对流方程,当a不为常数时,方程为一维变系数对流方程。在不考虑边界条件或约束条件的情况下,无论a是否为常数,此对流方程本身的数值解法存在固有的有限差分格式,条件是要满足步长定律。

 

1.2  一维常系数对流方程的步长定律:

 

    其中,?t 为时间步长,?x 为空间步长。

 

1.3  一维常系数对流方程的固有差分格式:


         或者          


 


1.4  有以下方程:

满足初始条件:
x=1:1:113,
u0=[0  0  1.8393e-005   3.7259e-005   7.2772e-005   1.3704e-004   2.4885e-004   4.3574e-004   7.3575e-004   0.0012  0.0019   0.0028   0.0042   0.0059   0.0080   0.0104   0.0132   0.0161   0.0189   0.0215   0.0235   0.0248   0.0253   0.0248  0.0235   0.0215   0.0189   0.0161   0.0132   0.0104   0.0080   0.0059   0.0042   0.0028   0.0019   0.0012   7.3575e-004   4.3574e-004 2.4885e-004   1.3704e-004  7.2772e-005   3.7259e-005   1.8393e-005   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0  0   0   0     0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0],
 
和边界条件:
u(1,t)=u(113,t)=0.
 
MATLAB程序:
u0 = [0 0 1.8393e-005 3.7259e-005 7.2772e-005 1.3704e-004 2.4885e-004 4.3574e-004 7.3575e-004  0.0012 ...
      0.0019  0.0028  0.0042  0.0059  0.0080  0.0104  0.0132  0.0161  0.0189  0.0215 ...
      0.0235  0.0248  0.0253  0.0248  0.0235  0.0215  0.0189  0.0161  0.0132  0.0104 ...
      0.0080 0.0059 0.0042 0.0028 0.0019 0.0012 7.3575e-004 4.3574e-004 2.4885e-004 1.3704e-004 ...
      7.2772e-005  3.7259e-005  1.8393e-005  0  0  0  0 0  0  0  0  0  0  0  0  0  0  0  0  0 ...
      0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0 ...
      0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0 ];
u=zeros(3,113);
for i=1:113
    u(1,i)=u0(i);
end
for n=1:68
    u0(113)=0;
    for i=112:-1:2
        u0(i)=u0(i-1);
    end
    u0(1)=0;
    if n==34
       for i=1:113
           u(2,i)=u0(i);
       end
    end
    if n==68
       for i=1:113
           u(3,i)=u0(i);
       end
    end
end
n = 1:1:113;
figure(1)
plot(n,u(1,n),'-o');
figure(2)
plot(n,u(2,n),'-o');
figure(3)
plot(n,u(3,n),'-o');
 
输出图形:



   

  

(注:后续有待补充......)

PDF版本文件

https://blog.sciencenet.cn/blog-530345-404234.html


收藏 IP: .*| 热度|

0

发表评论 评论 (0 个评论)

数据加载中...

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-12-22 10:20

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部