数值分析线性方程组..doc
文本预览下载声明
数值分析实验报告
班级 姓 名 学 号 课程名称 数值分析 时 间 地 点 一、实验名称:
实验四、线性代数方程组直接解法、迭代法 实验目的:
1.高斯消去法的原理和计算步骤,理解迭代法基本原理及步骤;
2.了解顺序消去法能够实现的条件;
3.掌握矩阵的三角分解(即LU分解),平方分解的原理与步骤;
4. 利用LU分解、平方分解求解线性代数方程组.
5.利用Jacobi,Gauss-seidel迭代求解方程组 三、实验内容及要求:
1.编写LU分解matlab通用程序,并用该程序求下面矩阵的LU分解
试写出,阵。
2.编写平方分解matlab通用程序,并用该程序求解下面代数方程组的解:
其中
3.编写Jacobi、Gauss-seidel迭代法求解线性代数方程组通用程序,并利用Jacobi、Gauss-seidel迭代求下面方程组的解,精度控制为(误差最大范数) 四、直接法的实验步骤:
步骤1:打开matlab,存储行列式值?,并选主元
步骤2:对矩阵进行消元,再回代
步骤3:编写函数代码,保存并运行
…
五、直接法的实验结果:
1、矩阵分解结果
ans =
1 0 0 0 0 0 0 0 0 0
1 1 0 0 0 0 0 0 0 0
0 1 1 0 0 0 0 0 0 0
0 0 1 1 0 0 0 0 0 0
0 0 0 1 1 0 0 0 0 0
0 0 0 0 1 1 0 0 0 0
0 0 0 0 0 1 1 0 0 0
0 0 0 0 0 0 1 1 0 0
0 0 0 0 0 0 0 1 1 0
0 0 0 0 0 0 0 0 1 1
2、求解下面代数方程组的解
x =
1
2
3
4
5
6
7
8
9
10
3、jacobi迭代求下面方程组的解
x =
1.0e+005 *
-0.3211
-0.3203
1.1929
k =
300
Gauss-seidel迭代求下面方程组的解
x =
14.7758
-19.5433
-5.8788
k =
300
六、讨论function [L,U]=myLU(A)
A=[1 2 0 0 0 0 0 0 0 0
1 3 2 0 0 0 0 0 0 0
0 1 3 2 0 0 0 0 0 0
0 0 1 3 2 0 0 0 0 0
0 0 0 1 3 2 0 0 0 0
0 0 0 0 1 3 2 0 0 0
0 0 0 0 0 1 3 2 0 0
0 0 0 0 0 0 1 3 2 0
0 0 0 0 0 0 0 1 3 2
0 0 0 0 0 0 0 0 1 3];
[n,n]=size(A);
L=zeros(n,n);
U=zeros(n,n);
for i=1:n
L(i,i)=1;
end
for k=1:n
for j=k:n
U(k,j)=A(k,j)-sum(L(k,1:k-1).*U(1:k-1,j));
end
for i=k+1:n
L(i,k)=(A(i,k)-sum(L(i,1:k-1).*U(1:k-1,k)))/U(k,k);
end
end
2、a=[1 2 0 0 0 0 0 0 0 0
2 5 2 0 0 0 0 0 0 0
0 2 5 2 0 0 0 0 0 0
0 0 2 5 2 0 0 0 0 0
0 0 0 2 5 2 0 0
显示全部