范文一:线性方程求解
阅阅阅告
--“支持向量机算法和软件ChemSVM介软”阅阅 所得
“支持向量机算法和软件ChemSVM介软”阅阅阅阅阅一文作者是文、念、叶晨洲、李国正。此文着重介了阅阅阅阅阅阅阅阅阅阅阅阅阅阅阅阅阅阅阅阅阅阅阅学理,statistical
learning theory,称阅阅SLT,和支持向量机,support vector machine,阅称SVM,算法理和其算法的原理。在程中,笔者阅阅阅阅阅阅阅阅阅阅阅阅阅阅阅阅阅阅阅Support Vectors阅阅阅阅有趣。
支持向量分,阅阅SVC,算法:
阅阅阅阅阅阅阅阅阅阅阅阅阅阅阅阅阅阅阅阅阅于分学,的模式方法降,而强SVM与此相反。于阅阅特征空中两点不能靠超平面分的非性,阅阅阅阅阅阅阅阅阅阅阅阅阅阅阅阅阅阅阅阅SVM采用映照方法将其映照到更高的空,并求得最佳区分阅阅阅阅阅阅阅阅阅阅阅阅二本点的超平面方程,作判未知本的判据。阅阅阅阅阅阅阅阅阅阅阅阅阅阅阅阅阅阅阅阅阅阅阅1.阅性可分情形:SVM算法是从性可分情况下的最分面,阅阅阅阅阅阅阅阅阅阅阅阅阅阅Optimal Hyperplane,提出的。所最分面就是要求分面阅阅阅阅阅阅阅阅阅阅阅阅阅不但能将两本点无地分,而且要使两阅阅阅阅阅阅阅阅阅阅阅阅阅阅阅阅阅的分空隙最大,依次而行算,而具体阅阅阅阅阅阅阅阅阅阅阅阅阅阅阅阅阅阅
算程,由于数学基有限,看的不是很阅阅阅阅阅阅阅阅阅阅阅阅阅阅阅阅阅
理解。大概是将原一个凸二次划的偶阅阅阅阅阅阅阅阅阅阅阅阅阅阅阅阅阅而也是一个不等式束下二次函数机制阅阅阅阅阅阅阅阅阅阅阅阅阅阅阅阅阅阅
阅阅阅阅阅阅阅阅阅阅阅阅阅阅阅阅阅阅,存在唯一最解。就可以求出最解了。2.非性可阅阅阅分情况:当用一个超平面不能把两点完全分,只有阅阅阅阅阅阅阅阅阅阅少数点被分,,可以引入松弛量阅阅阅阅阅阅阅阅阅阅阅阅,?0, ,,使超平面足:,当阅阅阅阅阅0<1阅阅本点x仍旧被正确分,而当阅阅阅阅?1阅阅本点x被分。阅阅阅阅ii此,引入以下目函数:阅>1阅阅本点x仍旧被正确分,而当阅阅阅阅?1阅阅本点x被分。阅阅阅阅ii此,引入以下目函数:阅>
相当于之前所的性可分情况了。阅阅阅阅阅阅阅阅阅阅
SVM原理:
SVM方法是通一个非性映射阅阅阅阅阅阅阅阅p,把本空映射到阅阅阅阅阅阅阅一个高乃至无的特征空中阅阅阅阅阅阅阅阅阅阅阅阅(Hilbert空 阅),使得在原来的阅本空中非性可分的化在特征空中的性可分的,阅阅阅阅阅阅阅阅阅阅阅阅阅阅阅阅阅阅阅阅阅阅阅阅阅阅阅阅阅阅阅 阅阅阅阅阅阅阅阅阅阅阅阅阅阅阅阅阅阅阅阅阅阅地,就是升和性化,升,就是把本向高空做映射,
一般情况下会增加算的性,甚至会引起阅阅阅阅“阅 阅”数灾,因而人
阅阅阅阅阅阅阅阅阅阅阅阅阅阅阅阅阅阅阅阅很少津,但是作分、回等来,很
可能在低本空无法性理的本集,在阅阅阅阅阅阅阅阅阅阅阅阅阅阅阅阅阅
高特征空中却可以通一个性超平面性划分阅阅阅阅阅阅阅阅阅阅阅阅阅阅阅阅阅阅阅阅阅阅阅阅(或回阅),一般的升都会来算的化,阅阅阅阅阅阅阅阅阅阅阅阅
SVM方法巧妙地解决了个:用核函数的展定理,就阅阅阅阅阅阅阅阅阅阅阅阅阅阅阅阅阅不需要知道非性映射的式表达式,由于是在高特征空中建阅阅阅阅阅阅阅阅阅阅阅阅阅阅阅阅阅阅阅阅阅阅阅立性学机,所以与性模型相比,不但几乎不增加算的性阅阅阅阅阅阅阅阅阅阅阅阅阅阅阅阅阅阅阅阅阅阅阅阅阅阅阅阅阅而且在某程度上避免了阅“阅阅”阅阅阅阅阅阅阅阅数灾,一切要功于核
函数的展和算理。阅阅阅阅阅阅阅由于最的判函数中只包阅阅阅阅阅阅阅阅阅阅阅含未知向量与支持向量的内的性合,因此的阅阅阅阅阅阅阅阅阅阅阅阅阅阅算度取决于支持向量的个数。目前常阅阅阅阅阅阅阅阅阅阅阅阅阅阅阅阅阅
用的核函数形式主要有以下三,它都与已有的算阅阅阅阅阅阅阅阅阅阅
法有系。阅阅阅阅阅
(1).多式形式的核函数,即,阅阅阅阅阅阅阅阅阅阅阅阅阅SVM是一个q阅阅阅阅阅阅阅多式分器。(2).径向基形式的核函数,即,阅阅SVM是一径向基函数分器。阅阅阅阅阅阅阅阅阅阅(3).S形核函数,如 阅SVM阅阅阅阅阅阅阅阅的就是一个两的感知器神阅阅阅阅阅阅阅阅阅阅阅阅阅阅阅阅阅阅阅阅网,只是在里不但网的、而且网
的点数目也是由算法自确定的。阅阅阅阅阅阅阅阅阅阅阅阅阅阅阅阅阅
支持向量回,阅阅SVR,方法:
SVR算法的基主要是阅阅阅阅 阅 不敏感函数(ε -insensitive function)
和核函数算法。若将合的数学模型表达多空阅阅阅阅阅阅阅阅阅阅阅阅阅阅的某一曲,根据阅阅阅阅阅阅 阅阅阅阅阅阅阅阅不敏感函数所得的果就是包曲阅阅阅阅阅“和点的阅 ”阅“”管道。在所有本点中,只有分布在管壁上的
那一部分本点决定管道的位置。一部分本称阅阅阅阅阅阅“阅阅阅支持向
量”(support vectors)。适本集的非性,的阅阅阅阅阅阅阅阅阅阅阅阅阅阅阅阅阅阅阅阅阅阅阅阅阅阅阅阅阅阅阅合方法通常是在性方程后面加高。此法
然有效,但由此增加的可参数未免增加了合的。阅阅阅阅阅阅阅阅阅阅阅阅阅阅阅SVR采用核函数解决一矛盾。用核函数代替性方程中的性可以使原阅阅阅阅阅阅阅阅阅阅阅阅阅阅阅阅阅阅阅阅阅阅阅阅来的性算法阅“阅”阅阅阅阅阅阅阅阅阅阅阅阅阅阅阅非性化,即能作非性回。与此同,引核函数
达到了升的目的,而增加的可参数却很少,于是“阅”阅阅阅阅阅阅阅阅阅
阅阅阅阅阅阅阅阅阅阅阅阅阅阅阅阅合仍能控制。两情形:性回和非性回,
数学算方法看的不是很懂,和前面介的阅阅阅阅阅阅阅阅阅阅阅阅阅阅阅阅阅SVC方法似。阅阅阅
阅阅阅阅阅阅阅阅阅阅阅阅阅阅阅阅阅阅阅完篇文章,然有很多的不理解。但是SVM的原理和特征以及解决方案都有所了解,也一的深入了解学阅阅阅阅阅阅阅阅阅步做了一个,打下了一定的基阅阅阅阅阅阅阅阅阅阅阅.
范文二:一阶线性方程
§3 一阶线性方程
可以用初等积分法求解的一阶方程,除了恰当方程和变量分离方程以外,另一重要的类型就是线性方程. 最一般的一阶线性方程具有形式:
dy +p (x ) y =q (x ) (3. 1) dx
其中函数p (x ) 和q (x ) 在区间I =(a , b ) 上连续. 在(3. 1) 中如果q (x ) ≡0,则得较简单的方程: dy +p (x ) y =0 (3. 2) dx
方程(3. 1) (q (x ) 不恒等于零)叫做非齐次线性方程,而(3. 2) 叫做与(3. 1) 对应的齐次线性方程.
注意:这里所讲的齐次方程是指(3. 2) 中的两项关于y 和y 的总体来说是一次的,而方程(3. 1) 左端虽然关于y 和y 来说是一次的,但右端关于y 和y 来说是零次的,故称(3. 1) 为非齐次线性方程.
现在介绍一阶线性方程的解法. 先讨论齐次线性方程(3. 2) 的解法.
显见(3. 2) 是一个变量分离的方程,当y ≠0时,方程(3. 2) 可改写为 ' ' '
dy +p (x ) dx =0, y
积分后可得通解
-p (x ) dx y =Ce ? (3. 3)
这里任意常数C 也可以等于零,因为y ≡0也满足方程(3. 2) .
下面讨论非齐次线性方程(3. 1) 的解法. 将(3. 1) 改写为对称形式:
dy +p (x ) ydx =q (x ) dx (3. 4)
一般(3. 4) 不是恰当方程,但以因子μ(x ) =e ?p (x ) dx 乘(3. 4) 两边,得
p (x ) dx e ?p (x ) dx dy +e ?p (x ) dx p (x ) ydx =e ?
p (x ) dx q (x ) dx , 即 d (e ?p (x ) dx y ) =q (x ) e ?dx ,
它是恰当方程. 两边积分得通积分
e ?p (x ) dx y =?q (x ) e ?p (x ) dx dx +C ,
从而求得(3. 4) 的通解为
-p (x ) dx ??p (x ) dx dx ? (3. 5) y =e ?C +q (x ) e ?????
其中C 是任意常数.
这种解法称为积分因子法. 求解线性微分方程(3. 1) 的另一重要方法是常数变易法(见习题 ). 这种方法不但适用于一阶线性方程(3. 1) ,而且也适用于高阶线性方程和线性方程组. 我们见在第六章§3中再遇到它.
例1 求解微分方程
dy 1+y =x 3, (x ≠0) . dx x
解 这里p (x ) =
-13,q (x ) =x ,故由(3. 5) 得: x 11C 14?x dx ??x dx ?134y =e C +x ?e dx =(C +x dx ) =+x . ????x 5??x
其中C 是任意常数,x ≠0.
为确定起见,一般将(3. 5) 中的不定积分写成变上限的定积分,即
-y =e
或 ?x 0x p (s ) ds ??x 0p (t ) dt ?x ds ?, ?C +?x 0q (s ) e ????s
y =Ce -?x 0p (s ) ds x +?q (s ) e ?s x
x 0-p (t ) dt x ds (3. 6)
利用这种形式,容易求出初值问题
?dy ?+p (x ) y =q (x ) (3. 7) ?dx ??y (x 0) =y 0
的特解为
-y =y 0e ?x 0p (s ) ds x +?q (s ) e ?s x
x 0-p (t ) dt x ds (3. 8)
根据以上式子,还可以推出线性微分方程所特有的几个性质:
性质1 齐次线性方程(3. 2) 的解或者恒等于零,或者恒不等于零.
此性质可以从(3. 2) 的通解表达式(3. 3) 推出.
性质2 线性方程的解是整体存在的,即方程(3. 1) 或(3. 2) 的任一解都在p (x ) 和q (x ) 有定义且连续的整个区间I 上存在.
此性质可以从通解表达式(3. 5) 或(3. 3) 推出.
性质3 方程(3. 2) 的任意两个解y 1(x ) 与y 2(x ) 的线性组合c 1y 1(x ) +c 2y 2(x ) 也是(3. 2) 的解. 性质4 齐次线性方程方程(3. 2) 的任一解与非齐次线性方程(3. 1) 的任一解之和是非齐次线性方程(3. 1) 的解.
性质5 非齐次线性方程(3. 1) 的任意两解之差必是对应齐次线性方程(3. 2) 的解.
性质6 非齐次线性方程(3. 1) 的任一解与相应的齐次线性方程(3. 2) 的通解之和构成非齐次线性方程(3. 1) 的通解.
以上性质3,4,5可以直接代入验证之,性质6由(3. 5) 可以直接推出.
性质7 线性方程的初值问题的解存在且唯一.
关于性质7的解的存在性问题,由(3. 8) 即可得证. 下证解的唯一性.
设初值问题(3. 7) 有两个解y =?1(x ) 和y =?2(x ) ,则由性质5知道ψ(x ) =?1(x ) -?2(x ) 是对应齐次线性方程(3. 2) 的一个解;另一方面,?1(x ) 和?2(x ) 满足同一个初值条件,这蕴含着ψ(x 0) =?1(x 0) -?2(x 0) =0. 再由性质1可知ψ(x ) ≡0,即当x ∈I 时,?1(x ) ≡?2(x ) . 从而唯一性得证.
例2 设微分方程
dy +ay =f (x ) (3. 9) dx
其中a >0为常数,而f (x ) 是以2π为周期的连续函数,试求方程(3. 9) 的2π周期解.
解 利用(3. 6) 式,可求得方程(3. 9) 的通解为
y (x ) =Ce -ax +?0e -a (x -s ) f (s ) ds (3. 10)
现在选择常数C ,使y (x ) 成为2π周期函数,即
y (x +2π) ≡y (x ) (3. 11)
成立.
要使(3. 11) 对所有x 成立,只需对某一特定的x (例如x =0)成立,即 x
y (2π) ≡y (0) (3. 12)
事实上,因为y (x ) 是(3. 9) 的解,且f (x +2π) ≡f (x ) ,所以y (x +2π) 也是(3. 9) 的解. 令u (x ) =y (x +2π) -y (x ) ,则u (x ) 是对应齐次方程dy +ay =0的解. 如果(3. 12) 成立. 则u (x ) 满足初值dx
条件u (0) =0. 因此,由性质1可见,u (x ) ≡0,从而(3. 11) 成立.
现将公式(3. 10) 代入(3. 12) ,得到
C =Ce -2a π+?0e -a (2π-s ) f (s ) ds , 2π
即
C (1-e -2a π) =?0e a (s -2π) f (s ) ds (令t =s -2π) =?-2πe at f (t +2π) dt =?-2πe at f (t ) dt ,
所以 C =002π10as e f (s ) ds , ?-2a π-2π1-e
把它代回(3. 10) 式,注意到f (x ) 的2π周期性,就得到
e -ax 0x y (x ) =e as f (s ) ds +?0e -a (x -s ) f (s ) ds -2a π?-2π1-e
e 2a π0-a (x -s ) x =2a πf (s ) ds +?0e -a (x -s ) f (s ) ds ?-2πe e -1
=
=
=
=
e 2a πe e e 2a π2a π[?-11[?-11[?-11-10-2πe -a (x -2π-s ) f (s ) ds +?0e -a (x -2π-s ) f (s ) ds -?0e -a (x -s ) f (s ) ds e -a (x -2π-s ) f (s ) ds -?0e -a (x -s ) f (s ) ds (令t =s +2π) e -a (x -t ) f (t ) dt +?x e -a (x -s ) f (s ) ds 0x x x ]x -2π]2π+x 0]12a π?x 2π+x e -a (x -s ) f (s ) ds .
范文三:高阶线性方程
第四章 高阶线性方程
教学目的:使学生理解高阶线性微分方程的一般理论;熟练掌握常数变易法、
特征根法、比较系数法和Laplace变换;熟练掌握几种可降阶的高阶微分方程的
解法;能够依据解的一般表示讨论解的一些属性(
教学内容:
1、线性微分方程的一般理论
高阶线性微分方程的一般理论、常数变易法(
2、常系数线性微分方程的解法、特征根法、比较系数法、Laplace变换(
3、高阶方程的降阶和幂级数解法
幂级数解法( 几种可降阶的高阶微分方程的解法、*
教学重点:高阶线性微分方程的一般理论及解法
教学难点:比较系数法求特解
教学过程:
?4.1 线性微分方程的一般理论
4.1.1 引言
本章主要讨论如下阶线性微分方程 n
nn,1dxdxdx (4.1) ,a(t),?,a(t),a(t)x,f(t)1n,1nnn,1dtdtdt其中及均为区间上的连续函数( a(t)(i,1,2,?,n)f(t)a,t,bi
若,则方程(4.1)变为 f(t),0
nn,1dxdxdx (4.2) ,a(t),?,a(t),a(t)x,01n,1nnn,1dtdtdt称之为阶齐线性微分方程,简称为齐线性方程,称(4.1)为阶非齐线性微分方程,简称nn为非齐线性方程,称(4.2)为对应于方程(4.1)的齐线性方程(
方程(4.1)的解的存在唯一性定理
定理, 若及均为区间上的连续函数,则对于任a(t)(i,1,2,?,n)f(t)a,t,bi
(1)(n,1)意及任意的,方程(4.1)存在唯一解x,,(t),定义于区间t,[a,b]x,x,?,x0000
上,且满足初始条件: a,t,b
n,1dtdt,(),()(1)(n,1)00 (4.3) t,x,x?,x(),,,,0000dtdt
证明在下一章给出(
4.1.2齐线性方程的解的性质与结构
首先讨论齐线性方程(4.2),易得齐线性方程的解的叠加原理(
定理,(叠加原理) 若是方程(4.2)的个解,则它们的线性x(t),x(t),?,x(t)k12k组合也是(4.2)的解,其中是任意常数( cx(t),cx(t),?,cx(t)c,c,?,c1122kk12k
当时,方程(4.2)有解 n,k
(4.4) x,cx(t),cx(t),?,cx(t)1122nn
在什么条件下,(4.4)能成为阶齐线性方程(4.2)的通解, n
考虑定义在区间上的函数,如果存在不全为零的常数x(t),x(t),?,x(t)a,t,b12k
,使得恒等式对于任意的均成c,c,?,ccx(t),cx(t),?,cx(t),0t,[a,b]1122kk12k
立,则称这些函数线性相关,否则就称这些函数在所给区间上线性无关(
例(略)
由定义在区间上的个可微次的函数所成的行列x(t),x(t),?,x(t)a,t,bk,1k12k
式
W[x(t),x(t),?,x(t)],W(t)12k
x(t)x(t)x(t)?12k
,,, x(t)x(t)?x(t) 12k,????
(k,1)(k,1)(k,1)x(t)x(t)?x(t)12k
称为这些函数的伏朗斯基行列式(
定理, 若函数在区间上线性相关,则在上它们[a,b]x(t),x(t),?,x(t)a,t,b12k
的伏朗斯基行列式( W(t),0
这个定理的逆命题一般不成立(例子见,105)(
定理, 若方程(4.2)的解在区间上线性无关,则x(t),x(t),?,x(t)a,t,b12kW[x(t),x(t),?,x(t)]在此区间的任何点上均不等于零,即W(t),0(a,t,b)( 12k
定理, 阶齐线性方程(4.2)一定存在个线性无关解( nn
定理,(通解结构定理) 若是方程(4.2)的个线性无关解,则x(t),x(t),?,x(t)n12n
方程(4.2)的通解可表为
(4.11) x,cx(t),cx(t),?,cx(t)1122nn
其中为任意常数(且通解(4.11)包括了方程(4.2)的所有解( c,c,?,c12n
推论 方程(4.2)的线性无关解的最大个数等于(因此可得结论:阶齐线性方程的所nn有解构成一个维线性空间( n
方程(4.2)的一组个线性无关解称为方程的一个基本解组,显然,基本解组不唯一( n
4.1.3 非齐线性方程与常数变易法
考虑阶非齐线性方程 n
nn,1dxdxdx (4.1) ,a(t),?,a(t),a(t)x,f(t)1n,1nnn,1dtdtdt
易见方程(4.2)是它的特殊情形(
性质, 若是方程(4.1)的解,而是方程(4.2)的解,则也是方程(4.1)x(t)x(t)x(t),x(t)的解(
性质, 方程(4.1)的任意两个解之差必为方程(4.2)的解(
定理, 设是方程(4.2)的基本解组,而是方程(4.1)的某个x(t),x(t),?,x(t)x(t)12n
解,则方程(4.1)的通解可表为
(4.14) x,cx(t),cx(t),?,cx(t),x(t)1122nn
其中为任意常数(且通解(4.14)包括了方程(4.1)的所有解(
定理告诉我们,要解非齐线性方程,只需知道它的一个解和对应的齐线性方程的基本解
组即可(事实上,只要知道对应的齐线性方程的基本解组就可以利用常数变易法求得非齐线
性方程的解(
常数变易法 设是方程(4.2)的基本解组,因而 x(t),x(t),?,x(t)12n
(4.15) x,cx(t),cx(t),?,cx(t))1122nn
为(4.2)的通解(把其中的任意常数c看作的待定函数,(4.15)变为 c(t)(i,1,2,?,n)tii
(4.16) x,c(t)x(t),c(t)x(t),?,c(t)x(t))1122nn
将它代入方程(4.1),就得到必须满足的一个方程,但待定函数有c(t),c(t),?,c(t)n12n
个,为了确定它们,还需再找出个限制条件,理论上,这些条件可任意给出。 n,1
如果已知对应的齐线性方程的基本解组,则非齐线性方程的任一解可由求积得到(因此,
对于线性方程来说,关键是求出齐线性方程的基本解组( 例,(见课本P112例1)
例2(见课本P112例2)
作业 P113 (1、2、4、6、7、8、9)
?4.2 常系数线性微分方程的解法 4.2.1 复值函数与复值解
如果对于区间中的每一实数,有复数,其中z(t),,(t),i,(t),(t)和,(t)a,t,bt
是在区间上定义的实函数, 是虚数单位,则称在区间给定了一个复值a,t,bia,t,b实函数( z(t)
如果当趋于时有极限,并且定义 t,(t)和,(t)t0
limz(t),lim,(t),ilim,(t)t,tt,tt,t000
如果,则称在连续( z(t)tlimz(t),limz(t)00t,tt,t00
显然在连续相当于在连续( z(t)tt,(t)和,(t)00
当在区间上每一点连续时,就称在区间连续( z(t)z(t)a,t,ba,t,b
zt,ztdz(t)()()00,如果极限存在,就称在有导数(且记此极限为或( tz(t)z(t)lim00t,t0dtt,t0
显然在有导数相当于在有导数,且 z(t)tt,(t)和,(t)00
dz(t)d(t)d(t),,000i ,,dtdtdt
如果z(t)在区间上每一点都有导数,就称z(t)在区间上有导数( a,t,ba,t,b高阶导数可以类似地定义(
设、是定义在上的可微函数,是复值常数,易证下列等式成立: z(t)z(t)ca,t,b12
ddz(t)dz(t)12[z(t)z(t)] ,,,12dtdtdt
ddz(t)1 [cz(t)]c,1dtdt
ddz(t)dz(t)12[z(t)z(t)]z(t)z(t) ,,,,,1221dtdtdt
设为任一复数,这里为实数,为实变量,定义 K,,,i,,,,t
Kt(,,i,)t,t e,e,e(cos,t,isin,t)
由上式可得
1i,t,i,t cos,t,(e,e)2
1i,t,i,t sin,t,(e,e)2i
Kt 的性质 e
(K,K)tKtKt1212(1) e,e,e
KtdeKt(2) ,Kedt
ndKtnKt(3) e,Kendt
定义于区间上的实变量复值函数称为方程(4.1)的复值解,如果 x,z(t)a,t,b
nn,1dz(t)dz(t)dz(t) ,a(t),?,a(t),a(t)z(t),f(t)1n,1nnn,1dtdtdt对于恒成立( a,t,b
定理, 如果方程(4.2)中所有系数是方程的复值解,则的x,z(t),,(t),i,(t)z(t)
实部、虚部和共轭复值函数也都是方程(4.2)的解( ,(t)z(t),(t)
定理, 若方程
nn,1dz(t)dz(t)dz(t) ,a(t),?,a(t),a(t)z(t),u(t),iv(t)1n,1nnn,1dtdtdt有复值解,这里及都是实值函数,那么这x,U(t),iV(t)a(t)(i,1,2,?,n)u(t),v(t)i
个解的实部和虚部分别是方程 V(t)U(t)
nn,1dxdxdx ,a(t),?,a(t),a(t)x,u(t)1n,1nnn,1dtdtdt
和
nn,1dxdxdx ,a(t),?,a(t),a(t)x,v(t)1n,1nnn,1dtdtdt
的解(
4.2.2 常系数齐次线性微分方程和欧拉方程
设齐次线性微分方程中所有系数都是常数, 即方程形式为
nn,1dxdxdx , (4.19) L[x],,a,?,a,ax,01n,1nnn,1dtdtdt
其中为常数. 称(4.19)为阶常系数齐次线性微分方程. a,a,?,an12n
(4.19)的基本解组的殴拉待定指数函数法(又称为特征根法) (4.20)为(4.19)的解的充要条件是是代数方程 ,
nn,1 (4.21) F(,),,,a,,?,a,,a,01n,1n
的根. 称它为方程(4.19)的特征方程, 它的根就称为特征根.
(1) 特征根是单根的情形
n设是特征方程(4.21)的个彼此不相等的根, 则相应的方程(4.19)有如下,,,,?,,n12n
的解
,t,t,tn12, (4.22) e,e,?,e
n个解在区间上线性无关, 从而组成方程的基本解组. a,t,b
n如果均为实数, 则(4.22)是方程(4.19)个线性无关的实数解, 方,(i,1,2,?,n)i
程(4.19)的通解为
,t,t,tn12, 其中为任意常数. x,ce,ce,?,cec,c,?,c1212nn
如果特征方程(4.21)有复根,由于其系数是实的,它的复根一定是共轭成对地出现. 设
是一特征根, 则也是(4.21)的根. 由定理4.8, 这两个特征根所对,,,,i,,,,,i,12
应的解是实变量复值函数, 因而与这对共轭复根对应的, 方程(4.19)有两个复值解
,,,(,i)tt,,e,e(cost,sint), (,,i,)t,te,e(cos,t,sin,t).
由定理4.8,它们的实部和虚部也是方程的解. 这样可求得方程(4.19)的两个实值解
,t,t ecos,t,esin,t.
(2)特征根有重根
,t1 设是(4.21)的重根(实的或复的),由定理4.8知是(4.21)的一个解, k(1,k,n),e1
如何求出其余的k-1个解呢?
nn,1kdxdxdxka?a设, 即特征方程有因子,有个解,,,,0,,,0,k11n,1nn,1kdtdtdt2k,1 而且它们是线性无关的. 1,t,t,?,t,
,t1如果这重根, 作变量变换, ,方程(4.19)有个解 ,,0x,yekk11
,t,t,tk,1,t211111 (4.25) e,te,te,?,te,
对于特征方程有复重根的情况, 不妨假设是重特征根, 则也,,,,i,,,,,i,k
是重特征根, 仿1)处理, 得到(4.19)的个实值解 2kk
,,,,ttt2tk,1,,,,ecoste,tcoste,tcoste,?,tcost ,t,t,t2,tk,1esin,te,tsin,te,tsin,te,?,tsin,t
4dx例1 求方程的通解. ,x,04dt
t,t(通解为 , 这里为任意常数.) x,ce,ce,ccost,csintc,c,c,c12341234
3dx例2 求方程的通解. ,x,03dt
1t33,t2(通解为 , 这里为任意常数) c,c,c,x,ce,e(ccost,csint)12312322
32dxdxdx例3 求方程的通解. ,3,3,x,032dtdtdt
2t(通解x,(c,ct,ct)e, 这里c,c,c,为任意常数) 123123
42dxdx例4 求方程的通解. ,2,x,042dtdt
(通解为 , 这里为任意常数.) x,(c,ct)cost,(c,ct)sintc,c,c,c12341234作业 2(单号习题) P164
欧拉方程
形如
nn,1dydydynn,1 (4.29) x,ax,?,ax,ay,01n,1nnn,1dxdxdx
的方程称为欧拉方程,其中为常数. 此方程可以通过变量变换化为常系数齐次a,a,?,a12n
线性微分方程,因而求解问题也就可以解决.
方程(4.31)的重实根,对应于方程(4.29)的个解 K,Kmm0
KKKK2m,10000 x,xlnx,xlnx,?,xlnx
方程(4.31)的重复根,对应于方程(4.29)的个实值解 K,,,i,m2m
,,,m,1, xcos(,lnx),xlnxcos(,lnx),?,xlnxcos(,lnx)
,,,m,1. xsin(,lnx),xlnxsin(,lnx),?,xlnxsin(,lnx)
2dydy2例5 求方程的通解 x,x,y,02dxdx
(通解为, 这里为任意常数.) y,(c,clnx)xc,c1212
2dydy2例6 求方程的通解 x,3x,5y,02dxdx
1(通解为, 这里c,c为任意常数) y,(ccos(2lnx),csin(2lnx))1212x
,4.2.3 常系数非齐次线性微分方程比较系数法与拉普拉斯变换法
常系数非齐次线性微分方程
nn,1dxdxdx L[x],,a,?,a,ax,f(t) (4.32) 1n,1nnn,1dtdtdt
的求解问题,其中a,a,?,a为常数,而f(t)为连续函数. 12n
(一) 比较系数法
类型1
,1mm,t设 ,其中及()为实常f(t),(bt,bt,?,bt,b)ebi,0,1,?,m,01,1imm数,则方程(4.32)有形如
,1kmm,t, (4.33) x,t(Bt,Bt,?,Bt,B)e01,1mm的特解,其中为特征方程的根的重数(单根相当于=1;当不是特征根时,F(,),0,,kk
取=0),而是待定常数,可以通过比较系数法来确定. B,B,?,B,Bk01m,1m
(1) 如果=0,则此时 ,
mm,1 f(t),bt,bt,?,bt,b01m,1m分两种情形讨论
1) 在=0不是特征根的情形,即, F(0),0,
2) 在=0是重特征根的情形,即,k
(k,1)(k),, F(0),F(0),?,F(0),0,F(0),0
,t,(2) 如果0,则作变量变换,将方程(4.32)化为 x,ye,
nn,1dydydym (4.37) ,A,?,A,Ay,bt,?,b1n,1n0mnn,1dtdtdt
其中都是常数. A,A,?,A12n
在不是特征方程(4.21)的根的情形,方程(4.37)有特解 ,
mm,1,因而方程(4.32)有特解 y,Bt,Bt,?,Bt,B01m,1m
,1mm,t. x,(Bt,Bt,?,Bt,B)e01,1mm在是特征方程(4.21)的重根的情形,方程(4.37)有特解 ,k
kmm,1,因而方程(4.32)有特解 y,t(Bt,Bt,?,Bt,B)01m,1m
,1kmm,tx,t(Bt,Bt,?,Bt,B)e. 01,1mm
2dxdx例7 求方程的通解 ,2,3x,3t,12dtdt
13t,t(通解为) x,ce,ce,t,123
2dxdx,t例8 求方程的通解 ,2,3x,e2dtdt
13t,t,t(通解为) x,ce,ce,te124
32dxdxdx,t例9 求方程的通解 ,3,3,x,e(t,5)2dt3dtdt
12,t3,t(通解为,这里为任意常数) c,c,cx,(c,ct,ct)e,t(t,20)e12312324
3 作业 P164
类型2
,t设 ,其中为实常数,而是带实A(t),B(t)f(t),[A(t)cos,t,B(t)sin,t]e,,,
系数的的多项式,其中一个的次数为,而另一个的次数不超过,则有如下结论:方mmt
程(4.32)有形如
k,t, (4.38) x,t[P(t)cos,t,Q(t)sin,t]e的特解,其中为特征方程的根的重数,而为待定的带实F(,),0,,i,P(t),Q(t)k
,可以通过比较系数法来确定. ,,,,P(t),2ReD(t),Q(t),2ImD(t)
2dxdx例10 求方程的通解 ,4,4x,cos2t2dtdt
1,2t,2t(通解为) x,ce,cte,sin2t128
特殊情形
,t,t f(t),A(t)ecos,t,或f(t),B(t)esin,t
可用复数法求解.
2dxdx例11 求方程,4,4x,cos2t的通解 2dtdt
1,2t,2t (通解为) x,ce,cte,sin2t128
(二)拉普拉斯变换法
常系数齐次线性微分方程(组)还可以应用拉普拉斯变换法进行求解.
由积分
,st, F(s),ef(t)dt,0
所定义的确定于复平面()上的复变数的函数,称为函数的拉普拉斯Res,,F(s)f(t)s
,t变换,其中于上有定义,且满足不等式 ,这里 f(t)f(t),Met,0
为两个正常数. 称为原函数,而称为像函数. M,,f(t)F(s)
应用
设给定微分方程
nn,1dxdxdx (4.32) ,a,?,a,ax,f(t)1n,1nnn,1dtdtdt
(n,1)n,1,,及初始条件 ,其中为常数,而x(0),x,x(0),x,?,x(0),xa,a,?,af(t)12n000为连续函数且满足原函数的条件.
dx2t例12 求方程满足初始条件的解 x(0),0,x,edt
2tt(解为) x(t),e,e
2,,,,例13 求解方程;,其中为非零常数. x(0),x,x(0),xa,bx,ax,bsinat00
,xb0解为xtatatatxatat()(sincos)cossin,,,,022aa 1,,,,,[(2)sin(2)cos)]baxataaxbtat0022a
习题 第165页第4、6、7题
?4.3 高阶方程的降阶和幂级数解法
4.3.1 可降阶的一些方程类型
阶微分方程一般地可写为 n
(n), F(t,x,x,?,x),0
(k,1),(1)方程不显含未知函数,或更一般地,设方程不含,即方程为 x,x,?,xx
(k)(k,1)(n) (1,k,n) (4.57) F(t,x,x,?,x),0
(k)令 ,则方程即降为关于的阶方程 yx,yn,k
,(相当于的情形),则由变换便把方程化为特别地, 若方程不显含n,2,k,1x,yx
一阶方程.
54dx1dx例, 求方程的解. ,,054tdtdt
532(通解为,其中是任意常数) x,ct,ct,ct,ct,cc,c,?,c12345125
(2)不显含自变量的方程 t
(n), (4.59) F(x,x,?,x),0
,,并以它为新未知函数,而视为新自变量,则方程可降低一阶. 令 x,yx
2,,,例2 求方程的解. xx,(x),0
2(通解为其中是任意常数) x,ct,c(c,2c)c,c111(3)齐线性微分方程
,1nndxdx (4.2) ,a(t),?,a(t)x,0n1nn,1dtdt
4.3.2 二阶线性微分方程的幂级数解法 考虑齐线性微分方程
2dydy (4.72) ,p(x),q(x)y,02dxdx
,,及初始条件的情况. y(x),y,y(x),y0000定理10 若方程(4.72)中系数和都能展成的幂级数,且收敛区间为p(x)q(x)x
,则方程(4.72)有形如 x,R
,ny,ax (4.73) ,nn0,
的特解,也以为级数的收敛区间. x,R
阶贝塞尔方程 n
2dydy222 (4.74) x,x,(x,ny),02dxdx
4.3.3 第二宇宙速度计算
建立物体垂直上抛运动的微分方程. 以分别表示地球和物体的质量.按牛顿万有M,m引力定律,作用于物体的引力(空气阻力忽略不计)为 F
mM (4.80) F,k2r
这里表示地球的中心和物体重心之间的距离,为万有引力常数. rk
53(米/秒). V,2gR,2,9.81,63,10,11.2,100
第二宇宙速度指的就是公里/秒这个速度. V,11.20
习题4.3 第182页 1(3)、(3)、(5),2(1),4,5,7
范文四:线性方程系统
7
M A T L A B \
M A T L A B 7 . 2
7.1
A 6 7
d e t ( A ) r a n k ( A ) i n v ( A ) p i n v ( A ) t r a c e ( A ) 7 . 1
A
A A
A A
A A m n n m A p i n v ( A ) = i n v ( A ) A
d e t i n v r a n k
(b)
(c) A
d e t ( A ) 1
A 1
(d)
(e)
A m n r A A r A r =n A M A T L A B o r t h A
A A x = 0 x M A T L A B n u l l
. . v B = . . v ) v 1 v 2 . (v 1v 2. n n
B n 1 v i
s u b s p a c e 6 8
o r t h ( A ) n u l l ( A ) s u b s p a c e ( x , y ) s u b s p a c e ( A , B ) 7 . 2
o r t h n u l l s u b s p a c e 7 . 1 (a)
A A
A x y
A B
(b)
(c)
Empty Matrix
A 1
(d)
(e)
o r
t
h
(f)
/ 2 s u b s p a c e
7.2 L U
M A T L A B \
M A T L A B
A n m b x n B X n p M A T L A B A x = b
x = A \ b
A X = B B = (b b ... b )
1
2
p
X = A \ B
A 7 . 3
M A T L A B
b
x = (
x 1
x 2) ′ x = A \ b
M A T L A B A M A T L A B A C h o l e s k y
L U L U A = L U U L
L L P
P n n
L U L l L L = P ′ L l
M A T L A B l u U L P 6 9L U
[ L , U ] = l u ( A ) [ L , U , P ] = l u ( A )
U L L P U L P L U = P A
7 . 4
A = [1 2 3 ; 4 5 6 ;7 8 0] [ L , U ] = l u ( A )
A 1 (1, 1) 1 3 7 1 A 1 1 A 2
2 (2, 2) 2 3 A 3 A 4 U
1 1 3
2 2 3
P 1 P 2 P
P
[ L , U , P ] = l u ( A )
A x = b A n n b n M A TLAB Help Desk 7 0
x = b i c g ( A , b , t o l , m a x i t , M )
t o l n o r m ( b A *x ) / n o r m ( b ) m a x i t M
. . , b i c g ( A , b , . M 1 , M 2 , x 0)
M 1 M 2 M 1 M 2 M M = M 1 M 2 x 0
[ x , f l a g , r e l r e s , i t e r ,
. . ) r e s v e c t ] =b i c g (. . . ) b i c g s t a b (. . . ) c g s (.
x b i g c flag i t e r re s v e c t b i c g
b i c g
gmres(A, b, restart, re s t a r t
. . . ) b i c g
. . ) p c g (.
b i c g
. . ) q m r (.
b i c g
7.3
L U A
m n A P L m n R PA =L R
1)
2) 1
4 ) 1 M A T L A B r r e f A x = b 7 1
r r e f ( A ) r r e f ( A , t o l ) r r e f m o v i e ( A )
3)
A r r e f ( A ) t o l
t o l = m a x ( s i z e ( A ) ) *e p s *norm(A, inf) 7 . 6 n o r m 7 . 5
(a)
r r
e
f ( A ) A r r e f ( A ′ ) A
A r e f = r r e f ( A ) B r e f = r r e f ( B )
(b) A A A 2 B 3 r a n k A = r a n k ( A ) r a n k B = r a n k ( B )
r r e f A x = b B =(A b) C = r r e f ( B ) B C
? C
. . ,0, 1) ? C (0, 0, .
? C
7.4 Cholesky
A A =A x 0 x A x > 0 G G G =A
L U C h o l e s k y L U C h o l e s k y
\ M A T L A B C h o l e s k y c h o l A C h o l e s k y 7 2C h o l e s k y
c h o l ( A )
[ G , e r r ] = c h o l ( A ) R 1 = c h o l u p d a t e ( R , x )
A C h o l e s k y A
A C h o l e s k y G A e r r
R = c h o l ( A ) x A A +x x C h o l e s k y R 1
R 1 = c h o l u p d a t e ( R , x , ’-’) R = c h o l ( A ) x A
A x x C h o l e s k y R 1
7 . 6
Te s
t = G ′*G
A
(b)
L U
C h o l e s k y
7.5 QR
L U C h o l e s k y Q R Q R
A n n A
A = Q R
Q R A A x = b Q R x = b
R x = Q b
Q R
M A T L A B q r Q R m n A m n 7 3Q R
[ Q , R ] = q r ( A ) [ Q , R , P ] = q r ( A ) [ Q , R ] = q r ( A , 0 )
m m Q R Q Q R A = Q R
Q R P Q R A P =Q R A Q R m n A Q n Q A help qr
[ Q 1 , R 1 ]=
q r d e l e t e ( Q , R , j ) [ Q 1 , R 1 ]=
q r i n s e r t ( Q , R , b , j )
A j Q R Q R A Q R
A j b Q R Q R A Q R j =n + 1
7 . 7
(a) A x =b A b
A \
b
(b) Q
R
Q R ( 7 . 7 )
Q R G i v e n s p l a n e r o t 2 G i v e n s G i v e n s 7 4G i v e n s J a c o b i
p l a n e r o t ( x ) [ G , y ] = p l a n e r o t ( x ) r j r ( A )
x 1 2 2 G i v e n s M A T L A B q r i n s e r t q r d e l e t e G G i v e n s y =G x
A J a c o b i
7 . 8
G
i v e
n s 2 2 A x y
G = p l a n e r o t ( x ) G x (A 1 ) x A n e w = G *A A
A A n e w
( ) 7 . 6 n o r m 7 - 1 A
x-y
7-1 x -y G i v e n s
G i v e n s 1 2 . 2 p l a n e r o t
7.6
M A T L A B n o r m 7 5
7 . 9
x=[3 4 5]
p -
7 6
n o r m e s t
7 6
7 . 1 0
(a)
(b)
A x = b 1 A / b x
c o n d ( A ) A 8 . 3 7 7
7 . 11
H i l b e r t ( 4 . 4 )
b a d = c o n d ( h i l b ( 5 ) )
b a d
7.7
m n A x = b m >n
x m
\ n
n l
s
l s c o v 9 s p a u g m e n t 7 8
A \ b
3 . 3 b =B B
s p a u g m e n t ( A , c ) T =[ c *I A; A′0] T \z
A x = b z b c M A T L A B s p p a r m s h e l p s p p a r m s
n n l s ( A , b ) l s c o v ( A , b , v )
help nnls V (b A x ) ’ (V 1(b A x ) help lscov
M A T L A B Q R 7 . 1 2
n m A x = b M A T L A B 7 . 1 3
(a)
M A
T L A B
r r
e f
7
. 3
t
t = 0 . 5 M A T L A B (b)
a b
2 / 7 a x = b
( a \ b ) a x =b
范文五:线性方程求解
线性方程组求解
1. 直接法
Gauss 消元法:
function x=DelGauss(a,b)
% Gauss消去法
[n,m]=size(a);
nb=length(b);
det=1;%存储行列式值
x=zeros(n,1);
for k=1:n-1
for i=k+1:n
if a(k,k)==0
return
end
m=a(i,k)/a(k,k);
for j=k+1:n
a(i,j)=a(i,j)-m*a(k,j);
end
b(i)=b(i)-m*b(k);
end
det=det*a(k,k);
end
det=det*a(n,n);
for k=n:-1:1 %回代
for j=k+1:n
b(k)=b(k)-a(k,j)*x(j);
end
x(k)=b(k)/a(k,k);
end
Example:
>> A=[1.0170 -0.0092 0.0095;-0.0092 0.9903 0.0136;0.0095 0.0136 0.9898]; >> b=[1 0 1]';
>> x=DelGauss(A,b)
x =
0.9739
-0.0047
1.0010
列主元 Gauss 消去法:
function x=detGauss(a,b)
% Gauss列主元消去法
[n,m]=size(a);
nb=length(b);
det=1;%存储行列式值
x=zeros(n,1);
for k=1:n-1
amax=0;% 选主元
for i=k:n
if abs(a(i,k))>amax
amax=abs(a(i,k));r=i;
end
end
if amax<>
return;
end
if r>k %交换两行
for j=k:n
z=a(k,j);a(k,j)=a(r,j);a(r,j)=z; end
z=b(k);b(k)=b(r);b(r)=z;det=-det; end
for i=k+1:n %进行消元
m=a(i,k)/a(k,k);
for j=k+1:n
a(i,j)=a(i,j)-m*a(k,j); end
b(i)=b(i)-m*b(k);
end
det=det*a(k,k);
end
det=det*a(n,n);
for k=n:-1:1 %回代 for j=k+1:n
b(k)=b(k)-a(k,j)*x(j); end
x(k)=b(k)/a(k,k);
end
Example:
>> x=detGauss(A,b)
x =
0.9739
-0.0047
1.0010
Gauss-Jordan 消去法 : function x=GaussJacobi(a,b) % Gauss-Jacobi消去法 [n,m]=size(a);
nb=length(b);
x=zeros(n,1);
for k=1:n
amax=0;% 选主元 for i=k:n
if abs(a(i,k))>amax amax=abs(a(i,k));r=i; end
end
if amax<>
return;
end
if r>k %交换两行
for j=k:n
z=a(k,j);a(k,j)=a(r,j);a(r,j)=z; end
z=b(k);b(k)=b(r);b(r)=z;
end
%进行消元
b(k)=b(k)/a(k,k);
for j=k+1:n
a(k,j)=a(k,j)/a(k,k);
end
for i=1:n
if i~=k
for j=k+1:n
a(i,j)=a(i,j)-a(i,k)*a(k,j); end
b(i)=b(i)-a(i,k)*b(k);
end
end
end
for i=1:n
x(i)=b(i);
end
Example:
>> x=GaussJacobi(A,b)
x =
0.9739
-0.0047
1.0010
LU 分解法:
function [l,u]=lu(a)
%LU分解
n=length(a);
l=eye(n);
u=zeros(n);
for i=1:n
u(1,i)=a(1,i);
end
for i=2:n
l(i,1)=a(i,1)/u(1,1);
end
for r=2:n
%%%%
for i=r:n
uu=0;
for k=1:r-1
uu=uu+l(r,k)*u(k,i); end
u(r,i)=a(r,i)-uu;
end
%%%%
for i=r+1:n
ll=0;
for k=1:r-1
ll=ll+l(i,k)*u(k,r); end
l(i,r)=(a(i,r)-ll)/u(r,r); end
%%%%
End
function x=lusolv(a,b)
%LU分解求解线性方程组 aX=b if length(a)~=length(b)
error('Error in inputing!')
return;
end
n=length(a);
[l,u]=lu(a);
y(1)=b(1);
for i=2:n
z=0;
for k=1:i-1
z=z+l(i,k)*y(k);
end
y(i)=b(i)-z;
end
x(n)=y(n)/u(n,n);
for i=n-1:-1:1
z=0;
for k=i+1:n
z=z+u(i,k)*x(k);
end
x(i)=(y(i)-z)/u(i,i);
end
Example:
>> x=lusolv(A,b)
x =
0.9739 -0.0047 1.0010
对称正定矩阵之 Cholesky 分解法: function L=Cholesky(A)
%对对称正定矩阵 A 进行 Cholesky 分解 n=length(A);
L=zeros(n);
for k=1:n
delta=A(k,k);
for j=1:k-1
delta=delta-L(k,j)^2;
end
if delta<>
return;
end
L(k,k)=sqrt(delta);
for i=k+1:n
L(i,k)=A(i,k);
for j=1:k-1
L(i,k)=L(i,k)-L(i,j)*L(k,j);
end
L(i,k)=L(i,k)/L(k,k);
end
end
function x=Chol_Solve(A,b)
%利用对称正定矩阵之 Cholesky 分解求解线性方程组 Ax=b n=length(b);
l=Cholesky(A);
x=ones(1,n);
y=ones(1,n);
for i=1:n
z=0;
for k=1:i-1
z=z+l(i,k)*y(k);
end
y(i)=(b(i)-z)/l(i,i);
end
for i=n:-1:1
z=0;
for k=i+1:n
z=z+l(k,i)*x(k);
x(i)=(y(i)-z)/l(i,i);
end
Example:
>> a=[9 -36 30 ;-36 192 -180;30 -180 180]; >> b=[1 1 1]';
>> x=Chol_Solve(a,b)
x =
1.8333 1.0833 0.7833
对称正定矩阵之 LDL’ 分解法: function [L,D]=LDL_Factor(A)
%对称正定矩阵 A 进行 LDL' 分解 n=length(A);
L=eye(n);
D=zeros(n);
d=zeros(1,n);
T=zeros(n);
for k=1:n
d(k)=A(k,k);
for j=1:k-1
d(k)=d(k)-L(k,j)*T(k,j);
end
if abs(d(k))<>
return;
end
for i=k+1:n
T(i,k)=A(i,k);
for j=1:k-1
T(i,k)=T(i,k)-T(i,j)*L(k,j);
end
L(i,k)=T(i,k)/d(k);
end
D=diag(d);
function x=LDL_Solve(A,b)
%利用对对称正定矩阵 A 进行 LDL' 分解法求解线性方程组 Ax=b n=length(b);
[l,d]=LDL_Factor(A);
y(1)=b(1);
for i=2:n
z=0;
for k=1:i-1
z=z+l(i,k)*y(k);
end
y(i)=b(i)-z;
end
x(n)=y(n)/d(n,n);
for i=n-1:-1:1
z=0;
for k=i+1:n
z=z+l(k,i)*x(k);
end
x(i)=y(i)/d(i,i)-z;
end
Example:
>> x=LDL_Solve(a,b)
x =
1.8333 1.0833 0.7833
2. 迭代法
Richardson 迭代法:
function [x,n]=richason(A,b,x0,eps,M)
%Richardson法求解线性方程组 Ax=b
%方程组系数矩阵 :A
%方程组之常数向量 :b
%迭代初始向量 :X0
%e解的精度控制 :eps
%迭代步数控制:M
%返回值线性方程组的解:x
%返回值迭代步数:n
if(nargin == 3)
eps = 1.0e-6;
M = 200;
elseif(nargin == 4)
M = 200;
end
I =eye(size(A));
x1=x0;
x=(I-A)*x0+b;
n=1;
while(norm(x-x1)>eps)
x1=x;
x=(I-A)*x1+b;
n = n + 1;
if(n>=M)
disp('Warning: 迭代次数太多,现在退出! ');
return;
end
end
Example:
>> A=[1.0170 -0.0092 0.0095;-0.0092 0.9903 0.0136;0.0095 0.0136 0.9898]; >> b=[1 0 1]';x0=[0 0 0]';
>> [x,n]=richason(A,b,x0)
x =
0.9739
-0.0047
1.0010
n =
5
Jacobi 迭代法:
function [x,n]=jacobi(A,b,x0,eps,varargin) if nargin==3
eps= 1.0e-6;
M = 200;
elseif nargin<>
error
return
elseif nargin ==5
M = varargin{1};
end
D=diag(diag(A)); %求 A 的对角矩阵 L=-tril(A,-1); %求 A 的下三角阵 U=-triu(A,1); %求 A 的上三角阵 B=D/(L+U);
f=D/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
Example:
>> [x,n]=Jacobi(A,b,x0)
x =
0.9739
-0.0047
1.0010
n =
5
Gauss-Seidel 迭代法:
function [x,n]=gauseidel(A,b,x0,eps,M)
if nargin==3
eps= 1.0e-6;
M = 200;
elseif nargin == 4
M = 200;
elseif nargin<>
error
return;
end
D=diag(diag(A)); %求 A 的对角矩阵
L=-tril(A,-1); %求 A 的下三角阵
U=-triu(A,1); %求 A 的上三角阵
G=(D-L)/U;
f=(D-L)/b;
x=G*x0+f;
n=1; %迭代次数
while norm(x-x0)>=eps
x0=x;
x=G*x0+f;
n=n+1;
if(n>=M)
disp('Warning: 迭代次数太多,可能不收敛! '); return;
end
end
Example:
>> [x,n]=gauseidel(A,b,x0)
x =
0.9739
-0.0047
1.0010
n =
4
超松驰迭代法:
function [x,n]=SOR(A,b,x0,w,eps,M)
if nargin==4
eps= 1.0e-6;
M = 200;
elseif nargin<>
error
return
elseif nargin ==5
M = 200;
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
Example:
>> [x,n]=SOR(A,b,x0,1)
x =
0.9739
-0.0047
1.0010
4
对称逐次超松驰迭代法:
function [x,n]=SSOR(A,b,x0,w,eps,M) if nargin==4
eps= 1.0e-6;
M = 200;
elseif nargin<>
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 的上三角阵 B1=inv(D-L*w)*((1-w)*D+w*U);
B2=inv(D-U*w)*((1-w)*D+w*L);
f1=w*inv((D-L*w))*b;
f2=w*inv((D-U*w))*b;
x12=B1*x0+f1;
x =B2*x12+f2;
n=1; %迭代次数
while norm(x-x0)>=eps
x0=x;
x12=B1*x0+f1;
x =B2*x12+f2;
n=n+1;
if(n>=M)
disp('Warning: 迭代次数太多,可能不收敛! '); return;
end
end
Example:
>> [x,n]=SSOR(A,b,x0,1)
x =
0.9739
-0.0047
1.0010
n =
3
两步迭代法:
function [x,n]=twostep(A,b,x0,eps,varargin)
if nargin==3
eps= 1.0e-6;
M = 200;
elseif nargin<>
error
return
elseif nargin ==5
M = varargin{1};
end
D=diag(diag(A)); %求 A 的对角矩阵
L=-tril(A,-1); %求 A 的下三角阵
U=-triu(A,1); %求 A 的上三角阵
B1=(D-L)/U;
B2=(D-U)/L;
f1=(D-L)/b;
f2=(D-U)/b;
x12=B1*x0+f1;
x =B2*x12+f2;
n=1; %迭代次数
while norm(x-x0)>=eps
x0 =x;
x12=B1*x0+f1;
x =B2*x12+f2;
n=n+1;
if(n>=M)
disp('Warning: 迭代次数太多,可能不收敛! '); return;
end
end
Example:
>> [x,n]=twostep(A,b,x0)
x =
0.9739
-0.0047
1.0010
n =
3
最速下降法:
function [x,n]=fastdown(A,b,x0,eps) if(nargin == 3)
eps = 1.0e-6;
end
r = b-A*x0;
d = dot(r,r)/dot(A*r,r);
x = x0+d*r;
n=1;
while(norm(x-x0)>eps)
x0 = x;
r = b-A*x0;
d = dot(r,r)/dot(A*r,r);
x = x0+d*r;
n = n + 1;
end
Example:
>> [x,n]=fastdown(A,b,x0)
x =
0.9739
-0.0047
1.0010
n =
5
共轭梯度法:
function [x,n]=conjgrad(A,b,x0) if(nargin == 3)
eps = 1.0e-6;
end
r1 = b-A*x0;
p1 = r1;
d = dot(r1,r1)/dot(p1,A*p1); x = x0+d*p1;
r2 = r1-d*A*p1;
f = dot(r2,r2)/dot(r1,r1);
p2 = r2+f*p1;
n = 1;
for(i=1:(rank(A)-1))
x0 = x;
p1 = p2;
r1 = r2;
d = dot(r1,r1)/dot(p1,A*p1); x = x0+d*p1;
r2 = r1-d*A*p1;
f = dot(r2,r2)/dot(r1,r1);
p2 = r2+f*p1;
n = n + 1;
end
d = dot(r2,r2)/dot(p2,A*p2);
x = x+d*p2;
n = n + 1;
Example:
>> [x,n]=conjgrad(A,b,x0) x =
0.9739
-0.0047
1.0010
n =
4
预处理的共轭梯度法:
当 AX=B为病态方程组时,共轭梯度法收敛很慢。预处理技术是在用共轭梯度 法求解之前对系数矩阵做一些变换后再求解。
Example:
A=[25 -300 1050 -1400 630;
-300 4800 -18900 26880 -12600;
1050 -18900 79380 -117600 56700;
-1400 26880 -117600 179200 -88200;
630 -12600 56700 -88200 44100;];
b=[5 3 -1 0 -2]';
x0=[0 0 0 0 0]';
M=pascal(5)%预处理矩阵
[x,flag,re,it]=pcg(A,b,1.e-8,1000,M,M,x0)
%flag=0表示在指定迭代次数之内按要求精度收敛
%re表示相对误差
%it表示迭代次数
>>
x =
5.7667
2.9167
1.9310
1.4333
1.1349
d = ones(n,1);
a = ones(n-1,1);
c = ones(n-1);
for(i=1:n-1)
a(i,1)=A(i+1,i);
c(i,1)=A(i,i+1);
d(i,1)=A(i,i);
end
d(n,1) = A(n,n);
for(i=2:n)
d(i,1)=d(i,1) - (a(i-1,1)/d(i-1,1))*c(i-1,1); b(i,1)=b(i,1) - (a(i-1,1)/d(i-1,1))*b(i-1,1); end
x(n,1) = b(n,1)/d(n,1);
for(i=(n-1):-1:1)
x(i,1) = (b(i,1)-c(i,1)*x(i+1,1))/d(i,1);
end
Example:
>> A=[2.5 1.0 0 0 0 0;
1 1.5 1.0 0 0 0;
0 1.0 0.5 1.0 0 0;
0 0 1.0 0.5 1.0 0;
0 0 0 1.0 1.5 1.0;
0 0 0 0 1.0 2.5];
>> b=ones(6,1);
>> x=followup(A,b)
x =
0.4615
>> A=[1 -2 3;4 1 0;7 1 6;9 5 8];b=[1 0 1 0]'; >> x=pinv(A)*b
x =
0.0903
-0.3248
0.1048
>> x=A/b
x =
0.0903
-0.3248
0.1048
>> x=lsqnonneg(A,b)
x =
0.0826
>> x=A'*A/A'*b
x =
0.0903
-0.3248
0.1048
5. 有无穷组解的线性方程组的解法 齐次线性方程组的通解:
特解与通解:
1. 求 Ax=b的一个特解
2. 求 Ax=0的通解
3. 将特解与通解组合成最终解
Example:
>> A=[4 8 -6 2;1 3 9 5;5 11 3 7;3 5 -15 -3];
>> b=[1 2 3 -1]';
>> d=[A b];
>> s=rref(d) %采用增广矩阵阖求解
s =
1.0000 0 -22.5000 -8.5000 -3.2500
0 1.0000 10.5000 4.5000 1.7500
0 0 0 0 0
0 0 0 0 0
特解:(-3.25 1.75 0 0) ’
基础解系有两个基向量:(-22.5 10.5 1 0)’ (-8.5 4.5 0 1)’
=0>=0>