双曲型差分(二维)数值例子

双曲型差分(二维)数值例子
 
图片

图片

图片

图片

图片

图片
数值解:
 
图片
精确解:
图片
 

// scilab code
 //精确解
t =linspace(0,1,100);
t = t';
x = linspace(0,1,100);
z = cos( 4 * 3.14159 * t ) * sin( 4 * 3.14159 * x) + ( sin( 8 * 3.14159 * t) * sin( 8 * 3.14159 * x) / 8 / 3.14159);
plot3d(t,x,z);

figure

//模拟解
pi_ = 3.14159265;
count =100;
t = linspace(0, 1, 2 * count);
x = linspace(0, 1, count);
h = x(2) - x(1);
tao = t(2) - t(1);
r = tao / h;
u_n_0 = sin( 4 * pi_ * x);
u_n_1 = sin( 4 * pi_ * x) + tao * sin( 8 * pi_ * x);


A = zeros(2 * count, count);
for i = 1: 2 * count 
    if i == 1 then
        A(i,:) = u_n_0;
    elseif i == 2 then
        A(i,:) = u_n_1;
    else 
        A(i,[2 : count - 1 ]) = r * r * ( u_n_1(1:count - 2) + u_n_1(3:count)) + 2 * ( 1 - r * r) * u_n_1(2:count - 1)- u_n_0(2:count - 1);
        A(i,1) = 0;
        A(i, count) = 0;
        u_n_0 = A(i-1,:);
        u_n_1 = A(i,:);
    end   
end
plot3d(t,x,A);


  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值