【问题标题】:Capping temperature - 2D Heat Equation with ode15封顶温度 - 使用 ode15 的 2D 热方程
【发布时间】:2021-01-03 02:15:51
【问题描述】:

我正在尝试求解 2D 热方程,并且正在使用 ode15 求解,我被指示必须调整 dT/dt 方程。是否有可能获得一些关于我应该如何去做的指导?

我从 Matlab 中遵循了这个例子:https://uk.mathworks.com/matlabcentral/fileexchange/59916-simple-heat-equation-solver?s_tid=srchtitle

怎么可能

du = alpha/dx^2*(u(1:end-2,2:end-1)-2*u(2:end-1,2:end-1)+u(2:end-1,3:end)...
    + u(2:end-1,1:end-2)-2*u(2:end-1,2:end-1)+u(3:end,2:end-1));

du = du(:);

示例中的部分 getRHS 函数被更改以限制其上升到的温度?

【问题讨论】:

    标签: matlab ode temperature pde


    【解决方案1】:

    只需在 ode 之前添加它作为 thr 的阈值 u0,例如:

    thr=0.5; % just some # I picked, 
    u0(u0>thr)=thr;
    

    【讨论】:

    • 嗨,我试过代码,它似乎只为我打印出限制温度?对不起...
    • 玩阈值。例如使用inf。这应该什么都不做。如果不是这样,那么你没有按照我建议的方式实现它......
    • 嗨,我意识到我忘记了“;”在我输入的代码上。但是,它仍然无法正常工作。我也尝试简单地复制粘贴您建议的代码,这是尝试:imgur.com/a/ok66z99
    • 你明白在这个例子中,热量的流动只会随着时间的推移而减少吗?因此,当您将温度限制在 t=0 时(在链接中的示例中,它实际上是在 getRHS 函数之外的u0(u0>thr)=thr;),它将被限制,但之后只会降低。我编辑了我的答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-11-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-11
    • 2022-11-12
    相关资源
    最近更新 更多