随机矩阵( stochastic matrix)
本文实例讲述了随机矩阵。分享给大家供大家参考,具体如下:
随机矩阵(stochastic matrix)
最近一个月来一直在看Google排序的核心算法---PageRank排序算法[1][2],在多篇论文中涉及到图论、马尔可夫链的相关性质说明与应用[3][4][5],而最为关键,一直让我迷惑的一句话是"A stochastic matrix has principal/primary eigenvalue 1"[3][4][5][6][7][8]。可能对于系统学习过矩阵理论的人,它很平淡,不值得单独拿出来讨论或者说明。而我在此不得不承认自己的无知。尽管在高等代数中学习过关于矩阵性质的一些讨论,但从来没有接触过所谓的随机矩阵(Stochastic Matrix),更不要说其性质了。于是,我从网上努力的寻找相关文献,但结果不是特别理想,并没有关于随机矩阵的详细介绍以及相关性质的证明。我想也许一方面是我搜索技术还不成熟,或者是搜索的关键词不准确,亦或者是网上关于它的资料本就很缺乏。在这里我想将最近搜集的相关资料拿出来整理一下思路,以备将来之用,也是对自己学习的一个真实记录和督促。
随机矩阵实际上是非负矩阵(Nonnegative matrix)的一类,而非负矩阵是指矩阵元素都是非负(Nonnegative)的,当然非负要与正矩阵(Positive matrix)进行细微的区分。非负矩阵在计算数学、图论、线性规划、自动控制等领域有着广泛的应用,对其特征值,尤其是最大特征值(注意这里的最大是从模的角度或者说是绝对值概念上的最大)特征值,也就是矩阵的主特征值(principal/primary eigenvalue)的估计有很重要的意义[9]。
随机矩阵说来如此之重要,那么到底什么样的矩阵才是随机矩阵呢?假如随便给你一个非负矩阵,该如何判定它是否属于随机矩阵呢?
随机矩阵实际上应当分成行随机矩阵(Row stochastic matrix)和列随机矩阵(Column stochastic matrix)。行随机矩阵是指方阵的行和等于1;而列随机矩阵就是其列和等于1的非负矩阵。那么同时满足行和列和都是1的非负矩阵就是双随机矩阵(Double stochastic matrix),单位矩阵就是一种双随机矩阵。从研究的角度,其实只要研究行矩阵的性质即可,毕竟列随机矩阵只是行随机矩阵的转置矩阵。因此以下的讨论完全从行随机矩阵出发。
既然随机矩阵A行和为1,那么假设e=(1,1,...,1),则e的转置向量e',即是矩阵的一个特征向量,对应于A的特征值1。这样对于证明随机矩阵的主特征值是1还有一定的距离。假设A的n个特征值为λ(i),其中i=1,2,...,n;若要证明性质成立,则必须证明|λ(i)|<=1。现今有一个特征值是1,只要证明其余各特征值的绝对值都小于等于1即可。
于是我又查找了相关资料,并在“数学博士论坛”发帖请教,得到的回复是要证明它,粗略地讲利用圆盘定理即可,若要精细的证明还要利用Perron-Frobenius Theorm[9][10][11][12]。一个个新的概念和方法出现在面前,看来需要系统的学习数值方法、数值计算理论。查找到的资料[10]表明任何矩阵的谱半径都不大于该矩阵任意诱导矩阵范数,而随机矩阵的L1-Norm值是1,那么谱半径(是主特征值的等价说法)不大于1,而由于1是A的一个特征值,那么就不可能出现绝对值大于1的特征值了:1确实是随机矩阵A的主特征值。
那么对上述性质的证明就等价于证明资料[10]中的结论了。
其实,“任意复数域上的矩阵的谱半径不大于其任意一种诱导范数”只是矩阵的一个基本的性质。其具体证明见下图:
根据以上的证明结果可知,对任意的行随机矩阵,其谱半径是1,即最大特征值是1得证。
由此可知,其实矩阵的一个小小的性质对于没有系统学习过矩阵理论的人有时确实是一个难题。要入行,就当懂行规,要入门,就当精通门路。
随机矩阵的主特征值以及second largest eigenvalue的比值是幂法收敛速度的一个基本的衡量标准。PageRank的计算有多种方式,而对此的研究也是不计其数,当然最传统的还是利用幂法来确定抓取入库的各网页的PageRank值。由于web网页的数量巨大,针对幂法收敛速度的考虑就不是多余无用的分析。而两特征值的“谱隙”(Eigengap)主要用来衡量利用幂法求解得到的PR值的稳定性的。由此看来,特征值分析对于理解PageRank算法起到关键作用。
相关推荐:
Atas ialah kandungan terperinci 随机矩阵( stochastic matrix). Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



PHP 8.4 membawa beberapa ciri baharu, peningkatan keselamatan dan peningkatan prestasi dengan jumlah penamatan dan penyingkiran ciri yang sihat. Panduan ini menerangkan cara memasang PHP 8.4 atau naik taraf kepada PHP 8.4 pada Ubuntu, Debian, atau terbitan mereka

Bekerja dengan pangkalan data dalam CakePHP adalah sangat mudah. Kami akan memahami operasi CRUD (Buat, Baca, Kemas Kini, Padam) dalam bab ini.

Untuk bekerja dengan tarikh dan masa dalam cakephp4, kami akan menggunakan kelas FrozenTime yang tersedia.

Untuk mengusahakan muat naik fail, kami akan menggunakan pembantu borang. Di sini, adalah contoh untuk muat naik fail.

CakePHP ialah rangka kerja sumber terbuka untuk PHP. Ia bertujuan untuk menjadikan pembangunan, penggunaan dan penyelenggaraan aplikasi lebih mudah. CakePHP adalah berdasarkan seni bina seperti MVC yang berkuasa dan mudah difahami. Model, Pandangan dan Pengawal gu

Pengesah boleh dibuat dengan menambah dua baris berikut dalam pengawal.

Log masuk CakePHP adalah tugas yang sangat mudah. Anda hanya perlu menggunakan satu fungsi. Anda boleh log ralat, pengecualian, aktiviti pengguna, tindakan yang diambil oleh pengguna, untuk sebarang proses latar belakang seperti cronjob. Mengelog data dalam CakePHP adalah mudah. Fungsi log() disediakan

Kod Visual Studio, juga dikenali sebagai Kod VS, ialah editor kod sumber percuma — atau persekitaran pembangunan bersepadu (IDE) — tersedia untuk semua sistem pengendalian utama. Dengan koleksi sambungan yang besar untuk banyak bahasa pengaturcaraan, Kod VS boleh menjadi c
