优化方法
文章平均质量分 87
内含低秩矩阵恢复,压缩感知,以及有限BFGS等一大类优化算法代码
Galerkin码农选手
这个作者很懒,什么都没留下…
展开
-
PDE约束优化控制问题-ADMM求解经典算例
基本形式{miny,uJ(y,u), s.t. F(y,u)=0,u∈Uad={ua≤u≤ub}.\left\{\begin{array}{l} \min_{y,u} J(y,u),\\ \text { s.t. }\mathbf{F}(y,u) = 0 ,\\ u \in U_{ad} = \{ u_a\leq u \leq u_b\}. \end{array}\right.⎩⎨⎧miny,uJ(y,u), s.t. F(y,原创 2022-01-26 22:31:48 · 218 阅读 · 0 评论 -
对称矩阵的三对角分解(Lanzos分解算法)-MINRES算法预热
首先介绍Lanczos分解,Lanzos把对称矩阵转换为一个三对角对称矩阵。考虑三对角对称矩阵如下,考虑正交分解T=QTAQT = Q^T A QT=QTAQT=(α1β10⋯00β1α2β20⋯00β2α3β3⋯00⋯⋯⋯⋯00⋯0βn−2αn−1βn−100⋯0βn−1αn)T=\left(\begin{array}{cccccc}\alpha_1 & \beta_1 & 0 & \cdots & 0 & 0\\\beta_1 & \alpha_2 & \beta_2 & 0 & \cdots原创 2022-12-08 17:25:22 · 1449 阅读 · 0 评论 -
MINRES(极小残差算法)求解线性系统详细解读
先介绍Lanzos分解首先介绍Lanczos分解,Lanzos把对称矩阵转换为一个三对角对称矩阵。考虑三对角对称矩阵如下,考虑正交分解T=QTAQT = Q^T A QT=QTAQT=(α1β10⋯00β1α2β20⋯00β2α3β3⋯00⋯⋯⋯⋯00⋯0βn−2αn−1βn−100⋯0βn−1αn)T=\left(\begin{array}{cccccc}\alpha_1 & \beta_1 & 0 & \cdots & 0 & 0\\\beta_1 & \alpha_2 & \beta_2 &原创 2022-12-08 17:23:56 · 994 阅读 · 0 评论 -
单纯形法求解线性规划
问题描述考虑从源节点到端节点传输数据的网络,我们首先引入一些定义:\∙\bullet∙ K\quad flows:传输K中不同的数据。\∙\bullet∙ L\quad link:连接网络节点的L条无向边。\∙\bullet∙ clc_lcl:在第lll条边上传输数据的最大容量。\∙\bullet∙ PkP_kPk:对于不同的k\quad flow,运输成功可选择的路path的数目。\∙\bullet∙ xk=(xk,1,…,xk,PK)T\mathbf{x_k}=\left(x_{k,1}原创 2021-06-26 09:13:10 · 1014 阅读 · 0 评论 -
低秩矩阵恢复重新解读和随机SVD算法
随机SVD给定矩阵A∈Rm×nA \in R^{m \times n}A∈Rm×n,求最大的前p个奇异值和对应的左右奇异向量。\1:执行下面两个算法中的任意一个(如果执行两个就视为加分项)。\∙\bullet∙在参考文献Petros Drineas, Ravi Kannan, and MichaelW. Mahoney, Fast Monte Carlo Algorithms for Matrices II: Computing a Low-Rank Approximation to a Matrix原创 2021-05-16 14:52:09 · 1958 阅读 · 1 评论 -
压缩感知与低秩矩阵恢复求解
压缩感知minxμ∥x∥1+∥Ax−b∥1.\min _{x} \mu\|x\|_{1}+\|A x-b\|_{1}.minxμ∥x∥1+∥Ax−b∥1.A∈Rm×n,b∈RmA \in R^{m\times n},b \in R^mA∈Rm×n,b∈Rm∙\bullet∙ n=1024n = 1024n=1024;∙\bullet∙ m=512m = 512m=512;∙\bullet∙ A=randn(m,n)A = randn(m,n)A=randn(m,n),A中的每个元素是由均值原创 2021-04-28 08:55:25 · 2846 阅读 · 1 评论 -
信赖域方法求解优化问题
问题描述采用Hebden,More-Sorensen(MS)和二维子空间算法求解Wood function, Extended Powell singular function,Trigonometric function。我们需要比较不同信赖域算法的作用以及信赖域算法和线搜索型方法的比较。我们的数值结果需要包括函数的最优值,如果条件允许的话还需要提供最优点,函数调用次数和迭代次数以及程序的运行结果,如果结果不满足条件,那么需要分析出现这种情况的可能原因。终止条件是∥f(Xk+1)−f(Xk)∥<1原创 2021-01-06 13:40:33 · 1609 阅读 · 0 评论 -
有限内存BFGS求解泊松方程
构建优化函数利用差分法得到AX=b,求解F(x)=0.5∗xTAx−bTxF(x)=0.5*x^{T}Ax-b^{T}xF(x)=0.5∗xTAx−bTx首先明确里面的A是对称正定矩阵,然后我们开始构造A,b。import torchimport numpy as npimport timedef UU(X, order,prob):#X表示(x,t) if prob==1: temp = 10*(X[:,0]+X[:,1])**2 + (X[:,0]-X[:,1])原创 2020-12-14 16:18:31 · 387 阅读 · 1 评论 -
SRI算法
有限内存SRI对于有限内存SRI算法,利用的修正公式为:Hk=H0+(Sk−H0Yk)(Dk+Lk+LkT−YkTH0Yk)−1(Sk−H0Yk)TH_{k} = H_{0} + (S_{k} - H_{0}Y_{k})(D_{k} + L_{k} + L_{k}^{T} - Y_{k}^{T}H_{0}Y_{k})^{-1}(S_{k} - H_{0}Y_{k})^THk=H0+(Sk−H0Yk)(Dk+Lk+LkT−YkTH0Yk)−1(Sk−H0Yk)T这里的H0H_原创 2020-12-12 23:22:40 · 832 阅读 · 0 评论 -
有限内存BFGS以及非精确牛顿法
有限内存BFGSBFGS算法的每一步迭代皆形如:xk+1=xk−αkHkgkx_{k+1}=x_{k} - \alpha_{k}H_{k}g_{k}xk+1=xk−αkHkgkHk+1=VkTHkVk+ρkskskT,ρk=1ykTsk,Vk=I−ρkykskT,sk=xk+1−xk,yk=gk+1−gk.H_{k+1} = V_{k}^{T}H_{k}V_{k} + \rho_{k}s_{k}s_{k}^{T},\\ \rho_k = \frac{1}{y_{k}^{T}s_{k}原创 2020-12-11 23:42:15 · 2124 阅读 · 1 评论 -
Trigonometric,Wood,Extended Powell singular
方向是牛顿方向Gkdk=−gkG_kd_{k}=-g_kGkdk=−gk稳定牛顿法步长为1import numpy as npimport matplotlib.pyplot as pltimport torchimport timeimport torch.nn as nnimport torch.nn.functional as Fdef Newton(f,g,h,X,N): eps = 1e-8 for i in range(N): ...原创 2020-11-29 15:39:13 · 368 阅读 · 1 评论 -
Python实现修正cholesky分解
Cholesky分解针对的是对称非正定矩阵主要目的包括将原矩阵强制转换为对称正定矩阵以及保证分解过程的稳定性修正cholesky分解的做法给定对称矩阵A∈Rn×nA \in R^{n\times n}A∈Rn×n:计算出δ=maxi=1,…,n∣Aii∣\delta=max_{i=1,\ldots,n}|A_{ii}|δ=maxi=1,…,n∣Aii∣ν=maxi≠j∣Ai,j∣\nu=max_{i\neq j}|A_{i,j}|ν=maxi=j∣Ai,j∣β2=max(δ,ν(n2原创 2020-11-10 15:36:41 · 2010 阅读 · 2 评论