算法练习(12):矩阵详解(1.1.33)

综合技术 2018-06-22 阅读原文

知识点

  • 绘点
  • 随机函数

1.1.33矩阵库。编写一个Matrix库并实现以下API

题目

题目

编写一个测试用例,从标准输入读取矩阵并测试所有方法

分析

书中第一次出现矩阵的例子是代码:

int N = a.length;
double[][] c = new double[N][N];
for (int i = 0; i < N; i++)
   for (int j = 0; j < N; j++)
   { // Compute dot product of row i and column j.
      for (int k = 0; k < N; k++)
         c[i][j] += a[i][k]*b[k][j];
}

这段代码的作用是计算矩阵的乘积。那么,什么是矩阵呢?这里我们从头来了解矩阵。先看一下这个人:

阿瑟·凱萊

这个人叫阿瑟·凱萊,又译为凯利,他是矩阵(Matrix)的创始人。

使用Java实现矩阵

由 m × n 个数aij排成的m行n列的数表称为m行n列的矩阵,简称m × n矩阵。而行数与列数都等于n的矩阵称为n阶矩阵或n阶方阵。

由本题中提供的表格来看要表示一个矩阵只需要一个二维数组即可。

向量(Vector)

本题中除了矩阵还提到了向量,那向量又是什么,跟矩阵有何区别与联系呢?

其实我们可以把向量当作一个点(a,b)。它与矩阵的区别是:

向量可以用矩阵表示,且有时特殊矩阵就是向量。 简言之就是矩阵包含向量。

点乘(dot)

在数学中,数量积(dot product; scalar product,也称为点积、点乘)是接受在实数R上的两个向量并返回一个实数值标量的二元运算。它是欧几里得空间的标准内积。

坐标表示:已知两个非零向量$a=(x_1,y_1),b=(x_2,y_2)$,则有$a·b=x_1x_2+y_1y_2$,即两个向量的数量积等于它们对应坐标的乘积的和。

矩阵的运算

乘积

两个矩阵的乘法仅当第一个矩阵A的列数和另一个矩阵B的行数相等时才能定义。乘积矩阵的行数等于左边矩阵的行数,乘积矩阵的列数等于右边矩阵的列数 。

那么,我们怎么理解矩阵的乘法呢?这里给个知乎中的答案用于参考:

矩阵乘法的本质是什么?

大概总结一下:

小明今天要做饭,消耗2斤肉,1斤蔬菜。肉每斤20元,蔬菜每斤5元,则一共需多少花费?

这个问题的答案很简单:

$20 times 2+5 times 1= 45$

我们用向量相乘的方法写出来:

$$

left[

begin{matrix}

20 & 5\

end{matrix}

right]

left[

begin{matrix}

2 \

1 \

end{matrix}

right] =

45

$$

如果小明第二天有另一种做饭的方法,需要消耗1斤肉,4斤蔬菜,那么这两种方法的花费各是多少呢?我们显然需要另算这第二种方法的花费。把这个做饭方式写在第二个矩阵(向量是宽度或长度为1的矩阵)里:

$$

left[

begin{matrix}

20 & 5\

end{matrix}

right]

left[

begin{matrix}

2 & 1\

1 & 4\

end{matrix}

right] =

left[

begin{matrix}

45 \

40 \

end{matrix}

right]

$$

以此类推,可以推导出矩阵乘法的含义。

小专栏

责编内容by:小专栏阅读原文】。感谢您的支持!

您可能感兴趣的

机器学习:基于密度的异常值检测算法... 异常值检测(也称为异常检测)是机器学习中查找具有与期望非常不同的行为的数据对象的过程。这些对象称为离群值或异常。 最有趣的对象是那些与普通对象明显不同的对象。离群值不是由与其他数据相同的机制生成的。 异常检测在许多应用中很重要,例如: 财务数据欺诈 通信网络中的入侵 ...
BZcash团队:AIMD量化增益算法及“环球链盟”共享计划... BZcash大中华区推广团队成员在8月1日接受了区块链外派主编-Tony的在线电报专访,恰逢BZcash宣布将在8月推出“环球链盟”共享计划。这次访谈将会为我们带来BZcash最新开发动态,并阐述了BZcash的平台的基石技术—AIMD量化增益算法和“环球链盟”共享计划未来的看法。 Ton...
应用于实时视频通信的深度学习算法研究... 本文整理了声网首席科学家钟声,在 RTC 2018实时互联网大会上的干货演讲,首发于 Infoq。如果对于演讲内容有任何希望与演讲人交流的问题,欢迎留言。 众所周知,深度学习在实时视频通信端到端系统里有很多的应用,比如说我们用它做超分辨率,能取得比较好的效果;我们用它做图像恢复,也能取...
从近期清风算法大批量惩罚标题作弊的企业站中学到了哪些知识... 7月28日的很多企业站点被降权,很多人都以为是中了细雨算法,结果没想到官方解释为清风算法惩罚标题作弊。今天,小小课堂网为大家带来的是从清风算法惩罚标题作弊中我们学到了什么。希望对大家有所帮助。 一、标题作弊 马慧SEO认为标题作弊有很多种,以下简单说明。 1、标题与内容不符(虚假)...
虚拟机巨头VMware推出区块链项目“Project Concord” 优化拜占庭容错算法... 金色财经 区块链8月31日讯虚拟机和云计算科技公司VMware本周二表示,他们已经开发出了一个开源区块链基础设施,旨在解决行业当前面临的可扩展和节能问题。 VMware的区块链被称为“Project Concord”,可以为区块链技术实现提供基础服务,而且通过修改区块链网络中常见的拜占...