随笔分类 -  Sth. about Programming

摘要:写感悟是一个好习惯,我要坚持,不过目前还只是一些很杂乱的细节被记下来了,尚未得到什么大的提高。看起来像初学者扫盲贴= =2011年1月15日 星期六 雨 QT中new出来的对象都不用删除,只要设置了parent对象。 我为了不用new,直接声明的layout,在函数调用结束时就删除了,这样会导致程序错误,还是应该动态申请。 我居然想到写个matrixWindow继承QWidget来避免重复工作。 相关的东西放在一起,比如MathLib.h .h文件里的函数定义都要是inline的,不然会有link error。以前也遇到过,但每次写的时候还是会忘记加inline。 原来用QFileInfo就可 阅读全文
posted @ 2011-01-21 10:22 筱夏 阅读(424) 评论(0) 推荐(0)
摘要:又是焦头烂额的一天。准备开始写深度提取了,在此之前必须对图像进行rectification。1. 找库在网上找到了一个rectification的matlab代码,准备改成C++。之前的项目组用的数学库有一些问题,导致旋转操作总是与OPENGL显示相反。写刚体碰撞检测的时候已经深受其害,这次找了一下午,想找一个好用的数学库出来。2. 多project之间的dependence最后在sourceforge找到一个兼容OPENGL的数学库,下下来之后不能运行,正好之前从来没有弄过但solution多project的项目(土吧。。),可以试一试。设置了项目关联性、include目录修改了一下,就可以 阅读全文
posted @ 2011-01-07 22:24 筱夏 阅读(438) 评论(3) 推荐(0)
摘要:开篇说些废话,我并不是很喜欢《C++数值方法》这本书,因为我数学底子不是很好,这本书又写得太过艰涩,我实在无法理解,以前试图找一些其他的计算方法的书看看,但boss坚持让我看这本,其他的看了也当我没看。书借了很久,却一直没时间看,boss催着我要快点看完,图书馆也催着我快些还书,我只能粗略地浏览一番,对各种方法混个脸熟(其实现在也忘得差不多了)。 这一系列摘记其实写得水的很,因为我无法看懂那些公... 阅读全文
posted @ 2010-12-31 10:26 筱夏 阅读(267) 评论(0) 推荐(0)
摘要:注:以下来自《C++数值算法一书》,仅对章节内容做摘要,为的是给自己扫盲,不涉及算法。 偏微分方程通常根据其特征线或信息传播曲线分为三种类型,双曲型、抛物型或椭圆型。双曲型方程的典型例子就是一维波动方程: 抛物型方程的模型方程是扩散方程 椭圆型方程的模型方程是泊松方程 但从计算的角度来看,最重要的分类方法是:眼前的问题是初值问题(随时间的发展)还是边值问题(静态解)。   1. 通量守恒的初... 阅读全文
posted @ 2010-12-30 20:38 筱夏 阅读(890) 评论(0) 推荐(0)
摘要:注:以下来自《C++数值算法一书》,仅对章节内容做摘要,为的是给自己扫盲,不涉及算法。 Fredholm方程涉及具有固定上、下限的定积分。第一类非齐次Fredholm方程形式如下: K(t,s)称为核,上式对应的矩阵方程为Kf=g。第一类方程是病态的,核作用到一个函数通常起到光滑的作用,会丢失信息,这类问题专门的处理方法是反演问题。 第二类Fredholm方程写为: 没有特别的病态。 Vol... 阅读全文
posted @ 2010-12-30 19:38 筱夏 阅读(1215) 评论(0) 推荐(0)
摘要:注:以下来自《C++数值算法一书》,仅对章节内容做摘要,为的是给自己扫盲,不涉及算法。 当微分方程要求在多于一个的自变量值上满足边界条件时,这种问题叫做两点边值问题。解两点边值问题有两种不同类型的数值解法:打靶法和松弛法   1. 打靶法 打靶法的积分过程是从x1到x2,并且努力使积分结果在积分的终点和边界条件匹配。在一个边界x1上选择了所有因变量的值,这些值必须和该边界的边界条件保持一致... 阅读全文
posted @ 2010-12-28 20:06 筱夏 阅读(5806) 评论(0) 推荐(0)
摘要:注:以下来自《C++数值算法一书》,仅对章节内容做摘要,为的是给自己扫盲,不涉及算法。 与常微分方程组ODE有关的问题常常都可以化为一系列一阶微分方程的问题来研究。 如 可化为两个一阶微分方程 常微分方程组的解不完全由其方程决定,要确定方程的解还需要边界值条件。边界值条件分为初值问题和两点边值问题,本章主要讨论初值问题。   1. 龙格库塔法Runge-Kutta 通过类似于欧拉方法中... 阅读全文
posted @ 2010-12-24 14:26 筱夏 阅读(2882) 评论(0) 推荐(0)
摘要:注:以下来自《C++数值算法一书》,仅对章节内容做摘要,为的是给自己扫盲,不涉及算法。 给定一组观察结果,我们经常要对这组数据进行浓缩和概括,使它适合依赖于可调整参数的模型。基本方法是选择或设计一个优值图形函数,它必须能度量数据和具有特别参数选择的模型之间一致性的程序。接着,对模型的参数进行调节,使优值函数取最小值,产生最佳拟合参数。 参数拟合不是一个参数估计的终结。一个真正有用的拟合过程必须... 阅读全文
posted @ 2010-12-23 13:41 筱夏 阅读(406) 评论(0) 推荐(0)
摘要:注:以下来自《C++数值算法一书》,仅对章节内容做摘要,为的是给自己扫盲,不涉及算法。 第12章与第13章讲傅里叶变换的,由于时间关系,我暂时没有看这几章,与项目关系不大(而且我信号与线性系统学的很糟糕,各种混乱)。 数据的统计描述主要讲述一些概率论与数理统计的基本知识。 1. 分布的矩:均值、方差、偏斜度等 当一组数据有很强的集中趋势,即某一特殊值周围聚集的趋势,则用与矩有关的一些量来表... 阅读全文
posted @ 2010-12-20 21:10 筱夏 阅读(518) 评论(0) 推荐(0)
摘要:注:以下来自《C++数值算法一书》,仅对章节内容做摘要,为的是给自己扫盲,不涉及算法。 一个N*N阶矩阵A如果满足下式,则它具有一个特征向量x和相应的特征值λ: 需要满足下式: 展开之后得到λ的N阶多项式,其根就是特征值。总存在N个特征值,由于重根的相同特征值被称为退化。 (本章涉及很多很多线性代数知识,楼主线代不好,可能写着写着晕掉了) 1. 对称矩阵的雅可比变换 思想,雅可比方法是由一... 阅读全文
posted @ 2010-12-19 15:09 筱夏 阅读(823) 评论(0) 推荐(0)
摘要:注:以下来自《C++数值算法一书》,仅对章节内容做摘要,为的是给自己扫盲,不涉及算法。 给定一个函数f,它依赖于一个或多个独立变量,求f达到某一极大值或极小值时自变量的取值,并计算出在这个极大值点或极小值点处函数f的取值。函数的极值可以是整体也可以是局部,一般求整体极值是一个很难解决的问题。本章标题也可称为最优化。   1. 一维黄金分割 二分法的思想完全可以平移到求极小值问题上,对于a... 阅读全文
posted @ 2010-12-15 20:10 筱夏 阅读(1492) 评论(0) 推荐(0)
摘要:注:以下来自《C++数值算法一书》,仅对章节内容做摘要,为的是给自己扫盲,不涉及算法。 第8章排序是算法导论说过的,大家都知道的算法。也是我看的最轻松的。。。。略   除线性情况外,求根过程总要借助迭代来完成,在一维和多维情况下都是如此。常用的算法总是从某个近似的初始解出发,不断修改这个解,直到满足某种预先确定的收敛准则位置。   1. 划界与二分 思想:如果f(a)与f(b)具有相反... 阅读全文
posted @ 2010-12-13 20:17 筱夏 阅读(1447) 评论(0) 推荐(0)
摘要:注:以下来自《C++数值算法一书》,仅对章节内容做摘要,为的是给自己扫盲,不涉及算法。 一般来说,任何程序必将产生出完全可以预计的结果,因而不是真正的随机数。有时被称为伪随机。从实用的观点看,随机性是使用者自己认可的事,也就是说,够用就行。   1. 均匀分布(书上说是一致偏离,看了china-pub上的书评,说这应该是均匀分布) 首先,是地球人都知道的rand()。。。依据seed生成不... 阅读全文
posted @ 2010-12-11 21:29 筱夏 阅读(440) 评论(0) 推荐(0)
摘要:注:以下来自《C++数值算法一书》,仅对章节内容做摘要,为的是给自己扫盲,不涉及算法。特殊函数其实是指一些常用的函数,它们通常有自己的软件包,本章的目的是为了理解它们的内部运行情况。1. 伽马函数、B函数、阶乘、二项式系数思想:伽马函数满足递推式Γ(z+1)=zΓ(z)。如果z是整数那么这就是一个阶乘函数的变体。计算伽马函数的数值方法有很多,但都不如Lanczos导出的近似公式清晰。而计算lnΓ(z)比Γ(z)更好,不容易溢出。阶乘也容易溢出,对于小数字的阶乘,最好用查表法,稍大一些的用伽马公式计算。求解Beta函数和二项式系数是根据lnΓ(z)推导的。2. 不完全伽马函数、误差函数、χ2概率 阅读全文
posted @ 2010-12-06 13:50 筱夏 阅读(2013) 评论(0) 推荐(0)
摘要:注:以下来自《C++数值算法一书》,仅对章节内容做摘要,为的是给自己扫盲,不涉及算法。这里只讨论一些最清晰明了的一般方法。1. 级数与其收敛性思想:解析函数可在某点x0的邻域内展开成级数:。用这个级数可以直接估值。对于通项的模是递减的级数,可以用艾肯特δ2过程加速收敛。对交错级数(和式中项的符号交替变化),欧拉变换是强大的工具。van Wijngaarden方法是欧拉变换的一个精巧的实现方式。2. 连分式求值思想:连分式可作为科学计算中求函数值的有效工具,连分式如下面的形式:连分式通常比级数展开收敛要快得多,并且收敛区域更大。求解连分式的两个比较新的方法是Steed方法和改进的Lentz方法。 阅读全文
posted @ 2010-12-03 19:06 筱夏 阅读(974) 评论(0) 推荐(0)
摘要:注:以下来自《C++数值算法一书》,仅对章节内容做摘要,为的是给自己扫盲,不涉及算法。求积分高数里都学过了,就不介绍了。1. 坐标等距划分的经典公式思想:最经典最原始的求积分方法。使用了在端点的函数值f(a)和f(b)的积分公式,称为闭型公式。有时被积函数在一个或两个端点处的函数值难以计算,此时就需要一个开型公式。典型的方法有Newton-Cotes闭型公式,该公式根据划分区间数有梯形法、Simpson法等方法。针对开型公式和半开型公式,这个公式有更多扩展。2. 基本算法思想:扩展梯形法、以及扩展Simpson法。3. 龙贝格积分思想:利用扩展梯形法中连续进行k次细分的结果,消除误差级数直到O 阅读全文
posted @ 2010-12-01 10:43 筱夏 阅读(697) 评论(0) 推荐(0)
摘要:注:以下来自《C++数值算法一书》,仅对章节内容做摘要,为的是给自己扫盲,不涉及算法。画一条通过xi的平滑曲线,对任意的x估算f(x)的值。如果所求的x处于xi的最大值与最小值之间,则称之为内插法,如果x超出此范围则称为外推法。内插法与函数逼近有关,但逼近的任务是用一个近似且简单的函数取代原来较复杂的函数,内插法是要在不由自己选择的点上给出函数f的值。1. 多项式内插法和外推法通过N个点的N-1维... 阅读全文
posted @ 2010-11-27 21:25 筱夏 阅读(25589) 评论(0) 推荐(0)
摘要:注:以下来自《C++数值算法一书》,仅对章节内容做摘要,为的是给自己扫盲,不涉及算法。以下是线性代数方程组:当N=M时,则可能可以求得x的唯一解集。如果是行退化(某些方程是其他方程的线性组合)或者列退化(某些变量是其他变量的线性组合),则称这个方程组是奇异的。方程组一般可以写成Ax=b的形式。A是M*N的矩阵,b是M维向量。若M<=N,则方程组是退化的,或者无解,或者不止一个解。若M>... 阅读全文
posted @ 2010-11-27 20:36 筱夏 阅读(1473) 评论(0) 推荐(0)
摘要:这次的错误搞了我两天,我要发个日志记录一下T_T   之前没用过库,以为下下来之后,把头文件和cpp文件都加进工程里,搞好include就行。 库是在linux下写的,我与linux下专用的那些函数及头文件搏斗了很久,后来发现,库里面有用#ifdef判断当前系统的,根本不用我瞎折腾。。。   但是还是很多error,尤其是改了几个头文件后,VS2005几乎死掉,报了1... 阅读全文
posted @ 2010-09-27 20:40 筱夏 阅读(2541) 评论(0) 推荐(1)
摘要:昨天学姐运行我的程序,结果总是不对,原本以为注释掉几条语句就可以,结果直接崩了。因为是GPU程序,而我没办法使用EmuDebug,所以只能一点点注释来查错。刚开始学CUDA,真的不知道如何是好。这个错误隐约见过,我觉得是内存访问越界,可是又不明白,为什么在计算了那么多次之后才越界。昨晚百思不得其解,今天早上爬起来继续看代码的时候发现,从一维索引转二维索引有错误,改过来之后,终于没有再崩溃了。以前没... 阅读全文
posted @ 2010-09-03 15:25 筱夏 阅读(413) 评论(0) 推荐(0)