双曲型方程的有限差分并行迭代算法

双曲型方程的有限差分并行迭代算法
双曲型方程的有限差分并行迭代算法

MATLAB代码 解线性方程组的迭代法

解线性方程组的迭代法 1.rs里查森迭代法求线性方程组Ax=b的解 function[x,n]=rs(A,b,x0,eps,M) if(nargin==3) eps=1.0e-6;%eps表示迭代精度 M=10000;%M表示迭代步数的限制值elseif(nargin==4) M=10000; end I=eye(size(A)); n=0; x=x0; tol=1; %迭代过程 while(tol>eps) x=(I-A)*x0+b; n=n+1;%n为最终求出解时的迭代步数tol=norm(x-x0); x0=x; if(n>=M) disp('Warning:迭代次数太多,可能不收敛!'); return; end end 2.crs里查森参数迭代法求线性方程组Ax=b的解 function[x,n]=crs(A,b,x0,w,eps,M) if(nargin==4) eps=1.0e-6;%eps表示迭代精度 M=10000;%M表示迭代步数的限制值 elseif(nargin==5) M=10000; end I=eye(size(A)); n=0; x=x0; tol=1; %迭代过程 while(tol>eps) x=(I-w*A)*x0+w*b; n=n+1;%n为最终求出解时的迭代步数tol=norm(x-x0); x0=x;

if(n>=M) disp('Warning:迭代次数太多,可能不收敛!'); return; end end 3.grs里查森迭代法求线性方程组Ax=b的解 function[x,n]=grs(A,b,x0,W,eps,M) if(nargin==4) eps=1.0e-6;%eps表示迭代精度 M=10000;%M表示迭代步数的限制值 elseif(nargin==5) M=10000; end I=eye(size(A)); n=0; x=x0; tol=1;%前后两次迭代结果误差 %迭代过程 while(tol>eps) x=(I-W*A)*x0+W*b;%迭代公式 n=n+1;%n为最终求出解时的迭代步数tol=norm(x-x0); x0=x; if(n>=M) disp('Warning:迭代次数太多,可能不收敛!'); return; end end 4.jacobi雅可比迭代法求线性方程组Ax=b的解 function[x,n]=jacobi(A,b,x0,eps,varargin) if nargin==3 eps=1.0e-6; M=200; elseif nargin<3 error return elseif nargin==5 M=varargin{1}; end D=diag(diag(A));%求A的对角矩阵 L=-tril(A,-1);%求A的下三角阵

常微分方程和偏微分方程的数值解法教学大纲

上海交通大学致远学院 《常微分方程和偏微分方程的数值解法》教学大纲 一、课程基本信息 课程名称(中文):常微分方程和偏微分方程的数值解法 课程名称(英文):Numerical Methods for Ordinary and Partial Differential Equations 课程代码:MA300 学分 / 学时:4学分 / 68学时 适用专业:致远学院与数学系相关专业 先修课程:偏微分方程,数值分析 后续课程:相关课程 开课单位:理学院数学系计算与运筹教研室 Office hours: 每周二19:00—21:00,地点:数学楼1204 二、课程性质和任务 本课程是致远学院和数学系应用数学和计算数学方向的一门重要专业基础课程,其主要任务是通过数学建模、算法设计、理论分析和上机实算“四位一体”的教学方法,使学生掌握常微分方程与偏微分方程数值解的基本方法、基本原理和基本理论,进一步提升同学们利用计算机解决实际问题的能力。在常微分方程部分,将着重介绍常微分方程初值问题的单步法,含各类Euler方法和Runge-Kutta方法,以及线性多步法。将简介常微分方程组和高阶常微分方程的数值方法。在偏微分方程部分,将系统介绍求解椭圆、双曲、抛物型方程的差分方法的构造方法和理论分析技巧,对于椭圆型方程的边值问题将介绍相应变分原理与有限元方法。将在课堂上实时演示讲授的核心算法的计算效果,以强调其直观效果与应用性。本课程重视实践环节建设,学生要做一定数量的大作业。 三、教学内容和基本要求 第一部分:常微分方程数值解法 1 引论 1.1回顾:一阶常微分方程初值问题及解的存在唯一性定理

常微分方程的解线性方程组的迭代法

实验五 解线性方程组的迭代法 【实验内容】 对1、设线性方程组 ?? ? ? ?? ? ? ?? ? ? ?? ? ? ??-=???????????????? ?????????????????? ? ?--------------------------211938134632312513682438100412029137264 2212341791110161035243120 536217758683233761624491131512 013012312240010563568 0000121324 10987654321x x x x x x x x x x ()T x 2,1,1,3,0,2,1,0,1,1*--= 2、设对称正定系数阵线性方程组 ?? ? ????? ??? ? ? ??---=????????????? ??????????????? ??---------------------4515229 23206019243360021411035204111443343104221812334161 2065381141402312122 00240424 87654321x x x x x x x x ()T x 2,0,1,1,2,0,1,1*--= 3、三对角形线性方程组

?? ? ?? ? ????? ??? ? ? ??----=???????????????? ?????????????????? ??------------------5541412621357410000000014100000000141000000001410000000014100000000141000000001410000000014100000000 14100000000 1410987654321x x x x x x x x x x ()T x 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;

研究线性方程组迭代收敛速度

研究解线性方程组迭代收敛速度 一. 实验目的 科学研究与生产实践中许多问题都可归结为线性方程组的求解,高效求解线性方程组成为了许多科学与工程计算的核心.迭代法就是用某种极限过程去逼近线性方程组精确解的方法,该方法具有对计算机的存贮单元需求少,程序计算简单,原始系数矩阵在计算过程中不变等优点,是求解大型稀疏矩阵方程组的重要方法。常用的迭代法有Jacobi 迭代法、Gauss —seidel 迭代法、逐次超松驰法(SOR 法)等。 二. 实验摘要 由迭代法平均收敛速度与渐进收敛速度的关系引入近似估计法,即通过对迭代平均收敛速度取对数,然后利用Mathematica 软件对其进行拟合,给出拟合函数,最终得到了Jacobi 迭代法、Gauss —seidel 法的平均收敛速度收敛到渐进收敛速度的近似收敛阶,以及逐次超松驰法(SOR 法)的渐进收敛速度,且该法适用于其他迭代法收敛速度的估计。 三. 迭代法原理 1.Jacobi 迭代法(J 法) 设方程组b Ax =,其中, n n n n ij R a A ??∈=)(,。n R b x ∈, A 为可逆矩阵,可分裂为,U D L A ++=其中, ??????? ???? ???? ?=-00 00 1 ,21323121 n n n n a a a a a a L ΛO O M M ??????? ????? ??? ?=-00 0,1223 11312n n n n a a a a a a U M O O ΛΛ

??????? ? ???? ??? ?=nn a a a D O O 22 11 从而由b Ax =得到, b D x A D I b D x A D D b D x U L D x 111111)()()(------+-=+-=++-= 令 A D I B J 1--=, b D f J 1-=, 由此可构造出迭代公式:J k J k f x B x +=+)()1( 令初始向量)0,...,0,0()0(=x ,即可得到迭代序列,从而逼近方程组的解 这种方法称为Jacobi 迭代法,其中J B 称为Jacobi 迭代矩阵。 2. Gauss-Seidel 迭代法(GS 法) 与Jacobi 迭代法类似,将方程组b Ax =中的系数矩阵 A 分裂为 ,U D L A ++=,其中U L D ,,与前面相同。 与Jacobi 迭代法所不同的是,Gauss-Seidel 迭代法将Jacobi 迭代公式中的 b Ux Lx Dx k k k +--=+)()()1( 改为 b Ux Lx Dx k k k +--=++)()1()1( 从而b Ax =可写成矩阵形式 b Ux x D L k k +-=++)()1()(, 若设1 )(-+D L 存在,则 b D L Ux D L x k k 1)(1)1()()(--++++-=, 其中, U D L B G 1)(-+-=,b D L f 1)(-+=, 于是Gauss —Seidel 迭代公式的矩阵形式为f x B x k G k +=+)() 1(。

差分方程模型的稳定性分析分析解析

分类号 学号密题 目 (中、英文) 作者姓名 指导教师 学科门类 提交论文日期专业名称 成绩评定 数学与应用数学 理 学

咸阳师范学院2016届本科毕业设计(论文) 摘要 微分方程是研究数学的一个重要分支,是本科期间我们必须掌握的基本知识,而本文我们研究的是一个递推关系式,也称差分方程。它是一种离散化的微分方程,是利用描述客观事物的数量关系的一种重要的数学思想来建立模型的。而利用差分方程建立模型解决问题的方法在生活中随处可见,比如在自由竞争市场经济中的蛛网模型是利用差分方程分析经济何时趋于稳定,又如金融问题中的养老保险也是利用差分方程来分析保险品种的实际投资价值。而差分方程模型是描述客观世界中随离散时间变量演化规律的有力建模工具。本文首先给出差分方程的定义以及求解过程并给出判断差分方程稳定性的判断方法,随后以同一环境下的羊群和草群的相互作用为模型分析其种群的数量变化过程,进而研究线性差分方程的稳定性,最后用一个实际模型来更好的说明差分方程的稳定性对解决实际问题有非常大的帮助。 关键字:差分方程;差分方程模型;平衡点;稳定性

差分方程模型的稳定性分析 Abstract Difference equation is also called recursive equation, it is to describe the relationship between the number of objective things of a kind of important mathematical model. And the use of the differential equation model of the solution can be found everywhere in life. Such as cobweb model in the free market economy is to use the difference equation analysis when the economic stability, and as the financial problem of pension insurance breed difference equation is used to analysis the actual investment value. This paper gives the judge the stability of difference equation to judge method, then in the same group of sheep and grass under the environment of interaction analysis for the model a process, the number of the population change, in turn, study the stability of the linear difference equation. In the end, one practical model to better explain the stability of difference equation. Key words:Difference equation;Difference equation model ; Balance point; Stability

数值计算_第4章 解线性方程组的迭代法

第4章解线性方程组的迭代法 用迭代法求解线性方程组与第4章非线性方程求根的方法相似,对方程组进行等价变换,构造同解方程组(对可构造各种等价方程组, 如分解,可逆,则由得到),以此构造迭代关系式 (4.1) 任取初始向量,代入迭代式中,经计算得到迭代序列。 若迭代序列收敛,设的极限为,对迭代式两边取极限 即是方程组的解,此时称迭代法收敛,否则称迭代法发散。我们将看到,不同于非线性方程的迭代方法,解线性方程组的迭代收敛与否完全决定于迭代矩阵的性质,与迭代初始值的选取无关。迭代法的优点是占有存储空间少,程序实现简单,尤其适用于大型稀疏矩阵;不尽人意之处是要面对判断迭代是否收敛和收敛速度的问题。 可以证明迭代矩阵的与谱半径是迭代收敛的充分必要条件,其中是矩阵的特征根。事实上,若为方程组的解,则有 再由迭代式可得到

由线性代数定理,的充分必要条件。 因此对迭代法(4.1)的收敛性有以下两个定理成立。 定理4.1迭代法收敛的充要条件是。 定理4.2迭代法收敛的充要条件是迭代矩阵的谱半径 因此,称谱半径小于1的矩阵为收敛矩阵。计算矩阵的谱半径,需要求解矩阵的特征值才能得到,通常这是较为繁重的工作。但是可以通过计算矩阵的范数等方法简化判断收敛的 工作。前面已经提到过,若||A||p矩阵的范数,则总有。因此,若,则必为收敛矩阵。计算矩阵的1范数和范数的方法比较简单,其中 于是,只要迭代矩阵满足或,就可以判断迭代序列 是收敛的。 要注意的是,当或时,可以有,因此不能判断迭代序列发散。

在计算中当相邻两次的向量误差的某种范数小于给定精度时,则停止迭代计算,视为方程组的近似解(有关范数的详细定义请看3.3节。) 4.1雅可比(Jacobi)迭代法 4.1.1 雅可比迭代格式 雅可比迭代计算 元线性方程组 (4.2) 写成矩阵形式为。若将式(4.2)中每个方程的留在方程左边,其余各项移到方程右边;方程两边除以则得到下列同解方程组: 记,构造迭代形式

差分方程的解法分析及MATLAB实现(程序)

差分方程的解法分析及MATLAB 实现(程序) 摘自:张登奇,彭仕玉.差分方程的解法分析及其MATLAB 实现[J]. 湖南理工学院学报.2014(03) 引言 线性常系数差分方程是描述线性时不变离散时间系统的数学模型,求解差分方程是分析离散时间系统的重要内容.在《信号与系统》课程中介绍的求解方法主要有迭代法、时域经典法、双零法和变换域 法[1]. 1 迭代法 例1 已知离散系统的差分方程为)1(3 1)()2(81)1(43)(-+=-+--n x n x n y n y n y ,激励信号为)()4 3()(n u n x n =,初始状态为21)2(4)1(=-=-y y ,.求系统响应. 根据激励信号和初始状态,手工依次迭代可算出24 59)1(,25)0(==y y . 利用MATLAB 中的filter 函数实现迭代过程的m 程序如下: clc;clear;format compact; a=[1,-3/4,1/8],b=[1,1/3,0], %输入差分方程系数向量,不足补0对齐 n=0:10;xn=(3/4).^n, %输入激励信号 zx=[0,0],zy=[4,12], %输入初始状态 zi=filtic(b,a,zy,zx),%计算等效初始条件 [yn,zf]=filter(b,a,xn,zi),%迭代计算输出和后段等效初始条件 2 时域经典法 用时域经典法求解差分方程:先求齐次解;再将激励信号代入方程右端化简得自由项,根据自由项形 式求特解;然后根据边界条件求完全解[3].用时域经典法求解例1的基本步骤如下. (1)求齐次解.特征方程为081432=+-αα,可算出4 1 , 2121==αα.高阶特征根可用MATLAB 的roots 函数计算.齐次解为. 0 , )4 1()21()(21≥+=n C C n y n n h (2)求方程的特解.将)()4 3()(n u n x n =代入差分方程右端得自由项为 ?????≥?==-?+-1,)4 3(9130 ,1)1()43(31)()43(1n n n u n u n n n 当1≥n 时,特解可设为n p D n y )4 3()(=,代入差分方程求得213=D . (3)利用边界条件求完全解.当n =0时迭代求出25)0(=y ,当n ≥1时,完全解的形式为 ,)4 3(213 )41()21()(21n n n C C n y ?++=选择求完全解系数的边界条件可参考文[4]选)1(),0(-y y .根据边界条件求得35,31721=-=C C .注意完全解的表达式只适于特解成立的n 取值范围,其他点要用 )(n δ及其延迟表示,如果其值符合表达式则可合并处理.差分方程的完全解为

线性方程组的迭代解法(Matlab)

第六章线性方程组的迭代解法 2015年12月27日17:12 迭代法是目前求解大规模稀疏线性方程组的主要方法之一。包括定常迭代法和不定常迭代法,定常迭代法的迭代矩阵通常保持不变,包括有雅可比迭代法(Jacobi)、高斯-塞德尔迭代法(Gauss-Seidel)、超松弛迭代法(SOR) 1.雅可比迭代法(Jacobi) A表示线性方程组的系数矩阵,D表示A的主对角部分,L表示下三角部分,U表示上三角部分。 A=D+L+U 要解的方程变为Dx+Lx+Ux=b x=D^(-1)(b-(L+U)x) 所以Jocabi方法如下: Matlab程序 function [x,iter] =jacobi(A,b,tol) D=diag(diag(A)); L=D-tril(A); U=D-triu(A); x=zeros(size(b)); for iter=1:500 x=D\(b+L*x+U*x); error=norm(b-A*x)/norm(b); if(error

解线性方程组的几种迭代算法

解线性方程组的几种迭代算法 内容摘要: 本文首先总结了分裂法解线性方程组的一些迭代算法,在此基础上分别通过改变系数矩阵A的分裂形式和对SSOR算法的改进提出了两种新的算法,并证明了这两种算法的收敛性.与其它方法相比,通过改变系数矩阵A的分裂形式得到的新算法具有更好的收敛性,改进的SSOR算法有了更快的收敛速度.最后通过数值实例验证了这两种算法在有些情况下确实可以更有效的解决问题. 关键词: 线性方程组迭代法算法收敛速度 Several kinds of solving linear equations iterative algorithm Abstract: In this paper, we firstly summarize some Iterative algorithms of Anti-secession law solution of linear equations. Based on these, two new algorithms are put forward by changing the fission form of coefficient matrix A and improving the algorithm of SSOR, and the convergence of the two algorithms is demonstrated. Compared with other methods, the new algorithm acquired by changing the fission form of coefficient matrix A is possessed of a better convergence. And the improved SSOR algorithm has a faster convergence speed. Finally, some numerical examples verify that the two algorithms can solve problems more effectively in some cases. Key words: Linear equations Iteration method algorithm Convergence speed

Gauss-Seidel迭代法求解线性方程组

一. 问题描述 用Gauss-Seidel 迭代法求解线性方程组 由Jacobi 迭代法中,每一次的迭代只用到前一次的迭代值。使用了两倍的存储空间,浪 费了存储空间。若每一次迭代充分利用当前最新的迭代值,即在计算第i 个分量) 1(+k i x 时, 用最新分量) 1(1 +k x ,???+) 1(2 k x ) 1(1 -+k i x 代替旧分量)(1k x ,???) (2 k x ) (1-k i x ,可以起到节省存储 空间的作用。这样就得到所谓解方程组的Gauss-Seidel 迭代法。 二. 算法设计 将A 分解成U D L A --=,则b x =A 等价于b x =--U)D (L 则Gauss-Seidel 迭代过程 ) ()1()1(k k k Ux Lx b Dx ++=++ 故 )()1()(k k Ux b x L D +=-+ 若设1 )(--L D 存在,则 b L D Ux L D x k k 1)(1)1()()(--+-+-= 令 b L D f U L D G 11)()(---=-=, 则Gauss-Seidel 迭代公式的矩阵形式为 f Gx x k k +=+)()1( 其迭代格式为 T n x x x x )()0()0(2)0(1)0(,,,???= (初始向量), )(1111 1 )() 1()1(∑∑-=-+=++--=i j i i j k j ij k j ij i ii i i x a x a b a x )210i 210(n k ???=???=,,,;,,, 或者 ?? ???--=???=???==?+=∑∑-=-+=+++) (1)210i 210(111 1)() 1()1()()1(i j i i j k j ij k j ij i ii i i i k i k i x a x a b a x n k k x x x ,,,;,,, 三. 程序框图

差分方程求解

例题:已知差分方程51 (2)(1)()(+1)+0.5()66 x k x k x k r k r k +-++=,其中r (k )=1,k ≥0,x (0)=1, x (1)=2。 (1) 试由迭代法求其全解的前5项; (2) 分别由古典法求其零输入解、零状态解,以及全解; (3) 用Z 变换法求解差分方程。 解:注:解题过程中出现的下标“zi ”和“zs ”分别表示零输入条件和零状态条件。 1. 迭代法 题目中给出的条件仅仅是零输入初始条件,进行迭代求解时的初始条件应该是全解初始条件。 (1) 零输入初始条件 本题已给出零输入时的两个初始条件x zi (0)=1,x zi (1)=2。 (2) 零状态初始条件 取k =-2时,则51 (0)(1)(2)(1)0.5(2)66x x x r r --+-=-+-,得x zs (0)=0; 取k =-1 时,则51 (1)(0)(1)(0)0.5(1)66 x x x r r -+-=+-,求得x zs (1)=1。 (3) 全解初始条件 x (0)= x zi (0)+ x zs (0)=1; x (1)= x zi (1)+ x zs (1)=3。 (4) 根据求出的全解x (0)和x (1),利用迭代法求解 取k =0时,则51(2)(1)(0)(1)0.5(0)66x x x r r -+=+,求得23(2)6x =; 取k =1时,则51(3)(2)(1)(2)0.5(1)66x x x r r -+=+,求得151 (3)36x =; 取k =2时,则51(4)(3)(2)(3)0.5(2)66x x x r r -+=+,求得941 (4)216 x =。 2. 古典法 (1) 零输入解 令输入为零,则得齐次方程 51 (2)(1)()066 x k x k x k +-++= (a) 根据差分方程定义的算子()()n d x k x k n =+,可得它的特征方程251 066 d d -+= 求得特征根为: 112d = ,21 3 d =

线性方程组的直接法和迭代法

线性方程组的直接法 直接法就是经过有限步算术运算,无需迭代可直接求得方程组精确解的方法。 线性方程组迭代法 迭代法就是用某种极限过程去逐步逼近线性方程组精确解的方法.该方法具有对计算机的存贮单元需求少,程序设计简单、原始系数矩阵在计算过程中不变等优点,是求解大型稀疏矩阵方程组的重要方法.迭代法不是用有限步运算求精确解,而是通过迭代产生近似解逼近精确解.如Jacobi 迭代、Gauss — Seidel 迭代、SOR 迭代法等。 1. 线性方程组的直接法 直接法就是经过有限步算术运算,无需迭代可直接求得方程组精确解的方法。 1.1 Cramer 法则 Cramer 法则用于判断具有n 个未知数的n 个线性方程的方程组解的情况。当方程组的系数行列式不等于零时,方程组有解且解唯一。如果方程组无解或者有两个不同的解时,则系数行列式必为零。如果齐次线性方程组的系数行列式不等于零,则没有非零解。如果齐次线性方程组有非零解,则系数行列式必为零。 定理1如果方程组Ax b =中0D A =≠,则Ax b =有解,且解事唯一的,解为1212,,...,n n D D D x x x D D D ===i D 是D 中第i 列换成向量b 所得的行列式。 Cramer 法则解n 元方程组有两个前提条件: 1、未知数的个数等于方程的个数。 2、系数行列式不等于零 例1 a 取何值时,线性方程组

1231231 2311x x x a ax x x x x ax ++=??++=??++=?有唯一解。 解:2111111 11011(1)11001 A a a a a a a ==--=--- 所以当1a ≠时,方程组有唯一解。 定理2当齐次线性方程组0Ax =,0A ≠时该方程组有唯一的零解。 定理3齐次线性方程组0Ax =有非零解0A <=>=。 1.2 Gauss 消元法 Gauss 消元法是线性代数中的一个算法,可用来为线性方程组求解,求出矩阵的秩,以及求出可逆方阵的逆矩阵。当用于一个矩阵时,高斯消元法会产生出一个“行梯阵式”。 1.2.1 用Gauss 消元法为线性方程组求解 eg :Gauss 消元法可用来找出下列方程组的解或其解的限制: ()()()123283211223x y z L x y z L x y z L +-=??--+=-??-++=-? 这个算法的原理是:首先,要将1L 以下的等式中的x 消除,然后再将2L 以下的等式中的y 消除。这样可使整个方程组变成一个三角形似的格式。之后再将已得出的答案一个个地代入已被简化的等式中的未知数中,就可求出其余的答案了。 在刚才的例子中,我们将132 L 和2L 相加,就可以将2L 中的x 消除了。

迭代法解线性方程组(C语言描述)

用Gauss-Seidel迭代法解线性方程组的C语言源代码:#include #include #include struct Line{ int L; struct Row *head; struct Line *next; }; struct Row{ int R; float x; struct Row *link; }; //建立每次迭代结果的数据存储单元 struct Term{ float x; float m; }; struct Line *Create(int Line,int Row){ struct Line *Lhead=NULL,*p1=NULL,*p2=NULL; struct Row*Rhead=NULL,*ptr1,*ptr2=NULL; int i=1,j=1; float X; while(i<=Line){ while(j<=Row+1){ scanf("%f",&X); if(X!=0||j==Row+1){ ptr1=(struct Row*)malloc(sizeof(Row)); if(ptr1==NULL){ printf("内存分配错误!\n"); exit(1); } ptr1->x=X; ptr1->R=j; if(ptr2==NULL){ ptr2=ptr1; Rhead=ptr1; } else{

ptr2->link=ptr1; ptr2=ptr1; } } j++; } if(ptr2!=NULL){ ptr2->link=NULL; ptr2=NULL; } if(Rhead!=NULL){ p1=(struct Line*)malloc(sizeof(Line)); if(p1==NULL){ printf("内存分配错误!\n"); exit(1); } p1->L=i; p1->head=Rhead; if(p2==NULL){ Lhead=p1; p2=p1; } else{ p2->next=p1; p2=p1; } } i++; Rhead=NULL; j=1; } if(p2!=NULL) p2->next=NULL; return Lhead; } struct Line *Change(struct Line*Lhead,int n){ struct Line*p1,*p2,*p3,*p; struct Row*ptr; int i=1,k,j; float max,t; if(Lhead==NULL){ printf("链表为空!\n");

线性方程组的迭代法

第六章 线性方程组的迭代法 一、教学目标及基本要求 通过对本节的学习,使学生掌握线性方程组的数值解法。 二、教学内容及学时分配 本节主要介绍线性方程组的数值解法,迭代公式的建立,迭代收敛性。 三、教学重点难点 1.教学重点:迭代公式的建立、迭代收敛性。 2. 教学难点:迭代收敛性。 四、教学中应注意的问题 多媒体课堂教学为主。适当提问,加深学生对概念的理解。 6.2 解线性方程组的迭代法 重要性:解线性代数方程组的有效方法在计算数学和科学计算中具有特殊的地位和作用。如弹性力学、电路分析、热传导和振动、以及社会科学及定量分析商业经济中的各种问题。在实际问题中产生的线性方程组的类型有很多,如按系数矩阵含零元素多少分类,有稠密和稀疏(零元素占80%以上)线性方程组之分;如按阶数的高低分类,有高阶(阶数在1000阶以上)中阶、(500~1000阶) 和低阶(500阶以下)线性方程组之分;如按系数矩阵的形状和性质分类,有对称正定、三对角、对角占优线性方程组之分。因为数值解法必须考虑方法的计算时间和空间效率以及算法的数值稳定性。因此,不同类型的线性方程组,其数值解法也不相同。但是,基本的方法可以归结为两大类,即直接法和迭代法。 分类:线性方程组的解法可分为直接法和迭代法两种方法。 (a) 直接法:对于给定的方程组,在没有舍入误差的假设下,能在预定的运算次数内求得精确解。最基本的直接法是Gauss 消去法,重要的直接法全都受到Gauss 消去法的启发。计算代价高。但实际计算中由于舍入误差的存在和影响,这种方法也只能求得线性方程组的近似解,如何避免舍入误差的增长是设计直接法时必须考虑的问题。 (b) 迭代法:基于一定的递推格式,产生逼近方程组精确解的近似序列。收敛性是其为迭代法的前提,此外,存在收敛速度与误差估计问题。迭代法要求方程组系数矩阵具有某种特殊形式(如对角占优阵),是解高阶稀疏矩阵方程组的重要方法。 §6.1 迭代公式的建立 迭代法的基本思想是用逐次逼近的方法求线性方程组的解。 设有方程组b Ax = (1) 将其转化为等价的便于迭代的形式f Bx x += (2) (这种转化总能实现,如令b f A I B =-=,)并由此构造迭代公式

大连理工大学 高等数值分析 偏微分方程数值解(双曲方程书稿)

双曲型方程的有限差分法 线性双曲型方程定解问题: (a )一阶线性双曲型方程 ()0=??+??x u x a t u (b )一阶常系数线性双曲型方程组 0=??+??x t u A u 其中A ,s 阶常数方程方阵,u 为未知向量函数。 (c )二阶线性双曲型方程(波动方程) ()022=?? ? ??????-??x u x a x t u ()x a 为非负函数 (d )二维,三维空间变量的波动方程 0222222=???? ????+??-??y u x u t u 022222222=???? ????+??+??-??z u y u x u t u §1 波动方程的差分逼近 1.1 波动方程及其特征 线性双曲型偏微方程的最简单模型是一维波动方程: (1.1) 22 222x u a t u ??=?? 其中0>a 是常数。 (1.1)可表示为:022 222=??-??x u a t u ,进一步有

0=??? ????+?????? ????-?? u x a t x a t 由于 x a t ?? ±??当a dt dx ±=时为()t x u ,的全导数 (=dt du dt dx x u t u ???+??x u a t u ??±??=),故由此定出两个方向 (1.3) a dx dt 1±= 解常微分方程(1.3)得到两族直线 (1.4) 1C t a x =?+ 和 2C t a x =?- 称其为特征。 特征在研究波动方程的各种定解问题时,起着非常重要的作用。 比如,我们可通过特征给出(1.1)的通解。(行波法、特征线法) 将(1.4)视为),(t x 与),(21C C 之间的变量替换。由复合函数的微分法则 2 12211C u C u x C C u x C C u x u ??+ ??=?????+?????=?? x C C u C u C x C C u C u C x u ????? ? ????+????+?????? ????+????=??2 212121122 2 22122212212C u C C u C C u C u ??+???+???+??= 22 22122122C u C C u C u ??+???+??= 同理可得 a t t a t C -=??-=??1,a t C =??2 ???? ????-??=?????+?????=??21 2211C u C u a t C C u t C C u t u

解线性方程组的迭代法

解线性方程组的迭代法 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, ,1 i 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、Gauss 消去法求解原理 对于Ax b =(A 非奇异)求解时,可以先将A 分解成一个下三角矩阵L 和一个上三角矩阵U 的乘积,即A LU =,就可以通过

抛物型方程差分方法

偏微分方程数值解复习提纲 一.基本内容:(1)椭圆型方程差分方法;(2)抛物型方程差分方法;(3)双曲型方程差分方法;(4)椭圆型方程的有限元方法. 二.基本概念: (1)显式和隐式差分格式,网格比和加密路径; (2)差分格式的截断误差、相容性、稳定性、收敛性、逼近精度阶和收敛阶; (3)双曲型方程(组)的特征与Riemann不变量,差分格式的依赖区域和CFL条件; (4)差分格式的增长因子和增长矩阵、振幅误差与相位误差、耗散与色散、群速度; (5)双曲守恒方程的弱解与激波传播速度; (6)守恒性与守恒型差分格式、有限体积法; (7)差分格式的Fourier分析与L2稳定性、最大值原理与L∞稳定性、实用稳定性和强稳 定性、网格的P`e clet数; (8)椭圆边值问题的变分形式与弱解、强制边界条件与自然边界条件; (9)Galerkin方法与Ritz方法,协调与非协调有限元方法; (10)有限元与有限元空间,有限元插值算子与插值函数,有限元方程与有限元解; (11)有限元的仿射等价与等参等价,有限元剖分的正则性和拟一致性. 三.基本方法与技巧: (1)比较函数与利用最大值原理的误差分析; (2)Taylor展开、Fourier分析、最大值原理; (3)修正方程分析、能量法分析; (4)充分利用解的守恒性和特征,以及适当处理初始条件与边界条件; (5)Sobolev空间及其基本性质,如嵌入定理、迹定理,Poincar′e-Friedrichs不等式; (6)仿射等价、多项式不变算子、商空间与商范数、Sobolev空间半范数的关系; (7)Aubin-Nische技巧,bramble-Hilbert引理,双线性引理. 四.基本格式: (1)二维Poisson方程的五点差分格式; (2)抛物型方程的显式差分格式、隐式差分格式、Crank-Nicolson格式和θ-方法; (3)具有热守恒性质的格式; (4)ADI格式与LOD格式; (5)双曲型方程的迎风格式、Lax-Wendro?格式、盒式格式和蛙跳格式;

实验八、解线性方程组的迭代法

实验八、解线性方程组的迭代法 解线性方程组的迭代法是用某种极限过程去逐步逼近线性方程组精确解的方法,即是从一个初始向量)0(x 出发,按照一定的迭代格式产生一个向量序列}{)(k x ,使其收敛到方程组b Ax =的解。迭代法的优点是所需计算机存储单元少,程序设计简单,原始系数矩阵在计算过程中始终不变等。但迭代法存在收敛性及收敛速度问题。迭代法是解大型稀疏矩阵方程组的重要方法。 一、实验目的 1、熟悉迭代法的有关理论和方法; 2、会编制雅可比迭代法、高斯-塞德尔迭代法的程序; 3、注意所用方法的收敛性及其收敛速度问题。 二、实验任务 1、用雅可比迭代法解方程组 ?????=++=++=-+5222722321 321321x x x x x x x x x . 注意:若用高斯-塞德尔迭代法则发散。 解:输入主程序: function X=jacdd(A,b,X0,P,wucha,max1) [n m]=size(A); for j=1:m %a(j)=sum(abs(A(:,j)))-2*(abs(A(j,j))); %end %for i=1:n %if a(i)>=0 %disp('请注意:系数矩阵A 不是严格对角占优的,此雅可比迭代不一定收敛') %return %end %end %if a(i)<0 disp('请注意:系数矩阵A 是严格对角占优的,此方程组有唯一解,且雅可比迭代收敛 ') %end for k=1:max1 k for j=1:m X(j)=(b(j)-A(j,[1:j-1,j+1:m])*X0([1:j-1,j+1:m]))/A(j,j);

相关文档
最新文档