• matlab练习程序(差分法解一维热传导方程)


    差分法计算一维热传导方程是计算偏微分方程数值解的一个经典例子。

    热传导方程也是一种抛物型偏微分方程。

    一维热传导方程如下:

    该方程的解析解为:

     

    通过对比解析解和数值解,我们能够知道数值解的是否正确。

    下面根据微分写出差分形式:

    整理得:

    已知网格平面三条边的边界条件,根据上面递推公式,不断递推就能计算出每个网格的值。

    matlab代码如下:

    clear all;close all;clc;
    
    t = 0.03;       %时间范围,计算到0.03秒
    x = 1;          %空间范围,0-1米
    m = 320;        %时间方向分320个格子
    n = 64;         %空间方向分64个格子
    ht = t/(m-1);   %时间步长dt
    hx = x/(n-1);   %空间步长dx
    
    u = zeros(m,n);
    
    %设置边界条件
    i=2:n-1;
    xx = (i-1)*x/(n-1);
    u(1,2:n-1) = sin(4*pi*xx);
    u(:,1) = 0;
    u(:,end) = 0;
    
    %根据推导的差分公式计算
    for i=1:m-1
        for j=2:n-1
            u(i+1,j) = ht*(u(i,j+1)+u(i,j-1)-2*u(i,j))/hx^2 + u(i,j);
        end
    end
    
    %画出数值解
    [x,t] = meshgrid(0:x/(n-1):1,0:0.03/(m-1):0.03);
    mesh(x,t,u)
    
    %画出解析解
    u1 = exp(-(4*pi)^2*t).*sin(4*pi*x);
    figure;
    mesh(x,t,u1);
    
    %数值解与解析解的差
    figure;
    mesh(abs(u-u1));

    数值解:

    解析解:

    两种解的差的绝对值:

  • 相关阅读:
    keeprunning1的使用说明
    团队冲刺第十五天
    团队冲刺第十四天
    团队第一阶段冲刺评价
    团队第一阶段成果展示
    团队冲刺第十三天
    团队冲刺第十二天
    团队冲刺第十一天
    团队冲刺第十天
    团队冲刺第九天
  • 原文地址:https://www.cnblogs.com/tiandsp/p/14404300.html
Copyright © 2020-2023  润新知