在 Matlab 中使用离散化和欧拉方法求解 ODE

我已经按照下面的代码使用欧拉方法解决了带加热器的水箱的 PDE,我相信这是真的,我得到了预期的结果。 click here to show pdf file for problem details for reference

但是现在第二步是使用离散化然后使用欧拉方法来解决 PDE,概念很清楚,它有两个循环,一个用于空间离散化,另一个用于时间(欧拉方法),但我被困在这点。它应该是一个循环(时间循环)内的两个 for 循环(离散化循环)。我对如何在循环内设置方程感到困惑。附上方程组,这是我的尝试,它应该看起来像这样

%time loop
for 
    %space loop to find ds value
    for
    end
    %space loop to find the S value
    for
    end
end

Tank-Euler 方法中的温度模型

% mm model for the tank with heater 
% Given
v_tank=2;%1 L
%v_in=1;v_out=1; 1liter / minute
v_in=0.0166667;v_out=1; %1liter / sec
p=1000;%1 watt @Steady State 
T1in0=15;% 15 c degrees at t =0
%rho=1000; density kg/m^3 
rho=1;%density kg/L
CS=4200;%J/kg*c
%assumption of integration step h=0.1
h=0.1; 
%Steady state equation
T10=(T1in0+(p/(v_in*rho*CS))); %f(x,y) function,where dy/dx=f(x,y),x(x0)=y0.
n=1500;
T1in=T1in0;
Tvect=ones(n/h);
 i=1;
for t=0:h:n
    if t>=300
        T1in=20;% 20 c degrees at t=5
    end
     if t>=900
        p=1500;% 1500 watt at t=15
     end
    %Eurl's integral equation 
    T=T10+h*((v_in/v_tank)*(T1in-T10)+(p/(v_tank*rho*CS)));
    T10=T;
    Tvect(i)=T10;
    i=i+1;
end 
hold on;
t=(0.1:0.1:n);
plot(t,Tvect)
%axis([0,25,25])
grid on;
title('Tank with heater'); xlabel('Time [sec]'); ylabel('Temp ℃ ');
jiayibeibao 回答:在 Matlab 中使用离散化和欧拉方法求解 ODE

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/1099804.html

大家都在问