一阶微分方程的常数变易法探析

一阶微分方程的常数变易法探析
一阶微分方程的常数变易法探析

一阶微分方程的常数变易法的应用探析

刘卫

(杭州师范大学理学院数学072班 310036)

【摘要】:常数变易法求解一阶微分方程是作为求解一阶线性方程的解法给出的。本文先介绍一阶线性非齐次微分方程的常数变易法,然后讨论四种形式的一阶非线性微分方程的常数变易法,包括贝齐次方程和贝努力方程等的常数变易法。 【关键词】:一阶线性 一阶非线性 常数变易法

1、一阶线性非齐次微分方程的常数变易法

为求解一阶非齐次线性微分方程)()(x Q y x p dx

dy += (1)

先解对应的其次线性微分方程

y x p dx dy )(= (2)

用分离变量法可得(2)的通解:?

=dx

x p ce y )( (c 是任意常数) (3)

然后从这通解出发,把这通解中的任意常数c 编译成x 的未知函数)(x c ,得到

?

=dx

x p e x c y )()( (4)

于是:?-?

'='dx

x p dx

x p e

x p x c e x c y )()()()()( (5) 将(4)和(5)代入方程(1),得: )()()()()()()()()(x Q e x c x p e x p x c e x c dx

x p dx

x p dx

x p +?

=?

+?

'

即:)()()(x Q e x c dx

x p =?',所以,)()()(x Q e x c dx

x p ?='-

所以:c dx x Q e x c dx s p +?=

?

-)()()( 所以,(1)的通解为:))(()()(c dx x Q e e y dx

s p dx x p +??=?-

例1

x xy dx

dy 42+-=

解:首先求线性齐次方程02=+xy dx

dy 的通解2

x

ce

y -=。

再应用常数变易法求线性非齐次微分方程的通解,为此,在上式中把常数c 变易成待

定函数)(x c ,即令:2

)(x e x c y -=,代入原方程得: x e

x xc e

x xc e

x c x

x

x

4)(2)(2)(2

2

2

+-=-'---

化简得到:24)(x xe x c =',上式两边积分得:c e x c x +=2

2)( 于是,原方程的通解为22

+=-x ce y 2、一阶非线性微分方程的常数变易法

个别的一阶非线性微分方程,可用常数变易法求解,下面介绍四类一阶非线性微分方程的常数变易法。 2.1 齐次方程

)(

x

y g x y dx

dy += (6)

对这种方程的解法,在一般教科书中都是首先把它化为可分离变量方程,然后根据可分离变量方程的解法去解,在这里我们直接用常数变易法求解。

根据常数变易法,先求出原方程“对应”的齐次方程:

x

y dx

dy =的通解:cx y =

令:x x c y )(= (7) 代入(6),有:])()()()(x c g x c x c x x c +=+'

即:[]x

x c g dx

x dc )()(=,即:

[]

x

dx x c g x dc =

)()(

两边积分求出)(x c ,然后代入(7),便得原方程的通解。 例2:求方程x

y x y y x tan =-'的通

解:将方程改写为

x y x

y dx

dy tan +=

它“对应”的齐次线性方程x

y dx

dy =

的通解为:cx y =

令:x x c y )(=,代入原方程得:

)(tan )(x c x dx

x dc =,即x

dx x c x dc =)

(tan )(

两边积分得cx x c =)(sin (c 是任意常数) 代回原变量,得原方程的通解为cx x

y =sin (c 是任意常数)

2.2 贝努力方程:

n

y x Q y x p dx

dy )()(+= (8)

贝努力方程,在一般的教科书上都是先把它化为线性方程,然后根据线性方程的求解方法去解,在这里我们直接用常数变易法去求解。

根据常数变易法,先求它“对应”的齐次线性方程

y x p dx

dy )(=的通解:?

=dx

x p ce y )(

令:?=dx

x p e x c y )()( 代入(8)

?

+?

=?+?

'dx x p n n

dx

x p dx

x p dx

x p e x c x Q e x p x c e x p x c e x c )()()()()()()()()()()( 即:?='-dx x p n n e

x c x Q x c )()

1()()()( ∴ []dx e

x Q x c d x c

dx x p n n

?=--)()

1()()()(

∴解得:

1

1)()1()()1()(--??

????+?-=?n dx x p n c

dx e x Q n x c

所以,(8)的通解为11

)()1()()()1(--??

????+?-?=?n dx x p n dx x p c

dx e x Q n e y 例3、求方程

2

6

xy x

y dx

dy -=的通解。

解:此方程为贝努力方程,这里x

x p 6

)(=,x x Q -=)(,2=n 原方程“对应”的齐次方程为x

y dx

dy 6

=,其通解为:6

cx y =,

)(x x c y =,代入原方程化简得:12

26

)()(x

x xc x x c -='

即:7

2

)()(x x c dx x dc -=,即:dx x x c x dc 7

2

)

()(=-

∴ c x

x c +=

8

)

(18

所以通解为:

c x

y

x

=-

8

2

6

(c 为任意常数)

2.3 黎卡提方程:)()()(2

x R y x Q y x p dx

dy ++= (9)

这一类方程一般来说没有初等解法,不过,若知道其一特解1y ,经变换1y z y +=后,方程就变为贝努力方程,因而可解。这里直接用常数变易法求一类特殊的黎卡提方程的解:

??

?

???+?+?+=-c bye e ay x Q y x p dx dy

dx x p dx x p )()(2)()(,(a 、b 、c 是实常数,且0≠a )

根据常数变易法,先求它“对应”的齐次线性方程y x p dx

dy )(=的解?

=dx

x p ce y )(,

令?

=dx

x p e x c y )()( (10)

代入原方程,有:

[][]{}c x bc x c a x Q e dx

x dc dx x p ++=?)()()()(2

)(

分离变量得到:

[]?=++-dx

x p e x Q c

x bc x c a x dc )(2

)()()()

(

两边积分,求出)(x c ,然后代入(10)得原方程的通解。

例4、求方程2

1

22

2

)12(1++

=-

x

x

ye

e

x x

y dx

dy 的通解。

解:在这里由于2

1)(x

x p =

,x dx

x dx

x p e e

e 1

1)(2=?=?

-

-

2

1)()(22)12(2+=??

????+?+?--x

dx x p dx

x p ye c bye e y

故原方程属于上述黎卡提方程,其中4=a ,4=b ,1=c 。原方程“对应”的齐次线性方程

2

x

y dx

dy =通解为:x

ce

y 1-

=

令x

e

x c y 1)(-= 代入原方程有:

2

22

1)1)(2(1)(+=

--x c e

x

dx

x dc e

x

x

即:

[]

dx e

x

x c x dc x

12

2

11)(2)

(-

=

+

两边积分得:x

e

A x c 121)(2-

-=+ (A 是任意常数)

所以:2

1)

2(2)(1

1

--=

x

x

Ae

e x c

所以原方程的通解为:x

x

e

Ae

y 112

1)

2(21

-

--=

2.4 形如)()(x Q e x p y y

=+'的微分方程 (11) 先求(11)“对应”的方程0)(=+'y

e x p y 的通解:[]?+-=c dx x p y )(ln

令:[]?+-=)()(ln

x c dx x p y ,代入原方程化简后得:

?-=+'dx x p x Q x c x Q x c )()()()()(,由此解出)(x c 后,便得(11)的通解为

?

????

???? ??+??--=??-c dx e pdx Q e dx x p y dx x p dx x Q )()()()(ln 例5、求x

x e y y

1cos =

+'的通解。

解:先解方程0cos =+'x e y y ,它的解是c x e

y

+=-sin 或)ln(sin c x y +-=。可令

原方程的解为))(ln(sin x c x y +-=,代入方程得:

x

x c x x c 1)

(sin )(=+-

即 x x

x c x

x c sin 1)(1)(-=+

'

[]

)

(cos 1sin

1sin 1)(1

1c x x

c

xdx x c dx e

x x e x c dx

x dx x +=

+-=??

????+??-?=??-

所以原方程的通解为)1ln(sin x c x

x y ++-=

【参考文献】

1,、王高雄、周之铭、朱思铭等.《常微分方程教程》(第三版).北京:高等教育出版社.2006.18~64 2..任永泰、史希福.《常微分方程》.沈阳:辽宁人民出版社.1984.4~16

迭代法求解线性方程组的研究

迭代法求解线性方程组的研究 【摘要】:本文总结了解线性方程组的三个迭代法,Jacobi 迭代法,Gauss-seidel 迭代法,SOR 迭代法,并且介绍了现代数值计算软件MATLAB 在这方面的应用,即分别给出三个迭代法的数值实验。 【关键字】:Jacobi 迭代法 Gauss-seidel 迭代法 SOR 迭代法 数值实验 一. 引言 迭代法是用某种极限过程去逐步逼近线性方程组精确解的方法,它是解高阶稀疏方程组的重 要方法。 迭代法的基本思想是用逐次逼近的方法求解线性方程组。 设有方程组 b Ax = …① 将其转化为等价的,便于迭代的形式 f Bx x += …② (这种转化总能实现,如令b f A I B =-=,), 并由此构造迭代公式 f Bx x k k +=+)() 1( …③ 式中B 称为迭代矩阵,f 称为迭代向量。对任意的初始向量) 0(x ,由式③可求得向量序列 ∞0)(}{k x ,若*) (lim x x k k =∞ →,则*x 就是方程①或方程②的解。此时迭代公式②是收敛的,否则称为发散的。构造的迭代公式③是否收敛,取决于迭代矩阵B 的性质。 本文介绍三种解线性方程组的最主要的三种迭代法:Jacobi 迭代法,Gauss-Seidel 迭代法和SOR 迭代法。本文结构如下:第二部分介绍Jacobi 迭代法及其数值实验,第三部分介绍Gauss-Seidel 迭代法及其数值实验,第四部分介绍SOR 迭代法及其数值实验,第五部分总结。 二. 雅克比(Jacobi )迭代法 1. 雅克比迭代法的格式 设有方程组

),,3,2,1(1 n i b x a j j n j ij ==∑= …① 矩阵形式为b Ax =,设系数矩阵A 为非奇异矩阵,且),,3,2,1(,0n i a ii =≠ 从式①中第i 个方程中解出x ,得其等价形式 )(1 1 1j n j j ij ii i x a b a x ∑≠=-= …② 取初始向量),,,() 0()0(2)0(1) 0(n x x x x =,对式②应用迭代法,可建立相应的迭代公式: )(11 1)() 1(∑≠=++-=n j j i k j ij ii k i b x a a x …③ 也可记为矩阵形式: J x J k F B x k +==) () 1( …④ 若将系数矩阵A 分解为A=D-L-U ,式中 ???? ? ? ? ??=nn a a a D 2211, ?? ? ?? ?? ? ??=--00 00121323121nn n n a a a a a a L , ?? ? ??? ? ? ? ?=--00 00122311312n n n n a a a a a a D 。 则方程Ax=b 变为 b x U L D =--)( 得 b x U L Dx ++=)( 于是 b D x U L D x 1 1 )(--++=

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

第五章 解线性方程组的迭代法 本章主要内容: 迭代法收敛定义,矩阵序列收敛定义,迭代法基本定理,雅可比迭代法,高斯-塞德尔迭代法,系数矩阵为严格对角占优阵的采用雅可比迭代、高斯-塞德尔迭代的收敛性。 教学目的及要求: 使学生了解迭代法收敛定义,迭代法基本定理,掌握雅可比迭代法、高斯-塞德尔迭代法。 教学重点: 雅可比迭代法,高斯-塞德尔迭代法。 教学难点: 迭代法基本定理的证明以及作用。 教学方法及手段: 应用严格的高等代数、数学分析知识,完整地证明迭代法基本定理,讲清雅可比迭代法与高斯-塞德尔迭代法的关系,介绍雅可比迭代法与高斯-塞德尔迭代法在编程中的具体实现方法。 在实验教学中,通过一个具体实例,让学生掌握雅可比迭代法与高斯-塞德尔迭代法的具体实现,并能通过数值计算实验,揭示高斯-塞德尔迭代法是对雅可比迭代法的一种改进这一事实。 教学时间: 本章的教学的讲授时间为6学时,实验学时4学时。 教学内容: 一 迭代法定义 对于给定的线性方程组x Bx f =+,设它有唯一解*x ,则 **x Bx f =+ (6.1) 又设(0)x 为任取的初始向量,按下述公式构造向量序列 (1)(),0,1,2,k k x Bx f k +=+=L (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 εε+==L 递推下去,得 ()(1)2(2)(0)k k k k B B x B x εε--====L

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

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

求解线性方程组——超松弛迭代法(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

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

§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,好戏开场了。 进一步:变量代换法

线性方程组的迭代求解java

线性方程组的迭代求解 摘要 迭代法是一种逐次逼近方法,在使用迭代法解方程组时,其系数矩阵在计算过程中始终不变。它利用计算机运算速度快、适合做重复性操作的特点,让计算机对一组指令(或一定步骤)进行重复执行。迭代法具有循环的计算方法,方法简单,适宜解大型稀疏矩阵方程组 本文总结了解线性方程组的三个迭代法,Jacobi迭代法,Gauss-Seidel迭代法,SOR 迭代法,并且介绍了软件JA V A在这方面的应用。 关键词: Jacobi迭代法;Gauss-Seidel迭代法;SOR迭代法;计算

SOLUTION OF LINEAR EQUATIONS OF ITERATION WITH THE EXPERIMENTAL ABSTRACT Iteration is a kind of method to solve questions by step-by-step approximation. When we are getting the solution of linear equations by using iteration, the coefficient matrix is always staying the same in computation process. Computer could operate fastly so that it is suitable for operating again and again. Iteration is easy to operate to solve the large matrix equations by using a calculate method called circulation. This summary understanding of linear equations three kind of iteration, Jacobi iteration, Gauss-Seidel iteration, successive over relaxation method ,and introduce modern software JA V A in this respect. Key words:Jacobi iteration; Gauss-Seidel iteration; Successive Over Relaxation method ; calculating

最新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)

SOR迭代法求解线性方程组

实验三:用SOR 迭代法求解线性方程组 ?????? ? ??=??????? ????????? ??----------74.012.018.168.072.012.006.016.012.001.103.014.006.003.088.001.016.014.001.076.04321x x x x 取初始点T x )0,0,0,0()0(=,松弛因子05.1=ω,精度要求610-=ε。 1,建立SOR.m 函数文件,此函数文件可调用,程序源码如下: function [x,n]=SOR(A,b,x0,w,eps,M) if nargin==4 eps= 1.0e-6;%精度要求 M = 200; elseif nargin<4 error; return elseif nargin ==5 M = 200; end if(w<=0 || w>=2) error; return; end D=diag(diag(A)); %求A 的对角矩阵 L=-tril(A,-1); %求A 的下三角阵 U=-triu(A,1); %求A 的上三角阵 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)>=eps x0=x; x =B*x0+f; n=n+1; if(n>=M) disp('Warning: 迭代次数太多,可能不收敛!'); return; end end

2,输入矩阵。并根据要求调用函数,运行结果如下图所示: 即经过7次迭代算出结果,且求得: 1.27151.28440.48581.2843x ?? ? ?= ? ???

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

常数变易法的解释

常数变易法的解释 我们来看下面的式子: 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)就是我们

最新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单独分离出来的那一项,既然分不出来,那么干脆把这一项变为零好了。

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 ,,,;,,, 三. 程序框图

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

欲得到非齐次线性微分方程的通解,我们首先求出对应的齐次方程的通解,然后用待定系数法或常数变易法求出非齐次方程本身的一个特解,把它们相加,就是非齐次方程的通解。 同济版的实质就是变量代换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的表达式。 这个方法也可以用来解高于二阶的非齐次线性微分方程。一般地,有:

一阶微分方程的常数变易法探析

一阶微分方程的常数变易法的应用探析 刘卫 (杭州师范大学理学院数学072班 310036) 【摘要】:常数变易法求解一阶微分方程是作为求解一阶线性方程的解法给出的。本文先介绍一阶线性非齐次微分方程的常数变易法,然后讨论四种形式的一阶非线性微分方程的常数变易法,包括贝齐次方程和贝努力方程等的常数变易法。 【关键词】:一阶线性 一阶非线性 常数变易法 1、一阶线性非齐次微分方程的常数变易法 为求解一阶非齐次线性微分方程)()(x Q y x p dx dy += (1) 先解对应的其次线性微分方程 y x p dx dy )(= (2) 用分离变量法可得(2)的通解:? =dx x p ce y )( (c 是任意常数) (3) 然后从这通解出发,把这通解中的任意常数c 编译成x 的未知函数)(x c ,得到 ? =dx x p e x c y )()( (4) 于是:?-? '='dx x p dx x p e x p x c e x c y )()()()()( (5) 将(4)和(5)代入方程(1),得: )()()()()()()()()(x Q e x c x p e x p x c e x c dx x p dx x p dx x p +? =? +? ' 即:)()()(x Q e x c dx x p =?',所以,)()()(x Q e x c dx x p ?='- 所以:c dx x Q e x c dx s p +?= ? -)()()( 所以,(1)的通解为:))(()()(c dx x Q e e y dx s p dx x p +??=?- 例1 x xy dx dy 42+-= 解:首先求线性齐次方程02=+xy dx dy 的通解2 x ce y -=。 再应用常数变易法求线性非齐次微分方程的通解,为此,在上式中把常数c 变易成待 定函数)(x c ,即令:2 )(x e x c y -=,代入原方程得: x e x xc e x xc e x c x x x 4)(2)(2)(2 2 2 +-=-'---

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

相关文档
最新文档