python计算平面的法向-利用协方差矩阵求解特征值和特征向量

Obvious,最小特征值对应的特征向量为平面的法向

Created on Sun Nov 05 19:37:26 2017

@author: Bambo
"""

import numpy as np
import scipy

x=[random.randint(0,100) for i in range(40)]
y=[random.randint(0,100) for i in range(40)]
z=[a*3+b*2+1 for a,b in zip(x,y)]

r=map(list,zip(x,y,z))
k=mat(r)
re=k.T*k

e,v=scipy.linalg.eigh(re,turbo=False,eigvals=(0,0))
#e,v=scipy.linalg.eigh(re,eigvals=(a,b))

print e
print v

  

时间: 2024-11-08 21:44:41

python计算平面的法向-利用协方差矩阵求解特征值和特征向量的相关文章

均值、方差、协方差、协方差矩阵、特征值、特征向量

均值:描述的是样本集合的中间点. 方差:描述的是样本集合的各个样本点到均值的距离之平均,一般是用来描述一维数据的. 协方差: 是一种用来度量两个随机变量关系的统计量. 只能处理二维问题. 计算协方差需要计算均值. 如下式: 方差与协方差的关系 协方差矩阵: 协方差矩阵能处理多维问题: 协方差矩阵是一个对称的矩阵,而且对角线是各个维度上的方差. 协方差矩阵计算的是不同维度之间的协方差,而不是不同样本之间的. 样本矩阵中若每行是一个样本,则每列为一个维度,所以计算协方差时要按列计算均值. 如果数据是

第四周(1):利用Python计算π的值,并显示进度条

用Python计算圆周率pi并用进度条提示进度 一 计算公式: 二 实现代码 (1) import math from tqdm import tqdm import time total,s,n,t=0.0,1,1.0,1.0 while(math.fabs(t)>=1e-6): total+=t n+=2 s=-s t=s/n k=total*4 print("π值是{:.10f} 运行时间为{:.4f}秒".format(k,time.clock())) for i in

用Python计算北京地铁的两站间最短换乘路线

用Python计算北京地铁的两站间最短换乘路线 地铁数据 地铁数据用字典表示: {station:{neighbor1:line number,neighbor2:line number,-},station2:{-},-} 现在我们有地铁的站名,下面就是如何将地铁站名转化为上面所需要的标准字典格式. 从网上找到的地铁站名为字符串: line1=u'''苹果园 古城路 八角游乐园 八宝山 玉泉路 五棵松 万寿路 公主坟 军事博物馆 木樨地 南礼士路 复兴门 西单 天安门西 天安门东 王府井 东单

Python计算斐波那契数列

利用Python计算第一个达到一百万位数的斐波那契数列各位数之和 结果为4501552 以下是我用到的代码,不是中间需要一些人工操作来加快收敛性,有兴趣读者可以写代码加快收敛 首先执行这个,可以大致确定一百万个数所在斐波那契序列的位置 i=1 j=1 k=i+j count=3 while count<4850000: i=j j=k k=i+j count+=1 result=str(k) print('k长度') k_len=len(result) print(k_len) sum=0 fo

数学之路-python计算实战(10)-机器视觉-透视投影

透视投影 三维计算机图形学中另外一种重要的变换是透视投影.与平行投影沿着平行线将物体投影到图像平面上不同,透视投影按照从投影中心这一点发出的直线将物体投影到图像平面.这就意味着距离投影中心越远投影越小,距离越近投影越大. 最简单的透视投影将投影中心作为坐标原点,z = 1 作为图像平面,这样投影变换为 ; ,用齐次坐标表示为: (这个乘法的计算结果是  = .) 在进行乘法计算之后,通常齐次元素 wc 并不为 1,所以为了映射回真实平面需要进行齐次除法,即每个元素都除以 wc: 更加复杂的透视投

Python计算生态的构建

本专题的内容结构: 第一部分主要是:如何编写Python第三方库(包和模块) 第二部分主要是:如何编写带有c语言扩展的Python第三方库(包和模块) 第一部分的结构: unit1:深入理解Python库: (1),库,模块和包 (2),模块的命名空间 (3),包的命名空间 (4),模块的名称属性 unit2:模块和包的构建: (1),模块的构建 (2),常规包的构建 (3),命名空间包的构建 unit3:实例1:矩阵乘法模块的构建 (1),矩阵乘法运算 (2),模块构造方法实践 unit4:深

数学之路-python计算实战(18)-机器视觉-滤波去噪(双边滤波与高斯滤波 )

高斯滤波就是对整幅图像进行加权平均的过程,每一个像素点的值,都由其本身和邻域内的其他像素值经过加权平均后得到.高斯滤波的具体操作是:用一个模板(或称卷积.掩模)扫描图像中的每一个像素,用模板确定的邻域内像素的加权平均灰度值去替代模板中心像素点的值. #滤波去噪 lbimg=cv2.GaussianBlur(newimg,(3,3),1.8) cv2.imshow('src',newimg) cv2.imshow('dst',lbimg) cv2.waitKey() cv2.destroyAllW

数学之路-python计算实战(16)-机器视觉-滤波去噪(邻域平均法滤波)

# -*- coding: utf-8 -*- #code:[email protected] #邻域平均法滤波,半径为2 import cv2 import numpy as np fn="test3.jpg" myimg=cv2.imread(fn) img=cv2.cvtColor(myimg,cv2.COLOR_BGR2GRAY) #加上椒盐噪声 param=20 #灰阶范围 w=img.shape[1] h=img.shape[0] newimg=np.array(img)

python计算均值方差

用Python求均值与方差,可以自己写,也可以借助于numpy,不过到底哪个快一点呢? 我做了个实验,首先生成9百万个样本: ? 1 2 3 nlist=range(0,9000000) nlist=[float(i)/1000000 for i in nlist] N=len(nlist) 第二行是为了让样本小一点,否则从1加到9百万会溢出的. 自己实现,遍历数组来求均值方差: ? 1 2 3 4 5 6 7 sum1=0.0 sum2=0.0 for i in range(N):     s