1. list 画点

>>> from plotting import plot
>>> L = [[2, 2], [3, 2], [1.75, 1], [2, 1], [2.25, 1], [2.5, 1], [2.75, 1], [3, 1], [3.25, 1]]
>>> plot(L)

2. 缩放

alpha × vec = [alpha × elem for elem in vec]

>>> def scalar_vector_mult(alpha, v): return [alpha*x for x in v]
...
>>> v = [3, 2]
>>> plot([scalar_vector_mult(i/10., v) for i in range(11)], 5)

3. 仿射:加乘组合

得到从 [0, 0] + [0.5,1] 开始到 [3, 2] + [0.5, 1] 结束的线段。 这种表示方法对 端点来说不具有对称性。如何转换?

现在对于端点来说就具有对称性了。通过这两个端点的直线包含了两个端点对应向量的 仿射集合。

4. GF(2) 加密

a) 要将期中考试的一份试卷交给两个助教,为了防止某一个助教舞弊,发给两个人的加密后的数据必须 合二为一才能进行解密,具体过程如下:

b) 电脑认证登陆——黑客可能窃听,不适合直接传输用户密码。解决方案:电脑给出一串二进制问题,用户掌握一串二进制密码,在 GF(2) 上点乘(先乘再加),得到输出。

黑客窃听到数个电脑的问题 alpha 和用户计算后的结果 beta,需要知道用户的密码,需要解方程:

5. 点乘

两个向量a = [a1, a2,…, an]和b = [b1, b2,…, bn]的点积定义为:

在欧几里得空间中,点积可以直观理解为:

用公式可以表示为:

直观地说,就是向量 A 在向量 B 方向的投影,再乘以 B 的长度。如果将 B 的长度标准化,那么点乘就可以表示两个向量之间的相似性了。比如在一段长音频中匹配一段短音频,可以把短的音频逐个往后移动,每次移动进行一次点乘计算,值越大,相似性越大,DFT 和 DCT 变换都是基于这种操作求不同频域的组分大小的。

编程待续:点乘——用字典类型编写向量类

                             用向量类解三角线性方程组的根

Coding the Matrix (1):向量的更多相关文章

  1. 【Python】Coding the Matrix:Week 5: Dimension Homework 5

    这一周的作业,刚压线写完.Problem3 没有写,不想证明了.从Problem 9 开始一直到最后难度都挺大的,我是在论坛上看过了别人的讨论才写出来的,挣扎了很久. Problem 9在给定的基上分 ...

  2. Coding the Matrix Week 1 The Vector Space作业

    Coding the Matrix: Linear Algebra through Computer Science Applications 本周的作业较少,只有一个编程任务hw2.作业比较简单,如 ...

  3. Coding the Matrix作业Python Lab及提交方法

    Coding the Matrix: Linear Algebra through Computer Science Applications 这是一门用python实现矩阵运算的课,第一次作业就感觉 ...

  4. Coding the Matrix (3):矩阵

    1. 矩阵与映射 矩阵和映射包含两方面的关系: 简单:已知矩阵 M, 从向量 x 映射到 M * x. (注:矩阵与行向量的点乘) 稍微复杂:已知映射 x ->M * x, 求矩阵 M. 第一种 ...

  5. Coding the Matrix (2):向量空间

    1. 线性组合 概念很简单: 当然,这里向量前面的系数都是标量. 2. Span 向量v1,v2,.... ,vn的所有线性组合构成的集合,称为v1,v2,... ,vn的张成(span).向量v1, ...

  6. Coding the Matrix (0):映射、复数和域

    1. 非常好的 Python 教程 <深入 Python 3.0> 以及 IBM 开发社区的博客探索 Python. 2. 子集: s 是 S 的子集 >>>S = {2 ...

  7. 【Python】Coding the Matrix:Week 5 Perspective Lab

    这个Lab的内容光是说明就有7页之巨,我反复看了很久才看懂一点点,Lab主要完成的是从不同坐标系表示之间变换的方法. 原始的图片,从Camera basis的表示转换成WhiteBoard basis ...

  8. R语言基础:数组&列表&向量&矩阵&因子&数据框

    R语言基础:数组和列表 数组(array) 一维数据是向量,二维数据是矩阵,数组是向量和矩阵的直接推广,是由三维或三维以上的数据构成的. 数组函数是array(),语法是:array(dadta, d ...

  9. [Java]编写自己的Matrix矩阵类

    用java实现一个简单的矩阵类,可以实现简单的矩阵计算功能. class Matrix 1.向量点乘 public static double dot(double[] x,double[] y) 2 ...

随机推荐

  1. 22 扩展Python - 《Python 核心编程》

  2. log4j日志优先级问题的后续

    前文:http://www.cnblogs.com/chyu/p/4280440.html 出现一处吐槽失误,当时还想怎么会设置成warn级别.. <appender name="ST ...

  3. AngularJS跨域请求

    本文主要针对网上各种跨域请求的总结,并加入自己的验证判断,实现工作中遇到的跨域问题.所涉及到的领域很小,仅仅局限于:AngularJS CORS post 并同时需要实现json数据传送给服务器. 首 ...

  4. sqoop sample code

    本文使用的数据库是mysql的sample database employees. download url:https://launchpad.net/test-db/employees-db-1/ ...

  5. AutoIT简介

    AutoIT最初是为了帮助IT管理和维护而开发的工具,能自动完成软件的安装.由于自动化安装和自动化测试在功能需求上有许多相似之处,都要模拟用户对软件进行操作,并验证执行的结果,所以,AutoIT逐渐成 ...

  6. Android优化——UI优化(二) 使用include标签复用布局

    使用include标签复用布局 - 1.include标签的作用 假如说我下图的这个布局在很多界面都用到了,我该怎么办?每个页面都写一遍的话,代码太冗余,并且维护难度加大. <LinearLay ...

  7. SQL 第一范式、第二范式、第三范式、BCNF

    作者 : Dolphin 原文地址: http://blog.csdn.net/qingdujun/article/details/27365979 一.第一范式 1NF 要求:每一个分量必须是不可分 ...

  8. [Elixir008]Nested Module里的动态函数调用方式

    有时我们需要动态生成一些模块名,然后调用它里面的函数.但是我们常常碰到的却是明明有那个模块,结果还是raise模块未定义... 我们来看看到底怎么回事? 首先我们定义一个函数 iex(1)> d ...

  9. 点击劫持(CLICKJACKING)与X-FRAME-OPTIONS HEADER

    转载: http://www.tuicool.com/articles/mqUBfa 目录 前言 1.1 点击劫持(clickjacking attacks) 1.2  Frame Bursters. ...

  10. (OAF)jdeveloper集成log4j并将日志输出到指定文件并写入数据库

    参考: How to configure Log4j in JDev 11g Ever wanted to use log4j in your adf project ? Well though Or ...