- 1、本文档共19页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
计算物理第三次作业new.doc
计算物理第三次作业
——用不同方法求矩阵的本征值和本征向量
问题描述:
如上图所示的一个对称矩阵,我们要求取它的本值和本征向量有多种方法,此处,我们采用Jacobi Method(Givens)和Triple Diagonalization Method来求解相关的本征值和本征向量。这两种方法既有相似的地方也有不同之处:两种方法都采用一个正交的变换矩阵来不断转换原矩阵方式实现的,最终达到一个对角或三对角的矩阵;不同之处在于第一种直接将矩阵对角化,得到本征值及向量,第二种则先将矩阵三对角化,再利用转换方式对角化。因此两种方法中的变换方式有所不同,具体稍后详叙,此处不再赘述。
主要算法与公式:
1.Jacobi Method.
由于我们处理的是一个对称矩阵,这种方法的实现是通过找到一个矩阵Q,使其能将原矩阵变成一个非对角元为零的矩阵,此时对角元即为本征值,Q的每一个对应的列向量为本征向量,如下图所示为矩阵变换:
关键的问题归结到如何得到矩阵Q,如下:
首先,我们确定如下形式的矩阵(Givens):
其中(p,q)对应变换后可以使矩阵中第p行第q个元素变成零,选取方法可对应该矩阵绝对值最大非对角元:
然后使矩阵按以下的方式作变换,最终成为只有对角元非零形式:
至此,变换后的矩阵本征值为D的对角元,Q的列向量为对应的本征向量。
2.Triple Diagonalization Method.
如上图,本方法的第一步是将矩阵三对角化,与第一种方法操作过程相似,不同之处在于矩阵Q形式稍有差别,我们采用Givens Transformation,即:
(p,q)可理解变换后矩阵的(p-1,q)元素为零,取值取遍三对角以外所有值,矩阵Q中相关元素值:
经过若干次变换,就可以得到一个三对角矩阵及变换矩阵Q;
第二步是将三对角的矩阵变换为对角矩阵,此处我们用Givens方法,同第一种方法相似,稍有不同的是:
经过第二步,得到的对角矩阵对角元为本征值,将所有矩阵连乘得到的就是本征向量矩阵。
源代码:
1.Jacobi Method.
#includeiostream
#includeiomanip
using namespace std;
void main()
{
double A[5][5]={4,2,2,5,8,2,5,1,3,4,2,1,6,2,6,5,3,2,1,3,8,4,6,3,3};
double QS[5][5]={1,0,0,0,0,0,1,0,0,0, 0,0,1,0,0,0,0,0,1,0,0,0,0,0,1};
//运用 Givens Transformation将矩阵A对角化;
int num=0;
do
{
num+=1;
int i,j;
double d=0;
for(int l=0;l4;l++)
{
for(int m=l+1;m5;m++)
{
if(abs(A[l][m])d)
{
d=abs(A[l][m]);
i=l;
j=m;
}
}
}//寻找绝对值最大的非对角元;
double s=(A[i][i]-A[j][j])/(2*A[i][j]),t=-pow(s*s+1,0.5)-s;
double sino=t*pow(1+t*t,-0.5),coso=pow(1+t*t,-0.5);
double QT[5][5]={1,0,0,0,0,0,1,0,0,0, 0,0,1,0,0,0,0,0,1,0,0,0,0,0,1},
Q[5][5]={1,0,0,0,0,0,1,0,0,0, 0,0,1,0,0,0,0,0,1,0,0,0,0,0,1},
b[5][5];
{
Q[i][i]=coso,QT[i][i]=coso,
Q[j][j]=coso,QT[j][j]=coso,
Q[j][i]=sino,QT[j][i]=-sino,
Q[i][j]=-sino,QT[i][j]=sino;
}//赋值,计算矩阵Q及QT;
{
for(int l=0;l5;l++)
{
for(int m=0;m5;m++)
{
b[l][m]=0;
for(int k=0;k5;k++)
{
b[l][m]+=QS[l][k]*Q[k][m];
}
}
}
for(int l=0;l5;l++)
{
for(int m=0
您可能关注的文档
- 海内网民间呼声版块精华帖27.docx
- 2012-2013-1财务会计(上)期末A卷.doc
- 2012年硕士研究生招生专业目录.doc(原山东经济学院).doc
- 大学生-软件公司的实习报告new.doc
- 2016沈阳音乐学院考研参考书目new.doc
- 大学英语二级词汇7new.doc
- 信号与系统实验九.doc
- 2015年安徽省中考《安徽历史》备考.doc
- 卢湾化妆培训?韩国双色妆化妆步骤 撞色时代拼出色彩.doc
- 环境学65175.doc
- 2025年成都市玩偶生产荧光涂鸦互动玩偶开发可行性研究报告.docx
- 2025年成都市海绵生产用于体育馆室外运动场地透水改造可行性研究报告.docx
- 2025年天津市体操鞋企业团建运动应用报告.docx
- 2025年上海市溶洞极限运动(速降)场地开发可行性研究报告.docx
- 2025年上海市涵洞工程施工技术应用可行性研究报告.docx
- 2025年上海市体育场馆设施扎带安全防护可行性研究报告.docx
- 2025年上海市牦牛育肥产业园区建设可行性研究报告.docx
- 2025年旅拍宠物陪伴拍摄项目可行性研究报告.docx
- 2025年上海市进口食品节庆主题快闪店可行性研究报告.docx
- 2025年上海市洗选厂尾矿综合利用产业化可行性研究报告.docx
文档评论(0)