注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

AlexYoung

做好大家都必须要做的事,发展自己感兴趣的事,结束圣人所不齿的事...

 
 
 

日志

 
 

热工数值计算课后实验二  

2010-10-07 22:46:07|  分类: 课程练习 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

课后实验二 - 青楼薄名 - Alex小奎子

解:

课后实验二 - 青楼薄名 - Alex小奎子

%双曲型方程的数值计算典型例题u_t+au_x=0,u(x,0)=sin(x).

clc;clear;clf;

tic

M=42; %划分的位置网格节点数

T=50;%划分的时间网格数

a=1.0;%方程中的参数

h=2*pi/(M-2);%空间步长

tau=h; %时间步长

lambda=tau/h;

for j=1:M

    u(j,1)=sin(j);

end

    for  n=1:T-1

        for j=2:M

            u(j,n+1)=u(j,n)-lambda*a*(u(j,n)-u(j-1,n));

        end

        u(1,n+1)=u(M-1,n+1);

    end

x=1:M;

t=1:T;

[X,Y]=meshgrid(t,x);

mesh(X,Y,u)

toc

解的图示如图0所示。

 课后实验二 - 青楼薄名 - Alex小奎子


  %双曲型方程的数值计算典型例题u_t+au_x=0,u(x,0)=sin(x).

clc;clear;clf;

tic

M=20; %划分的位置网格节点数

T=30;%划分的时间网格数

a=1.0;%方程中的参数

h=2*pi/(M-2)%空间步长

tau=h; %时间步长=空间步长

lambda=tau/h;

for j=1:M

    u(j,1)=sin(j);

end

    for  n=1:T-1

        for j=2:M-1

           u(j,n+1)=0.5*(u(j+1,n)+u(j-1,n)-lambda*a*(u(j+1,n)-u(j-1,n)));

        end

        u(1,n+1)=u(M-1,n+1);

        u(M,n+1)=u(2,n+1);

    end

 

x=1:M;

t=1:T;

[X,Y]=meshgrid(t,x);

surf(X,Y,u)

toc

课后实验二 - 青楼薄名 - Alex小奎子
课后实验二 - 青楼薄名 - Alex小奎子

%双曲型方程的数值计算典型例题u_t+au_x=0,u(x,0)=sin(x).

clc;clear;clf;

tic

M=20; %划分的位置网格节点数

T=30;%划分的时间网格数

a=1.0;%方程中的参数

h=2*pi/(M-2)%空间步长

tau=h; %时间步长=空间步长

lambda=tau/h;

for j=1:M

    u(j,1)=sin(j);

end

    for  n=1:T-1

        for j=2:M-1

           u(j,n+1)=u(j,n)-0.5*lambda*a*(u(j+1,n)-u(j-1,n))+...

               0.5*a^2*lambda^2*(u(j+1,n)-2*u(j,n)+u(j-1,n));

        end

        u(1,n+1)=u(M-1,n+1);

        u(M,n+1)=u(2,n+1);

    end

x=1:M;

t=1:T;

[X,Y]=meshgrid(t,x);

surf(X,Y,u)

toc

课后实验二 - 青楼薄名 - Alex小奎子
 下面的这个是解不出来的。因为试探一个初值会无条件发散的。

clc;clear;clf;

tic

M=10;

T=30;

 a=1.0;

h=2*pi/(M-2);

tau=h;

lambda=tau/h;

delta=1;

for j=1:M

    u(j,1)=sin(j);

end

    for n=2:T

        u(1,n)=u(M-1,n-1);

        u(2,n)=u(M-2,n-1);

        while(delta>1e-3)

              u1=u(1,n);

              u2=u(2,n);

              delta=0;

           for j=2:M-1

              u(j+1,n)=u(j-1,n)-2/lambda/a*(u(j,n)-u(j,n-1))

           end

           u(1,n)=u(M-1,n);

           u(2,n)=u(M-2,n);

           delta=max([abs(u(1,n)-u1)/u(1,n),abs(u(2,n)-u2)/u(2,n)]);

        end

    end

x=1:M;

t=1:T;

[X,Y]=meshgrid(t,x);

surf(X,Y,u)

toc

======================================================================

正解,应该解这样的一个线性方程组。

课后实验二 - 青楼薄名 - Alex小奎子

%双曲型方程的数值计算典型例题u_t+au_x=0,u(x,0)=sin(x).

clc;clear;clf;

tic

M=30; %划分的位置网格节点数

T=20;%划分的时间网格数

a=1.0;%方程中的参数

h=2*pi/(M-2)%空间步长

tau=1e-5; %时间步长=空间步长

lambda=tau/h;

delta=1;

for j=1:M

    u(j,1)=sin(j);

end

for m=1:M n=1:M;

    A(m,n)=0;

    B(m)=0;

end

for n=2:T

   for m=1:M-2

      A(m,m)=-0.5*a*lambda;

      A(m,m+1)=1;

      A(m,m+2)=0.5*a*lambda;

      B(m)=u(m,n-1);

   end

   A(M-1,1)=1;

   A(M-1,M-1)=-1;

   A(M,2)=1;

   A(M,M)=-1;

   C=A\(B');

   for j=1:M

      u(j,n)=C(j);

   end%构造系数矩阵和值的列向量。

end

x=1:M;

t=1:T;

[X,Y]=meshgrid(t,x);

surf(X,Y,u)

toc

课后实验二 - 青楼薄名 - Alex小奎子
 

%双曲型方程的数值计算典型例题u_t+au_x=0,u(x,0)=sin(x).

clc;clear;clf;

tic

M=30; %划分的位置网格节点数

T=20;%划分的时间网格数

a=1.0;%方程中的参数

h=2*pi/(M-2)%空间步长

tau=h; %时间步长=空间步长

lambda=tau/h;

delta=1;

for j=1:M

    u(j,1)=sin(j);

end

for m=1:M n=1:M;

    A(m,n)=0;

    B(m)=0;

end

for n=2:T

   for m=1:M-2

      A(m,m)=-0.25*a*lambda;

      A(m,m+1)=1;

      A(m,m+2)=0.25*a*lambda;

      B(m)=u(m+1,n-1)-0.25*(u(m+2,n-1)-u(m,n-1));

   end

   A(M-1,1)=1;

   A(M-1,M-1)=-1;

   A(M,2)=1;

   A(M,M)=-1;

   C=A\(B');

   for j=1:M

      u(j,n)=C(j);

   end

end

x=1:M;

t=1:T;

[X,Y]=meshgrid(t,x);

surf(X,Y,u)

toc

 

  评论这张
 
阅读(221)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018