北航数值分析大作业第一题.pdf

  1. 1、本文档共11页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

数值分析大作业一

1算法方案

1.1λ1,λ501,λs的计算

(1)将矩阵A[501][501]以压缩存储后的形式C[5][501]输入

(2)使用一次幂法得到按模最大的特征值

(3)矩阵向左平移λ距离(A-λI),再使用一次幂法得到按模最大的特征值s,则λ=s-λ

mmm1m1

(4)比较λ和λ的大小与正负,得到λ和λ

m1m2501

(5)对A使用一次反幂法得到按模最小的特征值λs

1.2λik的计算

λ计算方法均先将A平移,再采用反幂法

ik

1.3条件数与行列式计算

因为A矩阵为非奇异的对称阵,根据条件数的定义式,condA=|λ/λ|

smax

对A进行LU分解,有A的行列式ALU,而有L1,所以

AUu[1][1]u[2][2][

……un][n]

2源程序

#includestdio.h

#includemath.h

#defineq501

#definer2

#defines2

intmain()

{

inti,j;

doublea[5][501]={0},d[5][501]={0};

doubleu[501];

doubleym1,ym2,ymin;

doublemi(doublea[r+s+1][q]);

doublefmi(doublem[5][501]);

doublet;

doublemk[39];

doubleymin2[39];

doublecond;

doublefabs(doublea);

doubledet(doublec[1+r+s][q]);

FILE*fp;//建立一个文件操作指针

fp=fopen(output.txt,w+);//以追加的方式建立或打开1.txt,默认位置在你程序的目录

下面

for(j=0;j501;j++)//初始化矩阵A

{

u[j]=1;//初始化向量u

if(j1)a[0][j]=-0.064;

if(j0)a[1][j]=0.16;

a[2][j]=(1.64-0.024*(j+1))*sin(0.2*(j+1))-0.64*exp(0.1/(j+1));

if(j500)a[3][j]=0.16;

if(j499)a[4][j]=-0.064;

}

for(i=0;i5;i++)

{for(j=0;j501;j++)

d[i][j]=a[i][j];}

ym1=mi(a);

for(j=0;j501;j++)//A平移Ym1

{

u[j]=1;

a[2][j]=a[2][j]-ym1;

}

ym2=mi(a)+ym1;

for(j=0;j501;j++)//A平移回原值

{

u[j]=1;

a[2][j]=a[2][j]+ym1;

}

ymin=fmi(a);

printf(output\n第一个问:\n);//输出第一个问

fprintf(fp,output\n第一个问:\n);

if(ym2ym1){t=ym2;ym1=t;ym2

文档评论(0)

寒傲似冰 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8071104010000026

1亿VIP精品文档

相关文档