最小二乘平差之附有参数的条件平差
来源:互联网 发布:mac开机黑屏有进度条 编辑:程序博客网 时间:2024/05/19 04:07
在正式开始正题之前,先引述一下模式可分性的Cover定理:
假设空间不是稠密分布的,将复杂的模式分类问题非线性地投射到高维空间将比投射到低维空间更可能是线性可分的。
Cover定理在机器学习中较常被提及,比如:支持向量机。但由于平差的对象空间一般是稠密的,此定理似乎不太适合于这里,但原理是相通的,也就是低维空间的问题一一投射到高维空间往往能得到更好的解决方案。从数学角度上讲,上面的增加空间的维度和本文要讲的增加拟合的参数是等价的。
附有参数的条件平差也可看作是一种间接平差和条件平差的混合模型。增加条件方程是“降维”,它可以把复杂的问题变得简单;添加参数是“升维”,它可以把问题变得理论上可分的概率更大。两者并不矛盾,而且相辅相成。我们中学初等几何中常用的添加辅助线、辅助面的方法其实就是附加参数以增加条件方程。
为了说明条件平差附有参数的情况,在这里先举一个例子,这是书上的一个例子,很多同学对它不陌生。
固定边条件(由AC推算到AB)为:
从这5个条件方程进行平差,该问题就得到了解决。
一般而言,在某一平差问题中,观测值个数为
如果条件方程是线性的,其形式为
或者
为了求出原问题的解,依附最小二乘及拉格朗日乘子,组成函数
// <summary> /// 附有参数的条件平差/// </summary> /// <param name="correction">返回的改正数</param> /// <param name="MatrixA"></param>/// <param name="MatrixB"></param>/// <param name="w"></param>/// <param name="C"></param>/// <param name="N"></param>/// <param name="U"></param>//////////////////////////////////////////////////////////////////////////template<class T>void GetConditionCorrectionWithParameters(T correction[],const T matrixA[],const T matrixB[],const T w[],int C,int N,int U){ T *transposedA=new T[N*C]; T *transposedB=new T[U*C]; T *Naa=new T[C*C]; T *inverseForNaa=new T[C*C]; T *Nbb=new T[U*U]; T *inverseForNbb=new T[U*U]; T *x=new T[U]; MatrixTranspose(matrixA,transposedA,C,N); MultMatrix(matrixA,transposedA,Naa,C,N,C); MatrixAnti(Naa,inverseForNaa,C); MatrixTranspose(matrixB,transposedB,C,U); T *transit1=new T[U*C]; MultMatrix(transposedB,inverseForNaa,transit1,U,C,C); MultMatrix(transit1,matrixB,Nbb,U,C,U); MatrixAnti(Nbb,inverseForNbb,U); T *transit2=new T[U*C]; MultMatrix(inverseForNbb,transposedB,transit2,U,U,C); T *transit3=new T[U*C]; MultMatrix(transit2,inverseForNaa,transit3,U,C,C); MultMatrix(transit3,w,x,U,C,1); MatrixMinus(x,x,U,1); T *transit4=new T[N*C]; MultMatrix(transposedA,inverseForNaa,transit4,N,C,C); T *transit5=new T[C]; MultMatrix(matrixB,x,transit5,C,U,1); T *transit6=new T[C]; MatrixAdd(transit5,w,transit6,C,1); MultMatrix(transit4,transit6,correction,N,C,1); delete [] transposedA; delete [] transposedB; delete [] Naa; delete [] inverseForNaa; delete [] Nbb; delete [] inverseForNbb; delete [] x; delete [] transit1; delete [] transit2; delete [] transit3; delete [] transit4; delete [] transit5; delete [] transit6;}
最后说一下精度评定,单位权方差可由下式估值
平差值函数的协因数的计算公式为
最后,
参考资料:
[1] 误差理论与测量平差基础 武汉大学测绘学院测量平差学科组编著
转载请注明出处:http://blog.csdn.net/fourierFeng/article/details/54974408
- 最小二乘平差之附有参数的条件平差
- 最小二乘平差之附有限制条件的间接平差
- 最小二乘平差之附有限制条件的条件平差(概括平差模型)
- 最小二乘平差之条件平差
- 最小二乘平差之间接平差
- 之间的差最小
- 序列和之差最小
- 求数组两两之差绝对值最小的值
- 整数数组中两两之差绝对值最小的值
- 求出数组两两之差绝对值最小的值
- 求数组两两之差绝对值最小的值
- 求数组两两之差绝对值最小的值
- 求数组两两之差绝对值最小的值
- 最大奇数与最小偶数之差的绝对值
- 整数数组中两两之差绝对值最小的值
- 最大奇数与最小偶数之差的绝对值
- python -- 序列和之差的绝对值最小
- 数组之间的差最小
- Android MediaPlayer 声音渐强渐弱效果实现
- Android线程的Looper相关知识
- JDK1.5~1.8新特性
- bzoj1011 [HNOI2008]遥远的行星
- 【HDU1517】A Multiplication Game(博弈论)
- 最小二乘平差之附有参数的条件平差
- ThinkPHP5快速入门 初学memo - URL问题
- Java--EditPlus配置javac,java命令
- PAT A1018 Public Bike Management(30)
- 泛型
- PostgreSQL学习篇16.2 同步流复制的standby数据库
- 4月1-5号在武汉举行第五届全国Revit开发中高级实战训练营
- rest 最全实战-从创建到访问
- 多台web服务器之间共享session