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

这个问题还有个关键是通过python求协方差矩阵的特征值和特征向量,np.linalg.eig()方法直接返回了特征值的向量和特征向量的矩阵

scipy.linalg.eigh()方法可以对返回的特征值和特征向量进行控制,通过eigvals参数,可以控制,比如我要返回最小的特征值,和其对应的特征向量,那么就是eigvals(0:0),在升序的情况下。还是很有用的。

scipy.linalg.eigh(a, b=None, lower=True, eigvals_only=False, overwrite_a=False, overwrite_b=False, turbo=True, eigvals=None, type=1, check_finite=True)

@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

下面这段代码是当有两个平面时,通过协方差矩阵的奇异值分解,求两个平面的法向,测试显示结果是正确的。

会有人问为啥你知道了平面的法向还通过奇异值分解又求了一次,为了科研。

# -*- coding: utf-8 -*-

"""

Created on Sun Nov 05 19:37:26 2017

@author: Bambo

"""

import numpy as np

import scipy

#随机生成平面一上的点

x1=[np.random.randint(0,100) for i in range(400)]

y1=[np.random.randint(0,100) for i in range(400)]

z1=[a*3+b*2+1 for a,b in zip(x1,y1)]

#随机生成平面二上的点

x2=[np.random.randint(0,100) for i in range(400)]

y2=[np.random.randint(0,100) for i in range(400)]

z2=[c*3+d*2+5 for c,d in zip(x2,y2)]

x1c=np.mean(x1)

y1c=np.mean(y1)

z1c=np.mean(z1)

x2c=np.mean(x2)

y2c=np.mean(y2)

z2c=np.mean(z2)

xc=(x1c+x2c)/2

yc=(y1c+y2c)/2

zc=(z1c+z2c)/2

#扩充成为两个平面的点

x1[len(x1):len(x1)]=x2

y1[len(y1):len(y1)]=y2

z1[len(z1):len(z1)]=z2

x=[(x1[i]-xc) for i in range(len(x1))]

y=[(y1[j]-yc) for j in range(len(y1))]

z=[(z1[p]-zc) for p in range(len(z1))]

print x

print y

print z

r=map(list,zip(x,y,z))

k=np.mat(r)

re=k.T*k

#求最小特征值对应的特征向量

e,v=scipy.linalg.eigh(re,turbo=False,eigvals=(0,2))

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

print e

print v

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

  1. python求零点_python – 计算大序列的过零点的结果不同

    这个问题源于查看 this关于计算 zero crossings数量的问题的答案.提供了几个解决问题的答案,但NumPy appproach在时间上摧毁了其他问题. 问题:为什么NumPy解决方案提供 ...

  2. 使用python求解特征值与特征向量

    #使用python求解特征值与特征向量 问题描述: 求解矩阵[[1.25,0.375,0],[0.375,1.25,-0.5],[0,-0.5,0.875]]的特征值与特征向量 参考链接1: 百度经验 ...

  3. python用海伦公式求面积_Python:平面直角坐标系下用三点求所构三角形面积

    我使用了一种特殊方式,计算平面直角坐标系下三点所构成(如果可行的话)的三角形的面积.这个方法,不同於常见的海伦公式. 设此三点坐标分别为: 算出最大最小的 与 ,并根据三点坐标,虚构出一个矩形,两边分 ...

  4. python求乘积_Python实现求笛卡尔乘积的方法

    Python实现求笛卡尔乘积的方法 本文实例讲述了Python实现求笛卡尔乘积的方法.分享给大家供大家参考,具体如下: 在数学中,两个集合X和Y的笛卡尓乘积(Cartesian product),又称 ...

  5. python求对数_python中取对数

    技术 | Python从零开始系列连载(二十七) 我们接着上一期的Python,继续跟大家分享有关Python中常用的数值计算和正则表达式. 运算符 1)数值运算 +.-.*./ % (求余数) // ...

  6. 用python求兀_python求π

    <像计算机科学家一样思考Python(第2版)>--2.5 操作顺序 本节书摘来自异步社区<像计算机科学家一样思考Python(第2版)>一书中的第2章,第2.5节,作者[美] ...

  7. python求积分_python 求定积分和不定积分示例

    求f(x) = sin(x)/x 的不定积分和负无穷到正无穷的定积分 sin(x)/x 的不定积分是信号函数sig ,负无穷到正无穷的定积分为pi import math import numpy a ...

  8. python求圆面积_python如何求圆的面积

    首先我们要知道圆的面积计算公式:S = πr²,公式中S为所求圆的面积,π为圆周率,r为圆的半径. 示例: # 定义一个方法来计算圆的面积 def findArea(r): PI = 3.142 re ...

  9. python求圆面积_python如何求圆的面积 python求圆的面积方法

    python如何求圆的面积?本篇文章小编给大家分享一下python求圆的面积方法,代码介绍的很详细,小编觉得挺不错的,现在分享给大家供大家参考,有需要的小伙伴们可以来看看. 首先我们要知道圆的面积计算 ...

  10. python求乘积_Python实现求笛卡尔乘积方法详解

    这篇文章主要介绍了Python实现求笛卡尔乘积的方法,结合实例形式分析了Python计算笛卡尔乘积的原理与实现技巧,需要的朋友可以参考下 本文实例讲述了Python实现求笛卡尔乘积的方法.分享给大家供 ...

最新文章

  1. Linux2.6内核 -- 编码风格(3)
  2. Leetcode 剑指 Offer 40. 最小的k个数 (每日一题 20210825)
  3. JSP简单练习-猜字母游戏
  4. php测试宽带速度慢,宽带速度慢怎么办?
  5. jzoj5365-[GDOI2018模拟9.14]通信【线段树合并】
  6. 到华为去,到AI最前沿去~ 华为杭州研究所欢迎您!
  7. 重磅!华为云社区·CSDN【寻找黑马程序员】有奖征文活动奖项公布!!
  8. Angular通过XHR加载模板而限制使用file://(解决方案)
  9. android simple-xml,使用Maven构建Android项目-dexer在simple-xml依赖项上失败
  10. vue视频保存不下来_女子直播吃章鱼被“反杀”!拔不下来了,视频超痛……
  11. 【译】Seaborn教程(二)选择配色方案
  12. 分布式操作系统的架构与性能
  13. .net 开发工程师 面试题
  14. 计算机6005是开机时间,怎么查电脑的开机,和关机时间·,同学们
  15. Python入门——文件读写
  16. Docker基础-使用Dockerfile创建镜像
  17. XILINX 7series/ultrascale IDDR/ODDR使用区别
  18. Python实现分钟倒计时
  19. 十大经典Java手机游戏 Top Ten Best Java Mobile Games
  20. 网站域名被劫持存在几种情况

热门文章

  1. 【新手村专属】亚太杯数模参赛经验
  2. LaTeX笔记(二)(开篇)
  3. 创业4年女掌门刘静瑜,创造动力电池,中创新航市值超600亿
  4. 使用Kinect2作为Oculus游戏应用的输入设备
  5. 研究团队再次发现安全漏洞,微软警告Azure用户
  6. 2022-2028全球粉尘检测仪行业调研及趋势分析报告
  7. java 登陆界面 报告_java登陆界面实验报告
  8. 深圳赛意信息 怎么样_深圳鹏程整形医院怎么样_全新整形价目表_资质
  9. xpath helper
  10. osgEarth加载二维地图