北航研究生数值分析编程大作业1.doc

上传人:11****ws 文档编号:2156775 上传时间:2019-04-30 格式:DOC 页数:13 大小:643KB
下载 相关 举报
北航研究生数值分析编程大作业1.doc_第1页
第1页 / 共13页
北航研究生数值分析编程大作业1.doc_第2页
第2页 / 共13页
北航研究生数值分析编程大作业1.doc_第3页
第3页 / 共13页
北航研究生数值分析编程大作业1.doc_第4页
第4页 / 共13页
北航研究生数值分析编程大作业1.doc_第5页
第5页 / 共13页
点击查看更多>>
资源描述

1、1数值分析大作业1、算法设计方案1、矩阵初始化矩阵 的下半带宽 r=2,上半带宽 s=2,设置矩阵 ,501ijaA 501srC在矩阵 C 中检索矩阵 A 中的带内元素 的方法是: 。这样所需要ijajsiijca,1的存储单元数大大减少,从而极大提高了运算效率。2、利用幂法求出 501与幂法迭代格式:0111nTkkkkTuRyAu非 零 向 量当 时,迭代终止。120/kk首先对于矩阵 A 利用幂法迭代求出一个 ,然后求出矩阵 B,其中( 为单位矩阵) ,对矩阵 B 进行幂法迭代,求出 ,之后令IB ,比较 ,大者为 ,小者为 。与50113、利用反幂法求出 iks,反幂法迭代格式:01

2、11nTkkkTkuRyAu非 零 向 量当 时,迭代终止, 。120/kk 1sk每迭代一次都要求解一次线性方程组 ,求解过程为:1yAu(1)作分解 LUA对于 执行nk,.22sknrki cccsj ksktkittksisi jstksjrttjskjsk );,m(,.21/)(:),.: ,1,1ax,1, ,11),max(,1,1(2)求解 (数组 b 先是存放原方程组右端向量,后来存放中间向yUbL量 y) )1,.2(/)(:/ ),.32(: ,1),min(1.1),ax(, nicbcistsittintiritstii使用反幂法,直接可以求得矩阵按模最小的特征值

3、。s求与数 最接近的特征值 ,对矩阵)39,.2(40151kk ik实行反幂法,即可求出对应的 。IAk kikk,/14、求出 A 的条件数和行列式根据 ,其中分子分母分别对应按模最大和最小的特征值。max2()scond的计算:由于 ,其中 为下三角矩阵,且对角线元素为 1,故etALU,所以有 ,又 为上三角矩阵,故 为对其对角线d()1L det()U上各元素的乘积,最后可得 。det()t()32、程序源代码(1)定义所需要的函数:#include #include #include #define N 501#define R 2#define S 2int min(int a,

4、int b); / 求最小值int max(int a,int b,int c); / 求最大值double Fan_two(double xN);/计算二范数void FenjieLU(double (*C)N);/解线性方程组的LU分解过程void Solve(double (*C)N, double *b,double *x);/解线性方程组的求解过程double PowerMethod(double CN,double uN,double yN,double bta,double D);/幂法double InversePowerMethod(double CN,double uN,d

5、ouble yN,double bta,double D);/反幂法;(2)程序的主函数,Main.cpp 代码如下:void main()double CR+S+1N;double uN;double yN;double miu39;double C1R+S+1N;double bta = 1.0;double Namda1,Namda501,NamdaS;double Namda39;double CondA2;double detA = 1.0;double D = 1.0e-12;int i, j, k;FILE * fp;fp = fopen(“Namda.txt“,“w“);/对数

6、组进行初始化/int i, j; for (i = 0; i b ? a : b;return temp c ? temp : c;double Fan_two(double xN)double sum = 0.0;int i;for (i = 0; i = 0; i-)for (t = i+1; t D)temp = bta;ita = Fan_two(u);for (i = 0; i D)temp = bta;ita = Fan_two(u);for (i = 0; i N; i+)yi = ui / ita;9/用到临时存储数组TC和ty 是因为函数Solve执行过程中会改变A和 yfo

7、r (i = 0; i R + S + 1; i+)for (j = 0; j N; j+)TCij = Cij;for (i = 0; i N; i+)tyi = yi;Solve(C, y, u);for (i = 0; i R+S+1; i+)for (j = 0; j N; j+)Cij = TCij;for (i = 0; i N; i+)yi = tyi;for (i = 0; i N; i+)sum += yi * ui;bta = sum;sum = 0;k+;bta = 1.0 / bta;return bta;103、程序运行结果下图为主程序运行结果其中 的结果输出在 Namda.txt 文件中,结果如下:ik

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 实用文档资料库 > 策划方案

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。