一维热传导方程求数值解

一维热传到方程求数值解#

本文主要利用泰勒展开将方程中的一阶还有二阶偏导数进行离散化,推导出一种可以用程序求解的形式

求解原理#

一维热传导方程#

(1){ux(x,t)=a22ux2u(x,t)+f(x,t)u(x,0)=φ(x)u(a,t)=γ1(t)u(b,t)=γ2(t)

由于热传导方程较为复杂,只能将方程中的一阶和二阶偏导进行离散化。和欧拉法采用相同的思路,下面进行推导:

  1. x​与t​分别在横坐标与纵坐标上进行划分

    x步长: Δx=baN​​​,得到关于xjtn的表达式:

    xj=a+(j1)Δxtn=0+(n1)Δt

将函数进行近似替换ujnu(xj,tn)

  1. 根据泰勒展开将公式进行代换

    对于任意一个xjt进行展开:

    u(xj,tn+Δt)=u(xj,tn)+ut(xj,tn)Δt+···

    由于很难求出函数的偏导,所以需要将其所有偏导形式转换成容易求解出来的离散形式首先用一维热传导方程进行替换

    ut(xj,tn)=a22ux2(xj,tn)+f(xj,tn)

    利用上式联立下面两个式子

    u(xj+Δx,tn)=u(xj,tn)+ux(xj,tn)Δx+1/22ux2(xj,tn)Δx2+···u(xjΔx,tn)=u(xj,tn)ux(xj,tn)Δx+1/22ux2(xj,tn)Δx2···2ux2(xj,tn)uj+1n+uj1n2ujnΔx2

    最后得到递推关系式

    ujn+1=ujn+[a2uj+1n+uj1n2ujnΔx2+fjn]Δt

化成易于用程序求解的形式#

  1. 在时间维度上进行递推

    首先设置两个时间向量,将所有的位置包括其中

    un=(u1nuN+1n)un+1=(u1n+1uN+1n+1)

  2. 建立系数矩阵

    (ϕNϕ)=(2100···1210······0121···0012)(u1nu2nuN+1n)

    为何矩阵要这么建立,系数矩阵A​的第二行为例,与右边的列向量相乘得到结果u1n2u2n+u3n​ 将结果表示成以下列向量。由于初值和末值原方程会给出,所以开始两个值可能不正确,所以先不用管。

    (ϕu1n2u2n+u3nu2n2u3n+u4nuN1n2uNn+uN+1nϕ)

  3. 扩散源或热源表示

    fn=(f1nfN+1n)

  4. 得到最终表达式

    un+1=un+(a21Δx2Aun+fn)Δt

    以下为初始条件:

    u1n+1=γ1n+1=γ(tn+1)uN+1n+1=γ2n+1u1=γγj=γ(xj)

    通过程序可以设定步长ΔxΔt 其它量就可以通过边界条件推出。

示例与代码#

设方程如下:

(2){ux(x,t)=a22ux2u(x,t)+f(x,t)u(x,0)=0u(a,t)=0+0.0×sin(t)u(b,t)=00.0×sin(t)

求解matlab代码如下:

clc; clear

a = 1; 
dx = 0.01;
x = 0 : dx : 1;
dt = 0.00005;
t = 0 : dt : 1;

u = zeros(length(x), length(t));
u(:,1) = 0;
f = 5 * exp(-20 * (x - 1 / 2) .^ 2);
m1 = 0 + 0.0 * sin(t);
m2 = 0 - 0.0 * sin(t);

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 / dx^2 * A * u(:,n) + f') * dt;
    u(1, n+1) = m1(n+1);
    u(end, n+1) = m2(n+1);
    plot(x, u(:,end))
    axis([x(1) x(end) 0 1])
    getframe;
end

针对边界条件进行拓展#

posted @   Forceco  阅读(3513)  评论(1编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】
点击右上角即可分享
微信分享提示
主题色彩