
算法
RKGG爱吃鱼
每天进步一点点。
展开
-
信号分析——导数(Java/Matlab)
信号求导,可以消除信号的背景,确定谱峰的位置,改善谱峰分辨情况,一般地,在信号分析中,常用的信号求导为一阶、二阶导数。基于S-G滤波的基础上,获取拟合参数矩阵A后,可以利用滤波窗口的2m+1个数据对窗口中心点(i=0)求该点信号处的p阶导数,对其多项式:进行求导,当i=0时,可得:因此,窗口中心点数据的p阶导数等于A矩阵的第p+1个元素和p的阶乘的乘积。其一阶导数和二阶导数分别如下...原创 2019-05-08 10:46:54 · 3137 阅读 · 0 评论 -
信号分析——曲线拟合(多项式非线性拟合Java/Matlab)
曲线拟合,即以一条函数曲线去逼近已知测量数据点的过程,考察化学理论值和实验数据之间的吻合程度。一般地,光谱曲线、伏安曲线、色谱曲线等均可以用多项式函数拟合。设有N组测量数据点(xi,yi)(i=1,2,···,N),可以用一个m阶多项式进行表示:式中,bj为拟合系数,N组数据点按照上述多项式可组成N个方程,改写成矩阵形式如下:记作:由前文知,B的最小二乘解为:则...原创 2019-05-14 16:16:45 · 3413 阅读 · 2 评论 -
动态规划-01基础背包
最近在做华为OJ题,做到“购物单”一题,突然感觉一脸懵逼,有点熟悉却又思维混乱,研究了一下,发现是由来已久的背包问题,遂详细的了解一下该算法。这里将最简单的背包问题——即无重复选取,每个物品仅放一次,其核心方程如下:f[i][j] = max{f[i-1][j],f[i-1][j-[w[i-1]]]+v[i-1](j>=w[i-1])}假设:定义可容纳总重量W =10 Kg,物品种...原创 2018-04-19 10:14:56 · 348 阅读 · 1 评论 -
动态规划-02完全背包
继上一篇01基础背包,本文主要利用Java实现“完全背包”问题,该问题类似于基础背包问题,主要区别在于“完全背包”对于放置的物品个数没有限制,即可以重复选取,每个物品的选取放置次数可以是0、1、2······,情况相比基础背包要复杂的多,其核心方程也可以写成类似于01问题的方程,如下:c[i][j] = max(c[i-1][j-(k*w[i-1])] + k*v[i-1], c[i-1][j...原创 2018-04-20 10:54:22 · 977 阅读 · 0 评论 -
动态规划-03多重背包
紧接前面一篇,讲一下“多重背包”问题,该问题与“完全背包”相比,在每个物品的选取次数上给出了限定,即选取次数k不能无限的增大,其方程和“完全背包”的极度相似,只是k的限定条件发生了变化。c[i][j] = max(c[i-1][j-(k*w[i-1])] + k*v[i-1], c[i-1][j]) (0 <= k <= counts[i])其中,counts[i]表示第i件...原创 2018-04-20 14:58:25 · 956 阅读 · 0 评论 -
动态规划-04混合背包
前面的三种背包问题介绍完后,基于这三种背包问题可以引申出这三类的混合形式-混合背包问题。可以两两混合,也可以三种混合,无非是在分析的时候,根据每个物品的出现次数将其分类组合。假设:定义可容纳总重量W =10 Kg,物品种类 N = 3,每件物品重量w[i],对应价值v[i],求解在可容纳重量范围内如何选取可获最大价值。具体题目:可能出现的情况:由于使用二维数组较为繁琐,以下...原创 2018-04-20 15:46:01 · 463 阅读 · 0 评论 -
动态规划-05二维费用背包
前面4篇博客已经将几种基础背包问题介绍,本文主要对“二维费用”背包问题进行介绍。“二维费用”背包问题,较前面几种背包问题主要是对每类物品增加了一维费用,用一个简单的例子来说,即选取某一个物品的同时增加了一个附属物品,同时对附属物品的费用也有了限制,通过这种思维,可以将“二维费用”背包转换为“01基础背包”问题,按照“01基础背包”方程可以得到该基础方程:c[i][j][k] = max(c[...原创 2018-04-21 10:40:59 · 1204 阅读 · 0 评论 -
动态规划-06分组背包
本文主要介绍一下“分组背包”,分组背包,即一开始选取的物品以及分成几个组,在选取时,可以从一个分组中选取一件物品或者一件物品也不选取,以此到达最大价值的选取目的。其方程也可以写成类似于“01背包”的方程,如下:c[k][j] = max(c[k-1][j], c[k-1][j-w[k-1][i]]+v[k-1][i])其中,k表示当前分组号,i表示当前分组中的第i件物品。以下为具体题目示...原创 2018-04-22 10:24:06 · 4047 阅读 · 0 评论 -
动态规划-07依赖背包
按照《背包九讲》的顺序,本文主要讲其第七讲-依赖背包,所谓“依赖背包”即指背包物件有主附件,类似的解释之前在“二维费用背包”中提到过,不过这里的主附件是从属关系,即选择主件,必须要选择附件,而附件的类别又可以有很多种,同样的附件也可以有附件,这样如此反复,即会形成一个“树形DP”,其结果和考虑的情况将呈指数型增长,所以无法写成类似于“01背包”的方程式,但如果给定限定条件,我们同样也可以将其转换成...原创 2018-04-22 13:15:09 · 615 阅读 · 0 评论 -
信号分析——S-G卷积平滑(Java/Matlab)
Savitzky-Golay滤波,即S-G滤波平滑,利用多项式进行数据平滑,基于最小二乘法,能够保留分析信号中的有用信息,消除随机噪声,在信号图谱中最直接的结果就是将图谱的“毛刺”去掉,整个图谱更加平滑。平滑窗口宽度:2m+1,即为该窗口原始数据点个数n(n=2m+1),一般要求窗口宽度为奇数,从测量原始数据中选取一子集作为窗口,而非整个数据集。假设窗口内的原始数据点可以用一个k-1次多项...原创 2019-05-06 15:10:45 · 12814 阅读 · 4 评论 -
信号分析——高斯函数拟合(Java/Matlab)
由于上一篇博文提到的多项式拟合模型的拟合系数没有任何物理意义,而化学分析中,有许多具有明确物理意义的二维谱图,图光谱、色谱等,其信号峰位置、峰高、峰宽等均具有实际物理意义,因此,提出使用高斯曲线进行数据拟合和表征。高斯函数仅适用于对称谱图,其简图如下:假设光谱曲线,可用简单的高斯函数表达:其中,ymax、xmax和S分别为峰高、峰位和区域宽度,可通过非线性拟合的方法来求解,其过...原创 2019-05-15 10:13:09 · 13550 阅读 · 8 评论