浅析常微分方程的常数变易法

浅析常微分方程的常数变易法
浅析常微分方程的常数变易法

浅析常微分方程的常数变易法

高菲菲

【期刊名称】《现代计算机(专业版)》

【年(卷),期】2012(000)014

【摘要】The variation of constants method is an effective way to solve the first-order linear non-homogeneous differential equation, but most textbooks only explain the use of method, did not give the origin of this method. Discusses the origin of the variation of constants method, promotes and enhances the understanding and grasp of the variation of constants method.%常数变易法是解决一阶非齐次线性微分方程通解的有效方法.但是多数教材只讲解了使用方法,而没有给出此法的由来。讨论常数变易法的由来,并对其进行推广,从而加深对常数变易法的理解和掌握。

【总页数】3页(8-10)

【关键词】常微分方程;常数变易法;通解;特解

【作者】高菲菲

【作者单位】内蒙古财经大学统计与数学学院,呼和浩特010051

【正文语种】中文

【中图分类】O175.1

【相关文献】

1.常微分方程求解中常数变易法的应用研究 [J], 许莹霞

2.常微分方程中常数变易法的推广解析 [J], 贾永兴

3.常数变易法求解常微分方程 [J], 李治远; 朱桂玲

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

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

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

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

线性方程组的迭代法及程序实现 学校代码: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

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

§ 一阶线性方程与常数变易法习题及解答 求下列方程的解 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 =-是原方程的解.

第六章解线性方程组的迭代法

第五章 解线性方程组的迭代法 本章主要内容: 迭代法收敛定义,矩阵序列收敛定义,迭代法基本定理,雅可比迭代法,高斯-塞德尔迭代法,系数矩阵为严格对角占优阵的采用雅可比迭代、高斯-塞德尔迭代的收敛性。 教学目的及要求: 使学生了解迭代法收敛定义,迭代法基本定理,掌握雅可比迭代法、高斯-塞德尔迭代法。 教学重点: 雅可比迭代法,高斯-塞德尔迭代法。 教学难点: 迭代法基本定理的证明以及作用。 教学方法及手段: 应用严格的高等代数、数学分析知识,完整地证明迭代法基本定理,讲清雅可比迭代法与高斯-塞德尔迭代法的关系,介绍雅可比迭代法与高斯-塞德尔迭代法在编程中的具体实现方法。 在实验教学中,通过一个具体实例,让学生掌握雅可比迭代法与高斯-塞德尔迭代法的具体实现,并能通过数值计算实验,揭示高斯-塞德尔迭代法是对雅可比迭代法的一种改进这一事实。 教学时间: 本章的教学的讲授时间为6学时,实验学时4学时。 教学内容: 一 迭代法定义 对于给定的线性方程组x Bx f =+,设它有唯一解*x ,则 **x Bx f =+ (6.1) 又设(0)x 为任取的初始向量,按下述公式构造向量序列 (1)(),0,1,2, k k x Bx f k +=+= (6.2) 这种逐步代入求近似解的方法称为迭代法(这里B 与f 与k 无关)。如果() lim k k x →∞ 存在 (记为*x ),称此迭代法收敛,显然* x 就是方程组的解,否则称此迭代法发散。 迭代法求方程近似解的关键是是讨论由(6.1)式所构造出来的向量序列() {} k x 是否收敛。为此,我们引入误差向量 (1)(1)*k k x x ε++=- 将(6.2)式与(6.1)式相减,我们可得 (1)*()*()k k x x B x x +-=- (1)(),0,1,2, k k B k εε+== 递推下去,得 ()(1)2(2)(0)k k k k B B x B x εε--====

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

§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 =-是原方程的解.

常数变易法

常数变易法的解释 注:本方法是对崔士襄教授写的《“常数变易法”来历的探讨》论文的解释。思路并非本人原创。特此注明。背景详见本人前一篇博文。 我们来看下面的式子: y’+P(x).y = Q(x) (1) 对于这个式子最正常的思路就是“分离变量”(因为之前所学的思想无一不是把变量分离再两边积分)。所以我们的思维就集中在如何将(1)式的x和y分离上来。 起初的一些尝试和启示 先直接分离看一下: dy/dx+P(x)·y = Q(x) => dy = ( Q(x)-P(x).y ).dx (2) 从中看出y不可能单独除到左边来,所以是分不了的。这时想想以前解决“齐次方程”时用过的招数:设y/x = u = > y = u·x . 将y = u·x代入(1)式: u’·x+u+P(x)·u·x = Q(x) => u’·x+u·(1+P(x)·x) = Q(x) => du/dx·x = Q(x)-u(1+P(x)·x) => du = [Q(x)-u·(1+ P(x).x)].(1/x).dx (3) 这时u又不能单独除到左边来,所以还是宣告失败。不过,这里还是给了我们一点启示:如果某一项的变量分离不出来,那使该项成为零是比较好的选择。因为这样“变量分离不出”这个矛盾就消失了——整个一项都消失了,还需要分什么呢。比如说,对于(3)式,如果x=-1/P(x),那么那一项就消失了;再比如说,对于(2)式,如果P(x)=0,那么那一项也消失了。当然这些假设都是不可能的,因为x和P(x)等于几是你无法干预的。不过我们可以这么想:如果我们巧妙地构造出一个函数,使这一项等于零,那不就万事大吉了。Ok,好戏开场了。 进一步:变量代换法

最新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...?为

常数变易法原理

常数变易法原理 Pleasure Group Office【T985AB-B866SYT-B182C-BS682T-STT18】

常数变易法原理 我们来看下面的式子: y’+P(x).y=Q(x) (1) 对于这个式子最正常的思路就是“分离变量”(因为之前所学的思想无一不是把变量分离再两边积分)。所以我们的思维就集中在如何将(1)式的x和y分离上来。 起初的一些尝试和启示 先直接分离看一下: dy/dx+P(x).y=Q(x) dy=[Q(x)-P(x).y].dx (2) 从中看出y不可能单独除到左边来,所以是分不了的。这时想想以前解决“齐次方程”时用过的招数:设y/x=u→ y=u.x .将y=u.x代入(1)式: u’.x+u+P(x).u.x=Q(x) → u’.x+u.(1+P(x).x)=Q(x)→du/dx.x =Q(x)-u(1+P(x).x) →du=[Q(x)-u.(1+P(x).x)].(1/x).dx (3) 这时u又不能单独除到左边来,所以还是宣告失败。不过,这里还是给了我们一点启示:如果某一项的变量分离不出来,那使该项成为零是比较好的选择。因为这样“变量分离不出”这个矛盾就消失了——整个一项都消失了,还需要分什么呢。比如说,对于(3)式,如果x=-1/P(x),那么那一项就消失了;再比如说,对于(2)式,如果P(x)=0,那么那一项也消失了。当然这些假设都是不可能的,因为x和P(x)等于几是你无法干预的。

不过我们可以这么想:如果我们巧妙地构造出一个函数,使这一项等于零,那不就万事大吉了。Ok,好戏开场了。 进一步:变量代换法 筒子们可能觉得要构造这么一个函数会很难。但结果会让你跌破眼镜。y=u·v就是这么符合要求的一个函数。其中u和v都是关于x的函数。这样求y对应于x的函数关系就转变成分别求u对应于x的函数关系和v对应于x的函数关系的问题。你可能觉得把一个函数关系问题变成两个函数关系问题,这简直是脑残的表现——非也,u和v都非常有用,看到下面就知道了。 让我们看看讲代换y=u·v代入(1)式会出现什么: u’.v+u.(v’+P(x).v)=Q(x) (4) 如果现在利用分离变量法来求u对应于x的函数关系,那么u·(v’+ P(x)·v)就是我们刚刚遇到的没法把u单独分离出来的那一项,既然分不出来,那么干脆把这一项变为零好了。怎么变这是v的用处就有了。令v’+P(x)·v=0,解出v对应x的函数关系,这本身就是一个可以分离变量的微分方程问题,可以将其解出来。 dv/dx+P(x)·v=0 →v=C1.e^(-∫P(x)dx) (5)

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

江苏大学-常微分方程-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 为

常数变易法原理

常数变易法原理 我们来看下面的式子: y’+P(x).y?=?Q(x) (1) 对于这个式子最正常的思路就是“分离变量”(因为之前所学的思想无一不是把变量分离再两边积分)。所以我们的思维就集中在如何将(1)式的x和y分离上来。 ??起初的一些尝试和启示 先直接分离看一下: dy/dx+P(x).y?=?Q(x) dy?=?[Q(x)-P(x).y].dx (2) 从中看出y不可能单独除到左边来,所以是分不了的。这时想想以前解决“齐次方程”时用过的招数:设y/x?=?u??→y?=?u.x .将y?=?u.x代入(1)式: u’.x+u+P(x).u.x?=?Q(x) →u’.x+u.(1+P(x).x)?=?Q(x)→du/dx.x?=?Q(x)-u(1+P(x).x) →du?=?[Q(x)-u.(1+P(x).x)].(1/x).dx (3) 这时u又不能单独除到左边来,所以还是宣告失败。不过,这里还是给了我们一点启示:如果某一项的变量分离不出来,那使该项成为零是比较好的选择。因为这样“变量分离不出”这个矛盾就消失了——整个一项都消失了,还需要分什么呢。比如说,对于(3)式,如果x=-1/P(x),那么那一项就消失了;再比如说,对于(2)式,如果P(x)=0,那么那一项也消失了。当然这些假设都是不可能的,因为x和P(x)等于几是你无法干预的。不过我们可以这么想:如果我们巧妙地构造出一个函数,使这一项等于零,那不就万事大吉了。Ok,好戏开场了。

?进一步:变量代换法 筒子们可能觉得要构造这么一个函数会很难。但结果会让你跌破眼镜。y=u·v 就是这么符合要求的一个函数。其中u和v都是关于x的函数。这样求y对应于x的函数关系就转变成分别求u对应于x的函数关系和v对应于x的函数关系的问题。你可能觉得把一个函数关系问题变成两个函数关系问题,这简直是脑残的表现——非也,u和v都非常有用,看到下面就知道了。 让我们看看讲代换y=u·v代入(1)式会出现什么: u’.v+u.(v’+P(x)?.v)?=?Q(x) (4) 如果现在利用分离变量法来求u对应于x的函数关系,那么u·(v’+P(x)?·v)就是我们刚刚遇到的没法把u单独分离出来的那一项,既然分不出来,那么干脆把这一项变为零好了。怎么变?这是v的用处就有了。令v’+P(x)?·v=0,解出v对应x的函数关系,这本身就是一个可以分离变量的微分方程问题,可以将其解出来。 ?dv/dx+P(x)?·v?=?0? →v?=?C1.e^(-∫P(x)dx)? (5) ?现在v解出来了,接下来该处理u了,实际上当v解出来后u就十分好处理了。把(5)式代入(4)式,则u·(v’+P(x)·v)这一项便被消掉了。剩下的是u’?·C1·e^(-∫P(x)dx)?=?Q(x) 而这也是一个可以分离变量的微分方程。同样可以十分容易地解出来: du/dx?·C1·e^(-∫P(x)dx)=Q(x) →du?=?1/C1·e^(∫P(x)dx)·Q(x)·dx →u?=?1/C1.∫e^(∫P(x)dx).Q(x).dx+C2 (6)

线性方程组的迭代解法(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

常数变易法的解释

常数变易法的解释 我们来看下面的式子: y’+P(x).y =Q(x) (1) 对于这个式子最正常的思路就是“分离变量”(因为之前所学的思想无一不是把变量分离再两边积分)。所以我们的思维就集中在如何将(1)式的x和y分离上来。 起初的一些尝试和启示 先直接分离看一下: dy/dx+P(x)·y =Q(x) => dy =( Q(x)-P(x).y ).dx (2) 从中看出y不可能单独除到左边来,所以是分不了的。这时想想以前解决“齐次方程”时用过的招数:设y/x =u => y =u·x . 将y =u·x代入(1)式: u’·x+u+P(x)·u·x =Q(x) => u’·x+u·(1+P(x)·x) =Q(x) => du/dx·x =Q(x)-u(1+P(x)·x) => du =[Q(x)-u.(1+P(x).x)].(1/x).dx (3) 这时u又不能单独除到左边来,所以还是宣告失败。不过,这里还是给了我们一点启示:如果某一项的变量分离不出来,那使该项成为零是比较好的选择。因为这样“变量分离不出”这个矛盾就消失了——整个一项都消失了,还需要分什么呢。比如说,对于(3)式,如果x=-1/P(x),那么那一项就消失了;再比如说,对于(2)式,如果P(x)=0,那么那一项也消失了。当然这些假设都是不可能的,因为x和P(x)等于几是你无法干预的。不过我们可以这么想:如果我们巧妙地构造出一个函数,使这一项等于零,那不就万事大吉了。Ok,好戏开场了。 进一步:变量代换法 筒子们可能觉得要构造这么一个函数会很难。但结果会让你跌破眼镜。y=u·v就是这么符合要求的一个函数。其中u和v都是关于x的函数。这样求y对应于x的函数关系就转变成分别求u对应于x的函数关系和v对应于x的函数关系的问题。你可能觉得把一个函数关系问题变成两个函数关系问题,这简直是脑残的表现——非也,u和v都非常有用,看到下面就知道了。 让我们看看讲代换y=u·v代入(1)式会出现什么: u’.v+u.(v’+P(x) .v) =Q(x) (4) 如果现在利用分离变量法来求u对应于x的函数关系,那么u·(v’+P(x) ·v)就是我们

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

数值分析实验五 班级: 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

常数变易法推导

我们来看下面的式子: y’+P(x).y =Q(x) (1) 对于这个式子最正常的思路就是“分离变量”(因为之前所学的思想无一不是把变量分离再两边积分)。所以我们的思维就集中在如何将(1)式的x和y分离上来。 起初的一些尝试和启示 先直接分离看一下: dy/dx+P(x)·y =Q(x) => dy =( Q(x)-P(x).y ).dx (2) 从中看出y不可能单独除到左边来,所以是分不了的。这时想想以前解决“齐次方程”时用过的招数:设y/x =u => y =u·x . 将y =u·x代入(1)式: u’·x+u+P(x)·u·x =Q(x) => u’·x+u·(1+P(x)·x) =Q(x) => du/dx·x =Q(x)-u(1+P(x)·x) => du =[Q(x)-u.(1+P(x).x)].(1/x).dx (3) 这时u又不能单独除到左边来,所以还是宣告失败。不过,这里还是给了我们一点启示:如果某一项的变量分离不出来,那使该项成为零是比较好的选择。因为这样“变量分离不出”这个矛盾就消失了——整个一项都消失了,还需要分什么呢。比如说,对于(3)式,如果x=-1/P(x),那么那一项就消失了;再比如说,对于(2)式,如果P(x)=0,那么那一项也消失了。当然这些假设都是不可能的,因为x和P(x)等于几是你无法干预的。不过我们可以这么想:如果我们巧妙地构造出一个函数,使这一项等于零,那不就万事大吉了。Ok,好戏开场了。 进一步:变量代换法 筒子们可能觉得要构造这么一个函数会很难。但结果会让你跌破眼镜。y=u·v就是这么符合要求的一个函数。其中u和v都是关于x的函数。这样求y对应于x的函数关系就转变成分别求u对应于x的函数关系和v对应于x的函数关系的问题。你可能觉得把一个函数关系问题变成两个函数关系问题,这简直是脑残的表现——非也,u和v都非常有用,看到下面就知道了。 让我们看看讲代换y=u·v代入(1)式会出现什么: u’.v+u.(v’+P(x) .v) =Q(x) (4) 如果现在利用分离变量法来求u对应于x的函数关系,那么u·(v’+P(x) ·v)就是我们刚刚遇到的没法把u单独分离出来的那一项,既然分不出来,那么干脆把这一项变为零好了。

常数变易法的实质以及为什么可以用常数变易法解微分方程

欲得到非齐次线性微分方程的通解,我们首先求出对应的齐次方程的通解,然后用待定系数法或常数变易法求出非齐次方程本身的一个特解,把它们相加,就是非齐次方程的通解。 同济版的实质就是变量代换u,然后变成可分离变量。求出u,然后回代。解出方程。 解微分方程的实质就是变量替换,然后化解为可分离变量。然后回代。待定系数法 考虑以下的微分方程: 对应的齐次方程是: 它的通解是: 由于非齐次的部分是(),我们猜测特解的形式是: 把这个函数以及它的导数代入微分方程中,我们可以解出A: 因此,原微分方程的解是: () 常数变易法 假设有以下的微分方程:

我们首先求出对应的齐次方程的通解,其中C1、C2是常数,y1、y2是x的函数。然后我们用常数变易法求出非齐次方程的一个特解,方法是把齐次方程的通解中的常数C1、C2换成x的未知函数u1、u2,也就是: y = u1y1 + u2y2。(1) 两边求导数,可得: y' = u1' y1 + u2' y2 + u1y1' + u2y2'。 我们把函数u1、u2加上一条限制: u1' y1 + u2' y2 = 0。(4) 于是: y ' = u1y1' + u2y2'。(2) 两边再求导数,可得: y" = u1' y1' + u2' y2' + u1y1" + u2y2"。(3) 把(1)、(2)、(3)代入原微分方程中,可得: u1' y1' + u2' y2' + u1y1" + u2y2" + pu1y1' + pu2y2' + qu1y1 + qu2y2 = f(x)。 整理,得: u1' y1' + u2' y2' + (u1y1" + pu1y1' + qu1y1) + (u2y2" + pu2y2' + qu2y2) = f(x)。由于y1和y2都是齐次方程的通解,因此(u1y1" + pu1y1' + qu1y1)和(u2y2" + pu2y2' + qu2y2)都变为零,故方程化为: u1' y1' + u2' y2' = f(x)。(5) (4)和(5)联立起来,便得到了一个u1'和u2'的方程组。解这个方程组,便可得到u1'和u2'的表达式;再积分,便可得到u1和u2的表达式。 这个方法也可以用来解高于二阶的非齐次线性微分方程。一般地,有:

迭代法解线性方程组(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");

相关文档
最新文档