雅可比迭代法与矩阵的特征值

  • 格式:doc
  • 大小:369.50 KB
  • 文档页数:23

下载文档原格式

  / 3
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验五

矩阵的lu分解法,雅可比迭代法

班级:

学号:

姓名:

实验五 矩阵的LU 分解法,雅可比迭代

一、目的与要求:

熟悉求解线性方程组的有关理论和方法;

会编制列主元消去法、LU 分解法、雅可比及高斯—塞德尔迭代法德程序; 通过实际计算,进一步了解各种方法的优缺点,选择合适的数值方法。 二、实验内容:

会编制列主元消去法、LU 分解法、雅可比及高斯—塞德尔迭代法德程序,进一步了解

各种方法的优缺点。 三、程序与实例

列主元高斯消去法

算法:将方程用增广矩阵[A ∣b ]=(ij a )1n (n )+⨯表示 1) 消元过程 对k=1,2,…,n-1

①选主元,找{}n ,,1k ,k i k +∈使得

k ,i k a =

ik a n

i k max ≤≤

②如果0a k ,i k =,则矩阵A 奇异,程序结束;否则执行③。 ③如果k i k ≠,则交换第k 行与第k i 行对应元素位置,

j i kj k a a ↔ j=k,┅,n+1

④消元,对i=k+1, ┅,n 计算

kk ik ik a a l /=

对j=l+1, ┅,n+1计算

kj ik ij ij a l a a -=

2) 回代过程

①若0=nn a ,则矩阵A 奇异,程序结束;否则执行②。 ②nn n n n a a x /1,+=;对i=n-1, ┅,2,1,计算

ii n

i j j ij n i i a x a a x /11,⎪⎪⎭

⎫ ⎝

⎛-

=∑+=+

程序与实例

程序设计如下:

#include

#include

using namespace std;

void disp(double** p,int row,int col){

for(int i=0;i

for(int j=0;j

cout<

cout<

}

}

void disp(double* q,int n){

cout<<"====================================="<

cout<<"X["<

cout<<"====================================="<

void input(double** p,int row,int col){

for(int i=0;i

cout<<"输入第"<

for(int j=0;j

cin>>p[i][j];

}

}

int findMax(double** p,int start,int end){

int max=start;

for(int i=start;i

if(abs(p[i][start])>abs(p[max][start]))

max=i;

}

return max;

}

void swapRow(double** p,int one,int other,int col){

double temp=0;

for(int i=0;i

temp=p[one][i];

p[one][i]=p[other][i];

p[other][i]=temp;

}

}