- 博客(31)
- 资源 (2)
- 收藏
- 关注
原创 Jacobi迭代法求解方程组
JacobiFile.h#include #include #include #include #include "Jacobi.h"////////////////////////////////////////char matAb[20]; //存放矩阵mat_A和mat_b的文件char matRes[20]; //存放每次迭代结果///////////////////
2012-11-07 18:30:46
1260
原创 LU分解法解非齐次方程组Ax=b
LU.h#include double **mat_L, **mat_U; //矩阵L Uint N; //方阵的阶class LU {public : LU();public : void or_mat(int N); //初始矩阵(系数矩阵mat_A, 右值矩阵mat_b)初始化,N为方阵阶 void creatLU(void); //将矩阵A 分解为L U vo
2012-11-06 22:04:34
1862
原创 最小二乘法求多项式拟合曲线
Crv_fit.h//多项式曲线拟合 f(x)=a0+a1x+a2x^2+a3x^3+...anx^nclass Crv_fit {public : Crv_fit(void); void clear(void); //~Crv_fit(void);public : void init_ary(int m); //m为样本点个数; 初始化数组ary_x, ary_y; 初始
2012-11-06 09:22:06
1881
1
原创 高斯消元法解向量方程Ax=b
#include #include #include //非齐次线性方程组Ax=bdouble **mat_A; //存放系数矩阵Adouble *mat_b; //存放右值数组bdouble *result; //结果数组const int M=3; //方阵的阶const int N=3;///////////////////////////////////////voi
2012-11-06 08:53:34
1942
原创 将数组元素全排列后输出每个排列结果
#include #include ///////////////////////////char *ary; //数组指针////////////////////////////////////////////////void init_ary(int n); //数组个数void srt_l_h(int n); //将数组按值从小到大排列void srt_a_b(char *
2012-11-03 21:10:14
658
原创 雅可比算法求方阵的全部特征值和特征向量
ValVect.h#include class ValVect {public : ValVect(void); void clear(void); //~ValVect(void);public : void rdOrMatrix(int _dim, double _e); //从文件中读取对称方阵,将其存在矩valAry中(每一列为一样本向量,即行数为维数)._dim为方
2012-10-31 08:11:19
10254
原创 高维数据样本集的协方差矩阵的求解及算法实现
步骤:1、获取样本集矩阵(本文中行表示样本,列表示维度)void PCA::orMatrix(int _sapNum, int _dimt) { //初始样本集矩阵 sapNum_ = _sapNum; dimt_ = _dimt; std::cout << "维数为: " << dimt_ << "样本个数为: " << sapNum_ << '\n'; orAry = (doub
2012-10-25 21:38:26
4038
转载 协方差矩阵
本文转自:http://blog.youkuaiyun.com/jlz999/article/details/6670375协方差的定义 对于一般的分布,直接代入E(X)之类的就可以计算出来了,但真给你一个具体数值的分布,要计算协方差矩阵,根据这个公式来计算,还真不容易反应过来。网上值得参考的资料也不多,这里用一个例子说明协方差矩阵是怎么计算出来的吧。记住,X、Y是一个列向量,它表
2012-10-24 21:10:35
1754
转载 方阵的特征值和特征向量
本摘抄自:http://blog.youkuaiyun.com/woxincd/article/details/6917588http://blog.youkuaiyun.com/zhubenfulovepoem/article/details/7191757一、定义 设 是阶方阵,若有数和非零向量,使得称数 是的特征值,非零向量是对应于特征值的特征向量。例如 对 ,有及向量,
2012-10-23 09:42:42
4437
转载 矩阵小记
摘抄自:http://blog.youkuaiyun.com/myan/article/details/1865397尽管描述一个三维对象只需要三维向量,但所有的计算机图形学变换矩阵都是4 x 4的。实质上是因为在计算机图形学里应用的图形变换,实际上是在仿射空间而不是向量空间中进行的。想想看,在向量空间里对一个向量平行移动以后仍是相同的那个向量,而现实世界等长的两个平行线段当然不能被认为同一个东西,所
2012-10-22 20:41:22
476
原创 高斯-塞德尔迭代法解线性方程组
n元线性方程组可变形为设则得当范数小于给定的精度时结束计算注意:不同于非线性方程组的解法,解线性方程组的迭代收敛与否完全取决于迭代矩阵的性质,与迭代的初始值无关。通常判断是否收敛的方法:若方程AX=y的系数矩阵A,满足下列条件之一,则可判定迭代收敛(1)A为行对角优阵,即(2) A为列对角优阵,即
2012-10-22 13:30:53
3172
原创 牛顿迭代法解非线性方程(组)
1、牛顿迭代思想借助对函数f(x)=0做泰勒展开而构造的一种迭代格式将f(x)=0在初始值x0做泰勒展开:当h趋近于0时,在[x,x+h]区间内用直线表示曲线,故而去展开式的线性部分做f(x)≈0的近似值则即得则得到迭代格式为2、弦截法用差商代替导数得迭代格式为3、非线性方程组的牛顿迭代法方程组在(x0,y0)附近做泰勒展开得设则得到
2012-10-22 07:25:36
12691
3
原创 用最小二乘法构造拟合曲线
插值方法:目标是让插值函数尽量靠近离散点拟合曲线:目的是要离散点尽量靠近拟合函数拟合函数构造原则:按Q(逼近函数在各点的值)与Y(各点的精确值)之间误差最小原则作为“最优”标准最小二乘法:按均方误差(各点误差的平方和R)达到极小(即偏微分为0)构造拟合曲线的方法设计和确定“最贴近”的拟合曲线关键要选择合适的曲线类型例子:二次拟合函数:给定数据序列(xi,yi),i=
2012-10-21 19:57:02
1682
原创 三次样条函数插值法
定义:给定区间[a,b]上n+!个节点a=x0在每个小区间[xi,x(i+1)]上构造三次多项式注意:在每个小区间内S(x)不同记,其中用节点处二阶导数表示样条插值函数时称为大M关系式,用一阶导数表示时称为小m关系式。1、确定大M方法由于在[xi,x(i+1)]上为线性函数,故在xi,x(i+1)]上做M的分段线性插值函数得:另最终得:经过计算的:其中
2012-10-21 16:34:04
6256
原创 插值方法-牛顿插值
1、关于点的一阶差商为 关于的二阶差商为 关于点的k阶差商为 可以证明差商的值只与节点有关,与节点的顺序无关2、由n阶差商的定义得整理得二式乘以(x-x0),三式乘以(x-x1)...然后将所有式子相加得n次牛顿插值函数f(x)为误差项为:算法实现:1、计算k阶差商并存入数组数组g[i
2012-10-21 14:34:18
1599
原创 插值方法-拉格朗日多项式
定义:f(x)为定义在区间[a,b]上的函数,x0,x1,...,xn为[a,b]上n+1个互不相同的点,Φ为给定的某一函数类。若Φ上有函数ψ(x)满足:ψ(xi)=f(xi),i=0,1,...,n则称ψ(x)为f(x)关于节点x0,x1,...,xn在Φ上的插值函数。x0,x1,...,xn为插值节点,{xi,f(xi)}为插值型值点(插值点),f(x)为插值函数可以对插值函数
2012-10-21 10:25:47
3849
转载 z-buffer 与 w-buffer
本文转自:http://blog.youkuaiyun.com/yangdelong/article/details/1633843Depth-Buffer(深度缓存)有两种:Z-Buffer 和 W-Buffer,这里讨论这两种深度缓存的区别,以及如何在两者之间转换。w 的含义3D空间点的坐标是(x,y,z),为了使矩阵乘法具有平移变换的功效,我们用4D空间中的点(x,y,z,w)来表示3D
2012-10-20 11:22:41
1161
转载 k近邻与k-d树
本文转自:http://blog.youkuaiyun.com/hust_core/article/details/7628177k近邻k近邻法(k nearest neighbor algorithm,k-NN)是机器学习中最基本的分类算法,在训练数据集中找到k个最近邻的实例,类别由这k个近邻中占最多的实例的类别来决定,当k=1时,即类别为最近邻的实例的类别。如上图所示(引自
2012-10-19 21:17:24
1173
转载 kd-tree
kd树是平衡二叉树,是做多维数据索引时候用到的一种数据结构,主要应用于多维空间关键数据的搜索(如:范围搜索和最近邻搜索)。k-d树的每一层将空间分成两个。树的顶层结点按一维进行划分,下一层结点按另一维进行划分,以此类推,各个维循环往复。划分要使得在每个结点,大约一半存储在子树中的点落入一侧,而另一半落入另一侧。当一个结点中的点数少于给定的最大点数时,划分结束。在每一层利用某一维的信息进
2012-10-19 18:42:29
472
原创 视图、模型、投影、视口变换
1、(1)视图变换:对象是照相机glLookAt()函数指定视图变换,即设置视点gluLookAt(GLdoble eyex,GLdouble eyey,GLdouble eyez,GLdouble centerx,GLdouble centery,GLdouble centerz,GLdouble upx,GLdouble upy,GLdouble upz);它共接受三对坐标
2012-10-19 10:17:46
1184
转载 使用混合来实现半透明效果
本文转自:http://blog.youkuaiyun.com/whisperLin/article/details/4427719混合就是把两种颜色混在一起。具体一点,就是把某一像素位置原来的颜色和将要画上去的颜色,通过某种方式混在一起,从而实现特殊的效果。假设我们需要绘制这样一个场景:透过红色的玻璃去看绿色的物体,那么可以先绘制绿色的物体,再绘制红色玻璃。在绘制红色玻璃的时候,利用“混合”功能,把
2012-10-18 07:59:12
2245
转载 OpenGL二次曲面
本文转自:http://blog.youkuaiyun.com/pizi0475/article/details/5330162原 文:Lesson 18: Quadrics译 者:sakura 二次曲面是一种画复合对象的方法,这种方法通常并不需要很多的三角形。我们将要使用第七课的代码。我们将要增加7个变量以及修改纹理以增加一些变化 : #include
2012-10-06 09:14:56
723
转载 gl glu glut函数简介
文章转自:http://blog.youkuaiyun.com/weiqubo/article/details/7831904OpenGL中的gl库是核心库,glu是实用库,glut是实用工具库,gl是核心,glu是对gl的部分封装,glut是OpenGL的跨平台工具库,gl中包含了最基本的3D函数,而glu似乎对gl的辅助,如果算数好,不用glu的情况下,也是可以做出同样的效果。glut
2012-10-05 15:59:15
2073
转载 顶点数组
文章转自:http://blog.youkuaiyun.com/lcphoenix/article/details/6585182绘制一个立方体的时候,需要6个正方形,普通的画法,需要指定6 × 4 = 24个顶点进一步优化:指定8个顶点,存在数组中,再创建另外一个数组,保存每个面使用的顶点序号。就是一个比较合理的程序结构。但程序依然要循环24次,分别指定每个正方形的顶点。进一步优化,使用
2012-10-04 16:15:10
750
原创 点画多边形(续)
1、表示以顶点是否为边界边起点void glEdgeFlag(GL_TURE/GL_FALSE);——若为GL_TURE则表示在此之后创建的所有顶点都是边界边的起点void glEdgeFlagv(const GLboolean *flag);——数组形式实例:glPolygonMode(GL_FRONT_AND_BACK,GL_LINE);glBegin(GL_POLYGO
2012-10-04 15:30:06
451
转载 OpenGL中的缓冲区对象
文章转自:http://blog.youkuaiyun.com/mzyang272/article/details/7655464在许多OpenGL操作中,我们都向OpenGL发送一大块数据,例如向它传递需要处理的顶点数组数据。传输这种数据可能非常简单,例如把数据从系统的内存中复制到图形卡。但是,由于OpenGL是按照客户机-服务器模式设计的,在OpenGL需要数据的任何时候,都必须把数据从客户机内存
2012-10-04 09:54:23
695
原创 多边形点画模式
1、void glPolygonMode(GLenum face, GLenum mode);——face指定多边形哪个面为正面(GL_FRONT_AND_BACK/GL_FRONT/GL_BACK);mode指定以哪种方式绘制(GL_POINT点/GL_LINE轮廓/GL_FILL填充)2、void glFrontFace(GLenum mode);——控制正面是如何决定的;mode为GL_
2012-10-03 19:18:57
923
原创 点画线模式实例
#include #include #include #define drawOneLine(x1,y1,x2,y2) glBegin(GL_LINES);\ glVertex2f((x1),(y1)); glVertex2f((x2),(y2)); glEnd();void init(void) { glClearColor(0.0,0.0,0.0,0.0);
2012-10-03 11:48:42
576
原创 简单程序流程
void display(void) { 画图 }void init(void) { 初始化(指定当前矩阵、重置当前矩阵、定义视景...) }int main(int argc,char **argv) {1、gultInit(int *argc, char **argv)——对glut初始化,在调用其他任何GLUT函数之前2、glutInitDisplayMode(unsig
2012-10-02 19:52:30
552
原创 有限差分
1、有限差分(finite difference):给出一个离散函数,即给出一个自变量的集合,且自变量等距(记为h),每个x k对应一个y k则一阶差分(first difference)记为 Δy k =y k+1- y k二阶差分(second difference)记为Δ(Δy k) =Δy k+1 - Δy k =y k+2- 2y k+1+
2012-09-29 20:06:17
2862
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅