我的数学之美(一)——RANSAC算法详解_-_让机器理解图像_-_ITeye技术网站

我的数学之美(一)——RANSAC算法详解_-_让机器理解图像_-_ITeye技术网站
我的数学之美(一)——RANSAC算法详解_-_让机器理解图像_-_ITeye技术网站

我的数学之美(一)——RANSAC算法详解 - 让机器理解图像 - ITeye技术网站

给定两个点p1与p2的坐标,确定这两点所构成的直线,要求对于输入的任意点p3,都可以判断它是否在该直线上。初中解析几何知识告诉我们,判断一个点在直线上,只需其与直线上任意两点点斜率都相同即可。实际操作当中,往往会先根据已知的两点算出直线的表达式(点斜式、截距式等等),然后通过向量计算即可方便地判断p3是否在该直线上。

生产实践中的数据往往会有一定的偏差。例如我们知道两个变量X与Y之间呈线性关系,

Y=aX+b,我们想确定参数a与b的具体值。通过实验,可以得到一组X与Y的测试值。虽然理论上两个未知数的方程只需要两组值即可确认,但由于系统误差的原因,任意取两点算出的a与b的值都不尽相同。我们希望的是,最后计算得出的理论模型与测试值的误差最小。大学的高等数学课程中,详细阐述了最小二乘法的思想。通过计算最小均方差关于参数a、b的偏导数为零时的值。事实上,在很多情况下,最小二乘法都是线性回归的代名词。

遗憾的是,最小二乘法只适合与误差较小的情况。试想一下这种情况,假使需要从一个噪音较大的数据集中提取模型(比方说只有20%的数据时符合模型的)时,最小二乘法就显得力不从心了。例如下图,肉眼可以很轻易地看出一条直线(模式),但算法却找错了。

RANSAC算法的输入是一组观测数据(往往含有较大的噪声或无效点),一个用于解释观测数据的参数化模型以及一些可信的参数。RANSAC通过反复选择数据中的一组随机子集来达成目标。被选取的子集被假设为局内点,并用下述方法进行验证:

?有一个模型适应于假设的局内点,即所有的未知参数都能从假设的局内点计算得出。

?用1中得到的模型去测试所有的其它数据,如果某个点适用于估计的模型,认为它也是局内点。

?如果有足够多的点被归类为假设的局内点,那么估计的模型就足够合理。

?然后,用所有假设的局内点去重新估计模型(譬如使用最小二乘法),因为它仅仅被初始的假设局内点估计过。

?最后,通过估计局内点与模型的错误率来评估模型。

?上述过程被重复执行固定的次数,每次产生的模型要么因为局内点太少而被舍弃,要么因为比现有的模型更好而被选用。

整个过程可参考下图:

关于算法的源代码,Ziv Yaniv曾经写一个不错的C++版本,我在关键处增补了注释:

C代码

#include #include "LineParamEstimator.h"

LineParamEstimator::LineParamEstimator(double delta) : m_deltaSquared(delta*delta) {}

/*****************************************************************************/ /* * Compute the line parameters [n_x,n_y,a_x,a_y] * 通过输入的两点来确定所在直线,采用法线向量的方式来表示,以兼容平行或垂直的情况 * 其中n_x,n_y为归一化后,与原点构成的法线向量,a_x,a_y为直线上任意一点 */ void LineParamEstimator::estimate(std::vector &data,

std::vector ¶meters) { p arameters.clear();

if(data.size()<2) return; d ouble nx = data[1]->y - data[0]->y;

double ny = data[0]->x - data[1]->x;// 原始直线的斜率为K,则法线的斜率为-1/k

double norm = sqrt(nx*nx + ny*ny); parameters.push_back(nx/norm);

parameters.push_back(ny/norm); parameters.push_back(data[0]->x);

parameters.push_back(data[0]->y); }

/*****************************************************************************/ /* * Compute the line parameters [n_x,n_y,a_x,a_y] * 使用最小二乘法,从输入点中拟合出确定直线模型的所需参量

*/ void LineParamEstimator::leastSquaresEstimate(std::vector &data,

std::vector ¶meters) { double meanX, meanY, nx, ny, norm; double covMat11,

covMat12, covMat21, covMat22; // The entries of the symmetric covarinace matrix int i, dataSize = data.size(); parameters.clear(); if(data.size()<2) return;

meanX = meanY = 0.0; covMat11 = covMat12 = covMat21 = covMat22 = 0;

for(i=0; ix; meanY +=data[i]->y;

covMat11 +=data[i]->x * data[i]->x; covMat12 +=data[i]->x * data[i]->y; covMat22 +=data[i]->y * data[i]->y; } meanX/=dataSize;

meanY/=dataSize; covMat11 -= dataSize*meanX*meanX; covMat12 -= dataSize*meanX*meanY; covMat22 -= dataSize*meanY*meanY; covMat21 = covMat12; if(covMat11<1e-12) { nx = 1.0; ny = 0.0; } else {

//lamda1 is the largest eigen-value of the covariance matrix //and is used to compute the eigne-vector corresponding to the smallest //eigenvalue, which isn't computed explicitly. double lamda1 = (covMat11 + covMat22 + sqrt((covMat11-covMat22)*(covMat11-covMat22) + 4*covMat12*covMat12)) / 2.0; nx = -covMat12; ny = lamda1 - covMat22; norm = sqrt(nx*nx + ny*ny);

nx/=norm; ny/=norm; } parameters.push_back(nx);

parameters.push_back(ny); parameters.push_back(meanX);

parameters.push_back(meanY); }

/*****************************************************************************/ /* * Given the line parameters [n_x,n_y,a_x,a_y] check if * [n_x, n_y] dot [data.x-a_x, data.y-a_y] < m_delta * 通过与已知法线的点乘结果,确定待测点与已知直线的匹配程度;结果越小则越符合,为 * 零则表明点在直线上 */ bool LineParamEstimator::agree(std::vector ¶meters, Point2D &data) { double signedDistance = parameters[0]*(data.x-parameters[2]) +

parameters[1]*(data.y-parameters[3]); return ((signedDistance*signedDistance) <

m_deltaSquared); }

RANSAC寻找匹配的代码如下:

C代码

/*****************************************************************************/

template double Ransac::compute(std::vector ¶meters,

ParameterEsitmator *paramEstimator ,

std::vector &data,

int numForEstimate) { std::vector leastSquaresEstimateData; int numDataObjects = data.size(); int numVotesForBest = -1; int *arr = new int[numForEstimate];// numForEstimate表示拟合模型所需要的最少点数,对本例的直线来说,该值为2 short *curVotes = new

short[numDataObjects]; //one if data[i] agrees with the current model, otherwise zero short *bestVotes = new short[numDataObjects]; //one if data[i] agrees with the best model, otherwise zero //there are less data objects than the minimum required for an exact fit if(numDataObjects < numForEstimate) return 0; // 计算所有可能的直线,寻找其中误差最小的解。对于100点的直线拟合来说,大约需要

100*99*0.5=4950次运算,复杂度无疑是庞大的。一般采用随机选取子集的方式。

computeAllChoices(paramEstimator,data,numForEstimate,

bestVotes, curVotes, numVotesForBest, 0, data.size(), numForEstimate, 0, arr); //compute the least squares estimate using the largest sub set for(int j=0; j

leastSquaresEstimateData.push_back(&(data[j])); } // 对局内点再次用最小二乘法拟合出模型paramEstimator-

>leastSquaresEstimate(leastSquaresEstimateData,parameters); delete [] arr; delete [] bestVotes; delete [] curVotes; return

(double)leastSquaresEstimateData.size()/(double)numDataObjects; }

在模型确定以及最大迭代次数允许的情况下,RANSAC总是能找到最优解。经过我的实验,对于包含80%误差的数据集,RANSAC的效果远优于直接的最小二乘法。

RANSAC可以用于哪些场景呢?最著名的莫过于图片的拼接技术。优于镜头的限制,往往需要多张照片才能拍下那种巨幅的风景。在多幅图像合成时,事先会在待合成的图片中提取一些关键的特征点。计算机视觉的研究表明,不同视角下物体往往可以通过一个透视矩(3X3或2X2)阵的变换而得到。RANSAC被用于拟合这个模型的参数(矩阵各行列的值),由此便可识别出不同照片中的同一物体。可参考下图:

算法的误判,RANSAC有效地将其识别,并将正确的模型(书本)用线框标注出来:

查看文档来源:https://www.360docs.net/doc/3c13557840.html,/blog/961063

扬州大学数学物理方法期末试卷A

院 系 班级 学号 姓名 --------------------------------------装---------------------------------------订-------------------------------------------线----------------------------------------------- 扬州大学试题纸 ( 2010-2011学年第 二 学期) 物 理 学院 微电、物理09级 课程 数学物理方法(A )卷 题目 一 二 三 四 总分 得分 一、填空题(共20分,2分/题) 1. 数量场23 2 2+=x z y z u 在点)1,0,2(-M 处沿24 23=-+ l xi xy j z k 方向 的方向导数为 . 2. 设 A 为一矢性函数, ?表示哈密顿算符, 则()????= A . 3. 在三维直角坐标系中,矢径=++ r xi yj zk ,r r = ,?表示哈密顿算符, 则当0≠r 时,有3?? ??? ??= r r . 4. 在二维平面极坐标系下,调和量?=u . 5.考虑长为l 的均匀细杆的导热问题,若杆0x =的一端保持为恒温零度, l x =的一端绝热,用u 表示温度,则对应的边界条件为 . 6.方程20,(,0)tt xx u a u x t -=-∞<<∞>的通解可以表示为 ()u x,t = . 7. l 阶勒让德多项式的微分表示式为)(x P l = . 8. 设)(x P l 为l 阶勒让德多项式,则积分1 21002001()()-=?x P x P x dx . 9. 常微分方程22(9)0'''++-=x y xy x y 为 阶Bessel 方程. 10. 利用Bessel 函数的递推公式,计算积分1 210()=?x J x dx .

堆排序算法的基本思想及算法实现示例

堆排序算法的基本思想及算法实现示例 堆排序 1、堆排序定义 n个关键字序列Kl,K2,…,Kn称为堆,当且仅当该序列满足如下性质(简称为堆性质): (1) ki≤K2i且ki≤K2i+1 或(2)Ki≥K2i且ki≥K2i+1(1≤i≤ ) 若将此序列所存储的向量R[1..n]看做是一棵完全二叉树的存储结构,则堆实质上是满足如下性质的完全二叉树:树中任一非叶结点的关键字均不大于(或不小于)其左右孩子(若存在)结点的关键字。 【例】关键字序列(10,15,56,25,30,70)和(70,56,30,25,15,10)分别满足堆性质(1)和(2),故它们均是堆,其对应的完全二叉树分别如小根堆示例和大根堆示例所示。 2、大根堆和小根堆 根结点(亦称为堆顶)的关键字是堆里所有结点关键字中最小者的堆称为小根堆。 根结点(亦称为堆顶)的关键字是堆里所有结点关键字中最大者,称为大根堆。 注意: ①堆中任一子树亦是堆。 ②以上讨论的堆实际上是二叉堆(Binary Heap),类似地可定义k叉堆。 3、堆排序特点 堆排序(HeapSort)是一树形选择排序。 堆排序的特点是:在排序过程中,将R[l..n]看成是一棵完全二叉树的顺序存储结构,利用完全二叉树中双亲结点和孩子结点之间的内在关系【参见二叉树的顺序存储结构】,在当前无序区中选择关键字最大(或最小)的记录。 4、堆排序与直接插入排序的区别 直接选择排序中,为了从R[1..n]中选出关键字最小的记录,必须进行n-1次比较,然后在R[2..n]中选出关键字最小的记录,又需要做n-2次比较。事实上,后面的n-2次比较中,有许多比较可能在前面的n-1次比较中已经做过,但由于前一趟排序时未保留这些比较结果,所以后一趟排序时又重复执行了这些比较操作。 堆排序可通过树形结构保存部分比较结果,可减少比较次数。5、堆排序 堆排序利用了大根堆(或小根堆)堆顶记录的关键字最大(或最小)这一特征,使得在当前无序区中选取最大(或最小)关键字的记录变得简单。 (1)用大根堆排序的基本思想

SIFT算法原理

3.1.1尺度空间极值检测 尺度空间理论最早出现于计算机视觉领域,当时其目的是模拟图像数据的多尺度特征。随后Koendetink 利用扩散方程来描述尺度空间滤波过程,并由此证明高斯核是实现尺度变换的唯一变换核。Lindeberg ,Babaud 等人通过不同的推导进一步证明高斯核是唯一的线性核。因此,尺度空间理论的主要思想是利用高斯核对原始图像进行尺度变换,获得图像多尺度下的尺度空间表示序列,对这些序列进行尺度空间特征提取。二维高斯函数定义如下: 222()/221 (,,)2x y G x y e σσπσ-+= (5) 一幅二维图像,在不同尺度下的尺度空间表示可由图像与高斯核卷积得到: (,,(,,)*(,)L x y G x y I x y σσ)= (6) 其中(x,y )为图像点的像素坐标,I(x,y )为图像数据, L 代表了图像的尺度空间。σ称为尺度空间因子,它也是高斯正态分布的方差,其反映了图像被平滑的程度,其值越小表征图像被平滑程度越小,相应尺度越小。大尺度对应于图像的概貌特征,小尺度对应于图像的细节特征。因此,选择合适的尺度因子平滑是建立尺度空间的关键。 在这一步里面,主要是建立高斯金字塔和DOG(Difference of Gaussian)金字塔,然后在DOG 金字塔里面进行极值检测,以初步确定特征点的位置和所在尺度。 (1)建立高斯金字塔 为了得到在不同尺度空间下的稳定特征点,将图像(,)I x y 与不同尺度因子下的高斯核(,,)G x y σ进行卷积操作,构成高斯金字塔。 高斯金字塔有o 阶,一般选择4阶,每一阶有s 层尺度图像,s 一般选择5层。在高斯金字塔的构成中要注意,第1阶的第l 层是放大2倍的原始图像,其目的是为了得到更多的特征点;在同一阶中相邻两层的尺度因子比例系数是k ,则第1阶第2层的尺度因子是k σ,然后其它层以此类推则可;第2阶的第l 层由第一阶的中间层尺度图像进行子抽样获得,其尺度因子是2k σ,然后第2阶的第2层的尺度因子是第1层的k 倍即3 k σ。第3阶的第1层由第2阶的中间层尺度图像进行子抽样获得。其它阶的构成以此类推。 (2)建立DOG 金字塔 DOG 即相邻两尺度空间函数之差,用(,,)D x y σ来表示,如公式(3)所示: (,,)((,,)(,,))*(,)(,,)(,,)D x y G x y k G x y I x y L x y k L x y σσσσσ=-=- (7) DOG 金字塔通过高斯金字塔中相邻尺度空间函数相减即可,如图1所示。在图中,DOG 金字塔的第l 层的尺度因子与高斯金字塔的第l 层是一致的,其它阶也一样。

迪杰斯特拉算法的基本思想

迪杰斯特拉算法的基本思想 算法的基本思想是:设置并逐步扩充一个集合S,存放已求出其最短路径的顶点,则尚未确定最短路径的顶点集合是V-S,其中V为网中所有顶点集合。按最短路径长度递增的顺序逐个以V-S中的顶点加到S中.直到S中包含全部顶点,而V-S为空。 具体做法是:设源点为vl,则S中只包含顶点vl,令W=V-S,则W中包含除v1外图中所有顶点,vl对应的距离值为0,W中顶点对应的距离值是这样规定的:若图中有弧,则vj顶点的距离为此弧权值,否则为 (一个很大的数),然后每次从W中的顶点中选—个其距离值为最小的顶点vm加入到S中,每往S中加入一个顶点vm,就要对W中的各个顶点的距离值进行一次修改。若加进vm做中间顶点,使+的值小于值,则用+代替原来vj的距离,修改后再在W中选距离值最小的顶点加入到S 中,如此进行下去,直到S中包含了图中所有顶点为止。 下面以邻接矩阵存储来讨论迪杰斯特拉算法的具体实现。 为了找到从源点到其他顶点的最短路径,引入两个辅助数组dist[n],s[n],数组dist记录从源点到其他各顶点当前的最短距离,其初值为dist[i]=cost[v0][i], i=2,...,n.其中v0表示源点。从S之外的顶点集合V-S中选出一个顶点w,使dist[w]的值最小。于是从源点到达w只通过S中的顶点,把w加入集合S中调整dist中记录的从源点到V-S中每个顶点v的距离:从原来的dist[v]和dist[w]+cost[w][v]中选择较小的值作为新的dist[v],重复上述过程,直到S中包含V中其余各顶点的最短路径。

数学物理方法期末考试规范标准答案

天津工业大学(2009—2010学年第一学期) 《数学物理方法》(A)试卷解答2009.12 理学院) 特别提示:请考生在密封线左侧的指定位置按照要求填写个人信息,若写在其它处视为作弊。本试卷共有四道大题,请认真核对后做答,若有疑问请与监考教师联系。 一 填空题(每题3分,共10小题) 1. 复数 i e +1 的指数式为:i ee ; 三角形式为:)1sin 1(cos i e + . 2. 以复数 0z 为圆心,以任意小正实数ε 为半径作一圆,则圆内所有点的集合称为0z 点的 邻域 . 3. 函数在一点可导与解析是 不等价的 (什么关系?). 4. 给出矢量场旋度的散度值,即=????f ? 0 . 5. 一般说来,在区域内,只要有一个简单的闭合曲线其内有不属 ------------------------------- 密封线 ---------------------------------------- 密封线 ---------------------------------------- 密封线--------------------------------------- 学院 专业班 学号 姓名 装订线 装订线 装订线

于该区域的点,这样的区域称为 复通区域 . 6. 若函数)(z f 在某点0z 不可导,而在0z 的任意小邻域内除0z 外处处可导,则称0z 为)(z f 的 孤立奇点 . 7. δ函数的挑选性为 ? ∞ ∞ -=-)()()(00t f d t f ττδτ. 8. 在数学上,定解条件是指 边界条件 和 初始条件 . 9. 常见的三种类型的数学物理方程分别为 波动方程 、 输运方程 和 稳定场方程 . 10. 写出l 阶勒让德方程: 0)1(2)1(222 =Θ++Θ -Θ-l l dx d x dx d x . 二 计算题(每小题7分,共6小题) 1. )(z 的实部xy y x y x u +-=22),(,求该解析函数

SIFT算法实现及代码详解

经典算法SIFT实现即代码解释: 以下便是sift源码库编译后的效果图:

为了给有兴趣实现sift算法的朋友提供个参考,特整理此文如下。要了解什么是sift算法,请参考:九、图像特征提取与匹配之SIFT算法。ok,咱们下面,就来利用Rob Hess维护的sift 库来实现sift算法: 首先,请下载Rob Hess维护的sift 库: https://www.360docs.net/doc/3c13557840.html,/hess/code/sift/ 下载Rob Hess的这个压缩包后,如果直接解压缩,直接编译,那么会出现下面的错误提示: 编译提示:error C1083: Cannot open include file: 'cxcore.h': No such file or directory,找不到这个头文件。 这个错误,是因为你还没有安装opencv,因为:cxcore.h和cv.h是开源的OPEN CV头文件,不是VC++的默认安装文件,所以你还得下载OpenCV并进行安装。然后,可以在OpenCV文件夹下找到你所需要的头文件了。 据网友称,截止2010年4月4日,还没有在VC6.0下成功使用opencv2.0的案例。所以,如果你是VC6.0的用户请下载opencv1.0版本。vs的话,opencv2.0,1.0任意下载。 以下,咱们就以vc6.0为平台举例,下载并安装opencv1.0版本、gsl等。当然,你也可以用vs编译,同样下载opencv(具体版本不受限制)、gsl等。 请按以下步骤操作: 一、下载opencv1.0 https://www.360docs.net/doc/3c13557840.html,/projects/opencvlibrary/files/opencv-win/1.0/OpenCV_1.0.exe

武大数学物理方法期末考试试题-2008

2008年数学物理方法期末试卷 一、求解下列各题(10分*4=40分) 1. 长为l 的均匀杆,其侧表面绝热,沿杆长方向有温差,杆的一段温度为零,另一端有热量流入,其热流密度为t 2sin 。设开始时杆内温度沿杆长方向呈2 x 分布,写出该杆的热传导问题的定解问题。 2. 利用达朗贝尔公式求解一维无界波动问题 ?????=-=>+∞<<-∞=-==2||)0,(040 0t t t xx tt u x u t x u u 并画出t=2时的波形。 3. 定解问题???? ???≤≤==∞<<==<<<<=+====) 0( 0,sin )0( 0 ,)0 ,0( ,000a x u x B u y u ay u b y a x u u b y y a x x yy xx ,若要使边界条件齐次化,,求其辅助函数,并写出相应的定解问题 4. 计算积分?-+=1 11)()(dx x P x xP I l l 二、(本题15分)用分离变量法求解定解问题 ?????+===><<=-===x x u u u t x u a u t x x x xx t 3sin 4sin 20 ,0)0,0( 0002ππ 三、(本题15分)设有一单位球壳,其球壳的电位分布12cos |1+==θr u ,求球内、外的电位分布 四、(本题15分)计算和证明下列各题 1.)(0ax J dx d 2.C x x xJ x x xJ xdx x J +-=? cos )(sin )(sin )(100 五、(本题15分)圆柱形空腔内电磁振荡满足如下定解问题

???????===<<<<=+=?===0 00),(0,00),(0),(0l z z z z a u u z u l z a z u z u ρρρρλρ 其中2)(c ω λ=,为光速为电磁震荡,c ω。 (1) 若令)()(),(z Z R z u ρρ=,写出分离变量后关于)()(z Z R 和ρ满足的方程; (2) 关于)()(z Z R 和ρ的本征值问题,写出本征值和本征函数; (3) 证明该电磁振荡的固有频率为 ,3,2,1;,2,1,0 ,)()(220==+=m n l n a x c m mn πω 其中0m x 为零阶Bessel 函数的零点。 参考公式 (1) 柱坐标中Laplace 算符的表达式 (2) Legendre 多项式 (3) Legendre 多项式的递推公式 (4) Legendre 多项式的正交关系 (5) 整数阶Bessel 函数 (6) Bessel 函数的递推关系

SIFT算法英文详解

SIFT: Scale Invariant Feature Transform The algorithm SIFT is quite an involved algorithm. It has a lot going on and can be come confusing, So I’ve split up the entire algorithm into multiple parts. Here’s an outline of what happens in SIFT. Constructing a scale space This is the initial preparation. You create internal representations of the original image to ensure scale invariance. This is done by generating a “scale space”. LoG Approximation The Laplacian of Gaussian is great for finding interesting points (or key points) in an image. But it’s computationally expensive. So we cheat and approximate it using the representation created earlier. Finding keypoints With the super fast approximation, we now try to find key points. These are maxima and minima in the Difference of Gaussian image we calculate in step 2 Get rid of bad key points Edges and low contrast regions are bad keypoints. Eliminating these makes the algorithm efficient and robust. A technique similar to the Harris Corner Detector is used here. Assigning an orientation to the keypoints An orientation is calculated for each key point. Any further calculations are done relative to this orientation. This effectively cancels out the effect of orientation, making it rotation invariant. Generate SIFT features Finally, with scale and rotation invariance in place, one more representation is generated. This helps uniquely identify features. Lets say you have 50,000 features. With this representation, you can easily identify the feature you’re looking for (sa y, a particular eye, or a sign board). That was an overview of the entire algorithm. Over the next few days, I’ll go through each step in detail. Finally, I’ll show you how to implement SIFT in OpenCV! What do I do with SIFT features? After you run through the algorithm, you’ll have SIFT features for your image. Once you have these, you can do whatever you want. Track images, detect and identify objects (which can be partly hidden as well), or whatever you can think of. We’ll get into this later as well. But the catch is, this algorithm is patented. >.< So, it’s good enough for academic purposes. But if you’re looking to make something commercial, look for something else! [Thanks to aLu for pointing out SURF is patented too] 1. Constructing a scale space Real world objects are meaningful only at a certain scale. You might see a sugar cube perfectly on a table. But if looking at the entire milky way, then it simply does not exist. This multi-scale nature of objects is quite common in nature. And a scale space attempts to replicate this concept

数学物理方法试卷(全答案).doc

嘉应学院物理系《数学物理方法》B课程考试题 一、简答题(共70 分) 1、试阐述解析延拓的含义。解析延拓的结果是否唯一( 6 分) 解析延拓就是通过函数的替换来扩大解析函数的定义域。替换函数在原定义域上与替换前的函数 相等。 无论用何种方法进行解析延拓,所得到的替换函数都完全等同。 2、奇点分为几类如何判别(6分) 在挖去孤立奇点Zo 而形成的环域上的解析函数F( z)的洛朗级数,或则没有负幂项,或则 只有有限个负幂项,或则有无限个负幂项,我们分别将Zo 称为函数 F( z)的可去奇点,极点及本性奇点。 判别方法:洛朗级数展开法 A,先找出函数f(z)的奇点; B,把函数在的环域作洛朗展开 1)如果展开式中没有负幂项,则为可去奇点; 2)如果展开式中有无穷多负幂项,则为本性奇点; 3)如果展开式中只有有限项负幂项,则为极点,如果负幂项的最高项为,则为m阶奇点。 3、何谓定解问题的适定性( 6 分) 1,定解问题有解; 2,其解是唯一的; 3,解是稳定的。满足以上三个条件,则称为定解问题 的适定性。 4、什么是解析函数其特征有哪些( 6 分) 在某区域上处处可导的复变函数 称为该区域上的解析函数. 1)在区域内处处可导且有任意阶导数 . u x, y C1 2)这两曲线族在区域上正交。 v x, y C2 3)u x, y 和 v x, y 都满足二维拉普拉斯方程。(称为共轭调和函数 ) 4)在边界上达最大值。 4、数学物理泛定方程一般分为哪几类波动方程属于其中的哪种类型( 6 分)

数学物理泛定方程一般分为三种类型:双曲线方程、抛物线方程、椭圆型偏微分方程。波动方程属于其中的双曲线方程。 5、写出 (x) 挑选性的表达式( 6 分) f x x x 0 dx f x 0 f x x dx f 0 f (r ) ( r R 0 ) dv f ( R 0 ) 、写出复数 1 i 3 的三角形式和指数形式( 8 分) 6 2 cos isin 1 3 2 i 2 三角形式: 2 sin 2 cos 2 1 i 3 cos i sin 2 3 3 1 指数形式:由三角形式得: 3 i z e 3 、求函数 z 在奇点的留数( 8 分) 7 1)( z 2) 2 (z 解: 奇点:一阶奇点 z=1;二阶奇点: z=2 Re sf (1) lim (z 1) z 1 ( z 1)( z 2) 2 z 1

算法习题

算法设计与分析试卷 一、填空题(20分,每空2分) 1、算法的性质包括输入、输出、确定性、有限性。 2、动态规划算法的基本思想就将待求问题分解成若干个子问题、先求解子问题,然后 从这些子问题的解得到原问题的解。 3、设计动态规划算法的4个步骤: (1)找出最优解的性质,并刻画其结构特征。 (2)递归地定义最优值。 (3)以自底向上的方式计算出最优值。 (4)根据计算最优值得到的信息,构造最优解。 4、流水作业调度问题的johnson算法: (1)令N1={i|ai=bj}; (2)将N1中作业依ai的ai的非减序排序;将N2中作业依bi的非增序排序。 5、对于流水作业高度问题,必存在一个最优调度π,使得作业π(i)和π(i+1)满足Johnson不等式min{bπ(i),aπ(i+1)}≥min{bπ(i+1),aπ(i)}。 6、最优二叉搜索树即是最小平均查找长度的二叉搜索树。 二、综合题(50分) 1、当(a1,a2,a3,a4,a5,a6)=(-2,11,-4,13,-5,-2)时,最大子段和为∑ak(2<=k<=4)=20(5分) 2、由流水作业调度问题的最优子结构性质可知,T(N,0)=min{ai+T(N-{i},bi)}(1=sum){ sum=thissum; besti=i; bestj=j;} } return sum; } 4、设计最优二叉搜索树问题的动态规划算法OptimalBinarysearchTree? (15分) Void OptimalBinarysearchTree(int a,int n,int * * m, int * * w) { for(int i=0;i<=n;i++) {w[i+1][i]=a[i]; m[i+1][i]= 0;} for(int r=0;r

【】数学物理方法试卷(全答案)

嘉应学院物理系《数学物理方法》B 课程考试题 一、简答题(共70分) 1、试阐述解析延拓的含义。解析延拓的结果是否唯一(6分) 解析延拓就是通过函数的替换来扩大解析函数的定义域。替换函数在原定义域上与替换前的函数相等。 无论用何种方法进行解析延拓,所得到的替换函数都完全等同。 2、奇点分为几类如何判别(6分) 在挖去孤立奇点Zo而形成的环域上的解析函数F(z)的洛朗级数,或则没有负幂项,或则只有有限个负幂项,或则有无限个负幂项,我们分别将Zo称为函数F(z)的可去奇点,极点及本性奇点。 # 判别方法:洛朗级数展开法 A,先找出函数f(z)的奇点; B,把函数在的环域作洛朗展开 1)如果展开式中没有负幂项,则为可去奇点; 2)如果展开式中有无穷多负幂项,则为本性奇点; 3)如果展开式中只有有限项负幂项,则为极点,如果负幂项的最高项为,则为m阶奇点。 3、何谓定解问题的适定性(6分) 1,定解问题有解;2,其解是唯一的;3,解是稳定的。满足以上三个条件,则称为定解问题的适定性。 > 4、什么是解析函数其特征有哪些(6分) 在某区域上处处可导的复变函数 称为该区域上的解析函数. 1)在区域内处处可导且有任意阶导数. 2) () () ? ? ? = = 2 1 , , C y x v C y x u 这两曲线族在区域上正交。 3)()y x u,和()y x v,都满足二维拉普拉斯方程。(称为共轭调和函数) 4)在边界上达最大值。 |

4、数学物理泛定方程一般分为哪几类波动方程属于其中的哪种类型(6分) 数学物理泛定方程一般分为三种类型:双曲线方程、抛物线方程、椭圆型偏微分方程。波动方程属于其中的双曲线方程。 5、写出)(x δ挑选性的表达式(6分) ()()()()()()?????????=-==-???∞ ∞∞-∞∞ -)()()(00000R f dv R r r f f dx x x f x f dx x x x f δδδ 6、写出复数 231i +的三角形式和指数形式(8分) ¥ 三角形式:()3 sin 3cos 231cos sin 2 321isin cos 222ππ? ?ρ??ρi i i +=++=+=+ 指数形式:由三角形式得: 313πρπ?i e z === 7、求函数 2)2)(1(--z z z 在奇点的留数(8分) 解: 奇点:一阶奇点z=1;二阶奇点:z=2

信息学院2015-2016学年数学物理方法期末考试试题_A

兰州大学2015~2016 学年第1学期 期末考试试卷(A卷) 课程名称:数学物理方法任课教师: 学院:信息学院专业:年级:姓名:校园卡号: 一、填空(共24分,每空2分) 1. = ; 2. 由柯西公式可得= ,其中要求函数是函数; 3.幂级数收敛半径是; 4.积分= ; 5. 是f(z)的奇点,根据洛朗级数展开负幂项的个数可以将奇点分为三类,分别是、、。 6.已知函数f(x, y, z),对于边界,则相应的第一类齐次边界条件可以表示 为。 7. 和,可以构成,与本征值相应的解称为。 8.一般情况下的求解域并不是规则形状,则可以采用法使得求解 域成为规则图形以简化求解。 二、简单计算(共26分,第1、2题每题6分,第3、4题每题7分) 1.在1<|z|<的环域上将函数f(z)= (z+1)/(z2-1)展开为洛朗级数。

2. 以勒让德多项式为基,在区间[-1, 1]上将函数展开为广义 傅里叶级数。 注: 3. 利用留数定理求。 4. 解析函数知识在求解某些势函数时有很大的帮助。我们已知复势表达式为 ,并且 , ,求复势 , 并写成关于z 的表达式。 三、 简答(共23分,前3题每题5分,第4题8分) 1. 简述解析函数的性质。 2. 施图姆-刘维尔型方程为 拉盖尔方程表示为施图姆-刘维尔型如下式所示 与勒让德方程相似,拉盖尔方程的解可以由拉盖尔多项式 表出。试根据 所学过的施图姆-刘维尔本征值问题的相关性质,最少写出拉盖尔方程的三条性质。 3. 写出柱坐标系下的Bessel 方程,Bessel 方程一般有哪几种解的形式,并写出方程的一种通解。 4. 在电路中会经常使用到矩形脉冲信号 试在初始边界条件f (0)=0的条件下,利用傅里叶积分的知识进行计算,简要说明如何通过简单的正弦信号获得该信号。 四、 综合题(共27分,第1题15分,第2题12分) 1. 有一个沿z 轴无限长的矩形波导,如右图所示,横截 面长为a ,宽为b ,左、右、底面三面接地,顶面电 a

SIFT 特征提取算法详解

SIFT 特征提取算法总结 主要步骤 1)、尺度空间的生成; 2)、检测尺度空间极值点; 3)、精确定位极值点; 4)、为每个关键点指定方向参数; 5)、关键点描述子的生成。 L(x,y,σ), σ= 1.6 a good tradeoff

D(x,y,σ), σ= 1.6 a good tradeoff

关于尺度空间的理解说明:图中的2是必须的,尺度空间是连续的。在 Lowe 的论文中, 将第0层的初始尺度定为1.6,图片的初始尺度定为0.5. 在检测极值点前对原始图像的高斯平滑以致图像丢失高频信息,所以Lowe 建议在建立尺度空间前首先对原始图像长宽扩展一倍,以保留原始图像信息,增加特征点数量。尺度越大图像越模糊。 next octave 是由first octave 降采样得到(如2) , 尺度空间的所有取值,s为每组层数,一般为3~5 在DOG尺度空间下的极值点 同一组中的相邻尺度(由于k的取值关系,肯定是上下层)之间进行寻找

在极值比较的过程中,每一组图像的首末两层是无法进行极值比较的,为了满足尺度 变化的连续性,我们在每一组图像的顶层继续用高斯模糊生成了 3 幅图像, 高斯金字塔有每组S+3层图像。DOG金字塔每组有S+2层图像.

If ratio > (r+1)2/(r), throw it out (SIFT uses r=10) 表示DOG金字塔中某一尺度的图像x方向求导两次 通过拟和三维二次函数以精确确定关键点的位置和尺度(达到亚像素精度)?

直方图中的峰值就是主方向,其他的达到最大值80%的方向可作为辅助方向 Identify peak and assign orientation and sum of magnitude to key point The user may choose a threshold to exclude key points based on their assigned sum of magnitudes. 利用关键点邻域像素的梯度方向分布特性为每个关键点指定方向参数,使算子具备 旋转不变性。以关键点为中心的邻域窗口内采样,并用直方图统计邻域像素的梯度 方向。梯度直方图的范围是0~360度,其中每10度一个柱,总共36个柱。随着距中心点越远的领域其对直方图的贡献也响应减小.Lowe论文中还提到要使用高斯函 数对直方图进行平滑,减少突变的影响。

SIFT算法C语言逐步实现详解

SIFT算法C语言逐步实现详解(上) 引言: 在我写的关于sift算法的前倆篇文章里头,已经对sift算法有了初步的介绍:九、图像特征提取与匹配之SIFT算法,而后在:九(续)、sift算法的编译与实现里,我也简单记录下了如何利用opencv,gsl等库编译运行sift程序。 但据一朋友表示,是否能用c语言实现sift算法,同时,尽量不用到opencv,gsl等第三方库之类的东西。而且,Rob Hess维护的sift 库,也不好懂,有的人根本搞不懂是怎么一回事。 那么本文,就教你如何利用c语言一步一步实现sift算法,同时,你也就能真正明白sift算法到底是怎么一回事了。 ok,先看一下,本程序最终运行的效果图,sift 算法分为五个步骤(下文详述),对应以下第二--第六幅图:

sift算法的步骤 要实现一个算法,首先要完全理解这个算法的原理或思想。咱们先来简单了解下,什么叫sift算法: sift,尺度不变特征转换,是一种电脑视觉的算法用来侦测与描述影像中的局部性特征,它在空间尺度中寻找极值点,并提取出其位置、尺度、旋转不变量,此算法由David Lowe 在1999年所发表,2004年完善总结。 所谓,Sift算法就是用不同尺度(标准差)的高斯函数对图像进行平滑,然后比较平滑后图像的差别, 差别大的像素就是特征明显的点。 以下是sift算法的五个步骤: 一、建立图像尺度空间(或高斯金字塔),并检测极值点 首先建立尺度空间,要使得图像具有尺度空间不变形,就要建立尺度空间,sift算法采用了高斯函数来建立尺度空间,高斯函数公式为:

上述公式G(x,y,e),即为尺度可变高斯函数。 而,一个图像的尺度空间L(x,y,e) ,定义为原始图像I(x,y)与上述的一个可变尺度的2维高斯函数G(x,y,e) 卷积运算。 即,原始影像I(x,y)在不同的尺度e下,与高斯函数G(x,y,e)进行卷积,得到L(x,y,e),如下: 以上的(x,y)是空间坐标,e,是尺度坐标,或尺度空间因子,e的大小决定平滑程度,大尺度对应图像的概貌特征,小尺度对应图像的细节特征。大的e值对应粗糙尺度(低分辨率),反之,对应精细尺度(高分辨率)。 尺度,受e这个参数控制的表示。而不同的L(x,y,e)就构成了尺度空间,具体计算的时候,即使连续的高斯函数,都被离散为(一般为奇数大小)(2*k+1) *(2*k+1)矩阵,来和数字图像进行卷积运算。 随着e的变化,建立起不同的尺度空间,或称之为建立起图像的高斯金字塔。 但,像上述L(x,y,e) = G(x,y,e)*I(x,y)的操作,在进行高斯卷积时,整个图像就要遍历所有的像素进行卷积(边界点除外),于此,就造成了时间和空间上的很大浪费。 为了更有效的在尺度空间检测到稳定的关键点,也为了缩小时间和空间复杂度,对上述的操作作了一个改建:即,提出了高斯差分尺度空间(DOG scale-space)。利用不同尺度的高斯差分与原始图像I(x,y)相乘,卷积生成。 DOG算子计算简单,是尺度归一化的LOG算子的近似。 ok,耐心点,咱们再来总结一下上述内容: 1、高斯卷积 在组建一组尺度空间后,再组建下一组尺度空间,对上一组尺度空间的最后一幅图像进行二分之一采样,得到下一组尺度空间的第一幅图像,然后进行像建立第一组尺度空间那样的操作,得到第二组尺度空间,公式定义为 L(x,y,e) = G(x,y,e)*I(x,y)

数学物理方法课程教学大纲

《数学物理方法》课程教学大纲 (供物理专业试用) 课程编码:140612090 学时:64 学分:4 开课学期:第五学期 课程类型:专业必修课 先修课程:《力学》、《热学》、《电磁学》、《光学》、《高等数学》 教学手段:(板演) 一、课程性质、任务 1.《数学物理方法》是物理教育专业本科的一门重要的基础课,它是前期课程《高等数学》的延伸,为后继开设的《电动力学》、《量子力学》和《电子技术》等课程提供必需的数学理论知识和计算工具。本课程在本科物理教育专业中占有重要的地位,本专业学生必须掌握它们的基本内容,否则对后继课的学习将会带来很大困难。在物理教育专业的所有课程中,本课程是相对难学的一门课,学生应以认真的态度来学好本课程。 2.本课程的主要内容包括复变函数、傅立叶级数、数学物理方程、特殊函数等。理论力学中常用的变分法,量子力学中用到的群论以及现代物理中用到的非线性微分方程理论等,虽然也属于《数学物理方法》的内容,但在本大纲中不作要求。可以在后续的选修课中加以介绍。 3.《数学物理方法》既是一门数学课程,又是一门物理课程。注重逻辑推理和具有一定的系统性和严谨性。但是,它与其它的数学课有所不同。本课程内容有很深广的物理背景,实用性很强。因此,在这门课的教学过程中,不能单纯地追求理论上的完美、严谨,而忽视其应用。学生在学习时,不必过分地追求一些定理的严格证明、复杂公式的精确推导,更不能死记硬背,而应重视其应用技巧和处理方法。

4.本课程的内容是几代数学家与物理学家进行长期创造性研究的成果,几乎处处都闪耀创新精神的光芒。教师应当提示学生注意在概念建立、定理提出的过程中所用的创新思维方法,在课堂教学中应尽可能地体现历史上的创造过程,提高学生的创造性思维能力。二、课程基本内容及课时分配 第一篇复数函数论 第一章复变函数(10) 教学内容: §1.1.复数与复数运算。复平面,复数的表示式,共轭复数,无穷远点,复数的四则运算,复数的幂和根式运算,复数的极限运算。 §1.2.复变函数。复变函数的概念,开、闭区域,几种常见的复变函数,复变函数的连续性。 §1.3.导数。导数,导数的运算,科希—里曼方程。 §1.4.解析函数。解析函数的概念,正交曲线族,调和函数。 §1.5.平面标量场。稳定场,标量场,复势。 第二章复变函数的积分(7) 教学内容: §2.1.复数函数的积分,路积分及其与实变函数曲线积分的联系。 §2.2.科希定理。科希定理的内容和应用,孤立奇点,单通区域,复通区域,回路积分。 §2.3.不定积分*。原函数。 §2.4.科希公式。科希公式的导出,高阶导数的积分表达式。(模数原理及刘维定理不作要求) 第三章幂级数展开(9) 教学内容:

算法设计与分析考试题及答案

一、填空题(20分) 1.一个算法就是一个有穷规则的集合,其中之规则规定了解决某一特殊类型问题的一系列运算,此外,算法还应具有以下五个重要特性。 2.算法的复杂性有和之分,衡量一个算法好坏的标准是。 3.某一问题可用动态规划算法求解的显著特征是。 4.若序列{},{},请给出序列X和Y的一个最长公共子序列。 5.用回溯法解问题时,应明确定义问题的解空间,问题的解空间至少应包含。 6.动态规划算法的基本思想是将待求解问题分解成若干,先求解,然后从这些的解得到原问题的解。 7.以深度优先方式系统搜索问题解的算法称为。 8.0-1背包问题的回溯算法所需的计算时间为,用动态规划算法所需的计算时间为。 9.动态规划算法的两个基本要素是和。 10.二分搜索算法是利用实现的算法。 二、综合题(50分) 1.写出设计动态规划算法的主要步骤。 2.流水作业调度问题的算法的思想。 3.若4,在机器M1和M2上加工作业i所需的时间分别为和,且(a1234)=(4,5,12,10),(b1234)=(8,2,15,9)求4个作业的最优调度方案,并计算最优值。 4.使用回溯法解0/1背包问题:3,9,{6,10,3},{3,4,4},其解空间

有长度为3的0-1向量组成,要求用一棵完全二叉树表示其解空间(从根出发,左1右0),并画出其解空间树,计算其最优值及最优解。 5.设{X1,X2,···,}是严格递增的有序集,利用二叉树的结点来存储S中的元素,在表示S的二叉搜索树中搜索一个元素X,返回的结果有两种情形,(1)在二叉搜索树的内结点中找到,其概率为。(2)在二叉搜索树的叶结点中确定X∈(,1),其概率为。在表示S的二叉搜索树T中,设存储元素的结点深度为;叶结点(,1)的结点深度为,则二叉搜索树T的平均路长p为多少?假设二叉搜索树T[i][j]={,1,···,}最优值为m[i][j],W[i][j]= 1···,则m[i][j](1<<<)递归关系表达式为什么? 6.描述0-1背包问题。 三、简答题(30分) 1.流水作业调度中,已知有n个作业,机器M1和M2上加工作业i所需的时间分别为和,请写出流水作业调度问题的法则中对和的排序算法。(函数名可写为()) 2.最优二叉搜索树问题的动态规划算法(设函数名)) 答案: 一、填空 1.确定性有穷性可行性 0个或多个输入一个或多个输出 2.时间复杂性空间复杂性时间复杂度高低 3. 该问题具有最优子结构性质 4.{}或{}或{}

数学物理方法期末考试试题典型汇总

Mathematical methods for physics 一、 单项选择题(每小题2分) 1.齐次边界条件0),(),0(==t u t u x x π的本征函数是_______。 A)Λ3,2,1 sin =n nx B) Λ,2,1,0 cos =n nx C)Λ2,1,0 )21sin(=+n x n D) Λ2,1,0 )2 1cos(=+n x n 2.描述无源空间静电势满足的方程是________。 A) 波动方程 B)热传导方程 C) Poisson 方程 D)Laplace 方程 3.半径为R 的圆形膜,边缘固定,其定解问题是???? ?????====?-??===)(| ),(|0|0),(),(0t 02222ρψρ?ρρρt t R u u u t u a t t u 其解的形式为∑∞ ==100)()(),(m m m k J t T t u ρρ,下列哪一个结论是错误的______。 A) )()()()(20222 t T k a t T dt d t T m m m m -=满足方程 B )圆形膜固有振动模式是)sin(0t ak m 和)cos(0t ak m C )0m k 是零阶Bessel 函数的第m 个零点。 D ))()(00ρρm m k J R =满足方程0)(2202=+'+''R k R R m ρρρ 4.)(5x P 是下列哪一个方程的解_________。 A )0202)1(2=+'-''-y y x y x B )0252)1(2=+'-''-y y x y x C )0302)1(2=+'-''-y y x y x D )052)1(2=+'-''-y y x y x 5.根据整数阶Bessel 函数的递推公式,下列结论哪一个是正确的________。 A ))(2)()(120x J x J x J '=- B ))()()(1 11x J x x J x xJ '=+ C ))(2)()(210x J x x J x J = - D ))(2)()(120x J x x J x J '=+ 二、 填空题(每题3分)

相关文档
最新文档