当前位置: 首页 > 程序语言 >Beam-Warming格式的matlab程序

Beam-Warming格式的matlab程序

作者 zhengjh17
来源: 小木虫 150 3 举报帖子
+关注

以下为Beam-Warming格式的matlab程序,有两个不同的算法,不同点用粗体表示出来(其实就两步)
前者是自己编写的,后者是网上标准答案,虽然坚持自己编的是对的但是却一直无法得出正确答案
肯定大神们指点

CODE:
function u=BeamWarming(a,dt,n,x1,x2,m)
a=1;
dt=0.005;
n=101;
x1=0;
x2=1;
m=100;
format long;
h=(x2-x1)/(n-1)
for j=1n+2*m)
    [b]Sample Text[/b]  [b]Sample Text[/b]
end
u1=u0;
for k=1:m
    for[b]Sample Text[/b]      [b]Sample Text[/b]
        u1(i)=u0(i)-(dt/h)*a*(u0(i)-u0(i-1))-a*(dt/h)*(1-a*(dt/h))*(u0(i)-2*u0(i-1)+u0(i-2))/2
    end
    u0=u1;
end
x=0:0.01n-1)/100;
u=u1((m+1)m+n));
plot(x,u,'r');
axis([0 1 -0.5 1.5]);
hold on
y=1.*(x<=0.5)+0.*(x>0.5)
plot(x,y,'c')
title('Beam-Warming')
format short;
function ux=U(x)
format long;
if x<=0
    ux=1
else
    ux=0
end

[ Last edited by jjdg on 2018-5-17 at 22:05 ] 返回小木虫查看更多

今日热帖
  • 精华评论
  • googon

    网上的版本结果咋样

猜你喜欢
下载小木虫APP
与700万科研达人随时交流
  • 二维码
  • IOS
  • 安卓