数值分析实验报告 jacobi迭代和seidel迭代分析.docVIP

  • 65
  • 0
  • 约4.76千字
  • 约 7页
  • 2017-10-06 发布于重庆
  • 举报

数值分析实验报告 jacobi迭代和seidel迭代分析.doc

数值分析实验报告 jacobi迭代和seidel迭代分析

数值分析实验报告 实验目的 了解熟悉jacobi迭代法和seidel迭代法的解法 将原理与matlab语言结合起来,编程解决问题 分析实验结果 二、实验题目 设线性方程组为 考察用jacobi迭代法和seidel迭代法求解该线性方程组的收敛情况。如果收敛,给出误差满足的解。 三、实验原理 将A 作如下分解 这里 Jacobi迭代矩阵为 Seidel迭代矩阵为 它们的迭代格式都可化为 则迭代格式对任何初值都瘦脸的充要条件是迭代矩阵谱半径 Jacobi迭代矩阵的特征方程为 Seidel迭代矩阵的特征方程为 四、实验内容 用matlab编写计算jacobi迭代矩程序,建立m文件如下: function[M]=BJ(A) D=diag(diag(A)); L=tril(-A)+D; U=triu(-A)+D; M=inv(D)*(L+U); 输入: A=[20 1 -3 -1;3 18 0 7;-1 2 40 -2;1 0 -1 5]; [M]=BJ(A) M: M = 0 -0.0500 0.1500 0.0500 -0.1667 0 0 -0.3889 0.0250 -0.0500 0 0.0500 -0.2000 0 0.2000 0 则jacobi迭代矩阵为: 用matlab求jacobi迭代矩阵的特征根的算法如下: A=[0 -0.05 0.15 -0.05;-0.67 0 0 -0.39;0.025 -0.05 0 0.05;-0.2 0 0.2 0];[V,D]=eig(A) V = -0.1892 + 0.0450i -0.1892 - 0.0450i -0.3812 -0.5005 -0.9467 -0.9467 0.8867 0.5461 -0.1528 - 0.1181i -0.1528 + 0.1181i -0.2099 -0.0466 -0.1056 + 0.1325i -0.1056 - 0.1325i 0.1561 0.6701 D = -0.1774 + 0.0864i 0 0 0 0 -0.1774 - 0.0864i 0 0 0 0 0.2194 0 0 0 0 0.1355 则最大特征根为:0.2194 则,所以jacobi迭代法收敛 用matlab编程jacobi迭代法求根的算法: function [n,x]=jacobi(A,b,X,nm,w) %用雅克比迭代法求解方程组Ax=b %输入:A为方程组的系数矩阵,b为方程组右端的列向量,X为迭代初值构成的列向量,nm为最大迭代次数,w为误差精度 %输出:x为求得的方程组的解构成的列向量,n为迭代次数 n=1; m=length(A); D=diag(diag(A)); %令A=D-L-U,计算矩阵D L=tril(-A)+D; %令A=D-L-U,计算矩阵L U=triu(-A)+D; %令A=D-L-U,计算矩阵U M=inv(D)*(L+U); %计算迭代矩阵 g=inv(D)*b; %计算迭代格式中的常数项 %下面是迭代过程 while n=nm x=M*X+g; %用迭代格式进行迭代 if norm(x-X,2)w disp(迭代次数为);n disp(方程组的解为);x return; %上面:达到精度要求就结束程序,输出迭代次数和方程组的解 end X=x;n=n+1; end %下面:如果达到最大迭代次数仍不收敛,输出警告语句及迭

文档评论(0)

1亿VIP精品文档

相关文档