(整理)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) 求出方程 x csc y 'y'=+; (2) t

ln t

36

6x 4tx''x't 2

=+-的通解. 这里x x x f s i n 1c s c )(=

=和t

t

t f ln 36)(=不是多项式函数、不是指数函数、不是可以用形式特解的待定系数法来求解方程的特解.

(2) 解法思路:考察f(t)q(t)x dt dx

p(t)

dt x d 22=++ (**). 为了求出方程(**)的一个特解,先考虑相应的二阶齐次线性方程0q(t)x dt

dx

p(t)

dt x d 22=++(*),假定已知齐次线性方程的基本解组)(),(21t x t x ,则齐次线性方程的通解为(t)x c (t)x c x (t)2211+=,其中21,c c 为常数.

现假定方程(**)具有形如(t)(t)x c (t)(t)x c (t)x ~

2211+=的特解(这就是常数变易法叫法由来!),经计算得到

(t)]'(t)x c (t)'(t)x [c (t)](t)x 'c (t)(t)x '[c (t)'x ~22112211+++=,

注意到将其代入原方程(**)只得一个等式,而这里有两个未知函数(t)c (t),c 21,因此我们添加一个限制条件 0(t)](t)x 'c (t)(t)x '[c 2211=+;进一步求二阶导数得到

(t)]'(t)x 'c (t)'(t)x '[c (t)]''(t)x c (t)''(t)x [c (t)''x ~22112211+++=,

将(t)''x ~(t),'x ~(t),x ~

代入原方程得到, f(t)'x 'c 'x 'c ]q(t)x 'p(t)x ''(t)[x c ]q(t)x 'p(t)x ''(t)[x c 221122221111=+++++++,

注意到(t) x (t),x 21为方程(*)的解,因此上述左端第一项和第二项都为零,即得到如下方

程组 ???=+=+f(t)

'c 'x 'c 'x 0'c x 'c x 22112211,由此运用克莱姆法则得到]x ,W[x f(t)'x 0

x 'c ,]x ,W[x 'x f(t)x 0'c 211

1221221==,这里'

x 'x x x ]x ,W[x 212

121=

为Wronski 行列式,是不为零的(为什么?).

最后对上面两个等式两边同时关于变量t 积分可得(t)c (t),c 21. 例56 求解 x csc y 'y'=+的一个特解.

解:第一步:注意到原方程已是标准形式了,相应的齐次方程为0''=+y y ,其特征方程为

012=+λ,特征值为i ±=2,1λ.

于是相应的基本解组为sin x y x ,cos y 21==.

第二步:假定原方程具有如下特解 2211(x )y c (x )y c (x )y ~

+=,于是由常数变易法知,(x )c (x ),c 21满足???=+=+f(x)'c 'y 'c 'y 0

'c y 'c y 2

2112211,解得

1cos sin sin cos cos csc sin 0

)('1-=-=

x x x x x x x

x c ,x x

x

x x x x x x

x c sin cos cos sin sin cos csc sin 0

cos )('1=--=.

于是得到,β|sinx |ln (x )c α,x (x )c 21+=+-=,其中βα,为任意常数.

特别地,取0β 0,α==得到所求特解为sin x |sin x |ln x cos -x (x)y ~

?+=. 例57. Find a particular solution to the differential equation ln x e y 2y''y'x

-=++.

Solution (1) The equation has standard form and the associated homogeneous equation is

0y 2y''y'=++, whose characteristic equation is 0122=++λλ. Then we get 12,1-=λ and

corresponding fundamental solutions to homogeneous equation are x

2x

1x e

y ,e y --==.

(2) Suppose the original equation has the following particular solution 2211*(x )y c (x )y c y +=, Then we get x ln e f(x) ,f(x)

'c y 'c 'y 0

'c y 'c y x -22112211=??

?=+=+. By applying Cramer's Rule, we get

x ln x e ln x xe -xe e e xe e xe e ln x e xe 0'c 2x 2x x

x x

x

x

x x x x 1-==---=

-----------, ln x xe e e xe e

ln x e e -0e 'c x

x x

x

x

x t

--t 2=--=------

We use integration by parts to determine that

α4

x ln x 2x dx 2x ln x 2x x ln x dx -c 2

221++-=+-==??

,

βx xln x dx x

x

xln x ln xdx c 2+-=-==?

?. Particularly, we choose 0==βα and get a particular solution to our differential equation is

x 2x 2x

x

22*

e x 4

3

ln x e 2x x )x e

(x ln x )e 4

x ln x 2x (-y -----=-++=.

作业51. Find a particular Solution of the differential equation x

e 112y 3y''y'-+=+-.

例58. 求方程t

ln t

36

6x t x'4'x't 2

=+-的通解. 解:(1)相应齐次方程为06x t x'4'x't 2

=+-,这是一个欧拉方程. 令 ,e t τ

=

其特征方程为064λ1)λ(λ=+--,3λ 2,λ21==. 于是相应齐次线性方程的基本解组为

332221t e x ,t e x ====ττ.

(2)改写原方程为标准形式32t ln t 36x t 6 x't 4

'x'=+

-,记3

t

ln t

36f(t)=. 假定上述方程具有如下特解2211*

(t)x c (t)x c (t)x +=,于是有

???=+=+f(t)'c x 'c 'x 0'c x 'c x 2

2112211,42322331t 36ln t 3t 2t t t 3t t ln t 36t 0'c -==, 52

3

2322t 36ln t 3t 2t t t t ln t 362t 0

t 'c == 运用分部积分法得到,

???++=-==-=------α4t ln t 12t dt t 12ln t 12t )ln td(t 12dt ln t 36t (t)c 3343341; ???+-=+===------βt 4

9

ln t -9t dt t 9ln t t 9-)ln td(t 9-dt ln t 36t (t)c 4454452

特别地,取0==βα,得到原方程的一个特解)4

7(3ln t t 1(t)x *

+=.

因此,原方程的通解为)4

7(3ln t t 1βt αt x(t)3

2+++=,其中βα,为任意常数. 作业52. 求解2

2

t 34 t 6x t x''x't +=+-的通解.

2. 非齐次线性方程的叠加原理 (1)参见教材P131,习题2.

例59 求方程sin t 1

1x 'x'-

=+的一个特解. 解:令sin t

1

(t)f 1,(t)f 21-==.

(1) 考察相应齐次线性方程0x 'x'=+,其特征方程01λ2

=+的特征根为i λ1,2±=,相应的

基本解组为sin t x t,cos x 21==.

(2) 考察非齐次线性方程(t)f x 'x '1=+,假定方程具有特解A x ?=,代入方程运用待定系数法求得1x

?=. (3) 考察非齐次线性方程(t)f x 'x '2=+,运用例56的结果知,sin t |sin t |ln t cos -t (t)x ~?+=

(4) 由非齐次线性方程的叠加原理知,原方程的一个特解sin t |sin t |ln cost t 1x *

+-=.

作业53. 求方程17sin(2t)4e

5x 2x ''x 't

+=++-的通解.

3. 一类特殊齐次线性微分方程基本解组和特解求法

(1)乘积求导法则:'u(x)v'(x)v(x)u''(u(x)v(x))

+=, 'u(x)v'(x)v'2u'(x)v(x)'u'''(u(x)v(x))++=.

例60. 求解方程(1) 02y 4x y''1)y'(x 2

=++-; (2) 02y 2x y''y'x 2

=+-通解. 解:(1) 令1x u(x )2

-=,于是方程的左端为'y(x))' (u(x)?,于是得到

βx αu(x)y(x)+=,其中β α,为任意常数.

于是得到原方程的通解为1

x βx

1x αy(x)22-+-=

,其中β α,为任意常数. (2)经观察不能直接运用乘积求导法则,令v

2

(x )'u' ,v(x )x (x )u' ,v(x )x u(x )2=-==,

由v x v v x 2x v (x )u'22-=-=,解得3

x v(x )=,此时x 1u(x)=,验证可知v

2(x)'u'=

.

原方程两边同除以v(x),得到新方程为

0')'x

y

( 0,y x 2y'x 2x 'y'32==+-,解得通解为 x βαx

y

+=,于是原方程的通解为2 x βαx y +=,其中β α,为任意常数.

作业53. 求解方程(1) 06x y y'6x '1)y'(x 2

3

=+++的通解.

(2) 考察方程0q(t)x dt dx

p(t)dt x d 22=++,假设λt e x =代入得到特征方程0q(t)p(t)λλ2=++,若特征方程有实常数根1λ,则原方程具有解t λ1e x =.(直接代入验证

知结论成立)

例61. 求方程(1)0y x)y'(1'xy'=++-的通解;(2)2x

2e x y x )y'(1'x y'=++-一个特解.

解:(1) 改写原方程为标准形式为0y x

1

y'x x)(1'y'=++-

,原方程的特征方程为0x

1

λx x)(1λ2=++-

,可得一实根11=λ,于是原方程存在一个解函数x 1e y =. 由刘维尔公式(教材P132习题6或讲义例42)知,与(x )y 1线性无关的解为

1x dx xe e dx e

y 1(x)y (x)y x x dx x

x

121

12+==?=??-+(这里积分只是指的是一个原函数)

综上知,原方程的通解为1)(x c e c y 2x

1++=,R c ,c 21∈. (2) 运用常数变易法求解.(略)

作业54. 求方程(1)0y y'x 'x)y'-(1=-+的通解;(2)2

x )-(1y y'x 'x )y'-(1=-+一个特解.

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

迭代法求解线性方程组的研究 【摘要】:本文总结了解线性方程组的三个迭代法,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 )(--++=

弦截法非线性方程求解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)

牛顿法非线性方程求解

《MATLAB 程序设计实践》课程考核 ---第37-38页 题1 : 编程实现以下科学计算算法,并举一例应用之。(参考书籍《精 通MAT LAB科学计算》,王正林等著,电子工业出版社,2009 年) “牛顿法非线性方程求解” 弦截法本质是一种割线法,它从两端向中间逐渐逼近方程的根;牛顿法本质上是一种切线法,它从一端向一个方向逼近方程的根,其递推公式为: - =+n n x x 1) ()(' n n x f x f 初始值可以取)('a f 和)('b f 的较大者,这样可以加快收敛速度。 和牛顿法有关的还有简化牛顿法和牛顿下山法。 在MATLAB 中编程实现的牛顿法的函数为:NewtonRoot 。 功能:用牛顿法求函数在某个区间上的一个零点。 调用格式:root=NewtonRoot )(```eps b a f 其中,f 为函数名; a 为区间左端点; b 为区间右端点 eps 为根的精度; root 为求出的函数零点。 ,

牛顿法的matlab程序代码如下: function root=NewtonRoot(f,a,b,eps) %牛顿法求函数f在区间[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) root=a; end if (f2==0) root=b; end if (f1*f2>0) disp('两端点函数值乘积大于0 !'); return; else tol=1; fun=diff(sym(f)); %求导数 fa=subs(sym(f),findsym(sym(f)),a); fb=subs(sym(f),findsym(sym(f)),b); dfa=subs(sym(fun),findsym(sym(fun)),a); dfb=subs(sym(fun),findsym(sym(fun)),b); if(dfa>dfb) %初始值取两端点导数较大者 root=a-fa/dfa; else root=b-fb/dfb; end while(tol>eps) r1=root; fx=subs(sym(f),findsym(sym(f)),r1); dfx=subs(sym(fun),findsym(sym(fun)),r1); %求该点的导数值 root=r1-fx/dfx; %迭代的核心公式 tol=abs(root-r1); end end 例:求方程3x^2-exp(x)=0的一根 解:在MATLAB命令窗口输入: >> r=NewtonRoot('3*x^2-exp(x)',3,4) 输出结果: X=3.7331

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

第五章 解线性方程组的迭代法 本章主要内容: 迭代法收敛定义,矩阵序列收敛定义,迭代法基本定理,雅可比迭代法,高斯-塞德尔迭代法,系数矩阵为严格对角占优阵的采用雅可比迭代、高斯-塞德尔迭代的收敛性。 教学目的及要求: 使学生了解迭代法收敛定义,迭代法基本定理,掌握雅可比迭代法、高斯-塞德尔迭代法。 教学重点: 雅可比迭代法,高斯-塞德尔迭代法。 教学难点: 迭代法基本定理的证明以及作用。 教学方法及手段: 应用严格的高等代数、数学分析知识,完整地证明迭代法基本定理,讲清雅可比迭代法与高斯-塞德尔迭代法的关系,介绍雅可比迭代法与高斯-塞德尔迭代法在编程中的具体实现方法。 在实验教学中,通过一个具体实例,让学生掌握雅可比迭代法与高斯-塞德尔迭代法的具体实现,并能通过数值计算实验,揭示高斯-塞德尔迭代法是对雅可比迭代法的一种改进这一事实。 教学时间: 本章的教学的讲授时间为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 =-是原方程的解.

牛顿法求非线性方程的根

学科前沿讲座论文 班级:工程力学13-1班姓名:陆树飞

学号:02130827

牛顿法求非线性方程的根 一 实验目的 (1)用牛顿迭代法求解方程的根 (2)了解迭代法的原理,了解迭代速度跟什么有关 题目:用Newton 法计算下列方程 (1) 013=--x x , 初值分别为10=x ,7.00=x ,5.00=x ; (2) 32943892940x x x +-+= 其三个根分别为1,3,98-。当选择初值02x =时 给出结果并分析现象,当6510ε-=?,迭代停止。 二 数学原理 对于方程f(x)=0,如果f(x)是线性函数,则它的求根是很容易的。牛顿迭代法实质上是一种线性化方法,其基本思想是将非线性方程f(x)=0逐步归结为某种线性方程来求解。 设已知方程f(x)=0有近似根x k (假定k f'(x )0≠) ,将函数f(x)在点x k 进行泰勒展开,有 k k k f(x)f(x )+f'(x )(x-x )+≈??? 于是方程f(x)=0可近似的表示为 k k k f(x )+f'(x )(x-x )=0 这是个线性方程,记其根为x k+1,则x k+1的计算公式为 k+1k ()x =x -'() k k f x f x ,k=0,1,2,… 这就是牛顿迭代法。

三 程序设计 (1)对于310x x --=,按照上述数学原理,编制的程序如下 program newton implicit none real :: x(0:50),fx(0:50),f1x(0:50)!分别为自变量x ,函数f(x)和一阶导数f1(x) integer :: k write(*,*) "x(0)=" read(*,*) x(0) !输入变量:初始值x(0) open(10,file='1.txt') do k=1,50,1 fx(k)=x(k-1)**3-x(k-1)-1 f1x(k)=3*x(k-1)**2-1 x(k)=x(k-1)-fx(k)/f1x(k) !牛顿法 write(*,'(I3,1x,f11.6)') k,x(k) !输出变量:迭代次数k 及x 的值 write(10,'(I3,1x,f11.6)') k,x(k) if(abs(x(k)-x(k-1))<1e-6) exit !终止迭代条件 end do stop end (2)对于32943892940x x x +-+=,按照上述数学原理,编制的程序如下 program newton implicit none

线性方程组的迭代求解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...?为

非线性方程求根

第七章 非线性方程求根 教学目的与要求: 理解二分法求根的思想;掌握二分法求解过程;了解二分法的优点和缺点。了解迭代法的基本思想,迭代法的收敛条件以及局部收敛性的定义;理解基本迭代法的迭代思路,收敛条件的产生与求证过程;掌握基本迭代法的迭代格式,收敛条件的应用以及局部收敛定理。 重点和难点:迭代法的基本思想,迭代法的收敛性 ■ 教学内容: 基本概念: 的零点; 的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 ?三、迭代法的收敛条件

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 为

matlab程序设计实践-牛顿法解非线性方程

中南大学MATLAB程序设计实践学长有爱奉献,下载填上信息即可上交,没有下载券的自行百度。所需m文件照本文档做即可,即新建(FILE)→脚本(NEW-Sscript)→复制本文档代码→运行(会跳出保存界面,文件名默认不要修改,保存)→结果。第一题需要把数据文本文档和m文件放在一起。全部测试无误,放心使用。本文档针对做牛顿法求非线性函数题目的同学,当然第一题都一样,所有人都可以用。←记得删掉这段话 班级: ? 学号: 姓名:

一、《MATLAB程序设计实践》Matlab基础 表示多晶体材料织构的三维取向分布函数(f=f(φ1,φ,φ2))是一个非常复杂的函数,难以精确的用解析函数表达,通常采用离散 空间函数值来表示取向分布函数,是三维取向分布函数的一个实例。 由于数据量非常大,不便于分析,需要借助图形来分析。请你编写一 个matlab程序画出如下的几种图形来分析其取向分布特征: (1)用Slice函数给出其整体分布特征; " ~ (2)用pcolor或contour函数分别给出(φ2=0, 5, 10, 15, 20, 25, 30, 35 … 90)切面上f分布情况(需要用到subplot函数);

(3) 用plot函数给出沿α取向线(φ1=0~90,φ=45,φ2=0)的f分布情况。 (

备注:数据格式说明 解: (1)( (2)将文件内的数据按照要求读取到矩阵f(phi1,phi,phi2)中,代码如 下: fid=fopen(''); for i=1:18 tline=fgetl(fid); end phi1=1;phi=1;phi2=1;line=0; f=zeros(19,19,19); [ while ~feof(fid) tline=fgetl(fid); data=str2num(tline); line=line+1;数据说明部分,与 作图无关此方向表示f随着 φ1从0,5,10,15, 20 …到90的变化而 变化 此方向表示f随着φ 从0,5,10,15, 20 … 到90的变化而变化 表示以下数据为φ2=0的数据,即f(φ1,φ,0)

求解非线性方程实验报告

一.实验目的: 通过本节实验课的学习,要求我们理解并掌握二分法、不动点迭代、牛顿切线法及弦截法解非线性方程求根的原理,掌握相应的算法原理,通过计算机解决实验问题 二.实验内容: 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;

二分法和牛顿法求解非线性方程(C语言)

(1)二分法求解非线性方程: #include #include #define f(x)((x*x-1)*x-1) void main() {float a,b,x,eps; int k=0; printf("intput eps\n");/*容许误差*/ scanf("%f",&eps); printf("a,b=\n"); for(;;) {scanf("%f,%f",&a,&b); if(f(a)*f(b)>=0)/*判断是否符合二分法使用的条件*/ printf("二分法不可使用,请重新输入:\n"); else break; } do {x=(a+b)/2; k++; if(f(a)*f(x)<0)/*如果f(a)*f(x)<0,则根在区间的左半部分*/ b=x; else if(f(a)*f(x)>0)/*否则根在区间的右半部分*/ a=x; else break; }while(fabs(b-a)>eps);/*判断是否达到精度要求,若没有达到,继续循环*/ x=(a+b)/2;/*取最后的小区间中点作为根的近似值*/ printf("\n The root is x=%f,k=%d\n",x,k); } 运行结果: intput eps 0.00001 a,b= 2,-5 The root is x=1.324721,k=20 Press any key to continue 总结:本题关键在于两个端点的取值和误差的判断,此程序较容易。二分法收敛速度较快,但缺点是只能求解单根。 (2)牛顿法求解非线性方程: #include #include float f(float x)/*定义函数f(x)*/ {return((-3*x+4)*x-5)*x+6;} float f1(float x)/*定义函数f(x)的导数*/

C++实现 牛顿迭代 解非线性方程组

C++实现牛顿迭代解非线性方程组(二元二次为例) 求解{0=x*x-2*x-y+0.5; 0=x*x+4*y*y-4; }的方程 #include #include #define N 2 // 非线性方程组中方程个数、未知量个数#define Epsilon 0.0001 // 差向量1范数的上限 #define Max 100 // 最大迭代次数 using namespace std; const int N2=2*N; int main() { void ff(float xx[N],float yy[N]); //计算向量函数的因变量向量yy[N] void ffjacobian(float xx[N],float yy[N][N]); //计算雅克比矩阵yy[N][N] void inv_jacobian(float yy[N][N],float inv[N][N]); //计算雅克比矩阵的逆矩阵inv void newdundiedai(float x0[N], float inv[N][N],float y0[N],float x1[N]); //由近似解向量x0 计算近似解向量x1 float x0[N]={2.0,0.25},y0[N],jacobian[N][N],invjacobian[N][N],x1[N],errornorm; int i,j,iter=0; //如果取消对x0的初始化,撤销下面两行的注释符,就可以由键盘x读入初始近似解向量for( i=0;i>x0[i]; cout<<"初始近似解向量:"<

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

相关文档
最新文档