- 1、本文档共13页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
........................................................................
专业技术资料
数值分析大作业
算法设计方案
矩阵初始化
矩阵的下半带宽r=2,上半带宽s=2,设置矩阵,在矩阵C中检索矩阵A中的带内元素的方法是:。这样所需要的存储单元数大大减少,从而极大提高了运算效率。
利用幂法求出
幂法迭代格式:
当时,迭代终止。
首先对于矩阵A利用幂法迭代求出一个,然后求出矩阵B,其中(为单位矩阵),对矩阵B进行幂法迭代,求出,之后令,比较,大者为,小者为。
利用反幂法求出
反幂法迭代格式:
当时,迭代终止,。
每迭代一次都要求解一次线性方程组,求解过程为:
作分解
对于执行
求解(数组b先是存放原方程组右端向量,后来存放中间向量y)
使用反幂法,直接可以求得矩阵按模最小的特征值。
求与数最接近的特征值,对矩阵实行反幂法,即可求出对应的。
求出A的条件数和行列式
根据,其中分子分母分别对应按模最大和最小的特征值。
的计算:由于,其中为下三角矩阵,且对角线元素为1,故,所以有,又为上三角矩阵,故为对其对角线上各元素的乘积,最后可得。
程序源代码
(1)定义所需要的函数:
#include stdio.h
#include conio.h
#include math.h
#define N 501
#define R 2
#define S 2
int min(int a,int b); // 求最小值
int max(int a,int b,int c); // 求最大值
double Fan_two(double x[N]);//计算二范数
void FenjieLU(double (*C)[N]);//解线性方程组的LU分解过程
void Solve(double (*C)[N], double *b,double *x);//解线性方程组的求解过程
double PowerMethod(double C[][N],double u[N],double y[N],double bta,double D);//幂法
double InversePowerMethod(double C[][N],double u[N],double y[N],double bta,double D);//反幂法
};
(2)程序的主函数,Main.cpp代码如下:
void main()
{
double C[R+S+1][N];
double u[N];
double y[N];
double miu[39];
double C1[R+S+1][N];
double bta = 1.0;
double Namda1,Namda501,NamdaS;
double Namda[39];
double CondA2;
double detA = 1.0;
double D = 1.0e-12;
int i, j, k;
FILE * fp;
fp = fopen(Namda.txt,w);
//对数组进行初始化//
int i, j;
for (i = 0; i N; i++)
{
u[i] = 1;
}
for (i = 0;i R + S + 1;i++)
{
for (j = 0;j N;j++)
{
if (i==0||i==4)
{
C[i][j]=-0.064;
}
else if (i==1||i==3)
{
C[i][j]=0.16;
}
else if (i==2)
{
C[i][j]=(1.64-0.024*(j+1))*sin(0.2*(j+1))
-0.64*exp(0.1/(j+1));
}
}
}
//幂法求Namda1//
Namda1 = PowerMethod(C, u, y, bta, D);
printf(\n================================================\n);
printf(Namda1 = %12.11e, Namda1);
printf(\n================================================\n);
//幂法求Namda501//
bta = 1.0;
for (i = 0; i R + S + 1; i++)
您可能关注的文档
- 新时期产业工人技术素质提升存在的问题和对策.doc
- 旋挖桩施工技术交底大全003.doc
- 旋挖桩施工技术交底大全.doc
- 学校规范办学行为实施计划方案.doc
- 液晶拼接技术设计方案.doc
- 一年级语文上册《aieiui》第一课时教(学)案.doc
- 医疗垃圾焚烧处理工艺设计(毕业论文).doc
- 医院感染基本知识试题(卷).doc
- 医院管理系统解决方案报告书.doc
- 医院院内感染管理制度汇编.doc
- 二年级群文阅读《有趣的问答歌》逐字稿.docx
- 2022员工职位计划文本3篇 .pdf
- 2019年中小学安全知识竞赛试题及答案(精华版) .pdf
- 2020-2021学年(统编版)语文三年级下册课外阅读练习及答案(8篇).pdf
- 2018-2019二学期期末八年级数学试题 .pdf
- 2020级模具设计与制造专业(4年制技师大专)实施性人才培养方案 .pdf
- 2020年四年级数学下册四单元考试卷及答案(二篇) .pdf
- 2020学年七年级第二学期期末监测语文试题含解析 .pdf
- 2022北师大版四年级上册数学期末测试卷附完整答案(典优) .pdf
- 2021-2022学年榆树市泗河中学七年级数学上册1.1生活中的图形期末试卷wo.pdf
文档评论(0)