常微分方程的解线性方程组的迭代法
- 格式:doc
- 大小:91.50 KB
- 文档页数:17
计算方法3_线性方程组迭代解法线性方程组的迭代解法是解决线性方程组的一种常见方法,常用于大规模的线性方程组求解。
该方法通过不断迭代更新解的近似值,直到满足一定的收敛准则为止。
线性方程组的迭代解法有很多种,其中最经典的是雅可比迭代法、高斯-赛德尔迭代法和超松弛迭代法。
本文将分别介绍这三种迭代解法及其计算方法。
雅可比迭代法是一种比较简单的线性方程组迭代解法,它的基本思想是先将线性方程组转化为对角占优的形式,然后通过迭代求解逐渐接近精确解。
雅可比迭代法的迭代公式为:其中,x^(k+1)是第k+1次迭代的近似解,n是未知数的个数,a_ij 是系数矩阵A的元素,f_i是方程组的右端向量的元素。
雅可比迭代法的计算步骤如下:1.将线性方程组转化为对角占优的形式,即保证矩阵A的对角元素绝对值大于其它元素的绝对值。
2.初始化向量x^(0),设定迭代终止准则。
3.根据雅可比迭代公式,计算x^(k+1)。
4.判断迭代终止准则是否满足,如果满足,则停止迭代,返回近似解x^(k+1);否则,继续进行下一次迭代。
高斯-赛德尔迭代法是雅可比迭代法的改进方法,它的基本思想是在每次迭代计算x^(k+1)时,利用已经计算出的近似解作为x的一部分。
高斯-赛德尔迭代法的迭代公式为:其中,x^(k+1)_i是第k+1次迭代的近似解中第i个未知数的值,x^(k)_i是第k次迭代的近似解中第i个未知数的值。
高斯-赛德尔迭代法的计算步骤如下:1.将线性方程组转化为对角占优的形式。
2.初始化向量x^(0),设定迭代终止准则。
3.根据高斯-赛德尔迭代公式,计算x^(k+1)。
4.判断迭代终止准则是否满足,如果满足,则停止迭代,返回近似解x^(k+1);否则,继续进行下一次迭代。
超松弛迭代法是对高斯-赛德尔迭代法的一种改进方法,它引入了松弛因子ω,通过调整参数ω的值,可以加快迭代的收敛速度。
超松弛迭代法的迭代公式为:其中,0<ω<2,x^(k+1)_i是第k+1次迭代的近似解中第i个未知数的值,x^(k)_i是第k次迭代的近似解中第i个未知数的值。
常微分方程的线性方程组解法常微分方程是数学中的一个重要分支,研究的是描述自然和社会现象的变化规律的方程。
线性方程组是常微分方程中的一类特殊情况,它具有重要的理论和实际应用价值。
本文将介绍常微分方程的线性方程组解法,并以具体的示例进行说明。
1. 线性方程组的定义与形式线性方程组由多个线性方程组成,其中每个线性方程都是未知函数及其导数的线性组合。
一般形式如下:y^(n) + a_(n-1)(x)y^(n-1) + … + a_1(x)y' + a_0(x)y = f(x)其中,y^(n) 表示未知函数 y 的 n 阶导数,a_i(x)(i = 0, 1, …, n-1)是已知函数,f(x) 是已知函数。
2. 线性齐次方程组的解法线性齐次方程组是指 f(x) = 0 的线性方程组。
对于线性齐次常微分方程组,可以使用特征方程法来求解。
具体步骤如下:(1)设 y = e^(rx) 为方程的解,代入方程得到特征方程,如 y'' + ay' + by = 0,则特征方程为 r^2 + ar + b = 0。
(2)解特征方程得到 r1 和 r2,若r1 ≠ r2,则 y1 = e^(r1x) 和 y2 = e^(r2x) 是方程的两个线性无关解;若 r1 = r2 = r,则 y1 = e^(rx) 和 y2 = xe^(rx) 是方程的两个线性无关解。
(3)根据线性组合的原理,方程的通解为 y = C1y1 + C2y2(或 y = C1y1 + C2y2lnx),其中 C1 和 C2 为任意常数。
3. 非齐次线性方程组的解法非齐次线性方程组是指f(x) ≠ 0 的线性方程组。
求解非齐次线性方程组可以使用常数变易法。
具体步骤如下:(1)令 y = C1(x)y1(x) + C2(x)y2(x) 为方程的解,其中 C1(x) 和C2(x) 为待定函数。
(2)代入原方程,得到待定函数的微分方程组。
线性方程组的迭代式求解方法迭代法解方程的基本原理1.概述把 Ax=b 改写成 x=Bx+f ,如果这一迭代格式收敛,对这个式子不断迭代计算就可以得到方程组的解。
道理很简单:对 x^{(k+1)}=bx^{(k)}+f 两边取极限,显然如果收敛,则最终得到的解满足 \lim_{k\rightarrow\infty } x^{(k)}=x^*=Bx^*+f ,从而必然满足原方程 Ax^*=b 。
迭代方法的本质在于这一次的输出可以当作下一次的输入,从而能够实现循环往复的求解,方法收敛时,计算次数越多越接近真实值。
2.收敛条件充要条件:迭代格式 x=Bx+f 收敛的充要条件是 \rho (B)<1充分条件: \Vert B\Vert <1即 \Vert B\Vert <1 \Rightarrow \rho(B)<1\Leftrightarrow 迭代收敛一、Jacobi迭代法怎样改写Ax=b ,从而进行迭代求解呢?一种最简单的迭代方法就是把第i行的 x_i 分离出来(假定 a_{ii} \ne 0 ):\sum_{j=1}^{n}a_{ij}x_j=b_i\Rightarrow x_i=\frac{b_i-\sum_{j=1,j\ne i}^{n}a_{ij}x_j}{a_{ii}}\quad \\这就是Jacobi(雅可比)迭代法。
迭代格式给定x^{(0)}=\left[x_1^{(0)},x_2^{(0)},\cdots,x_n^{(0)}\rig ht]^T ,则Jacobi法的迭代格式(也称分量形式)为x_i^{(k+1)}=\frac{1}{a_{ii}}\left ( {b_i-\sum_{j=1,j\ne i}^{n}a_{ij}x_j^{(k)}}\right),\quadi=1,2,\cdots,n\\矩阵形式设 A=D-L-U。
Jacobi法的矩阵形式(也称向量形式)为x^{(k+1)}=B_Jx^{(k)}+D^{-1}b\\其中迭代矩阵 B_J=D^{-1}(L+U)收敛条件\begin{eqnarray} \left. \begin{array}{lll} \VertB_J\Vert <1 \\ A 严格对角占优\\ A, 2D-A对称正定\end{array} \right \} \end{eqnarray} \Rightarrow \rho (B_J)<1\Leftrightarrow 迭代收敛特别地,若 A 对称正定且为三对角,则 \rho^2(B_J)=\rho (B_G)<1 。
常微分方程中的常系数线性方程及其解法常微分方程(Ordinary Differential Equation,ODE)是一种数学模型,用于描述时间或空间上量的变化规律。
常微分方程中的常系数线性方程是ODE中一个重要的类别,其解法具有一定的规律性和普适性。
本文将就常微分方程中的常系数线性方程及其解法做简要介绍。
一、常系数线性方程的定义常系数线性方程是指其系数不随自变量t的变化而改变的线性方程。
一般写为:$$\frac{d^n}{dt^n}y(t)+a_{n-1}\frac{d^{n-1}}{dt^{n-1}}y(t)+...+a_1\frac{d}{dt}y(t)+a_0y(t)=f(t)$$其中a的值为常数,f(t)为已知函数,y(t)为未知函数,方程中最高阶导数的阶数为n。
n阶常系数线性方程也称为n阶齐次线性方程;当f(t)≠0时,称其为n阶非齐次线性方程。
二、常系数线性方程的解法对于一般形式的常系数线性方程,我们常用特征根的方法来求解。
具体来说,先考虑对应的齐次线性方程$$\frac{d^n}{dt^n}y(t)+a_{n-1}\frac{d^{n-1}}{dt^{n-1}}y(t)+...+a_1\frac{d}{dt}y(t)+a_0y(t)=0$$设y(t)=e^{rt},则有$$r^ne^{rt}+a_{n-1}r^{n-1}e^{rt}+...+a_1re^{rt}+a_0e^{rt}=0$$整理得到$$(r^n+a_{n-1}r^{n-1}+...+a_1r+a_0)e^{rt}=0$$根据指数函数的性质得到$$r^n+a_{n-1}r^{n-1}+...+a_1r+a_0=0$$求解方程$$r^n+a_{n-1}r^{n-1}+...+a_1r+a_0=0$$可得到n个特征根,设其为$r_1,r_2,...,r_n$。
则对于齐次线性方程,其通解为$$y(t)=c_1e^{r_1 t}+c_2e^{r_2 t}+...+c_ne^{r_n t}$$其中$c_1,c_2,...,c_n$为待定常数。
实验五 解线性方程组的迭代法【实验容】对1、设线性方程组⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎭⎫⎝⎛-=⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎭⎫⎝⎛⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎭⎫⎝⎛--------------------------2119381346323125136824381004120291372642212341791110161035243120536217758683233761624491131512013012312240010563568000012132410987654321x x x x x x x x x x()Tx 2,1,1,3,0,2,1,0,1,1*--=2、设对称正定系数阵线性方程组⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎭⎫ ⎝⎛---=⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎭⎫ ⎝⎛⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎭⎫ ⎝⎛---------------------45152292320601924336002141103520411144334310422181233416120653811414023121220024042487654321x x x x x x x x ()Tx 2,0,1,1,2,0,1,1*--=3、三对角形线性方程组⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎭⎫ ⎝⎛----=⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎭⎫ ⎝⎛⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎭⎫ ⎝⎛------------------5541412621357410000000014100000000141000000001410000000014100000000141000000001410000000014100000000141000000001410987654321x x x x x x x x x x ()Tx 1,1,0,3,2,1,0,3,1,2*---=试分别选用Jacobi 迭代法,Gauss-Seidol 迭代法和SOR 方法计算其解。
解线性方程组的迭代法Haha送给需要的学弟学妹摘要:因为理论的分析表明,求解病态的线性方程组是困难的,但是实际情况是否如此,需要我们来具体检验。
系数矩阵H 为Hilbert 矩阵,是著名的病态问题。
因而决定求解Hx b =此线性方程组来验证上述问题。
详细过程是通过用Gauss 消去法、J 迭代法、GS 迭代法和SOR 迭代法四种方法求解Hx b =线性方程组。
关键词:病态方程组、Gauss 消去法、J 迭代法、GS 迭代法、SOR 迭代法目录:一、问题背景介绍二、建立正确额数学模型 三、求解模型的数学原理1、Gauss 消去法求解原理2、Jacobi 迭代法求解原理3、G-S 迭代法求解原理4、SOR 迭代法求解原理5、Jacobi 和G-S 两种迭代法收敛的充要条件 四、计算过程(一)Hilbert 矩阵维数n=6时1、Gauss 消去法求解2、Jacobi 迭代法求解3、G-S 迭代法求解4、SOR 迭代法求解(二)Hilbert 矩阵维数n=20、50和100时1、G-S 迭代法求解图形2、SOR 迭代法求解图形 五、编写计算程序 六、解释计算结果1、Gauss 消去法误差分析2、G-S 迭代法误差分析3、SOR 迭代法误差分析G-S 迭代法与SOR 迭代法的误差比较 七、心得体会正文:一、问题背景介绍。
理论的分析表明,求解病态的线性方程组是困难的。
实际情况是否如此,会出现怎样的现象呢?二、建立正确的数学模型。
考虑方程组Hx b =的求解,其中系数矩阵H 为Hilbert 矩阵,,,1(), , ,1,2,,1i j n n i j H h h i j n i j ⨯===+-这是一个著名的病态问题。
通过首先给定解(为方便计算,笔者取x 的各个分量等于1),再计算出右端,b Hx =这样Hx b =的解就明确了,再用Gauss 消去法、J 迭代法、GS 迭代法和SOR 迭代法四种方法分别求解,Hx b =将求解结果与给定解比较,而后求出上述四种方法的误差,得出哪种方法比较好。
实验五 解线性方程组的迭代法【实验内容】对1、设线性方程组⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎭⎫⎝⎛-=⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎭⎫⎝⎛⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎭⎫⎝⎛--------------------------2119381346323125136824381004120291372642212341791110161035243120536217758683233761624491131512013012312240010563568000012132410987654321x x x x x x x x x x()Tx 2,1,1,3,0,2,1,0,1,1*--=2、设对称正定系数阵线性方程组⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎭⎫ ⎝⎛---=⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎭⎫ ⎝⎛⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎭⎫ ⎝⎛---------------------45152292320601924336002141103520411144334310422181233416120653811414023121220024042487654321x x x x x x x x ()Tx 2,0,1,1,2,0,1,1*--=3、三对角形线性方程组⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎭⎫ ⎝⎛----=⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎭⎫ ⎝⎛⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎭⎫ ⎝⎛------------------5541412621357410000000014100000000141000000001410000000014100000000141000000001410000000014100000000141000000001410987654321x x x x x x x x x x ()Tx 1,1,0,3,2,1,0,3,1,2*---=试分别选用Jacobi 迭代法,Gauss-Seidol 迭代法和SOR 方法计算其解。
【实验方法或步骤】1、体会迭代法求解线性方程组,并能与消去法加以比较;2、分别对不同精度要求,如54310,10,10---=ε由迭代次数体会该迭代法的收敛快慢;3、对方程组2,3使用SOR 方法时,选取松弛因子ω=0.8,0.9,1,1.1,1.2等,试看对算法收敛性的影响,并能找出你所选用的松弛因子的最佳者;4、给出各种算法的设计程序和计算结果。
程序:用雅可比方法求的程序:function [x,n]=jacobi(A,b,x0,eps,varargin) if nargin==3 eps=1.0e-6; M=200;elseif nargin==5M=varargin{1};endD=diag(diag(A));L=-tril(A,-1);U=-triu(A,1);B=D\(L+U);f=D\b;x=B*x0+f;n=1;while norm(x-x0)>=epsx0=x;x=B*x0+f;n=n+1;if(n>=M)diso('不收敛!')return;endend解1的程序为A=[4 2 -3 -1 2 1 0 0 0 0;8 6 -5 -3 6 5 0 1 0 0;4 2 -2 -1 3 2 -1 0 3 1;0 -2 1 5 -1 3 -1 1 9 4;-4 2 6 -1 6 7 -3 3 2 3;8 6 -8 5 7 17 2 6 -3 5;0 2 -1 3 -4 2 5 3 0 1;16 10 -11 -9 17 34 2 -1 2 2;4 6 2 -7 13 9 2 0 12 4;0 0 -1 8 -3 -24 -8 6 3 -1;],b=[5 12 3 2 3 46 13 38 19 -21]'A =Columns 1 through 44 2 -3 -18 6 -5 -34 2 -2 -10 -2 1 5-4 2 6 -18 6 -8 50 2 -1 316 10 -11 -94 6 2 -70 0 -1 8Columns 5 through 82 1 0 06 5 0 13 2 -1 0-1 3 -1 16 7 -3 37 17 2 6-4 2 5 317 34 2 -113 9 2 0-3 -24 -8 6Columns 9 through 100 00 03 19 42 3-3 50 12 212 43 -1b =51232346133819-21>> x0=ones(10,1);>> [x,n]=Jacobi(A,b,x0)得到的结果为Warning: Function call Jacobi invokes inexact match d:\MATLAB7\work\jacobi.m.不收敛!x =1.0e+124 *-0.1794-0.3275-0.70941.59901.03110.32910.24644.39050.4927-2.6574n =200即迭代了200次而且可能不收敛A =4 2 -4 0 4 2 0 0 2 2 -1 2 1 3 2 0 -4 -1 14 1 -8 -356 0 -2 1 6 -1 -4 -3 3 2 1 -8 -1 22 4 -10 -3 4 3 -3 -4 4 11 1 -4 0 2 5 -3 -10 1 14 2 0 0 6 3 -3 -4 2 19b = 0-620239-22-1545>> x0=ones(8,1);>> [x,n]=Jacobi(A,b,x0)不收敛!x =1.0e+047 *0.96271.0084-0.4954-0.59790.30970.6872-0.0666-0.2629n =200此方程可能不收敛A=[4 -1 0 0 0 0 0 0 0 0;-1 4 -1 0 0 0 0 0 0 0;0 -1 4 -1 0 0 0 0 0 0;0 0 -1 4 -1 0 0 0 0 0;0 0 0 -1 4 -1 0 0 0 0;0 0 0 0 -1 4 -1 0 0 0;0 0 0 0 0 -1 4 -1 0 0;0 0 0 0 0 0 -1 4 -1 0;0 0 0 0 0 0 0 -1 4 -1;0 0 0 0 0 0 0 0 -1 4;],b=[7 5 -13 2 6 -12 14 -4 5 -5]'A =Columns 1 through 54 -1 0 0 0-1 4 -1 0 00 -1 4 -1 00 0 -1 4 -10 0 0 -1 40 0 0 0 -10 0 0 0 00 0 0 0 00 0 0 0 00 0 0 0 0Columns 6 through 100 0 0 0 00 0 0 0 00 0 0 0 00 0 0 0 0-1 0 0 0 04 -1 0 0 0-1 4 -1 0 00 -1 4 -1 00 0 -1 4 -10 0 0 -1 4b =75-1326-1214-45-5>> x0=ones(10,1);>> [x,n]=Jacobi(A,b,x0)x =2.00001.0000-3.00000.00001.0000-2.00003.00000.00001.0000-1.0000n =22得到结果为迭代了22次得到近似解为x =2.0000 1.0000 -3.0000 0.0000 1.0000 -2.0000 3.0000 0.0000 1.0000 -1.0000 用高斯赛德尔源程序function [x,n]=gauseidel(A,b,x0,eps,M)if nargin==3eps=1.0e-6;M=200;elseif nargin==4M=200;elseif nargin<3errorreturn;endD=diag(diag(A));L=-tril(A,-1);U=-triu(A,1);G=(D-L)\U;f=(D-L)\b;x=G*x0+f;n=1;while norm(x-x0)>=epsx0=x;x=G*x0+f;n=n+1;if(n>=M)disp('Warning:不收敛!');return;endend解上面3个方程组的程序分别为第一个方程A=[4 2 -3 -1 2 1 0 0 0 0;8 6 -5 -3 6 5 0 1 0 0;4 2 -2 -1 3 2 -1 0 3 1;0 -2 1 5 -1 3 -1 1 9 4;-4 2 6 -1 6 7 -3 3 2 3;8 6 -8 5 7 17 2 6 -3 5;0 2 -1 3 -4 2 5 3 0 1;16 10 -11 -9 17 34 2 -1 2 2;4 6 2 -7 13 9 2 0 12 4;0 0 -1 8 -3 -24 -8 6 3 -1;],b=[5 12 3 2 3 46 13 38 19 -21]'A =4 2 -3 -1 2 1 0 0 0 08 6 -5 -3 6 5 0 1 0 04 2 -2 -1 3 2 -1 0 3 10 -2 1 5 -1 3 -1 1 9 4-4 2 6 -1 6 7 -3 3 2 38 6 -8 5 7 17 2 6 -3 50 2 -1 3 -4 2 5 3 0 116 10 -11 -9 17 34 2 -1 2 24 6 2 -7 13 9 2 0 12 40 0 -1 8 -3 -24 -8 6 3 -1b =51232346133819-21x0=zeros(10,1);>> [x,n]=gauseidel(A,b,x0)Warning:不收敛!x =1.0e+247 *0.0165-0.02710.2202-0.4576-0.59510.3138-0.43812.24500.04137.4716n =200即迭代200次后此方程可能不收敛方程2的程序为A=[4 2 -4 0 4 2 0 0;2 2 -1 2 1 3 2 0;-4 -1 14 1 -8 -3 5 6;0 -2 1 6 -1 -4 -3 3;2 1 -8 -1 22 4 -10 -3;4 3 -3 -4 4 11 1 -4;0 2 5 -3 -10 1 14 2;0 0 6 3 -3 -4 2 19;],b=[0 -6 20 23 9 -22 -15 45]'A =4 2 -4 0 4 2 0 02 2 -1 2 13 2 0-4 -1 14 1 -8 -3 5 60 -2 1 6 -1 -4 -3 32 1 -8 -1 22 4 -10 -34 3 -3 -4 4 11 1 -40 2 5 -3 -10 1 14 20 0 6 3 -3 -4 2 19b =-620239-22-1545>> x0=zeros(8,1);>> [x,n]=gauseidel(A,b,x0)x =3.5441-4.88771.94820.45251.4283-1.1606-0.10811.6743n =44即在迭代44次后可求的方程的近似解第3个的程序为>> A=[4 -1 0 0 0 0 0 0 0 0;-1 4 -1 0 0 0 0 0 0 0;0 -1 4 -1 0 0 0 0 0 0;0 0 -1 4 -1 0 0 0 0 0;0 0 0 -1 4 -1 0 0 0 0;0 0 0 0 -1 4 -1 0 0 0;0 0 0 0 0 -1 4 -1 0 0;0 0 0 0 0 0 -1 4 -1 0;0 0 0 0 0 0 0 -1 4 -1;0 0 0 0 0 0 0 0 -1 4;],b=[7 5 -13 2 6 -12 14 -4 5 -5]'A =4 -1 0 0 0 0 0 0 0 0-1 4 -1 0 0 0 0 0 0 00 -1 4 -1 0 0 0 0 0 00 0 -1 4 -1 0 0 0 0 0 0 0 0 -1 4 -1 0 0 0 0 0 0 0 0 -1 4 -1 0 0 0 0 0 0 0 0 -1 4 -1 0 0 0 0 0 0 0 0 -1 4 -1 0 0 0 0 0 0 0 0 -1 4 -1 0 0 0 0 0 0 0 0 -1 4b =75-1326-1214-45-5>> x0=zeros(10,1);>> [x,n]=gauseidel(A,b,x0)x =2.00001.0000-3.0000-0.00001.0000-2.00003.0000-0.00001.0000-1.0000n =12 在迭代12次后得到方程的近似解用超松弛迭代的源程序为function [x,n]=SOR(A,b,x0,w,eps,M)if nargin==4eps=1.0e-6;M=200;elseif nargin<4errorreturnelseif nargin==5M=200;endif(w<=0||w>=2)error;return;endD=diag(diag(A));L=-tril(A,-1);U=-triu(A,1);B=inv(D-L*w)*((1-w)*D+w*U);f=w*inv((D-L*w))*b;x=B*x0+f;n=1;while norm(x-x0)>=epsx0=x;x=B*x0+f;n=n+1;if(n>=M)disp('Warning:不收敛!');return;endend解第一个方程组选取抄松弛因子为1程序为:A=[4 2 -3 -1 2 1 0 0 0 0;8 6 -5 -3 6 5 0 1 0 0;4 2 -2 -1 3 2 -1 0 3 1;0 -2 1 5 -1 3 -1 1 9 4;-4 2 6 -1 6 7 -3 3 2 3;8 6 -8 5 7 17 2 6 -3 5;0 2 -1 3 -4 2 5 3 0 1;16 10 -11 -9 17 34 2 -1 2 2;4 6 2 -7 13 9 2 0 12 4;0 0 -1 8 -3 -24 -8 6 3 -1;],b=[5 12 3 2 3 46 13 38 19 -21]'A =4 2 -3 -1 2 1 0 0 0 08 6 -5 -3 6 5 0 1 0 04 2 -2 -1 3 2 -1 0 3 10 -2 1 5 -1 3 -1 1 9 4-4 2 6 -1 6 7 -3 3 2 38 6 -8 5 7 17 2 6 -3 50 2 -1 3 -4 2 5 3 0 116 10 -11 -9 17 34 2 -1 2 24 6 2 -7 13 9 2 0 12 40 0 -1 8 -3 -24 -8 6 3 -1b =51232346133819-21x0=[0 0 0 0 0 0 0 0 0 0]';[x,n]=SOR(A,b,x0,1)Warning:不收敛!x =1.0e+247 *0.0165-0.02710.2202-0.4576-0.59510.3138-0.43812.24500.04137.4716n =200迭代次数太多可能不收敛解第2个的程序为A=[4 2 -4 0 4 2 0 0;2 2 -1 2 1 3 2 0;-4 -1 14 1 -8 -3 5 6;0 -2 1 6 -1 -4 -3 3;2 1 -8 -1 22 4 -10 -3;4 3 -3 -4 4 11 1 -4;0 2 5 -3 -10 1 14 2;0 0 6 3 -3 -4 2 19;],b=[0 -6 20 23 9 -22 -15 45]'A =4 2 -4 0 4 2 0 02 2 -1 2 13 2 0-4 -1 14 1 -8 -3 5 60 -2 1 6 -1 -4 -3 32 1 -8 -1 22 4 -10 -34 3 -3 -4 4 11 1 -40 2 5 -3 -10 1 14 20 0 6 3 -3 -4 2 19b =-620239-22-1545>> x0=[0 0 0 0 0 0 0 0]';[x,n]=SOR(A,b,x0,0.8)x =3.5441-4.88771.94820.45251.4283-1.1606-0.10811.6743n =52得到结果为迭代了52次得到近似解松弛因子为0.8 [x,n]=SOR(A,b,x0,0.9)x =3.5441-4.88771.94820.45251.4283-1.1606-0.10811.6743n =47得到结果为迭代了47次得到近似解松弛因子为0.9> [x,n]=SOR(A,b,x0,1)x =3.5441-4.88771.94820.45251.4283-1.1606-0.10811.6743n =44得到结果为迭代了44次得到近似解松弛因子为1.0解第3个的程序为>> A=[4 -1 0 0 0 0 0 0 0 0;-1 4 -1 0 0 0 0 0 0 0;0 -1 4 -1 0 0 0 0 0 0;0 0 -1 4 -1 0 0 0 0 0;0 0 0 -1 4 -1 0 0 0 0;0 0 0 0 -1 4 -1 0 0 0;0 0 0 0 0 -1 4 -1 0 0;0 0 0 0 0 0 -1 4 -1 0;0 0 0 0 0 0 0 -1 4 -1;0 0 0 0 0 0 0 0 -1 4;],b=[7 5 -13 2 6 -12 14 -4 5 -5]'A =4 -1 0 0 0 0 0 0 0 0-1 4 -1 0 0 0 0 0 0 00 -1 4 -1 0 0 0 0 0 00 0 -1 4 -1 0 0 0 0 00 0 0 -1 4 -1 0 0 0 00 0 0 0 -1 4 -1 0 0 00 0 0 0 0 -1 4 -1 0 00 0 0 0 0 0 -1 4 -1 0 0 0 0 0 0 0 0 -1 4 -1 0 0 0 0 0 0 0 0 -1 4b =75-1326-1214-45-5>> x0=[0 0 0 0 0 0 0 0 0 0]';>> [x,n]=SOR(A,b,x0,0.8)x =2.00001.0000-3.0000-0.00001.0000-2.00003.0000-0.00001.0000-1.0000n =19即迭代了19次得到方程的近似解松弛因子为0.8>> [x,n]=SOR(A,b,x0,0.9)x =2.00001.0000-3.0000-0.00001.0000-2.00003.0000-0.00001.0000-1.0000n =16即迭代了16次得到方程的近似解松弛因子为0.9 [x,n]=SOR(A,b,x0,1)x =2.00001.0000-3.0000-0.00001.0000-2.00003.0000-0.00001.0000-1.0000n =12即迭代了12次得到方程的近似解松弛因子为1。