利用逆矩阵解线性方程组_经典Jacobi方法用于求解矩阵特征值

1、引言

求解线性方程组在许多领域中都有重要应用,写成矩阵的形式:

求解

可以写成:
,这里需要求解矩阵
的逆。《线性代数》中给出的方法主要有两类:

1、设置增广矩阵,利用高斯消元法,通过初等行列变换可以求

但这种方法不利于使用计算机计算。

2、利用矩阵对角化求

这种方法关键在于求解矩阵

的特征值和特征向量,根据《线性代数》中给出求特征值和特征向量的方法,其复杂度大概是
,其中
是矩阵的行数,有个著名的算法SVD(singular value decomposition)。关于SVD的介绍已经很多了,今天我们想要更近一步,介绍另一种著名的矩阵对角化方法——
Jacobi方法

2、经典Jacobi方法

1846年数学家Jacobi提出的经典Jacobi方法用于求解实对称矩阵的特征值。它的核心思想是采用一些列的Jacobi平面旋转矩阵将对称阵

变为对角阵

左右的Jacobi旋转矩阵乘起来就是特征向量组成的特征矩阵,
为特征值组成的对角阵。Jacobi希望每通过一个Jacobi旋转矩阵都能消去矩阵
中的

Jacobi旋转矩阵定义如下:

一个Jacobi旋转矩阵,对角线上只有第i行i列,j行j列为c,其余为1,未标出的元素均为0。

表示消去元素在矩阵
中的位置,其中
,
被称为旋转角,我们的目的就是找到一个合适的
,使得非对角元上的两个元素变为0。由于
仅影响
行列的元素,故写为二阶主子式来表示旋转变换过程:

其中

解得:

当一次变换结束后,

同时为0,而矩阵
的非对角元素的Frobenius norm的平方和将减少
[2]

其中

表示取A的对角线元素组成的对角矩阵。Frobenius norm的定义为:

3、复杂度分析

时,说明
被对角化了,其中
为精度要求。从贪心算法的角度来说,每次做旋转都希望尽可能减少Frobenius norm,因此
的选择矩阵
中最大的非对角元做旋转变换。

但由于每次做旋转变换后会影响矩阵

两行两列的数据,这会导致前面变成0的非对角元素在后续的变换中变为非0因此旋转矩阵个数并不是
,同时在矩阵中寻找绝对值最大非对角元的复杂度也是
,而合并旋转变换矩阵的部分复杂度为
,这在大规模矩阵中,遍历元素将占绝大部分时间。

可能的改进方法

(1)循环Jacobi方法[3]

按照行顺序或者列顺序依次做Jacobi旋转变换,持续多轮,直到满足收敛条件。

45539b5cff75ddcb5b0547f3f4e4b1e8.png
图1:循环遍历的Jacobi方法

(2)过关Jacobi方法[4]

在顺序遍历的基础上,在加入门限值,大于某个门限值,才做旋转变换,其中门限值与

的Frobenius norm有关。

4、非对称矩阵的Jacobi方法

对于非对称矩阵

,可以将其构造为对称矩阵

5、讨论

高效使用Jacobi方法的关键在于,如何使用尽量少的旋转角度完成对角化矩阵,贪心算法是否是最优方法还值得进一步探讨。是否在矩阵中存在一个固定的最优的

的顺序组合,还是说这与矩阵元素的具体取值有关。

参考文献

[1] 郭强. 并行JACOBI方法求解矩阵奇异值的研究[D]. 苏州大学.

[2] C.F. Van Loan G. H. Golub. Matrix COmputations[M]. John Hopkins University Press, Baltimore and London, second edition, 1993.

[3] E. R. Hansen. On Cyclic Jacobi Methods[J]. J.Soc,Indust.Appl.Math, 1963, 11(2): 448–459.

[4] B. N. Parlett. The Symmetric Eigenvalue Problem[M]. Prentice-Hall, 1980.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/534182.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

filename: core/loader.php,使用第三方包后出现的这个错误,你们都遇到过吗?

使用了一些第三方包,经常会发现,引入某些第三方包后(比如在laravel5.6中引入viacreative/sudo-su),使用命令行工具会遇到这样的错误提示,卸载了第三方包后重新安装vendor目录问题立马解决。真是把人头发都愁白了:PHP F…

python函数的作用域_python学习第五篇 函数 变量作用域

原博文 2019-07-18 23:40 − 函数 函数是组合好的,可以重复使用的,用来实现单一或相关联功能的代码片段作用 能提高应用的模块性和代码的重复利用率函数的创建 第一函数的规则 1.函数代码块一def关键字开头,后接函数标识符名称和圆括号‘&…

js post中文乱码 php,AJAX之POST数据中文乱码如何解决

本文主要和大家分享AJAX之POST数据中文乱码如何解决,前端使用encodeURI进行编码,希望能帮助到大家。var param encodeURI(param);$.ajax({url: url,methodtype: "POST",async: false,timeout: 60000,contentType: "application/json&quo…

python递归 数字全排列_利用递归实现全排列(python)

利用递归实现全排列(python) """ 利用递归实现全排列 第一个位置可能有n种可能,第二个位置可能 有n-1种可能...... 代码思路就是第一个位置可以和n个元素交换, 第二个元素可以和n-1个元素进行交换,到最 后一个输出这次排列&am…

python pip使用_Python——pip的安装与使用

pip 是 Python 包管理工具,该工具提供了对Python 包的查找、下载、安装、卸载的功能。目前如果你在 python.org 下载最新版本的安装包,则是已经自带了该工具。Python 2.7.9 或 Python 3.4 以上版本都自带 pip 工具。pip 官网:https://pypi.o…

php文章列表样式,PHPCMS V9 文章列表循环样式自定义方法

在此,再次分享Whidy的文章"phpcms文章列表循环不同样式制作方法",下面CMSYOU来与大家具体分享,原地址为http://whidy.net/phpcms-list-with-different-style.html,在这里感谢。大家在用PHPCMS系统做网站的时候,有时候在…

角速度求积分能得到欧拉角吗_一个有趣的反常积分问题

今天物理考试,老师提到了一个有趣的积分问题。听说是拉普拉斯变换的一个应用之一(生成函数?),但是我没听过那个东西所以硬上了:D1)试求积分 2) 试说明积分 的收敛性1)对于第一问可以…

php计算1-100奇数的和,学习脚本1:计算100以内奇数和和偶数和 (笔记)

let I$[$I1]let I1let I 注意此处只有是原先数值加1才可用此方法上述三者运算是相同的- 减等 两边的变量前边的减去后边的变量之后把值再放到原来的变量上 加等 两的的变量前边的加上后边的变量之后把值再放到原来的变量上* 乘等 两边的变量前边的乘上后边的变量之后把值再放到…

查看ie保存的表单_解决浏览器保存密码自动填充问题

解决浏览器保存密码自动填充问题问题描述话说有一天,我如往常一样打开我的开发网站进行登录操作。浏览器很平常的在我们进行登录操作之后询问我是否需要记住密码,懒惰如我点击了记住密码。一切都很正常的进行着,没有什么异常发生。然而&#…

java满江红1apk,满江红满V版游戏下载_满江红满V版安卓版游戏下载v1.0_3DM手游

喜欢玩精彩的传奇游戏吗?那就来《满江红满V版》这款佳作中吧!这款手游操作方式极其的简单,且玩法自由度也很高,咱们将会置身于一座很精美热血的魔幻大陆中,各种大伙熟悉的人物职业可供收集培养,极致精彩的P…

go get 的不再src目录中_GO语言基础进阶教程:包的使用

Go语言使用包(package)这种语法元素来组织源码,所有语法可见性均定义在package这个级别,与Java 、python等语言相比,这算不上什么创新,但与C传统的include相比,则是显得“先进”了许多。myblog …

python mysql 正则表达式,MySQL之正则表达式(REGEXP)

MySQL中正则表达式通常被用来检索或替换符合某个模式的文本内容,根据指定的匹配模式匹配文中符合要求的特殊字符串。例如,从一个文件中提取电话号码,查找一篇文章中重复的单词或替换用户输入的敏感语汇等,这些地方都可以使用正则表…

pyecharts anaconda_Pyecharts安装使用和绘图案例

一次偶然的机会,接触了pyecharts,发现做图交互效果非常棒,便深究、摸索、入坑。这篇文章主要讲述自己在安装和使用中遇到的问题,解决方法,最后还会有pyecharts中自己比较喜欢的绘图功能。pyecharts是一款将python与ech…

控制附件的大小 php,wordpress如何修改默认上传附件限制大小

关于上传文件大小的限制,有很多有几种情况,一是服务器上的限制(php.ini)php虚拟主机空间提供商为了保障服务器稳定、都会限制大容量附件上传,在php.ini文件中做了限制,二是网站程序本身都会有限制大小,wp媒体文件大小默…

如何把密度函数化为标准正态二维分布_概率微课:第三章(22) 二维随机变量及分布函数定义...

主要内容二维随机变量及分布函数定义更多系列视频概率微课:第二章(1) 随机变量的定义概率微课:第二章(2) 离散型随机变量概率微课:第二章(3) 两点分布及伯努利试验概率微课:第二章(4) 二项分布1概率微课:第二章(5) 二…

php中的缓,php中的缓存机制解释

php缓存的理解,先列出ob系列函数的作用:ob_start(func) 开启php缓存,回调函数是对缓存内数据的处理函数ob_gzhandler 作为 ob_start 的回调函数,对数据进行gz压缩ob_implicit_flush(true/false) 打开或关闭apache缓存&#xff0c…

php 下拉菜单多选get,Jquery实现select二级联动多选下拉菜单

前言平时虽然也有写前端,但是对于一些复杂的功能实现仍是一知半解。这次项目需要实现一个多选下拉菜单,并且该菜单要和上级下拉菜单保持联动。更加麻烦的是,我需要完成以下操作,以省、市二级联动菜单为例:选择河北省 &…

idea快捷键打开run的窗口_看了上篇文章,你不了解的IDEA操作……

注意作者:卡洛小豆。换种方式写文章,写的不好请多多见谅。未经授权,禁止转载夜,结束了一天的喧嚣后安静下来,伴随着远处路灯那微弱的光。风,毫无预兆地席卷整片旷野,撩动人的思绪万千。那是一个…

oracle查看物化视图的索引,oracle – 物化视图中的域索引返回零行

我有Oracle DB的问题 – 在物化视图上通过CONTAINS()搜索后,域索引返回零行.我看到物化视图充满了数据,我还使用过程ctx_ddl.sync_index()进行域索引同步.什么有用:>创建表>插入数据>创建域索引> SYNC DOMAIN INDEX>通过包含找到行 – 返回行什么不起…

arma模型_Eviews经典案例 | 初学者必看!ARMA模型精讲

【本期分析师介绍】希音老师,《数据分析学堂》金牌分析师,对eviews的时间序列、ARMA、VAR、VECM、ARCH、GARCH等操作有深入的研究和实战经验,累计服务客户1000。今天邀请希音老师给大家分享eviews的详细操作步骤。长文预警!可在文末联系麻瓜学…