在傅立叶谱法中强制执行非负约束

计算科学 pde 约束优化 傅立叶分析 谱法
2021-12-10 16:24:17

我有一个 PDE 优化问题,并且标量场(我正在优化)应该在域中的任何地方都是非负的。由于我在傅立叶空间中工作以解决这个问题,因此我需要将此非负约束转换为傅立叶域(即傅立叶系数的约束)。

假设解决方案是顺利的,那么最好的方法是什么?我真的想不出比在空间中选择一个(大?)点网格更复杂的事情了,比如说xl,l=1,2...,M,并添加 M 类型的线性约束:

f(xl)=j=1Nf^jei2πj.xl0.

我相信流畅度f将确保这足够了。

有没有人有任何其他想法?对此有什么想法?

2个回答

这更像是一个评论,但我相信这个更常见的名称是“正三角多项式”,所以这本书可能会有所帮助。

一种方法(http://www.mit.edu/~parrilo/cdc03_workshop/Vandenberghe.pdf)是使用多项式的结果

x(t)=r0+2r1cost++2rncosnt
是非负的当且仅当存在(n+1)×(n+1)半正定矩阵Y0这样
rk=tr(EkY)=0jnkYj+k,j,E=(0In00).

不幸的是,我对此并不太熟悉,并且还存在其他特征。

这确实是一个评论,但我还差一点点能够发表评论。

您能否向我们展示您的优化问题的其余部分,包括清楚地识别所有优化(也称为决策)变量以及其他约束?

您的 f(x1) 在优化变量中实际上是线性的吗?您可以通过 PDE 求解而不是需要有限差分来评估目标函数的梯度吗?

你能容忍多少(量级和位置)非负性违反?如果违反非负性,可以评估您的目标函数吗?

您为什么假设解决方案是平滑的,即使是,为什么这意味着网格点之间不会出现“平滑”违规?也许您想要一种自适应或多网格方法,其中网格随着整体算法进展到解决方案而变得更精细,或者例如,在优化算法的初始收敛之后,放入更精细的网格并重新优化,使用粗网格优化的最终解决方案作为使用更精细网格的新优化的起始值。