Matlab中变域偏微分方程的数值求解

Matlab中变域偏微分方程的数值求解,matlab,pde,Matlab,Pde,我试图在我的Matlab代码中实现一个变换域,用数值方法求解偏微分方程。在给定的问题中,我正在模拟面包的烘焙过程。这是一个一维问题,其中有一个单一的热源从上面。我使用的是热扩散方程,对于一个固定的区域,我提供了下面的代码来解决它。然而,我还需要对面包的崛起进行建模,所以随着时间的推移,我的领域“L”在我的代码中会发生变化。我被告知,我可以假设它在一个小时内呈线性变化,面包最初填满了80%的罐头。你们有什么建议可以让我解释上升的原因 close all clear all clc Tend =

我试图在我的Matlab代码中实现一个变换域,用数值方法求解偏微分方程。在给定的问题中,我正在模拟面包的烘焙过程。这是一个一维问题,其中有一个单一的热源从上面。我使用的是热扩散方程,对于一个固定的区域,我提供了下面的代码来解决它。然而,我还需要对面包的崛起进行建模,所以随着时间的推移,我的领域“L”在我的代码中会发生变化。我被告知,我可以假设它在一个小时内呈线性变化,面包最初填满了80%的罐头。你们有什么建议可以让我解释上升的原因

close all
clear all
clc


Tend = 3600; %Time to end after
dt = 1; %Time step size
Nstep = (Tend/dt)+1; %Number of time points
M = 1000; %Number of x points
dx = 1/M; %Size of the x steps
L = 1; %Length of domain
x = [0:dx:L]; %Creating the x points
kdiff = 2.7e-4; %Diffusion constant value
R = kdiff*dt/(dx*dx);

for i = 1:M+1
  u(i,1) = 20;
end 

for n = 1:Nstep
    DIG(1) = 1;
    b(1) = 200; %Boundry condition
    DIG(M+1) = 1;
    LF(1) = 0;
    RT(1) = 0; 
    LF(M+1) = -1; %Insulated boundry
    RT(M+1) = 0;
    b(M+1) = 0; %Boundry condition
    for m = 2:M
        DIG(m) = 2+(2/R);
        LF(m) = -1;
        RT(m) = -1;
        b(m) = u(m+1,n) + u(m-1,n) + (-2 + (2/R))*u(m,n);
    end
    u(:,n+1) = tdma(LF,DIG,RT,b,M+1);
end

plot(x,u(:,1:600:end)

我想我们需要知道温度和生长速率之间的关系来解决这个问题,不是吗?如果知道的话,我可以在每一个时间段都被更新。正如你被告知的,你可以(通常)假设面包呈线性生长,温度必须是一种影响生长速度的预因子。对于更高的温度,我希望生长更快。最大L保持不变,我想与温度无关。为了了解温度和生长的关系,我会测量在不同温度下达到最大L所需的时间