【数学建模】有限差分法解一维热传导问题

请添加图片描述
请添加图片描述
MATLAB代码

clear
a = 1;
dx = 0.01;%dx要大
x = 0:dx:1;
dt = 0.00005;%dt要小
t = 0:dt:1;
u = zeros(length(x),length(t));
% 初始条件,x的函数
u(:,1) = sin(pi*x);
% 边界条件,t的函数
m1 = 1 + 0.0*sin(t);
m2 = 1 - 0.2*sin(10*t);
% 构造A矩阵
A = -2*eye(length(x)) + diag(ones(1,length(x)-1),1) + diag(ones(1,length(x)-1),-1);
for n = 1:length(t) - 1
    u(:,n+1) = u(:,n) + a^2*dt/dx^2*A*u(:,n);
    u(1,n+1) = m1(n+1);
    u(end,n+1) = m2(n+1);
    
    % 温度随时间传导的动画
    plot(x,u(:,n+1))
    axis([x(1) x(end) 0 1])
    getframe;
end
% [T,X] = meshgrid(t,x);
% surf(X,T,u);
% shading interp

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值