Questions tagged «pde»

偏微分方程(PDE)是与多个变量的函数的偏导数相关的方程。该标签旨在解决有关使用PDE建模现象,解决PDE以及其他相关方面的问题。

17
是否有适用于Python的高质量非线性编程求解器?
我要解决几个具有挑战性的非凸全局优化问题。目前,我使用了MATLAB的Optimization Toolbox(特别是fmincon()使用algorithm = 'sqp'),它非常有效。但是,我的大部分代码是在Python中进行的,我也想在Python中进行优化。是否存在可以与Python绑定竞争的NLP求解器fmincon()?它必须 能够处理非线性等式和不等式约束 不需要用户提供雅可比行列式。 如果不保证全局最优(fmincon()没有),也可以。我正在寻找一种即使在遇到挑战性问题时也可以收敛到局部最优的东西,即使它比慢一些fmincon()。 我尝试了OpenOpt提供的几种求解器,发现它们不如MATLAB的fmincon/sqp。 只是为了强调,我已经有了一个易于处理的公式和一个好的求解器。我的目标仅仅是更改语言,以使工作流程更加简化。 Geoff指出问题的某些特征可能是相关的。他们是: 10-400个决策变量 4-100个多项式相等约束(多项式范围从1到大约8) 有理不等式约束的数量大约等于决策变量数量的两倍 目标函数是决策变量之一 等式约束的雅可比行列是密集的,不等式约束的雅可比行列是密集的。

5
在有限差分和有限元素之间选择的标准是什么
我习惯在有限的网格上将有限差分视为有限元的一种特殊情况。那么,如何在有限差分法(FDM)和有限元方法(FEM)之间进行数值选择的条件是什么? 在有限差分法(FDM)方面,可以认为它们在概念上比有限元方法(FEM)更简单,更容易实现。FEM具有非常灵活的优势,例如,网格可能非常不均匀,并且域可能具有任意形状。 我知道FDM优于FEM的唯一例子是在 Celia,Bouloutas,Zarba,那里的收益归功于FD方法使用不同的时间导数离散化,但是对于有限元方法可以固定。

2
在完全封闭的诺伊曼边界条件(边界处的反射)下通过有限差分求解对流方程时的奇异振荡
我正在尝试求解平流方程,但是当波从边界反射时,解决方案中会出现奇怪的振荡。如果有人在看过此文物之前,我很想知道原因以及如何避免它! 这是一个动画gif,在单独的窗口中打开以查看动画(它仅被缓存一次,或仅播放一次!) 请注意,在波开始从第一个边界开始反射之前,传播似乎非常稳定。您认为这里可能会发生什么?我花了几天时间仔细检查我的代码,找不到任何错误。奇怪的是,似乎有两种传播的解决方案:一种是积极的,一种是消极的。从第一个边界反射之后。解决方案似乎沿着相邻的网格点传播。 实现细节如下。 对流方程, ∂ü∂Ť= v ∂ü∂X∂ü∂Ť=v∂ü∂X\frac{\partial u}{\partial t} = \boldsymbol{v}\frac{\partial u}{\partial x} 其中是传播速度。vv\boldsymbol{v} Crank-Nicolson是对流方程的无条件 稳定离散化,条件是在空间中缓慢变化(傅立叶变换时仅包含低频分量)。u (x )ü(X)u(x) 我应用的离散化是 ϕn + 1Ĵ- φñĴΔ Ť= v [ 1 - β2 Δ X(ϕñj + 1- φñj − 1) + β2 Δ X(ϕn + 1j + 1- φn + 1j − 1)]ϕĴñ+1个-ϕĴñΔŤ=v[1个-β2ΔX(ϕĴ+1个ñ-ϕĴ-1个ñ)+β2ΔX(ϕĴ+1个ñ+1个-ϕĴ-1个ñ+1个)] …


2
Crank-Nicolson是反应扩散对流(对流)方程的稳定离散化方案吗?
我对PDE的常见离散化方案不是很熟悉。我知道Crank-Nicolson是离散化扩散方程的流行方案。平流期也是一个不错的选择吗? 我对解决反应扩散对流方程很感兴趣, ∂u∂t+∇⋅(vu−D∇u)=f∂u∂t+∇⋅(vu−D∇u)=f\frac{\partial u}{\partial t} + \nabla \cdot \left( \boldsymbol{v} u - D\nabla u \right) = f 其中DDD是物质的扩散系数uuu和vv\boldsymbol{v}是速度。 对于我的特定应用,方程式可以写成 ∂u∂t=D∂2u∂x2Diffusion+v∂u∂xAdvection (convection)+f(x,t)Reaction∂u∂t=D∂2u∂x2⏟Diffusion+v∂u∂x⏟Advection (convection)+f(x,t)⏟Reaction\frac{\partial u}{\partial t} = \underbrace{D\frac{\partial^2 u}{\partial x^2}}_{\textrm{Diffusion}} + \underbrace{\boldsymbol{v}\frac{\partial u}{\partial x}}_{\textrm{Advection (convection)}} + \underbrace{f(x,t)}_{\textrm{Reaction}} 这是我应用的Crank-Nicolson方案, un+1j−unjΔt=D[1−β(Δx)2(unj−1−2unj+unj+1)+β(Δx)2(un+1j−1−2un+1j+un+1j+1)]+v[1−α2Δx(unj+1−unj−1)+α2Δx(un+1j+1−un+1j−1)]+f(x,t)ujn+1−ujnΔt=D[1−β(Δx)2(uj−1n−2ujn+uj+1n)+β(Δx)2(uj−1n+1−2ujn+1+uj+1n+1)]+v[1−α2Δx(uj+1n−uj−1n)+α2Δx(uj+1n+1−uj−1n+1)]+f(x,t)\frac{u_{j}^{n+1} - u_{j}^{n}}{\Delta t} = D \left[ \frac{1 - \beta}{(\Delta x)^2} \left( u_{j-1}^{n} - …

1
对流扩散方程使用诺伊曼边界条件时的物理量守恒
当我应用不同的边界条件时,我不理解对流扩散方程的不同行为。我的动机是模拟在扩散和对流作用下的实际物理量(粒子密度)。除非从边缘流出颗粒密度,否则内部应保持颗粒密度。按照这种逻辑,如果我强制执行Neumann边界条件,则系统的两端,例如(在左侧和右侧),则系统应“封闭”,即如果边界处的通量为零,则没有粒子可以逸出。∂ϕ∂x=0∂ϕ∂x=0\frac{\partial \phi}{\partial x}=0 对于以下所有模拟,我已将Crank-Nicolson离散化应用于对流扩散方程,所有模拟都具有边界条件。但是,对于矩阵的第一行和最后一行(边界条件行),我允许独立于内部值进行更改。这允许端点完全隐式。∂ϕ∂x=0∂ϕ∂x=0\frac{\partial \phi}{\partial x}=0ββ\beta 下面我讨论4种不同的配置,只有一种是我所期望的。最后,我讨论了我的实现。 仅扩散限制 在此,通过将速度设置为零来关闭对流项。 仅扩散,所有点均为ββ\boldsymbol{\beta} = 0.5(Crank-Niscolson) 如脉冲面积减小所见,该量不守恒。 仅扩散,在内点处 = 0.5(Crank-Niscolson),边界处 = 1(完全隐式)βββ\boldsymbol{\beta}ββ\boldsymbol{\beta} 通过在边界上使用完全隐式方程,可以实现我所期望的:没有粒子逸出。您可以通过保留粒子扩散的区域来看到这一点。为什么在边界点选择影响情况的物理性?这是错误还是预期的?ββ\beta 扩散和平流 当包括对流项时,边界处的值似乎不会影响解。但是,对于所有情况,当边界似乎是“开放的”时,即粒子可以逃脱边界。为什么会这样呢?ββ\beta 在所有点上具有 = 0.5(Crank-Niscolson)的对流和扩散ββ\boldsymbol{\beta} 对流和扩散,在内点处 = 0.5(Crank-Niscolson),边界处 = 1(完全隐式)βββ\boldsymbol{\beta}ββ\boldsymbol{\beta} 对流扩散方程的实现 从对流扩散方程开始, ∂ϕ∂t=D∂2ϕ∂x2+v∂ϕ∂x∂ϕ∂t=D∂2ϕ∂x2+v∂ϕ∂x \frac{\partial \phi}{\partial t} = D\frac{\partial^2 \phi}{\partial x^2} + \boldsymbol{v}\frac{\partial \phi}{\partial x} 使用Crank-Nicolson进行写作, ϕn+1j−ϕnjΔt=D[1−β(Δx)2(ϕnj−1−2ϕnj+ϕnj+1)+β(Δx)2(ϕn+1j−1−2ϕn+1j+ϕn+1j+1)]+v[1−β2Δx(ϕnj+1−ϕnj−1)+β2Δx(ϕn+1j+1−ϕn+1j−1)]ϕjn+1−ϕjnΔt=D[1−β(Δx)2(ϕj−1n−2ϕjn+ϕj+1n)+β(Δx)2(ϕj−1n+1−2ϕjn+1+ϕj+1n+1)]+v[1−β2Δx(ϕj+1n−ϕj−1n)+β2Δx(ϕj+1n+1−ϕj−1n+1)] \frac{\phi_{j}^{n+1} - \phi_{j}^{n}}{\Delta t} = …

3
时间维度为何如此特殊?
总的来说,我听过数值分析家说过 “当然,从数学上讲,时间只是另一个维度,但时间仍然很特殊” 如何证明这一点?在什么意义上时间对于计算科学而言特别? 而且,为什么我们经常喜欢对时间维使用有限差分(导致“时间步长”),而对空间维应用有限差分,有限元,频谱方法等呢?一个可能的原因是,我们倾向于在时间维度上具有IVP,而在空间维度上具有BVP。但是我不认为这完全有道理。

3
使用零件积分来导出FEM离散化的弱形式的目的是什么?
当从PDE的强形式转换为FEM形式时,似乎总是应该首先说明变体形式来做到这一点。为此,您可以将强形式与某个(Sobolev)空间中的元素相乘,然后在您的区域中进行积分。这我可以接受。我不明白的是为什么还必须使用格林的公式(一次或多次)。 我主要从事泊松方程的研究,因此,如果我们以均质Dirichlet边界条件为例,即 −∇2uu=f,u∈Ω=0,u∈∂Ω−∇2u=f,u∈Ωu=0,u∈∂Ω \begin{align} -\nabla^2u &= f,\quad u\in\Omega \\ u &= 0, \quad u\in\partial\Omega \end{align} 然后声称形成变分形式的正确方法是 ∫Ωfvdx⃗ =−∫Ω∇2uvdx⃗ =∫Ω∇u⋅∇vdx⃗ −∫∂Ωn⃗ ⋅∇uvds⃗ =∫Ω∇u⋅∇vdx⃗ .∫Ωfvdx→=−∫Ω∇2uvdx→=∫Ω∇u⋅∇vdx→−∫∂Ωn→⋅∇uvds→=∫Ω∇u⋅∇vdx→. \begin{align} \int_\Omega fv\,\mathrm{d}\vec{x} &= -\int_\Omega\nabla^2 uv\,\mathrm{d}\vec{x} \\ &=\int_\Omega\nabla u\cdot\nabla v\,\mathrm{d}\vec{x} - \int_{\partial\Omega}\vec{n}\cdot\nabla u v\,\mathrm{d}\vec{s} \\ &=\int_\Omega\nabla u\cdot\nabla v\,\mathrm{d}\vec{x}. \end{align} 但是,是什么使我无法在第一行上使用表达式,这难道不是一种可以用来获取FEM形式的变体形式吗?它不是对应于双线性和线性形式和吗?这里的问题是,如果我使用线性基函数(形状函数),那么我会遇到麻烦,因为我的刚度矩阵将是空矩阵(不可逆)?但是,如果我使用非线性形状函数怎么办?我仍然需要使用格林公式吗?如果我不必:建议这样做吗?如果没有,那么我是否会有一个变式但不弱的公式?b(u,v)=(∇2u,v)b(u,v)=(∇2u,v)b(u,v)=(\nabla^2 u, v)l(v)=(f,v)l(v)=(f,v)l(v)=(f, v) 现在,假设我有一个带有高阶导数的PDE,这是否意味着有许多可能的变分形式,具体取决于我使用格林公式的方式?它们都导致(不同的)FEM近似吗?


8
用于约束优化的软件包?
我正在寻找解决约束优化问题的方法,在该方法中我知道某些变量(特别是盒装约束)的界限。 argminuf(u,x)arg⁡minuf(u,x) \arg \min_u f(u,x) 服从 c(u,x)=0c(u,x)=0 c(u,x) = 0 a≤d(u,x)≤ba≤d(u,x)≤b a \le d(u,x) \le b 其中uuu是设计变量的向量,xxx是状态变量的向量,c(u,x)c(u,x)c(u,x)是等式约束(通常是PDE)。上下约束aaa和bbb可以在空间上变化。 哪些软件包可以处理这种形式的系统?

4
如何将边界条件与Galerkin方法结合在一起?
我一直在网上阅读一些有关Galerkin方法来解决PDE的资源,但是我不清楚。以下是我对我所了解的内容的描述。 请考虑以下边值问题(BVP): L [ u (x ,y)] = 0上(x ,y)∈ Ω ,小号[ u ] = 0上(x ,y)∈ ∂&ΩL[u(x,y)]=0on(x,y)∈Ω,S[u]=0on(x,y)∈∂ΩL[u(x,y)]=0 \quad \text{on}\quad (x,y)\in\Omega, \qquad S[u]=0 \quad \text{on} \quad (x,y)\in\partial\Omega 其中是二阶线性微分算子,是BVP的域,是该域的边界,而是一阶线性微分算子。将为以下形式的近似值:Ω ⊂ - [R 2∂&Ω 小号ù (X ,ÿ )大号LLΩ ⊂ ř2Ω⊂R2\Omega\subset\mathbb{R}^2∂Ω∂Ω\partial\Omega小号SSù (X ,ÿ)u(x,y)u(x,y) u(x,y)≈∑i=1Naigi(x,y)u(x,y)≈∑i=1Naigi(x,y)u(x,y)\approx \sum_{i=1}^N a_i g_i(x,y) 其中是我们将用来近似一组函数。替代BVP:gigig_iuuu ∑iaiL[gi(x,y)]=R(a1,...,aN,x,y)∑iaiL[gi(x,y)]=R(a1,...,aN,x,y)\sum_i a_i L[g_i(x,y)]=R(a_1,...,a_N,x,y) 由于我们的近似值不精确,因此残差不完全为零。在Galerkin-Ritz-Raleigh方法中,通过要求我们将相对于逼近函数集最小化。因此[R ⟨ …

2
如何确定PDE的数值解是否收敛于连续解?
在松懈的等价性定理指出,一致性和数值方案的稳定性用于线性初值问题是收敛的必要和充分条件。但是对于非线性问题,尽管数值方法是一致且稳定的,但数值方法可以非常合理地收敛到错误的结果。例如,本文显示了应用于一维线性化浅水方程的一阶Godunov方法如何收敛到一个不正确的解。 显然,在网格和时间步长细化下的自收敛是不够的,但是对于非线性PDE来说,精确解通常是不可用的,那么如何确定一种数值方法是否收敛到一个真解?

2
什么是伪时间步长?
在阅读有关PDE求解器的一些文献时,我遇到了今天的伪时间步长一词。这似乎是一个常用术语,但是我找不到合适的定义或介绍性文章。 因此:什么是伪时间步长,通常如何使用?

1
小波如何应用于PDE?
我想学习如何将小波方法应用于PDE,但是不幸的是,我不知道学习此主题的好资源。 看起来,小波的许多介绍都集中在插值理论上,例如,通过最好叠加几个小波来组合信号。有时会提到PDE的应用程序,而无需深入探讨该主题。对于那些看过WFT但又对该主题没有更多知识的人,我感兴趣的是很好的摘要文章。当然,如果您认为可以做到的话,那么很好的总结也很有趣。 我对获得通常会出现哪种问题的印象特别感兴趣。例如,我知道有限元通常应用于具有Lipschitz边界的有界域上的PDE,这是选择ansatz空间(合格,不合格,几何和组合),收敛理论如何建立的典型问题(实际上,小波的Galerkin理论应该没有太大的不同),而且我有一些直觉,认为数学上的东西在实现中是可行的。对PDE的Wavelet这样的鸟瞰图对我很有帮助。
18 pde  wavelet 

4
是否有用于结构化网格自适应网格细化的通用库?
想要改善这篇文章吗?提供此问题的详细答案,包括引文和答案正确的解释。答案不够详细的答案可能会被编辑或删除。 自适应网格细化(AMR)是解决PDE数值解中空间尺度变化很大的常见技术。在结构化网格上存在哪些针对AMR的通用库?理想情况下,我希望本着PETSc的精神,库仅处理自适应网格,而我提供物理和离散化(有限差分/体积/元素)。 理想的图书馆是 模块化:不决定如何编写代码或过多的数据结构 General:不在乎我使用的是哪种离散化 高效:不会产生太多开销 并行且高度可扩展 仅适合这些条件中的一个子集的库仍将受到关注。 附录:我知道Donna Calhoun的AMR软件包的详细列表,但是我不知道其中哪个(如果有)符合上述条件。因此,我主要感兴趣的是听取具有一个或多个(或更多)软件包的实际经验的人,以了解他们如何衡量这些术语。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.