偏微分方程数值解程序设计与实现——数学基础

article/2025/8/27 21:30:06

常用算子符号

  • 梯度算子
    R d \mathbb{R}^d Rd空间中标量函数 u ( x ) u(\bf{x}) u(x),其梯度算子定义如下:
    g r a d u ( x ) = ∇ u ( x ) = [ ∂ u ∂ x 0 ∂ u ∂ x 1 ⋮ ∂ u ∂ x d − 1 ] grad u(\mathbf{x})=\nabla u(\mathbf{x})= \begin{bmatrix} \frac{\partial u}{\partial x_0} \\ \frac{\partial u}{\partial x_1} \\ \vdots \\ \frac{\partial u}{\partial x_{d-1}} \end{bmatrix} gradu(x)=u(x)=x0ux1uxd1u
    梯度的几何意义:标量函数在一点的梯度向量,指向该点处函数值增加最快的方向,且长度是该点处沿这个方向的函数变化率。
  • 散度算子
    R d \mathbb{R}^d Rd空间中标量函数 u ( x ) = [ u 0 ( x ) , u 1 ( x ) , ⋯ , u d − 1 ( x ) ] T \mathbf{u}(\mathbf{x})=[u_0(\mathbf{x}),u_1(\mathbf{x}), \cdots,u_{d-1}(\mathbf{x})]^T u(x)=[u0(x),u1(x),,ud1(x)]T,其散度算子定义如下:
    d i v u ( x ) = ∇ ⋅ u ( x ) = ∂ u 0 ∂ x 0 + ∂ u 1 ∂ x 1 + ⋯ + ∂ u d − 1 ∂ x d − 1 div \mathbf{u}(\mathbf{x})=\nabla \cdot \mathbf{u}(\mathbf{x})= \frac{\partial u_0}{\partial x_0} + \frac{\partial u_1}{\partial x_1}+\cdots +\frac{\partial u_{d-1}}{\partial x_{d-1}} divu(x)=u(x)=x0u0+x1u1++xd1ud1
    散度的物理意义:假设 u ( x ) \mathbf{u}(\bf{x}) u(x)代表一个稳定流动的不可压缩流体(密度为1)的速度场,他在 x \bf{x} x处的散度,就是穿出单位体积边界的通量,也叫通量密度,而通量是流场单位时间内沿指定侧通过的一个曲面的量。给定一个位于封闭曲面S内点 x \bf{x} x,S围成的区域记为 Ω \Omega Ω,
    ∇ ⋅ u ( x ) = l i m S → x 1 ∣ Ω ∣ ∫ S u ⋅ n d s \nabla \cdot \mathbf{u}(\mathbf{x})=lim_{S\rightarrow\mathbf{x}}\frac{1}{|\Omega|}\int_S \mathbf{u}\cdot \mathbf{n} d\mathbf{s} u(x)=limSxΩ1Sunds
  • 旋度算子
    R 3 \mathbb{R}^3 R3空间中标量函数 u ( x ) = [ u 0 ( x ) , u 1 ( x ) , u 2 ( x ) ] T \mathbf{u}(\mathbf{x})=[u_0(\mathbf{x}),u_1(\mathbf{x}), u_{2}(\mathbf{x})]^T u(x)=[u0(x),u1(x),u2(x)]T,其旋度算子定义如下:
    c u r l u ( x ) = ∇ × u ( x ) = [ ∂ u 2 ∂ y − ∂ u 1 ∂ z ∂ u 0 ∂ z − ∂ u 2 ∂ x ∂ u 1 ∂ x − ∂ u 0 ∂ y ] curl u(\mathbf{x})=\nabla \times u(\mathbf{x})= \begin{bmatrix} \frac{\partial u_2}{\partial y}-\frac{\partial u_1}{\partial z} \\ \frac{\partial u_0}{\partial z}-\frac{\partial u_2}{\partial x} \\ \frac{\partial u_1}{\partial x}-\frac{\partial u_0}{\partial y} \end{bmatrix} curlu(x)=×u(x)=yu2zu1zu0xu2xu1yu0
    散度的物理意义:向量场 u \mathbf{u} u在点 x \bf{x} x处的旋度向量,用来描述流体以 x \bf{x} x为中心的漩涡强度和方向,它的指向与漩涡旋转最快的方向满足右手法则,长度为旋转最快的方向的角速度的两倍。
    在这里插入图片描述
  • Laplace算子
    R d \mathbb{R}^d Rd空间中标量函数 u ( x ) u(\bf{x}) u(x)的梯度的散度给出的微分算子称为Laplace算子,通常写成
    Δ u ( x ) = ∇ 2 u ( x ) = ∇ ⋅ ∇ u ( x ) = ∑ i = 0 d − 1 ∂ 2 u ∂ x i 2 \Delta u(\mathbf{x})=\nabla^2u(\mathbf{x})=\nabla\cdot \nabla u(\mathbf{x})=\sum_{i=0}^{d-1}\frac{\partial^2u}{\partial x^2_i} Δu(x)=2u(x)=u(x)=i=0d1xi22u

散度定理

给定定义在 Ω ∈ R d \Omega \in\mathbb{R}^d ΩRd向量函数 F ( x ) \bf{F}(\bf{x}) F(x),记 n \bf{n} n为边界 ∂ Ω \partial \Omega Ω上的单位外法线向量,则有
∫ Ω ∇ ⋅ F d x = ∫ ∂ Ω F ⋅ n d s \int_{\Omega}\nabla \cdot \mathbf{F}d\mathbf{x}=\int_{\partial\Omega} \mathbf{F}\cdot \mathbf{n}d\mathbf{s} ΩFdx=ΩFnds
这就是散度定理

散度定理的应用

1)取 F = v ∇ u \mathbf{F}=v\nabla u F=vu,可得:
∫ Ω ∇ ⋅ ( v ∇ u d x ) = ∫ ∂ Ω v ∇ u ⋅ n d s \int_{\Omega}\nabla \cdot (v\nabla ud\mathbf{x})=\int_{\partial\Omega} v\nabla u\cdot \mathbf{n}d\mathbf{s} Ω(vudx)=Ωvunds

∫ Ω v Δ u d x + ∫ Ω ∇ u ⋅ ∇ v d x = ∫ ∂ Ω v ∇ u ⋅ n d s \int_{\Omega}v\Delta ud\mathbf{x}+\int_{\Omega}\nabla u \cdot \nabla vd\mathbf{x}=\int_{\partial\Omega} v\nabla u\cdot \mathbf{n}d\mathbf{s} ΩvΔudx+Ωuvdx=Ωvunds
2)取 F = [ u , 0 , 0 ] T \mathbf{F}=[u,0,0]^T F=[u,0,0]T,可得:
∫ Ω ∇ ⋅ [ u 0 0 ] d x = ∫ Ω u x = ∫ ∂ Ω u n x d s \int_{\Omega}\nabla \cdot \begin{bmatrix} u\\0\\0 \end{bmatrix}d\mathbf{x}=\int_{\Omega}u_x=\int_{\partial\Omega} u \mathbf{n}_xd\mathbf{s} Ωu00dx=Ωux=Ωunxds
3)在这里插入图片描述

函数空间

这里所用到的函数空间,简单来讲就是具有某些共同性质,且对于线性运算封闭的函数组成集合,它里面通常有无穷多个函数。

  • 线性运算封闭性:对于函数空间V中任意两个函数 v v v, w w w,及实数空间 R \mathbb{R} R中任意两个常数 c 0 c_0 c0 c 1 c_1 c1,满足
    c 0 v + c 1 w ∈ V c_0v+c_1w\in V c0v+c1wV

  • 函数空间的基:设 S = ϕ i S={\phi_i} S=ϕi V V V的一个子集,如果 S S S中的元素线性无关,且 V V V中的任意一个函数 v v v都可以由它们线性表出,即存在一组和 S S S中函数一样多的常数集合 c i {c_i} ci,使得
    v = ∑ i = 0 c i ϕ i v=\sum_{i=0}c_i\phi_i v=i=0ciϕi
    则称 ϕ i {\phi_i} ϕi V V V的一组
    (1)函数空间由基唯一决定,即给定一组基,就唯一张成一个空间 V = s p a n { ϕ i } V=span\{\phi_i\} V=span{ϕi}
    (2)函数空间的基不是唯一的,问题是编程实现的时候你要选择哪一组?
    (3)给定空间的一组基,就可以建立起空间 V V V到空间 R d \mathbb{R}^d Rd的一一映射,其中 d d d是向量空间的维数,可以为无穷
    v ∈ V ↔ [ c 0 , c 1 , ⋯ ] ∈ R d v\in V \leftrightarrow [c_0,c_1,\cdots]\in\mathbb{R}^d vV[c0,c1,]Rd

  • 函数空间的维数:函数空间基函数的个数就成为函数空间的维数。包括有限维空间和无限维空间。编程实现只能处理有限位的函数空间

  • 常见的函数空间
    Ω \Omega Ω R d \mathbb{R}^d Rd空间中的任意子区域
    1) L 2 ( Ω ) L^2(\Omega) L2(Ω):对于任意的$V \in L 2 ( Ω ) L^2(\Omega) L2(Ω) ∫ Ω v 2 d x < ∞ \int_{\Omega}v^2d\mathbf{x}<\infty Ωv2dx<
    2) H 1 ( Ω ) H^1(\Omega) H1(Ω):函数及其导数都属于 L 2 ( Ω ) L^2(\Omega) L2(Ω)空间。
    3) H ( d i v , Ω ) \mathbf{H}(div,\Omega) H(div,Ω):向量函数空间,向量函数的每个分量及其散度都属于 L 2 ( Ω ) L^2(\Omega) L2(Ω)空间。
    4) H ( c u r l , Ω ) \mathbf{H}(curl,\Omega) H(curl,Ω):向量函数空间,向量函数的每个分量及其旋度都属于 L 2 ( Ω ) L^2(\Omega) L2(Ω)空间。
    5) P k ( Ω ) \mathbb{P}_k(\Omega) Pk(Ω):不大于 k k k次的多项式函数组成的空间。
    6) P k ( Ω ; R d ) \mathbb{P}_k(\Omega;\mathbb{R}^d) Pk(ΩRd):每个分量都是不大于 k k k次的多项式函数的向量函数空间。
    多项式函数空间是编程实现有限元算法的基础空间

偏微分方程数值解:从无限到有限

“Hello World"模型:Possion方程

给定区域 Ω ⊂ R d \Omega\subset\mathbb{R}^d ΩRd,其边界记为 ∂ Ω \partial \Omega Ω,求标量函数 u ( x ) u(\mathbf{x}) u(x),满足
− Δ u ( x ) = f ( x ) , ∀ x ∈ Ω u ( x ) = 0 , ∀ x ∈ ∂ Ω -\Delta u(\mathbf{x})=f(\mathbf{x}), \forall \mathbf{x}\in \Omega\\ u(\mathbf{x})=0,\forall \mathbf{x}\in \partial\Omega Δu(x)=f(x),xΩu(x)=0,xΩ

  • Laplace算子 Δ \Delta Δ的定义

    • d = 1 d=1 d=1 Δ ( x ) = Δ u ( x ) = u x \Delta (\mathbf{x})=\Delta u(x)=u_x Δ(x)=Δu(x)=ux
    • d = 2 d=2 d=2 Δ ( x ) = Δ u ( x , y ) = u x x + u y y \Delta (\mathbf{x})=\Delta u(x,y)=u_{xx}+u_{yy} Δ(x)=Δu(x,y)=uxx+uyy
    • d = 3 d=3 d=3 Δ ( x ) = Δ u ( x , y , z ) = u x x + u y y + u z z \Delta (\mathbf{x})=\Delta u(x,y,z)=u_{xx}+u_{yy}+u_{zz} Δ(x)=Δu(x,y,z)=uxx+uyy+uzz
  • 未知量是什么?需要求无穷多个点处对应的函数值。

  • 该问题求解的困难之处:算子和未知量的无限性。

从微分到积分:连续的弱形式

在这里插入图片描述

在这里插入图片描述

从无限到有限:离散的弱形式

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

从无限到有限:数值积分

在这里插入图片描述

总结
  • 上面通过弱形式(变分)把偏微分方程转化为代数方程的方法统称为Galerkin方法
  • 偏微分数值计算方法就是为解决偏微分方程模型的无限性和计算资源的有限性这对本质矛盾而出现,并不断前进发展的。
  • 与Galerkin方法不同的另一种方法——有限差分方法,是通过数值微分来解决微分算子定义的无限性问题。

全部内容来自湘潭大学魏华祎老师暑期学校课程https://www.bilibili.com/video/BV1np4y1S7LK/


http://chatgpt.dhexx.cn/article/Gjhkho9Y.shtml

相关文章

偏微分方程的数值解(六): 偏微分方程的 pdetool 解法

偏微分方程的数值解系列博文&#xff1a; 偏微分方程的数值解(一):定解问题 & 差分解法 偏微分方程的数值解(二): 一维状态空间的偏微分方程的 MATLAB 解法 偏微分方程的数值解(三): 化工应用实例 ----------触煤反应装置内温度及转换率的分布 偏微分方程的数值解(四):…

微分方程数值解

一阶问题举例&#xff1a; 高阶问题举例 &#xff1a; 常微分方程数值解&#xff1a;向前欧拉方法之一阶问题 clc,clear,close all; a0;%初始时刻 b2*pi;%结束时刻 n100;%离散点数量 x00;%初值 h(b-a)/n;%步长 xx0 [0:n]*h;%离散点数组 funinline(sin(x)y,x,y); y01; %计算 y(…

常微分方程数值解法1

&#xff11;.牛顿迭代法 多数方程不存在求根公式&#xff0c;因此求精确根非常困难&#xff0c;甚至不可能&#xff0c;从而寻找方程的近似根就显得特别重要。牛顿迭代法使用函数 的泰勒级数的前面几项来寻找方程 的根。牛顿迭代法是求方程根的重要方法之一&#xff0c;其最大…

差分、偏微分方程的解法

这里写目录标题 微分方程数值求解——有限差分法matlab代码差分法的运用&#xff08;依旧是连续变量——>离散网格点&#xff09; PDE求解思路demo1demo2 微分方程数值求解——有限差分法 差分方法又称为有限差分方法或网格法&#xff0c;是求偏微分方程定解问题的数值解中…

微分方程数值解法(2)——椭圆型方程的有限差分法

此处参考教材为李荣华的《微分方程数值解法》 使用工具&#xff1a;Matlab 1. 算法&#xff1a;矩形网格上5点差分格式 2. 算法 I.需要求解的函数 function [v,vx,vy,f,aa,bb,cc,dd]u2D(x,y,ft)% ft为方程编号&#xff0c;u1D为精确解函数u&#xff08;t&#xff09;,注意与…

基础数学(8)——常微分方程数值解法

文章目录 期末考核方式基础知识解析解&#xff08;公式法&#xff09;解析解例题&#xff08;使用公式法&#xff0c;必考&#xff09;解析解的局限性 数值解数值解的基本流程 显示Euler法显示欧拉&#xff08;差值理解&#xff09;显示欧拉&#xff08;Taylor展开理解&#xf…

微分方程数值解法(1)——常微分方程初值问题的数值解法

此处参考教材为李荣华的《微分方程数值解法》 使用工具&#xff1a;Matlab 1. 算法 注: 最后一行应为k4,上面为笔误 2. 算法 I.需要求解的函数 function ff1D(t,u,ft)% ft为方程编号&#xff0c;u1D为精确解函数u(t),注意与f1D对应右端项函数f(t,u(t))switch ftcase 1 %P10…

偏微分方程数值解法pdf_天生一对,硬核微分方程与深度学习的联姻之路

机器之心原创 作者&#xff1a;蒋思源 微分方程真的能结合深度神经网络&#xff1f;真的能用来理解深度神经网络、推导神经网络架构、构建深度生成模型&#xff1f;本文将从鄂维南、董彬和陈天琦等研究者的工作中&#xff0c;窥探微分方程与深度学习联袂前行的路径。 近日&…

椭圆型偏微分方程数值解法

一、 一维椭圆方程数值解 matlab代码&#xff1a; function chap2_fdm_elliptic_1D % 一维椭圆方程求解(常微分方程边值问题) % -u q(x)u f(x), 0<x<1, 取q(x) x, f(x) (x-1)exp(x) % u(0) 1, u(1) e; 边界条件 % 真解为 u exp(x)N 20; h 1/N; x_al…

Python小白的数学建模课-11.偏微分方程数值解法

偏微分方程可以描述各种自然和工程现象&#xff0c; 是构建科学、工程学和其他领域的数学模型主要手段。 偏微分方程主要有三类&#xff1a;椭圆方程&#xff0c;抛物方程和双曲方程。 本文采用有限差分法求解偏微分方程&#xff0c;通过案例讲解一维平流方程、一维热传导方程…

偏微分方程数值解法pdf_单摆-微分方程浅谈

引子[1] 单摆&#xff0c;这个在中学物理都学过的东西&#xff0c;应该是非常熟悉了。 图片来源-维基百科 小角度简单摆 若最高处( )的绳子和最低处(速度最大值)的绳子的角度为 &#xff0c;则可使用下列公式算出它的振动周期。 公式证明 摆球受力分析 绳与对称线夹角为 &…

偏微分方程数值解法pdf_数值模拟偏微分方程的三种方法:FDM、FEM及FVM

偏微分方程数值模拟常用的方法主要有三种:有限差分方法(FDM)、有限元方法(FEM)、有限体积方法(FVM),本文将对这三种方法进行简单的介绍和比较。 一.有限差分方法 有限差分方法(Finite Difference Methods)是数值模拟偏微分方程最早采用的方法,至今仍被广泛运用。该方法包括区…

正圆锥体空间方程_数值模拟偏微分方程的三种方法:FDM、FEM及FVM

偏微分方程数值模拟常用的方法主要有三种:有限差分方法(FDM)、有限元方法(FEM)、有限体积方法(FVM),本文将对这三种方法进行简单的介绍和比较。 一.有限差分方法 有限差分方法(Finite Difference Methods)是数值模拟偏微分方程最早采用的方法,至今仍被广泛运用。该方法包括区…

抖音图标

抖音图标&#xff1a; 1.创建一张画布&#xff0c;再用圆角矩形工具创建一个圆角矩形 2.新建一个图层&#xff0c;用椭圆选框工具创建一个圆&#xff0c;再alt键从选区减去一个圆 3.再填充一个颜色&#xff0c;再剪切1/4圆接着粘贴拖拽至右上方 4.新建一个图层&#xff0c;用…

抖音图标——ps

抖音图标 1.用圆角矩形工具画个圆角&#xff08;空格键可以移动&#xff09;&#xff0c;填充为黑色&#xff0c;把此图层转换为珊格式化 2.再新建一个图层&#xff0c;用椭圆选框工具画个换个环&#xff08;用alt会出现&#xff0c;shift会出现加号&#xff09; 3.Ctrlx剪…

抖音软件分析

前几天看了看关于短视频软件的火的一些话题&#xff0c;就去看了看关于抖音的&#xff0c;对于抖音是那几个方面&#xff0c;自己也去做了一些分析&#xff0c;首先是在两个方面去做的一个理解&#xff0c;一个是软件制作&#xff0c;一个是商业运营。 软件制作 在抖音的软件…

仿抖音视频自动播放html,vue 仿抖音视频播放切换

一、第一部分html页面的准备 {{item.title}} {{item.introduction}} 二、数据说明部分 data() {let u = navigator.userAgent; return {showSlide: 0, allLoaded: false, //数据是否全部加载完 page: 1, isLoading: true, option: {}, current: 0, videoList: [], isVideoShow:…

抖音账号官方认证

介绍 认证功能入口 【我】—【创作者服务中心】— 【官方认证】 抖音黄V是什么&#xff1f; 抖音黄V是抖音平台对个人能力与专业性的认可。换句话讲&#xff0c;黄V即能体现个人身份标签又可以获得官方在内容发布的“豁免权”。如未认证的用户去进行科普&#xff0c;轻则警…

仿抖音首页界面

目录 效果图 顶部相关代码 顶部效果图 内容相关代码 内容效果图 底部导航栏相关代码 底部导航栏效果图 完整代码 html css js ​flexible.js 要想做出抖音短视频的首页界面&#xff0c;我们要引用swiper插件、还需要用到iconfont图标&#xff08;可自行到官网上下载…

抖音小程序Tiktok开发教程之 基础组件 04 icon 图标组件

什么是icon组件? icon是图标组件 icon组件运行效果 icon组件如何使用呢? 首先,在ttml界面中添加下面代码 <view class="container"><view class="body"><view class="page-section page-default"><view class="…