最新4-18-求解线性非齐次高阶方程的特解-常数变易法汇总

最新4-18-求解线性非齐次高阶方程的特解-常数变易法汇总
最新4-18-求解线性非齐次高阶方程的特解-常数变易法汇总

4-18-求解线性非齐次高阶方程的特解-常

数变易法

精品资料

4.3 非齐次高阶线性方程特解的常数变易方法、叠加原理

( Use the method of Variation of Constants to find particular solution to

nonhomogeneous higher order Linear ODE)

[教学内容] 1. 介绍非齐次线性方程特解的常数变易法. 2. 介绍非齐次线性方程特解的叠加原理.3. 介绍一些特殊求解方法(乘积求导法则、特征方程法和刘维尔公式)

[教学重难点] 重点是知道常数变易法求解非齐次线性方程的特解;难点是如何给出未知函数满足的方程.

[教学方法] 预习1、2、3;讲授1、2、3

[考核目标]

1. 灵活运用常数变易法求解非齐次线性方程的特解.

2. 知道非齐次线性方程特解的叠加原理.

3. 知道一些特殊求解方法(乘积求导法则、特征方程法和刘维尔公式)

1.常数变易法求解非齐次线性方程的特解(以二阶微分方程为例)

(1)引例(1) 求出方程?Skip Record If...?; (2) ?Skip Record If...?的通解. 这里?Skip Record If...?和?Skip Record If...?不是多项式函数、不是指数函数、不是可以用形式特解的待定系数法来求解方程的特解.

(2)解法思路:考察?Skip Record If...? (**). 为了求出方程(**)的一个特解,先考虑相应的二阶齐次线性方程?Skip Record If...?(*),假定已知齐次线性方程的基本解组?Skip Record If...?,则齐次线性方程的通解为?Skip Record If...?,其中?Skip Record If...?为常数.

仅供学习与交流,如有侵权请联系网站删除谢谢2

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的下三角阵

弦截法非线性方程求解2

《MATLAB 程序设计实践》课程考核 1、 编程实现以下科学计算方法,并举一例应用之(参考书籍《精通MATLAB 科学计算》,王正林著,电子工业出版社,2009年)“弦截法非线性方程求解” 算法说明: (1) 过两点))(,(a f a ,))(,(b f b 作一直线,它与x 轴有一个交点,记为1x ; (2) 如果f(a)f(x1)<0,过两点))(,(a f a ,))(,(11x f x 作一直线,它与x 轴的交点记为2x , 否则过两点))(,(b f b ,))(,(11x f x 作一直线,它与x 轴的交点记为2x ; (3) 如此下去,直到 ε<--1n n x x 就可以认为n x 为0)(=x f 在区间],[b a 上的一个根。 (4) k x 的递推公式为: ??? ???? >---=<---=------0)()(),()()(0)()(),()()(111111k k k k k k k k x f a f b f b f x f b x b x x f a f a f a f x f a x a x 且) ()(1a f b f a b a x --- =。 在MATLAB 中编程实现的弦截法的函数为:Secant. 功能:用弦截法求函数在某个区间的一个零点。 调用格式:root=Secant(f,a,b,eps). 其中,f 为函数名; a 为区间左端点; b 为区间左端点; eps 为根的精度; root 为求出的函数零点。 流程图:

源代码: function root=Secant(f,a,b,eps) %弦截法求函数在区间[a,b]上的一个零点 %函数名:f %区间左端点:a %区间右端点:b %根的精度:eps %求出函数的函数零点:root if (nargin==3) eps=1.0e-4; end f1=subs(sym(f),findsym(sym(f)),a); f2=subs(sym(f),findsym(sym(f)),b); if (f1==0)

非线性方程数值解法及其应用

非线性方程数值解法及其应用 摘要:数值计算方法主要研究如何运用计算机去获得数学问题的数值解的理论和算法。 本文主要介绍非线性方程的数值解法以及它在各个领域的应用。是直接从方程出发,逐步缩小根的存在区间,或逐步将根的近似值精确化,直到满足问题对精度的要求。我将从二分法、Steffensen 加速收敛法、Newton 迭代法、弦截法来分析非线性方程的解法及应用。 关键字:非线性方程;二分法;Steffensen 加速收敛法;代数Newton 法;弦截法 一、前言 随着科技技术的飞速发展,科学计算越来越显示出其重要性。科学计算的应用之广已遍及各行各业,例如气象资料的分析图像,飞机、汽车及轮船的外形设计,高科技研究等都离不开科学计算。因此经常需要求非线性方程 f(x) = O 的根。方程f(x) = O 的根叫做函数f(x)的零点。由连续函数的特性知:若f(x)在闭区间[a ,b]上连续,且f(a)·f(b)

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

实验五 解线性方程组的迭代法 【实验内容】 对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;

阶线性方程与常数变易法习题及解答

§ 一阶线性方程与常数变易法习题及解答 求下列方程的解 1.dx dy =x y sin + 解: y=e ?dx (?x sin e ?-dx c dx +) =e x [- 2 1e x -(x x cos sin +)+c] =c e x -21 (x x cos sin +)是原方程的解。 2.dt dx +3x=e t 2 解:原方程可化为: dt dx =-3x+e t 2 所以:x=e ?-dt 3 (?e t 2 e -?-dt 3c dt +) =e t 3- (5 1e t 5+c) =c e t 3-+5 1e t 2 是原方程的解。 3.dt ds =-s t cos +21t 2sin 解:s=e ?-tdt cos (t 2sin 2 1?e dt dt ?3c + ) =e t sin -(?+c dt te t t sin cos sin ) = e t sin -(c e te t t +-sin sin sin ) =1sin sin -+-t ce t 是原方程的解。 4. dx dy n x x e y n x =- , n 为常数. 解:原方程可化为:dx dy n x x e y n x += )(c dx e x e e y dx x n n x dx x n +??=?- )(c e x x n += 是原方程的解. 5.dx dy +1212--y x x =0

解:原方程可化为:dx dy =-1212+-y x x ?=-dx x x e y 212(c dx e dx x x +?-221) )21(ln 2+=x e )(1 ln 2?+--c dx e x x =)1(12x ce x + 是原方程的解. 6. dx dy 23 4xy x x += 解:dx dy 23 4xy x x += =23y x +x y 令 x y u = 则 ux y = dx dy =u dx du x + 因此:dx du x u +=2 u x 21u dx du = dx du u =2 c x u +=33 1 c x x u +=-33 (*) 将x y u =带入 (*)中 得:3433cx x y =-是原方程的解.

线性方程组的迭代法及程序实现

线性方程组的迭代法及程序实现 学校代码:11517 学号:200810111217 HENAN INSTITUTE OF ENGINEERING 毕业论文 题目线性方程组的迭代法及程序实现 学生姓名 专业班级 学号 系 (部)数理科学系 指导教师职称 完成时间 2012年5月20日河南工程学院 毕业设计(论文)任务书 题目:线性方程组的迭代法及程序实现专业:信息与计算科学学号 : 姓名一、主要内容: 通过本课题的研究,学会如何运用有限元方法来解决线性代数方程组问题,特别是Gaussie-Seidel迭代法和Jacobi迭代法来求解线性方程组。进一步学会迭代方法的数学思想,并对程序代码进行解析与改进,这对于我们以后学习和研究实际问题具有重要的意义。本课题运用所学的数学专业知识来研究,有助于我们进一步掌握大学数学方面的知识,特别是迭代方法。通过这个课题的研究,我进一步掌握了迭代方法的思想,以及程序的解析与改进,对于今后类似实际问题的解决具有重要的意义。

二、基本要求: 学会编写规范论文,独立自主完成。 运用所学知识发现问题并分析、解决。 3.通过对相关资料的收集、整理,最终形成一篇具有自己观点的学术论文,以期能对线性方程组迭代法的研究发展有一定的实践指导意义。 4.在毕业论文工作中强化英语、计算机应用能力。 完成期限: 2012年月指导教师签名:专业负责人签名: 年月日 目录 中文摘要....................................................................................Ⅰ英文摘要 (Ⅱ) 1 综述 1 2 经典迭代法概述 3 2.1 Jacobi迭代法 3 2.2 Gauss?Seidel迭代法 4 2.3 SOR(successive over relaxation)迭代法 4 2.4 SSOR迭代法 5 2.5 收敛性分析5 2. 6 数值试验 6 3 matlab实现的两个例题8 3.1 例1 迭代法的收敛速度8 3.2 例 2 SOR迭代法松弛因子的选取 12致谢16参考文献17附录19

[整理]一阶线性方程与常数变易法习题及解答.

§2.2 一阶线性方程与常数变易法习题及解答 求下列方程的解 1.dx dy =x y sin + 解: y=e ?dx (?x sin e ?-dx c dx +) =e x [- 2 1e x -(x x cos sin +)+c] =c e x -21 (x x cos sin +)是原方程的解。 2.dt dx +3x=e t 2 解:原方程可化为: dt dx =-3x+e t 2 所以:x=e ?-dt 3 (?e t 2 e -?-dt 3c dt +) =e t 3- (5 1e t 5+c) =c e t 3-+5 1e t 2 是原方程的解。 3.dt ds =-s t cos +21t 2sin 解:s=e ?-tdt cos (t 2sin 2 1?e dt dt ?3c + ) =e t sin -(?+c dt te t t sin cos sin ) = e t sin -(c e te t t +-sin sin sin ) =1sin sin -+-t ce t 是原方程的解。 4. dx dy n x x e y n x =- , n 为常数. 解:原方程可化为:dx dy n x x e y n x += )(c d x e x e e y dx x n n x dx x n +??=?- )(c e x x n += 是原方程的解. 5.dx dy +1212--y x x =0

解:原方程可化为:dx dy =-1212+-y x x ?=-dx x x e y 21 2(c dx e dx x x +?-221) )21(ln 2+=x e )(1 ln 2?+--c dx e x x =)1(1 2x ce x + 是原方程的解. 6. dx dy 234xy x x += 解:dx dy 2 34xy x x += =23y x +x y 令 x y u = 则 ux y = dx dy =u dx du x + 因此:dx du x u +=2 u x 21u dx du = dx du u =2 c x u +=33 1 c x x u +=-33 (*) 将x y u =带入 (*)中 得:3433cx x y =-是原方程的解.

数值分析5-用Jacobi迭代法和Gauss-Seidel迭代法求解线性方程组

作业六:分别编写用Jacobi迭代法和Gauss-Seidel迭代法求解线性方程组Ax=B的标准程序,并求下列方程组的解。 可取初始向量 X(0) =(0,0,0)’; 迭代终止条件||x(k+1)-x(k)||<=10e-6 (1) = (2) = Jacobi迭代法: 流程图 开 始 判断b中的最大值 有没有比误差大 给x赋初值 进行迭代 求出x,弱到100次还没到,警告不收 结束

程序 clear;clc; A=[8,-1,1;2,10,01;1,1,-5]; b=[1;4;3]; e=1e-6; x0=[0;0;0]'; n=length(A); x=zeros(n,1); k=0; r=max(abs(b)); while r>e for i=1:n d=A(i,i); if abs(d)100 warning('不收敛'); end end x=x0;

程序结果(1)

(2)

Gauss-Seidel迭代法: 程序 clear;clc; %A=[8,-1,1;2,10,01;1,1,-5]; %b=[1;4;3]; A=[5,2,1;-1,4,2;2,-3,10]; b=[-12;20;3]; m=size(A); if m(1)~=m(2) error('矩阵A不是方阵'); end n=length(b); %初始化 N=0;%迭代次数 L=zeros(n);%分解A=D+L+U,D是对角阵,L是下三角阵,U是上三角阵U=zeros(n); D=zeros(n); G=zeros(n);%G=-inv(D+L)*U d=zeros(n,1);%d=inv(D+L)*b x=zeros(n,1); for i=1:n%初始化L和U for j=1:n if ij U(i,j)=A(i,j); end end end for i=1:n%初始化D D(i,i)=A(i,i); end G=-inv(D+L)*U;%初始化G d=(D+L)\b;%初始化d %迭代开始 x1=x; x2=G*x+d; while norm(x2-x1,inf)>10^(-6)

线性方程组的直接法

第二章线性方程组的直接法 在近代数学数值计算和工程应用中,求解线性方程组是重要的课题。例如,样条插值中形成的关系式,曲线拟合形成的法方程等,都落实到解一个元线性方程组,尤其是大型方程组的求解,即求线性方程组(2.1)的未知量的数值。 (2.1)其中ai j,bi为常数。上式可写成矩阵形式Ax = b,即 (2.2) 其中,为系数矩阵,为解向量,为常数向量。当detA=D0时,由线性代数中的克莱姆法则,方程组的解存在且惟一,且有 为系数矩阵的第列元素以代替的矩阵的行列式的值。克莱姆法则在建立线性方程组解的理论基础中功不可没,但是在实际计算中,我们难以承受它的计算量。例如,解一个100阶的线性方程组,乘除法次数约为(101·100!·99),即使以每秒的运算速度,也需要近年的时间。在石油勘探、天气预报等问题中常常出现成百上千阶的方程 组,也就产生了各种形式方程组数值解法的需求。研究大型方程组的解是目前计算数学中的一个重要方向和课题。

解方程组的方法可归纳为直接解法和迭代解法。从理论上来说,直接法经过有限次四则运算,假定每一步运算过程中没有舍入误差,那么,最后得到方程组的解就是精确解。但是,这只是理想化的假定,在计算过程中,完全杜绝舍入误差是不可能的,只能控制和约束由有限位算术运算带来的舍入误差的增长和危害,这样直接法得到的解也不一定是绝对精确的。

迭代法是将方程组的解看作某种极限过程的向量极限的值,像第2章中非线性方程求解一样,计算极限过程是用迭代过程完成的,只不过将迭代式中单变量换成向量 而已。在用迭代算法时,我们不可能将极限过程算到底,只能将迭代进行有限多次,得到满足一定精度要求的方程组的近似解。 在数值计算历史上,直接解法和迭代解法交替生辉。一种解法的兴旺与计算机的硬件环境和问题规模是密切相关的。一般说来,对同等规模的线性方程组,直接法对计算机的要求 高于迭代法。对于中等规模的线性方程组,由于直接法的准确性和可靠性高,一般都用直接法求解。对于高阶方程组和稀疏方程组(非零元素较少),一般用迭代法求解。 §1 消元法 一、三角形方程组的解 形如下面三种形式的线性方程组较容易求解。 对角形方程组 (2.3)设,对每一个方程,。 显然,求解n阶对角方程的运算量为。 下三角方程组 (2.4)

最新3-7-一阶线性方程与常数变易法汇总

3-7-一阶线性方程与常数变易法

2.2 一阶线性方程与常数变易公式(First order linear differential equation and constant variation formula ) [教学内容] 1. 认识一阶线性齐次方程和一阶线性非齐次方程; 2.介绍一阶线性非齐次方程的常数变易公式; 3. 介绍电学知识和基尔霍夫定律; 4. 认识Bernoulli方程及其通过变量替换化为一阶线性方程的解法; 5. 介绍其他可化为一阶线性方程的例子. [教学重难点] 重点是知道一阶线性非齐次方程的解法,难点是如何根据方程的形式引入新的变量变换使得新方程为一阶线性方程. [教学方法] 自学1、4;讲授2、3 课堂练习 [考核目标] 1.熟练运用常数变易公式; 2. 知道?Skip Record If...?计算和一些三角函数恒等式; 3. 知道电学一些知识,如电容电流公式、电感电压公式和基尔霍夫定律; 4. 知道溶液混合问题建模; 5. 认识Bernoulli方程并会经过适当变换化为线性方程求解. 6. 知道交换自变量和因变量化非线性方程为一阶线性方程. 1. 认识一阶线性齐次方程和一阶线性非齐次方程(First order (non)homogeneous linear differential equation) (1) 称形如?Skip Record If...?的方程为一阶线性齐次方程,其中?Skip Record If...?连续; 称形如?Skip Record If...?的方程为一阶线性非齐次齐次方程,其中?Skip Record If...?连续且?Skip Record If...?不恒为零. (2) 当?Skip Record If...?时,改写?Skip Record If...?为

求解线性方程组——超松弛迭代法(c)

求解线性方程组——超松弛迭代法 #include #include using namespace std; float *one_array_malloc(int n); //一维数组分配float **two_array_malloc(int m,int n); //二维数组分配float matrix_category(float* x,int n); int main() { const int MAX=100;//最大迭代次数 int n,i,j,k; float** a; float* x_0; //初始向量 float* x_k; //迭代向量 float precision; //精度 float w; //松弛因子 cout<<"输入精度e:"; cin>>precision; cout<>n; a=two_array_malloc(n,n+1); cout<>a[i][j]; } } x_0=one_array_malloc(n); cout<>x_0[i]; } x_k=one_array_malloc(n);

cout<<"输入松弛因子w (1>w; float temp; //迭代过程 for(k=0;k

非线性方程求根

第七章 非线性方程求根 教学目的与要求: 理解二分法求根的思想;掌握二分法求解过程;了解二分法的优点和缺点。了解迭代法的基本思想,迭代法的收敛条件以及局部收敛性的定义;理解基本迭代法的迭代思路,收敛条件的产生与求证过程;掌握基本迭代法的迭代格式,收敛条件的应用以及局部收敛定理。 重点和难点:迭代法的基本思想,迭代法的收敛性 ■ 教学内容: 基本概念: 的零点; 的m 重零点。 )(x f )(x f 非线性方程的求根通常分为两个步骤:一是对根的搜索,二是根的精确化,求得根的足够精确的近似值。 求方程的有根区间有如下方法: (1)描图法。画出的简图,从曲线与)(x f y =x 轴交点的位置确定有根区间。 (2)解析法。根据函数的连续性、介值定理以及单调性等寻找有根区间。 § 1 二分法 分析二分法的基本原理 例1 用二分法求方程的一个正根,要求误差不超过. 01)(6=??=x x x f 2105.0?ק 2 迭代法及其收敛性 一、迭代法的定义 二、基本迭代法 定义:将方程改写成以下等价形式() x x ?=取定初始值0x ,由迭代公式1() (0,1,2,)n n x x n ?+==L 产生迭代序列{}n x 。显然,若{}n x 收敛于*x ,()x ?在*x 处连续,就有** 1lim lim ()()n n n n x x x ??+→∞→∞ ===x 即*x 是方程() x x ?=的解,从而也是0)(=x f 的解。故当充分大时,可取作为方程根的近似值。用迭代格式求得方程近似根的方法称为基本迭代法,n n x )(x ?称为迭代函数。由于收敛点*x 满足*()* x x ?=,故称*x 为)(x ?的不动点 例 求方程的一个实根,要求精确到六位小数。 032)(3 =??=x x x f 注意:把此方程转换成三种等价形式 ,32)(31+==x x x ?)3(2 1)(32?= =x x x ?, 3)(33??==x x x x ?三、迭代法的收敛条件

江苏大学-常微分方程-3-7 - 一阶线性方程与常数变易法

2.2 一阶线性方程与常数变易公式(First order linear differential equation and constant variation formula ) [教学内容] 1. 认识一阶线性齐次方程和一阶线性非齐次方程; 2.介绍一阶线性非齐次方程的常数变易公式; 3. 介绍电学知识和基尔霍夫定律; 4. 认识Bernoulli 方程及其通过变量替换化为一阶线性方程的解法; 5. 介绍其他可化为一阶线性方程的例子. [教学重难点] 重点是知道一阶线性非齐次方程的解法,难点是如何根据方程的形式引入新的变量变换使得新方程为一阶线性方程. [教学方法] 自学1、4;讲授2、3 课堂练习 [考核目标] 1. 熟练运用常数变易公式; 2. 知道 ? dx bx sin e ax 计算和一些三角函数恒等式; 3. 知道电学 一些知识,如电容电流公式、电感电压公式和基尔霍夫定律; 4. 知道溶液混合问题建模; 5. 认识Bernoulli 方程并会经过适当变换化为线性方程求解. 6. 知道交换自变量和因变量化非线性方程为一阶线性方程. 1. 认识一阶线性齐次方程和一阶线性非齐次方程(First order (non)homogeneous linear differential equation ) (1) 称形如y p(x)dx dy =的方程为一阶线性齐次方程,其中p(x)连续; 称形如 q(x)y p(x)dx dy +=的方程为一阶线性非齐次齐次方程,其中q(x) p(x),连续且q(x)不恒为零. (2) 当0y ≠时,改写 y p(x)dx dy =为 1C dx p(x)|y |ln ,dx p(x)y dy dx, p(x)y dy +===???,其中?dx p(x)表示P(x)的一个原函数(antiderivative). 因此,y p(x)dx dy =通解(general solution)为1C p(x)dx e C ~ ,e C ~y =?±=,此外y=0也是解. 综上, y p(x)dx dy =的解为C ,e C y p(x)dx ?=为任意常数. (3) 常数变易法:如何求 q(x)y p(x)dx dy +=的解呢? 假定上述线性非齐次方程有如下形式的解 ?=p(x)dx e C(x)y ,则代入原方程来确定C(x), q(x)p(x)C(x)e e p(x) C(x)e (x)' C dx dy p(x)dx p(x)dx p(x)dx +?=?+?=, 即q(x)e (x)' C p(x)dx =?,C q(x)dx e C(x) q(x), e (x)' C p(x)dx -p(x)dx +? =? =?-,此处C 为

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

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

一. 问题描述 用Gauss-Seidel 迭代法求解线性方程组 由Jacobi 迭代法中,每一次的迭代只用到前一次的迭代值。使用了两倍的存储空间,浪费了存储空间。若每一次迭代充分利用当前最新的迭代值,即在计算第i 个分量 ) 1(+k i x 时,用最新分量 ) 1(1 +k x , ???+) 1(2 k x ) 1(1 -+k i x 代替旧分量 ) (1 k 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(,,,???= (初始向量), ) (1 1 1 1 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 ,,,;,,, 三. 程序框图

求解非线性方程实验报告

一.实验目的: 通过本节实验课的学习,要求我们理解并掌握二分法、不动点迭代、牛顿切线法及弦截法解非线性方程求根的原理,掌握相应的算法原理,通过计算机解决实验问题 二.实验内容: 1、用对分区间法方程 1-x-sinx=0 在区间[0,1]上的误差小于10^(-4)的一个根,并记录对方区间的次数。 2、用不动点迭代法求解方程下 x-log(x)=2(x>1) 要求相对误差容限e=10^(-8)。 3、用Newton法求方程 x^3-x-1=0 在区间[-3,3]上的误差不大于10^(-5)的根,分别取初值x0=1.5, x0=0, x0=-1进行计算,比较他们的迭代次数。 三. 实验方案(程序设计说明)[包括算法设计思路,必要的流程图,界面设计 说明、使用模块及变量的说明等。] 1、二分法是对区间收索法的一种改进,具体做法为:先求一区间的中点,并计算其 函数值,若恰好有函数值为0,就是方程的根,若不为0,在判断此点的函数值与两端的函数值乘积的情况,取小于0的那个端点在进行上述对分,直到满足要求为止。 2、迭代法分为两种,一种是从任何可取的初值出发都能保证收敛,称之为大范围收 敛的方法。另一类称之为局部收敛法,即为了保证收敛必须选取初值充分接近于所要求的解。迭代法的基本思想是一种逐渐逼近的方法,首先给定一个粗造的初值,然后用一个迭代公式,反复矫正这个初值,直到满足预先给出的精确要求为止。 3、双点弦接法与Newton法不同,两者有本质的区别,它分为两步,不属于不动点 迭代法。 四. 实验步骤或程序(经调试后正确的源程序) (填写主要步骤与程序代码等,不够可附页) 1、f=inline('x+sin(x)-1'); a=0; b=1; dlt=1.0e-4; k=1; while abs(b-a)>dlt c=(a+b)/2; if f(c)==0 break; elseif f(c)*f(b)<0 a=c;

数值计算_第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)中每个方程的留在方程左边,其余各项移到方程右边;方程两边除以则得到下列同解方程组: 记,构造迭代形式

迭代法解线性方程组

迭代法解线性方程组作业 沈欢00986096 北京大学工学院,北京100871 2011年10月12日 摘要 由所给矩阵生成系数矩阵A和右端项b,分析系数矩阵A,并用Jacobi迭代法、GS迭代法、SOR(逐步松弛迭代法)解方程组Ax=b 1生成系数矩阵A、右端项b,并分析矩阵A 由文件”gr900900c rg.mm”得到了以.mm格式描述的系数矩阵A。A矩阵是900?900的大型稀 疏对称矩阵。于是,在matlaB中,使用”A=zeros(900,900)”语句生成900?900的零矩阵。再 按照.mm文件中的描述,分别对第i行、第j列的元素赋对应的值,就生成了系数矩阵A,并 将A存为.mat文件以便之后应用。 由于右端项是全为1的列向量,所以由语句”b=ones(900,1)”生成。 得到了矩阵A后,求其行列式,使用函数”det(A)”,求得结果为”Inf”,证明行列式太大,matlaB无法显示。由此证明,矩阵A可逆,线性方程组 Ax=b 有唯一解。 接着,判断A矩阵是否是对称矩阵(其实,这步是没有必要的,因为A矩阵本身是对称矩阵,是.mm格式中的矩阵按对称阵生成的)。如果A是对称矩阵,那么 A?A T=0 。于是,令B=A?A T,并对B求∞范数。结果显示: B ∞=0,所以,B是零矩阵,也就是:A是对称矩阵。 然后,求A的三个条件数: Cond(A)= A ? A?1 所求结果是,对应于1范数的条件数为:377.2334;对应于2范数的条件数为:194.5739;对应 于3范数的条件数为:377.2334; 1

从以上结果我们看出,A是可逆矩阵,但是A的条件数很大,所以,Ax=b有唯一解并且矩阵A相对不稳定。所以,我们可以用迭代方法来求解该线性方程组,但是由于A的条件数太大迭代次数一般而言会比较多。 2Jacobi迭代法 Jacobi迭代方法的程序流程图如图所示: 图1:Jacobi迭代方法程序流程图 在上述流程中,取x0=[1,1,...,1]T将精度设为accuracy=10?3,需要误差满足: error= x k+1?x k x k+1

高斯-赛德尔迭代法解线性方程组精选.

数值分析实验五 班级: 10信计二班 学号:59 姓名:王志桃 分数: 一.实验名称 高斯-赛德尔迭代法解线性方程组 二.实验目的 1. 学会利用高斯赛德尔方法解线性方程组 2. 明白迭代法的原理 3. 对于大型稀疏矩阵方程组适用于迭代法比较简单 三.实验内容 利用Gauss-Seidel 迭代法求解下列方程组 ?????=++=-+=+-36123633111420238321 321321x x x x x x x x x , 其中取→=0)0(x 。 四、算法描述 由Jacobi 迭代法中,每一次的迭代只用到前一次的迭代值,若每一次迭代充分利用当前最新的迭代值,即在计算第i 个分量)1(+k i x 时,用最新分量)1(1+k x ,???+)1(2k x )1(1-+k i x 代替旧分量)(1k x ,???)(2k x )(1-k i x ,就得到所谓解方程组的Gauss-Seidel 迭代法。 其迭代格式为 T n x x x x )()0()0(2)0(1)0(,,,???= (初始向量), )(11111)()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(1111)( )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 ,,,;,,, 五、 编码 #include #include

最新4-18-求解线性非齐次高阶方程的特解-常数变易法汇总

4-18-求解线性非齐次高阶方程的特解-常 数变易法

精品资料 4.3 非齐次高阶线性方程特解的常数变易方法、叠加原理 ( Use the method of Variation of Constants to find particular solution to nonhomogeneous higher order Linear ODE) [教学内容] 1. 介绍非齐次线性方程特解的常数变易法. 2. 介绍非齐次线性方程特解的叠加原理.3. 介绍一些特殊求解方法(乘积求导法则、特征方程法和刘维尔公式) [教学重难点] 重点是知道常数变易法求解非齐次线性方程的特解;难点是如何给出未知函数满足的方程. [教学方法] 预习1、2、3;讲授1、2、3 [考核目标] 1. 灵活运用常数变易法求解非齐次线性方程的特解. 2. 知道非齐次线性方程特解的叠加原理. 3. 知道一些特殊求解方法(乘积求导法则、特征方程法和刘维尔公式) 1.常数变易法求解非齐次线性方程的特解(以二阶微分方程为例) (1)引例(1) 求出方程?Skip Record If...?; (2) ?Skip Record If...?的通解. 这里?Skip Record If...?和?Skip Record If...?不是多项式函数、不是指数函数、不是可以用形式特解的待定系数法来求解方程的特解. (2)解法思路:考察?Skip Record If...? (**). 为了求出方程(**)的一个特解,先考虑相应的二阶齐次线性方程?Skip Record If...?(*),假定已知齐次线性方程的基本解组?Skip Record If...?,则齐次线性方程的通解为?Skip Record If...?,其中?Skip Record If...?为常数. 仅供学习与交流,如有侵权请联系网站删除谢谢2

相关文档
最新文档