- 1、本文档共11页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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的行列式ALU,而有L1,所以
AUu[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)