牛顿-拉夫森(Newton-Raphson)迭代法

牛顿-拉夫森(Newton-Raphson)迭代法
牛顿-拉夫森(Newton-Raphson)迭代法

§3.4 牛顿迭代法

牛顿迭代法也称为牛顿-拉夫森(Newton-Raphson)迭代法,它是数值分析中最重要的方法之一,它不仅适用于方程或方程组的求解,还常用于微分方程和积分方程求解。 3.4.1 牛顿迭代法

用迭代法解非线性方程时,如何构造迭代函数是非常重要的,那么怎样构造的迭代函数才能保证迭代法收敛呢?牛顿迭代法就是常用的方法之一,其迭代格式的来源大概有以下几种方式:

1设

],[)(2

b a C x f ∈,对)(x f 在点],[0b a x ∈作泰勒展开: !2)

)((''))((')()(2

0000x x f x x x f x f x f -+

-+=ξ

略去二次项,得到)(x f 的线性近似式:)

)((')()(000x x x f x f x f -+≈。

由此得到方程=)(x f 0的近似根(假定≠)('0x f 0),

)(')(000x f x f x x -=

即可构造出迭代格式(假定≠

)('k x f 0):

)(')

(1k k k k x f x f x x -

=+ 公式(3.4.1)

这就是牛顿迭代公式,若得到的序列{

k

x }收敛于α,则α就是非线性方程的根。

2 牛顿迭代法也称为牛顿切线法,这是由于)(x f 的线

性化近似函数)(x l =)

)((')(000x x x f x f -+是曲线y =

)(x f 过点))(,(00x f x 的切线而得名的,求)(x f 的零点代之以求)(x l 的零点,即切线)(x l 与x 轴交点的横坐标,如右图

所示,这就是牛顿切线法的几何解释。实际上,牛顿迭代法

也可以从几何意义上推出。利用牛顿迭代公式,由

k

x 得到

1

+k x ,从几何图形上看,就是过点

))

(,(k k x f x 作函数)(x f 的切线k l ,切线k l 与x 轴的交点就是1+k x

,所以有

1

)()('+-=

k k k k x x x f x f ,整理后也能得出牛顿迭代公式:

)

(')(1k k k k x f x f x x -

=+。

3 要保证迭代法收敛,不管非线性方程=)(x f 0的形式如何,总可以构造:

)()()(x f x k x x x -==? )0)((≠x k

作为方程求解的迭代函数。因为:)(')()()('1)('x f x k x f x k x --=? 而且

)

('x ?在根α附近越小,其局部收敛速度越快,故可令:0)('=α?

若≠)('αf 0(即根α不是=)(x f 0的重根),则由0)('=α?得:

)('1)(ααf k =

因此可令

)('1

)(x f x k =

,则也可以得出迭代公式:

)(')

(1k k k k x f x f x x -

=+。 4 迭代法的基本思想是将方程0)(=x f 改写成等价的迭代形式)(x x ?=,但随之而来的

问题却是迭代公式不一定收敛,或者收敛的速度较慢。运用前述加速技巧,对于简单迭代过程

)

(1n n n x f x x +=+,其加速公式具有形式: θ

θ?--=

+1)(1n

n n x x x )

(111n n n x x x --+

=++θ

θ

,其中)(1n n x x ?=+

记1-=θL ,上面两式可以合并写成:

L

x f x x n n n )(1-

=+

这种迭代公式称作简单的牛顿公式,其相应的迭代函数是:

L x f x x )

()(-

=?。 需要注意的是,由于L 是)('x ?的估计值,若取)()(x f x x +=?,则)('x ?实际上便是

)('x f 的估计值。假设0)('≠x f ,则可以用)('x f 代替上式中的L ,就可得到牛顿法的迭代公式:

)(')

(1n n n n x f x f x x -

=+。 牛顿迭代法实质上是一种线性化方法,其基本思想是将非线性方程逐步归结为某种线性方程来求解。

3.4.2 牛顿迭代法的收敛性

牛顿迭代公式可以看成是由

)(')

()(x f x f x x -

=?而获得的不动点迭代格式。这样就可以应用不动点迭代的收敛原则,只须证明在根α附近的迭代函数是一个压缩映象。由于:

2

2

2

)]

('[)(")()]

('[)

(")()]('[1)('x f x f x f x f x f x f x f x =

--

=?,

这里的根α是单根,即0)(=αf 且0)('≠αf ,于是:0)]('[)

(")()('2

==

αααα?f f f 。

那么由)('x ?的连续性可知,存在一个邻域),(δαδα+-,对这个邻域内的一切x ,有:

q

x <)('?,其中O <q <1,因此)(x ?为区间),(δαδα+-上的一个压缩映象,于是有以下

结论:

定理 3.4.1 设],[)(2

b a C x f ∈,*x 是0)(=x f 的精确解,且0*)('≠x f ,则存在*

x 的δ邻域)*,*(δδ+-x x ,对于任何迭代初值)*,*(0δδ+-∈x x x ,迭代序列}

{n x 收敛于

*x 。

牛顿迭代法具有较高的收敛速度,它的收敛阶数为p =2;而牛顿迭代法的局部收敛性较

强,只有初值充分地接近*x ,才能确保迭代序列的收敛性。为了放宽对局部收敛性的限制,必须再增加条件建立以下收敛的充分条件。

定理 3.4.2 设],[)(2

b a C x f ∈,且满足:在区间],[b a 上, ⑴ 0)()(

⑶ )("x f 不变号;⑷ ],[0b a x ∈,满足条件:0)(")(00>x f x f 则牛顿迭代序列}{n x ,单调地收敛于方程0)(=x f 的唯一解*x 。

由条件⑴至条件⑷可归结为四种情形: ① 0)(b f ,0)('>x f ,0)(">x f ;

② 0)(b f ,0)('>x f ,0)("a f ,0)(x f ;

④ 0)(>a f ,0)(

对定理的几何意义作如下说明:条件⑴保证了根的存在性;条件⑵表明函数单调变化,在区间],[b a 内有惟一的根;条件⑶表示函数图形在区间],[b a 上的凹向不变。条件⑶和条件⑷一起保证了每一次迭代值都界于区间],[b a 内。

在不满足上述收敛充分条件时,有可能导致迭代值远离所求根的情况或死循环的情况(如下图所示)。

【例3.4.1】对于给定的正数a ,用牛顿法建立求平方根的收敛迭代公式。 解 令a x x f -=2

)(,(x >0),则0)(=x f 的正根就是a 。

用牛顿法求解的迭代公式是:)

(2

122

1n

n n

n n n x a x x a x x x +

=

--

=+, 公式(3.4.2)

由于当x >0时,x x f 2)('=>0,2)(''=x f >0,故由收敛定理可知,对于任意满足条件a x >0的初始近似值,由选代公式所产生的序列必定收敛于平方根a 。公式(3.4.2)是计算平方根的准确而有效的计算方法。 3.4.3 牛顿迭代法的变形

用牛顿法解方程,虽然在单根附近具有较快的收敛速度,但它有个明显的缺点,就是每次都要计算导数)('x f ,当)(x f 比较复杂时,计算)('x f 可能很困难。下面介绍两种克服这种困难的方法,另外还介绍一种扩大牛顿迭代法初值选择范围的方法,它们统称为变形的牛顿迭代法。

1 简化牛顿法

为避免频繁地计算导数值)('x f ,可将它取为固定值,比如在牛顿迭代公式中用)

('0x f 代

)

('n x f ,即在迭代过程中始终保持分母不变,则有简化牛顿迭代公式(或固定斜率切线

法):)(')

(01x f x f x x n n n -

=+ 公式(3.4.3)

其几何意义如下图所示,这时除第一次迭代仍为曲线的切线外,其余皆为该切线的平行线。简化牛顿法避免了每次计算导数值。

更一般地,若取

L

x f n =)(',则迭代公式成为:

L

x f x x n n n )(1-

=+,称为推广的简化切线法。这时L 值应

满足下式:

1

)('1)('<-

=L

x f x ?

满足上式的L 为:2

)('0<<

L

x f ,可见当L 与)('x f 同号且满足上述不等式时,推广的简化切线法是收敛的。该迭代形式在参数法里也曾得到过。

2 由牛顿法的收敛性定理知,牛顿法对初始值的选取要求是很高的。一般地说,牛顿法只有局部收敛性。当初始值取得离根太远时,迭代将不收敛,而一旦初始值进入收敛域内,牛顿

法就有平方收敛的速度,为了扬长避短,扩大初始值选取的范围,下面介绍牛顿法的一种改进——牛顿下山法。

将牛顿法的迭代公式修改为:)(')

(1n n n n x f x f x x λ

-=+ 公式(3.4.3)

其中,λ是一个参数,λ的选取应使

)

(1+n x f <

)

(n x f 成立,当

)

(1+n x f <1ε或

n

n x x -+1<

2ε,就停止迭代,且取1*+≈n x x ,其中1ε,2ε为事先给定的精度,1ε称为残量精确度,2ε为根的误差限;否则再减λ,继续迭代。按上述迭代过程计算,实际上得到了一个以零为下界

的严格单调下降的函数值序列,这个方法就称为牛顿下山法。λ称为下山因子,要求满足0<λε1≤≤λ,λε称为下山因子下界,为了方便,一般开始时可简单地取1=λ,然后逐步分半

减小,即可选取1=λ,21

,221

,…,λελ≥,且使)(1+n x f <)

(n x f 成立。

牛顿下山法计算步骤可归纳如下:

⑴ 选取初始近似值0x ;⑵ 取下山因子1=λ;

⑶ 计算1

+n x ,

)(')(1n n n n x f x f x x λ

-=+

⑷ 计算)

(1+n x f ,并比较)

(1+n x f 与

)

(n x f 的大小,分以下两种情况:

① 若)

(1+n x f <)

(n x f ,则当

n

n x x -+1<2ε时,则就取

1

*+≈n x x ,计算过程结束;当

n

n x x -+1>2ε时,则把

1

+n x 作为新的n

x 值,并重复回到⑶。

②若)(1+n x f ≥)(n x f ,则当λελ≤且)(1+n x f <1ε,就取n

x x ≈*,计算过程结束;否

则,若

λ

ελ≤,而

)(1+n x f ≥1ε时,则把1+n x

加上一个适当选定的小正数,即取δ++1n x 作为

新的n x

值,并转向⑶重复计算;当λελ>,且)(1+n x f ≥1ε时,则将下山因子缩小一半,并转向⑶重复计算。

牛顿下山法不但放宽了初值的选取,且有时对某一初值,虽然用牛顿法不收敛,但用牛顿下山法却有可能收敛。一般来说,牛顿下山法不再有平方收敛速度,它的优点在于可能将原来收敛域以外的初始值,经过几次迭代后拉入收敛域内。

例如,已知方程1)(3

--=x x x f =0的一个根为≈*x 1.32472,若取初值0x

=0.6,用牛顿法计算得到的第一次近似值9.171=x 反而比0x

更偏离根。若改用牛顿下山法,当取下山因

5

21

=

λ时,可得14063.11=x ,修正后的迭代序列收敛。(沈建华P138)(史万明P48)

3.4.4 弦截法

1 单点弦截法

为避免牛顿迭代法中导数的计算,可用平均变化率:0

0)

()(x x x f x f n n --

来近似代替)('n x f ,于是得到如下迭代公式:

)

()()()()()

()()(000001x f x f x f x x f x x x x f x f x f x x n n n n n n n n --=

---

=+ 公式(3.4.4)

称为单点弦截法。单点弦截法具有明显的几何意义,它

是用联结点A(0x ,0y )与点B(n x ,n y )的直线,代替曲线求取与横轴交点作为近似值1+n x 的方法,以后再过(0x ,0y )与(1+n x ,1+n y )两点,作直线求取与横轴的交点作为2+n x ,等等。其中(0x ,0y )是一个固定点,称为不动点,另一点则不断更换,故名单点弦截法。可以证明,单点弦截法具有收敛的阶r =1,即具有线性收敛速度。

2 双点弦截法

若把单点弦截法中的不动点(0x ,0y )改为变动点(1-n x ,1-n y ),则得到下面的双点弦截法的迭代公式:

)

()()

()()()

()()(111111-----+--=

---

=n n n n n n n n n n n n n x f x f x f x x f x x x x f x f x f x x 公式(3.4.5) 用弦截法求根的近似值,在几何上相当于过点(

1

-k x ,

)

(1-k x f ),和点(

k

x ,

)

(k x f )作

弦,然后用弦与x 轴的交点的横坐标1+k x

作为*x 的新的近似值。由于在双点弦截法中,构造

的迭代公式在计算新的近似值

1

+k x 时,不仅用到点

k

x 上

的函数值

)

(k x f ,而且还用到点1

-k x 及其函数值,这就

有可能提高迭代法的收敛速度。

与牛顿法一样,如果函数)(x f y =在其根*x 附近具有直到二阶的连续导数,且0)('≠x f ,则弦截法具有局部收敛性,即当初始近似值充分接近于*x 时,按双点弦截法迭代公式得到的迭代序列收敛于根*x 。可以证明弦截法具有超线性收速度,且收敛阶数为P =

1.618。双点弦截法迭代公式与前面介绍的单点迭代法有明显的不同,就是在计算1

+n x 时要用

到前两步的计算结果n x

、1-n x

,所以在使用迭代公式前,必须先给出两个初始值0

x 、1x ,因

此,这种迭代法也称两步法,而单点迭代法称为一步法。

牛顿拉夫逊法潮流计算

摘要 本文,首先简单介绍了基于在MALAB中行潮流计算的原理、意义,然后用具体的实例,简单介绍了如何利用MALAB去进行电力系统中的潮流计算。 众所周知,电力系统潮流计算是研究电力系统稳态运行情况的一种计算,它根据给定的运行条件及系统接线情况确定整个电力系统各部分的运行状态:各线的电压、各元件中流过的功率、系统的功率损耗等等。在电力系统规划的设计和现有电力系统运行方式的研究中,都需要利用潮流计算来定量地分析比较供电方案或运行方式的合理性、可靠性和经济性。 此外,在进行电力系统静态及暂态稳定计算时,要利用潮流计算的结果作为其计算的基础;一些故障分析以及优化计算也需要有相应的潮流计算作配合;潮流计算往往成为上述计算程序的一个重要组成部分。以上这些,主要是在系统规划设计及运行方式安排中的应用,属于离线计算范畴。 牛顿-拉夫逊法在电力系统潮流计算的常用算法之一,它收敛性好,迭代次数少。本文介绍了电力系统潮流计算机辅助分析的基本知识及潮流计算牛顿-拉夫逊法,最后介绍了利用MTALAB程序运行的结果。 关键词:电力系统潮流计算,牛顿-拉夫逊法,MATLAB

ABSTRACT This article first introduces the flow calculation based on the principle of MALAB Bank of China, meaning, and then use specific examples, a brief introduction, how to use MALAB to the flow calculation in power systems. As we all know, is the study of power flow calculation of power system steady-state operation of a calculation, which according to the given operating conditions and system wiring the entire power system to determine the operational status of each part: the bus voltage flowing through the components power, system power loss and so on. In power system planning power system design and operation mode of the current study, are required to quantitatively calculated using the trend analysis and comparison of the program or run mode power supply reasonable, reliability and economy. In addition, during the power system static and transient stability calculation, the results of calculation to take advantage of the trend as its basis of calculation; number of fault analysis and optimization also requires a corresponding flow calculation for cooperation; power flow calculation program often become the an important part. These, mainly in the way of system design and operation arrangements in the application areas are off-line calculation. Newton - Raphson power flow calculation in power system is one commonly used method, it is good convergence of the iteration number of small, introduce the trend of computer-aided power system analysis of the basic knowledge and power flow Newton - Raphson method, introduced by the last matlab run results. Keywords:power system flow calculation, Newton – Raphson method, matlab

基于极坐标的牛顿拉夫逊潮流计算

前言 电力系统潮流计算是研究电力系统稳态运行情况的一种计算,它根据给定的运行件及系统接线情况确定整个电力系统各部分的运行状态。在电力系统规划设计和现有电力系统运行方式的研究中,都需要利用潮流计算来定量分析、比较供电方案或运行方式的合理性、可靠性和经济性。本次课程设计任务是闭式网络的潮流计算,用到的方法为牛顿拉夫逊极坐标法潮流计算。 牛顿法是数学中解决非线性方程式的典型方法,有较好的收敛性。解决电力系统潮流计算问题是以导纳距阵为基础的,因此,只要在迭代过程中尽可能保持方程式系数距阵的稀疏性,就可以大大提高牛顿法潮流程序的放率。自从20 世纪60 年代中期利用了最佳顺序消去法以后,牛顿法在收敛性、内存要求、速度方面都超过了阻抗法,成为直到目前仍在广泛采用的优秀方法。

目录 1任务书 (2) 2.模型简介及等值电路 (3) 3.设计原理 (4) 4.修正方程的建立 (7) 5.程序流程图及MATLAB程序编写 (9) 6.结果分析 (15) 7.设计总结 (25) 8.参考文献 (26)

《电力系统分析》 课程设计任务书 题目极坐标表示的牛顿拉夫逊法潮流计算程序设计学生姓名学号专业班级

设计内容与要求1. 设计要求 掌握MATLAB语言编程方法;理解和掌握运用计算机进行潮流计算的基本算法原理;针对某一具体电网,进行潮流计算程序设计。 其目的在于加深学生对电力系统稳态分析中课程中基本概念和计算方法的理解,培养学生运用所学知识分析和解决问题的能力。 2. 内容 1)学习并掌握MATLAB语言。 2)掌握变压器非标准变比概念及非标准变比变压器的等值电路。掌握节点导纳矩阵的概念及导纳矩阵的形成和修改方法。 3)掌握电力系统功率方程、变量和节点分类。 4)掌握利用极坐标表示的牛-拉法进行潮流计算的方法和步骤。 5)选择一个某一具体电网,编制程序流程框图。 6)利用MATLAB语言编写该模型的潮流计算程序,并上机调试程序,对计算结果进行分析。 7)整理课程设计论文。 起止时间2013 年7 月 4 日至2013 年7月10日指导教师签名年月日 系(教研室)主任签 名 年月日学生签名年月日 2 模型简介及等值电路 2.1课程设计模型:模型3

MAAB计算方法迭代法牛顿法二分法实验报告

姓名 实验报告成绩 评语: 指导教师(签名) 年 月 日 说明:指导教师评分后,实验报告交院(系)办公室保存。 实验一 方程求根 一、 实验目的 用各种方法求任意实函数方程0)(=x f 在自变量区间[a ,b]上,或某一点附近的实根。并比较方法的优劣。 二、 实验原理 (1)、二分法 对方程0)(=x f 在[a ,b]内求根。将所给区间二分,在分点 2a b x -=判断是否0)(=x f ;若是,则有根2a b x -=。否则,继续判断是否0)()(

+)(0x f 0))(('0=-x x x f 设0)('0≠x f ,则=x -0x )(') (00x f x f 。取x 作为原方程新的近似根1x ,然后将1x 作为0x 代入上式。迭代公式为:=+1 k x -0x )(')(k k x f x f 。 三、 实验设备:MATLAB 软件 四、 结果预测 (1)11x = (2)5x = (3)2x =0,09052 五、 实验内容 (1)、在区间[0,1]上用二分法求方程0210=-+x e x 的近似根,要求误差不超 过3105.0-?。 (2)、取初值00=x ,用迭代公式=+1 k x -0x )(') (k k x f x f ,求方程0210=-+x e x 的近似根。要求误差不超过3105.0-?。 (3)、取初值00=x ,用牛顿迭代法求方程0210=-+x e x 的近似根。要求误差 不超过3105.0-?。 六、 实验步骤与实验程序 (1) 二分法 第一步:在MATLAB 软件,建立一个实现二分法的MATLAB 函数文件如下: function x=agui_bisect(fname,a,b,e) %fname 为函数名,a,b 为区间端点,e 为精度 fa=feval(fname,a); %把a 端点代入函数,求fa fb=feval(fname,b); %把b 端点代入函数,求fb if fa*fb>0 error('两端函数值为同号'); end

牛顿迭代法

牛顿迭代法 李保洋 数学科学学院信息与计算科学学号:060424067 指导老师:苏孟龙 摘要:牛顿在17世纪提出的一种在实数域和复数域上近似求解方程的方法,即牛顿迭代法.迭代法是一种不断用变量的旧值递推新值的过程.跟迭代法相对应的是直接法或者称为一次解法,即一次性解决问题.迭代法又分为精确迭代和近似迭代.“牛顿迭代法”属于近似迭代法,本文主要讨论的是牛顿迭代法,方法本身的发现和演变和修正过程,避免二阶导数计算的Newton迭代法的一个改进,并与中国古代的算法,即盈不足术,与牛顿迭代算法的比较. 关键词:Newton迭代算法;近似求解;收敛阶;数值试验;中国古代数学; 九章算术;Duffing方程;非线性方程;收敛速度;渐进性 0 引言: 迭代法也称辗转法,是一种不断用变量的旧值递推新值的过程,跟迭代法相对应的是直接法或者称为一次解法,即一次性解决问题.迭代法又分为精确迭代和近似迭代.“二分法”和“牛顿迭代法”属于近似迭代法. 迭代算法是用计算机解决问题的一种基本方法.它利用计算机运算速度快、适合做重复性操作的特点,让计算机对一组指令(或一定步骤)进行重复执行,在每次执行这组指令(或这些步骤)时,都从变量的原值推出它的一个新值.具体使用迭代法求根时应注意以下两种可能发生的情况: (1)如果方程无解,算法求出的近似根序列就不会收敛,迭代过程会变成死循环,因此在使用迭代算法前应先考察方程是否有解,并在程序中对迭代的次数给予限制. (2)方程虽然有解,但迭代公式选择不当,或迭代的初始近似根选择不合理,也会导致迭代失败. 所以利用迭代算法解决问题,需要做好以下三个方面的工作: 1、确定迭代变量.在可以用迭代算法解决的问题中,至少存在一个直接或间接地不断由旧值递推出新值的变量,这个变量就是迭代变量. 2、建立迭代关系式.所谓迭代关系式,指如何从变量的前一个值推出其下一个值的公式(或关系).迭代关系式的建立是解决迭代问题的关键,通常可以使用递推或倒推的方法来完成. 3、对迭代过程进行控制,在什么时候结束迭代过程?这是编写迭代程序必须考虑的问题.不能让迭代过程无休止地重复执行下去.迭代过程的控制通常可分为两种情况:一种是所需的迭代次数是个确定的值,可以计算出来;另一种是所需的迭代次数无法确定.对于前一种情况,可以构建一个固定次数的循环来实现对迭代过程的控制;对于后一种情况,需要进一步分析出用来结束迭代过程的条件. 1牛顿迭代法:

数值分析报告-二分法和牛顿法方程求根

《数值分析》实验报告一 姓名: 周举 学号: PB09001046

实验一 一、实验名称 方程求根 二、实验目的与要求: 通过对二分法和牛顿法作编程练习和上机运算,进一步体会它们在方程求根中的不同特点; 比较二者的计算速度和计算精度。 三、实验内容: 通过对二分法和牛顿迭代法作编程练习和上机运算,进一步体会它们在方程求根中的不同特点 。 (一)二分法 算法:给定区间[a,b],并设f (a )与f (b )符号相反,取δ为根的容许误差,ε为值的容许误差。 (1)令c=(a+b)/2 (2)如果(c-a)< δ或)(c f <ε,则输出c ,结束;否则执行(3) (3)如果f(a)f(c)<0,则令)()(,c f b f c b ←←;否则,则令 )()(,c f a f c a ←←,重复(1),(2),(3)。 (二)牛顿迭代法:给定初值0x ,ε为根的容许误差,η为)(x f 的容 许误差,N 为迭代次数的容许值。 (1)如果)(x f <η或迭代次数大于N ,则算法结束;否则执行(2)。

(2)计算)('/)(0001x f x f x x -= (3)若 < 或 < ,则输出 ,程序结束;否则执行(4)。 (4)令 = ,转向(1)。 四、实验题目与程序设计 1、二分法 3.1.1、用二分法求方程 a. f(x)= x x tan 1--在区间[0,π/2]上的根, c. f(x)=6cos 22-++-x e x x 在区间[1,3]上的根。 源程序: 3.1.1.a #include #include void main() { float a,b;double c,y,z; printf("plese input two number a and b:\n"); scanf("%f%f",&a,&b); c=(a+b)/2; y=1/c-tan(c); printf("a=%f,b=%f,b-a=%f,c=%f,f(c)=%f\n",a,b,b-a,c,y); while(fabs(b-a)>0.00001|| fabs(y)>0.00001) { z=1/a-tan(a); if(z*y<0) b=c; else a=c; c=(a+b)/2; y=1/c-tan(c); printf("a=%f,b=%f,b-a=%f,c=%f,f(c)=%f\n",a,b,b-a,c,y); } } x x 01-ε)(1x f ηx 1x 0x 1

基于MATLAB牛顿拉夫逊法进行潮流计算

>> %本程序的功能是用牛顿拉夫逊法进行潮流计算n=input('请输入节点数:n='); nl=input('请输入支路数:nl='); isb=input('请输入平衡母线节点号:isb='); pr=input('请输入误差精度:pr='); B1=input('请输入由各支路参数形成的矩阵:B1='); B2=input('请输入各节点参数形成的矩阵:B2='); Y=zeros(n); e=zeros(1,n);f=zeros(1,n);V=zeros(1,n); O=zeros(1,n);S1=zeros(nl); for i=1:nl if B1(i,6)==0 p=B1(i,1);q=B1(i,2); else p=B1(i,2);q=B1(i,1); end Y(p,q)=Y(p,q)-1./(B1(i,3)*B1(i,5)); Y(q,p)=Y(p,q); Y(q,q)=Y(q,q)+1./(B1(i,3)*B1(i,5)^2)+B1(i,4)./2; Y(p,p)=Y(p,p)+1./B1(i,3)+B1(i,4)./2; end %求导纳矩阵 disp('导纳矩阵Y='); disp(Y); G=real(Y);B=imag(Y); for i=1:n e(i)=real(B2(i,3)); f(i)=imag(B2(i,3)); V(i)=B2(i,4); end for i=1:n S(i)=B2(i,1)-B2(i,2); B(i,i)=B(i,i)+B2(i,5); end P=real(S);Q=imag(S); ICT1=0;IT2=1;N0=2*n;N=N0+1;a=0; while IT2~=0 IT2=0;a=a+1; for i=1:n if i~=isb C(i)=0; D(i)=0; for j1=1:n C(i)= C(i)+G(i,j1)*e(j1)-B(i,j1)*f(j1); D(i)= D(i)+G(i,j1)*f(j1)+B(i,j1)*e(j1); end

数值计算(二分法、简单迭代法、Newton迭代法、弦截法(割线法、双点弦法))

本科生实验报告 实验课程数值计算方法 学院名称信息科学与技术学院 专业名称计算机科学与技术 学生姓名 学生学号 指导教师 实验地点 实验成绩 二〇一六年五月二〇一六年五月

实验一非线性方程求根 1.1问题描述 实验目的:掌握非线性方程求根的基本步骤及方法,。 实验内容:试分别用二分法、简单迭代法、Newton迭代法、弦截法(割线法、双点弦法),求x5-3x3+x-1= 0 在区间 [-8,8]上的全部实根,误差限为10-6。 要求:讨论求解的全过程,对所用算法的局部收敛性,优缺点等作分析及比较, 第2章算法思想 2.1二分法 思想:在函数的单调有根区间内,将有根区间不断的二分,寻找方程的解。 步骤: 1.取中点mid=(x0+x1)/2 2.若f(mid)=0,则mid为方程的根,否则比较与两端的符号,若与 f(x0) 异号,则根在[x0,mid]之间,否则在[mid,x1]之间。 3并重复上述步骤,直达达到精度要求,则mid为方程的近似解。

2.2 简单迭代法 思想:迭代法是一种逐次逼近的方法,它是固定公式反复校正跟的近似值,使之逐步精确,最后得到精度要求的结果。 步骤:1.构造迭代公式f(x),迭代公式必须是收敛的。 2.计算x1,x1=f(x0). 3.判断|x1-x0|是否满足精度要求,如不满足则重复上述步骤。 4.输出x1,即为方程的近似解。

开始 输入x0,e X1=f(x0)|x1-x0|

求一个整数开根号--二分法和牛顿迭代法(求根)

求一个整数开根号--二分法和牛顿迭代法(求根) 问题叙述 求解1232cos 0x x -+=的解;通过编写matlab 程序分别用分析二分法和牛顿迭代法求解方程,通过两种方法的比较,分析二者求解方程的快慢程度。 一、问题分析 由matlab 画图命令,容易得到此方程解的范围为(2,4);两种迭代方法,在使用相同的误差(0.00001)的情况下,得出matlab 迭代次数,通过次数的比较得出二者求解速度快慢比较。 二、实验程序及注释 (1)、二分法程序: clear; %清除所有内存数据; f=inline('12-3*x+2*cos(x)'); format long %数据显示格式设为长型; a=2;b=4; %求解区间; er=b-a;ya=f(a);k=0;er0=0.00001; %误差分析; while er>er0 x0=.5*(a+b); y0=f(x0); if ya*y0<0 b=x0; %二分法求解程序; else a=x0; ya=y0; end disp([a,b]);er=b-a;k=k+1 %显示各个区间值和求解次数; end disp([a,b]); %显示最后一个区间值; (2)、牛顿迭代法程序: clear; %清除所有内存数据; f=inline('12-3*x+2*cos(x)'); format long %数据显示格式设为长型; b=3;a=4;k=0; %求解区间; y0=f(b);y=f(a); while abs(b-a)>0.00001 t=a-y*(a-b)/(y-y0); b=a;y0=y; %牛顿迭代法求解程序; a=t;y=f(a); k=k+1; disp([b,a]);k %显示各个区间值和求解次数; end disp([b,a]); %显示最后一个区间值;

电力系统课程设计-牛顿拉夫逊法潮流计算

课程设计说明书 题目电力系统分析系(部) 专业(班级) 姓名 学号 指导教师 起止日期

电力系统分析课程设计任务书系(部):专业:指导教师:

目录 一、潮流计算基本原理 1.1潮流方程的基本模型 1.2潮流方程的讨论和节点类型的划分 1.3、潮流计算的意义 二、牛顿-拉夫逊法 2.1牛顿-拉夫逊法基本原理 2.2节点功率方程 2.3修正方程 2.4牛顿法潮流计算主要流程 三、收敛性分析 四、算例分析 总结 参考文献

电力系统分析潮流计算 一、潮流计算基本原理 1.1潮流方程的基本模型 电力系统是由发电机、变压器、输电线路及负荷等组成,其中发电机及负荷是非线性元件,但在进行潮流计算时,一般可以用接在相应节点上的一个电流注入量来代表。因此潮流计算所用的电力网络系由变压器、输电线路、电容器、电抗器等静止线性元件所构成,并用集中参数表示的串联或并联等值支路来模拟。结合电力系统的特点,对这样的线性网络进行分析,普通采用的是节点法,节点电压与节点电流之间的关系 V Y I = (1-1) 其展开式为 j n j ij i V Y I ∑==1 ),,3,2,1 (n i = (1-2) 在工程实际中,已经的节点注入量往往不是节点电流而是节点功率,为此必须应用联 系节点电流和节点功率的关系式 i i i i V jQ P I * -= ),,3,2,1(n i = (1-3) 将式(1-3)代入式(1-2)得到 j n j ij i i i V Y V jQ P ∑=* =-1 ),,3,2,1(n i = (1-4) 交流电力系统中的复数电压变量可以用两种极坐标来表示 i j i i e V V θ= (1-5) 或 i i i jf e V += (1-6) 而复数导纳为

电力系统稳态分析牛顿拉夫逊法

0引言 潮流是配电网络分析的基础,用于电网调度、运行分析、操作模拟和设计规划,同时也是电压优化和网络接线变化所要参考的内容。潮流计算通过数值仿真的方法把电力系统的详细运行情况呈现给工作人员,从而便于研究系统在给定条件下的稳态运行特点。随着市场经济的发展,经济利益是企业十分看重的,而线损却是现阶段阻碍企业提高效益的一大因素。及时、准确的潮流计算结果,可以给出配电网的潮流分布、理论线损及其在网络中的分布,从而为配电网的安全经济运行提供参考。从数学的角度来看,牛顿-拉夫逊法能有效进行非线性代数方程组的计算且具有二次收敛的特点,具有收敛快、精度高的特点,在输电网中得到广泛应用。随着现代计算机技术的发展,利用编程和相关软件,可以更好、更快地实现配电网功能,本文就是结合牛顿-拉夫逊法的基本原理,利用C++程序进行潮流计算,计算结果表明该方法具有良好的收敛性、可靠性及正确性。 1牛顿-拉夫逊法基本介绍 1.1潮流方程 对于N 个节点的电力网络(地作为参考节点不包括在内),如果网络结构和元件参数已知,则网络方程可表示为: =&& YV I (1-1) 式中,Y 为N*N 阶节点导纳矩阵;&V 为N*1维节点电压列向量;&I 为N*1维节点注入电流列向量。如果不计网络元件的非线性,也不考虑移相变压器,则Y 为对称矩阵。 电力系统计算中,给定的运行变量是节点注入功率,而不是节点注入电流,这两者之间有如下关系: ??=&&&EI S (1-2) 式中,&S 为节点的注入复功率,是N*1维列矢量;? &S 为&S 的共轭;

??i diag ??=???? &&E V 是由节点电压的共轭组成的N*N 阶对角线矩阵。 由(1-1)和(1-2),可得: ??=&&&S EYV 上式就是潮流方程的复数形式,是N 维的非线性复数代数方程组。将其展开,有: ?i i i ij j j i P jQ V Y V ∈-=∑&& j=1,2,….,N (1-3) 式中,j i ∈表示所有和i 相连的节点j ,包括j i =。 将节点电压用极坐标表示,即令i i i V V θ=∠&,代入式(1-3)中则有: ()i i i i ij ij j j j i P jQ V G jB V θθ∈-=∠-+∠∑ ()()cos sin i j ij ij ij ij j i V V G jB j θθ∈=+-∑ 故有: () ()cos sin sin cos i i j ij ij ij ij j i i i j ij ij ij ij j i P V V G B Q V V G B θθθθ∈∈?=+?? =-?? ∑∑ i=1,2,…,N (1-4) 式(1-4)是用极坐标表示的潮流方程。 而节点功率误差: (cos sin )θθ∈?=-+∑SP i i i j ij ij ij ij j i P P V V G B (1-5) (cos sin )θθ∈?=--∑SP i i i j ij ij ij ij j i Q Q V V G B (1-6) 式中:SP i P ,SP i Q 为节点i 给定的有功功率及无功功率。 1.2牛顿-拉夫逊法基本原理 1.2.1牛拉法的一般描述 牛拉法是把非线性方程式的求解过程变成反复对相应的线性方程式的求解过程,即非线性问题通过线性化逐步近似,这就是牛拉法的核心。下面以非线性方程式的求解过程来进行说明。 设电力网络的节点功率方程一般形式如下:

牛顿法潮流计算综述

潮流例题:根据给定的参数或工程具体要求(如图),收集和查阅资料;学习相关软件(软件自选:本设计选择Matlab进行设计)。 2.在给定的电力网络上画出等值电路图。 3.运用计算机进行潮流计算。 4.编写设计说明书。 一、设计原理 1.牛顿-拉夫逊原理 牛顿迭代法是取x0 之后,在这个基础上,找到比x0 更接近的方程的跟,一步一步迭代,从而找到更接近方程根的近似跟。牛顿迭代法是求方程根的重要方法之一,其最大优点是在方程f(x) = 0 的单根附近具有平方收敛,而且该法还可以用来求方程的重根、复根。电力系统潮流计算,一般来说,各个母线所供负荷的功率是已知的,各个节点电压是未知的(平衡节点外)可以根据网络结构形成节点导纳矩阵,然后由节点导纳矩阵列写功率方程,由于功率方程里功率是已知的,电压的幅值和相角是未知的,这样潮流计算的问题就转化为求解非线性方程组的问题了。为了便于用迭代法解方程组,需要将上述功率方程改写成功率平衡方程,并对功率平衡方程求偏导,得出对应的雅可比矩阵,给未知节点赋电压初值,一般为额定电压,将初值带入功率平衡方程,得到功率不平衡量,这样由功率不平衡量、雅可比矩阵、节点电压不

平衡量(未知的)构成了误差方程,解误差方程,得到节点电压不平衡量,节点电压加上节点电压不平衡量构成新的节点电压初值,将新的初值带入原来的功率平衡方程,并重新形成雅可比矩阵,然后计算新的电压不平衡量,这样不断迭代,不断修正,一般迭代三到五次就能收敛。 牛顿—拉夫逊迭代法的一般步骤: (1)形成各节点导纳矩阵Y。 (2)设个节点电压的初始值U和相角初始值e 还有迭代次数初值为0。 (3)计算各个节点的功率不平衡量。 (4)根据收敛条件判断是否满足,若不满足则向下进行。 (5)计算雅可比矩阵中的各元素。 (6)修正方程式个节点电压 (7)利用新值自第(3)步开始进入下一次迭代,直至达到精度退出循环。 (8)计算平衡节点输出功率和各线路功率 2.网络节点的优化 1)静态地按最少出线支路数编号 这种方法由称为静态优化法。在编号以前。首先统计电力网络个节点的出线支路数,然后,按出线支路数有少到多的节点顺序编号。当由n 个节点的出线支路相同时,则可以按任意次序对这n 个节点进行编号。这种编号方法的根据是导纳矩阵中,出线支路数最少的节点所对应的行中非零元素也2)动态地按增加出线支路数最少编号在上述的方法中,各节点的出线支路数是按原始网络统计出来的,在编号过程中认为固定不变的,事实上,在节点消去过程中,每消去一个节点以后,与该节点相连的各节点的出线支路数将发生变化(增加,减少或保持不变)。因此,如果每消去一个节点后,立即修正尚未编号节点的出线支路数,然后选其中支路数最少的一个节点进行编号,就可以预期得到更好的效果,动态按最少出线支路数编号方法的特点就是按出线最少原则编号时考虑了消去过程中各节点出线支路数目的变动情况。 3.MATLAB编程应用 Matlab 是“Matrix Laboratory”的缩写,主要包括:一般数值分析,矩阵运算、数字信号处理、建模、系统控制、优化和图形显示等应用程序。由于使用Matlab 编程运算与人进行科学计算的思路和表达方式完全一致,所以不像学习高级语言那样难于掌握,而且编程效率和计算效率极高,还可在计算机上直接输出结果和精美的图形拷贝,所以它的确为一高效的科研助手。 二、设计内容 1.设计流程图

c语言编写的牛顿拉夫逊法解潮流程序

c语言编写的牛顿拉夫逊法解潮流程序 闲来无事,最近把牛拉法用c语言重写一遍,和matlab相比,c语言编写潮流程序最大的难点在于矩阵求逆,我使用的求逆方法是初等行变换法,程序段如下: #include #define N 3 void main() { int i,j,k; float t; float Jacob[N][N]={{1,2,2},{1,3,4},{2,3,4}};//欲进行求逆的矩阵 float inv_J[N][N];//逆矩阵存储于此 //初始化inv_J[N][N] for(i=0;i

} //输出逆矩阵 for(i=0;i #include #define N 4 //节点数 #define n_PQ 2 //PQ节点数 #define n_PV 1 //PV节点数 #define n_br 5 //串联支路数 void main() { void disp_matrix(float *disp_p,int disp_m,int disp_n); //矩阵显示函数 float Us[2*N]={1.0,0,1.0,0,1.05,0,1.05,0}; //电压初值 float Ps[N]={0,-0.5,0.2}; //有功初值 float Qs[N]={0,-0.3}; //无功初值float G[N][N],B[N][N]; //各几点电导电纳 struct //阻抗参数 { int nl; //左节点 int nr; //右节点 float R; //串联电阻值 float X; //串联电抗值 float Bl; //左节点并联电导 float Br; //右节点并联电纳 }ydata[n_br]={ {1,2,0,0.1880,-0.6815,0.6040}, {1,3,0.1302,0.2479,0.0129,0.0129}, {1,4,0.1736,0.3306,0.0172,0.0172}, {3,4,0.2603,0.4959,0.0259,0.0259}, {2,2,0,0.05,0,0} };

牛顿——拉夫逊法进行潮流计算

%本程序的功能是用牛顿——拉夫逊法进行潮流计算 % B1矩阵:1、支路首端号;2、末端号;3、支路阻抗;4、支路对地电纳 % 5、支路的变比;6、支路首端处于K侧为1,1侧为0 % B2矩阵:1、该节点发电机功率;2、该节点负荷功率;3、节点电压初始值% 4、PV节点电压V的给定值;5、节点所接的无功补偿设备的容量% 6、节点分类标号:1为平衡节点(应为1号节点);2为PQ节点;% 3为PV节点; clear; n=10;%input('请输入节点数:n='); nl=10;%input('请输入支路数:nl='); isb=1;%input('请输入平衡母线节点号:isb='); pr=0.00001;%input('请输入误差精度:pr='); B1=[1 2 0.03512+0.08306i 0.13455i 1 0; 2 3 0.0068+0.18375i 0 1.02381 1; 1 4 0.05620+0.13289i 0.05382i 1 0; 4 5 0.00811+0.24549i 0 1.02381 1; 1 6 0.05620+0.13289i 0.05382i 1 0; 4 6 0.04215+0.09967i 0.04037i 1 0; 6 7 0.0068+0.18375i 0 1.02381 1; 6 8 0.02810+0.06645i 0.10764i 1 0; 8 10 0.00811+0.24549i 0 1 1; 8 9 0.03512+0.08306i 0.13455i 1 0] B2=[0 0 1.1 1.1 0 1; 0 0 1 0 0 2; 0 0.343+0.21256i 1 0 0 2; 0 0 1 0 0 2; 0 0.204+0.12638i 1 0 0 2; 0 0 1 0 0 2; 0 0.306+0.18962i 1 0 0 2; 0 0 1 0 0 2; 0.5 0 1.1 1.1 0 3; 0 0.343+0.21256i 1 0 0 2] ;%input('请输入各节点参数形成的矩阵:B2='); Y=zeros(n);e=zeros(1,n);f=zeros(1,n);V=zeros(1,n);sida=zeros(1,n);S1=zeros(nl); % % %--------------------------------------------------- for i=1:nl %支路数 if B1(i,6)==0 %左节点处于1侧 p=B1(i,1);q=B1(i,2); else %左节点处于K侧 p=B1(i,2);q=B1(i,1); end

二分法 牛顿迭代法

2014级硕士研究生数值分析上机实习 (第一次) 姓名:乔永亮 学号:14S030125 学院:船舶与海洋工程学院 实习题目:分别用二分法和Newton 迭代法求方程02010223=-++x x x 的根. 实习目的:掌握两种解法,体会两种解法的收敛速度. 实习要求:用C 程序语言编程上机进行计算,精确到8位有效数字. 报告内容: 1. 确定实根的个数以及所在区间. 解:对函数3 2 ()21020f x x x x =++-求导,得2 ()34100f x x x '=++=。 易知()0f x '>恒成立,所以函数(x)f 没有极值,只有一个实根。又可以知道(1)0f <,(2)0f >方程在区间(1,2)有一个实根,且为奇数重根,可以二分法和Newton 求解 2. 将最后两次计算结果填入下表(保留8位数字): 3. 实习过程中遇到哪些问题?如何解决?有何心得体会? 在编程的过程中由于对基本计算原理的理解有一定不足,同时对编程语言的不熟悉,导致在编程过程中错误百出,耗费了大量时间。但是通过课本以及网络对所需知识的不断学习,通过尝试不同的方法,最终还是得到了几种不同的思路与方法。通过这次编程,深深的感受到自己的不足,同时也明白了数学与计算机编程的紧密结合,不努力提高自己在当今社会就要被淘汰。

4. 两种解法的计算程序(此页写不下时可以加页): 二分法(Fortran 语言) program Analysis1 real::a,b,c,m real::fa,fc a=1. b=2. m=0.0001 !-------------------- do while(abs(b-a)>=m) c=(a+b)/2 fa=a**3+2.*a*a+10.*a-20 fc=c**3+2.*c*c+10.*c-20 if(fa*fc<0) then b=c else a=c end if write(*,"(f10.7)")c end do pause end program Anslysis1 牛顿迭代法(Fortran语言) program Analysis2 implicit none !定义变量---------------------------------------------------------------external f,df real m,x0,x1,f,df integer i !初始化变量-------------------------------------------------------------m=0.0001 x0=1.5 !牛顿迭代法-------------------------------------------------------------do while(abs(f(x0))>=m) x1=x0-f(x0)/df(x0) x0=x1 i=i+1 write(*,"(i4,f10.7)")i,x0 end do

直角坐标牛顿-拉夫逊法潮流计算matlab程序(仅供参考)

%该程序仅针对《电力系统分析下》何仰赞P61 的4节点算例。 %节点电压用直角坐标表示时的牛顿-拉夫逊法潮流计算(matlab程序,可能有小错误,仅供学习之用,如果想要通用的程序,可自己动手改或再到pudn、csdn等网站搜索更好的)%南昌大学电力061 李圣涛2009年5月编写,2012年5月上传 clc %清空command windows clear all %清空workspace %为了提高可移植性、可读性、通用性,设置以下变量 N=4; %独立节点数 NPQ=2; %PQ节点数 NPV=1; %PV节点数 K=0; %迭代次数 %请输入最大迭代次数Kmax。可从0开始,以观察第Kmax次迭代的结果 Kmax=input('\n\n 请输入最大迭代次数后回车(可从零开始) Kmax=\n'); small=10^(-5); %ε不能太小 %i为节点标号,其中1号……NPQ号为PQ节点,(NPQ+1) %号……(N-1)号为PV节点,N号节点为平衡节点 %节点导纳矩阵Y的实部 G=[1.042093 -0.588235 0 -0.453858; -0.588235 1.069005 0 -0.480769; 0 0 0 0 ; -0.453858 -0.480769 0 0.934627 ]; %节点导纳矩阵Y的虚部 B=[ -8.242876 2.352941 3.666667 1.891074 ; 2.352941 -4.727377 0 2.403846 ; 3.666667 0 -3.3333333 0 ; 1.891074 2.403846 0 -4.261590 ]; %Y矩阵 Y=complex(G,B); %给定PQ节点的Pnode、Qnode,PV节点的Pnode、Vnode。(Vnode为节点电压的幅值)Pnode=[ -0.3 -0.55 0.5 ];%PQ、PV节点的初值P Qnode=[ -0.18 -0.13 0 ];%PQ节点的初值Q Vnode=[ 0 0 1.10 ];%PV节点的初值V %迭代初值

二分法和牛顿迭代法求解方程的比较

二分法和牛顿迭代法求解方程的比较 200822401018 徐小良 一、问题叙述 求解1232cos 0x x -+=的解;通过编写matlab 程序分别用分析二分法和牛顿迭代法求解方程,通过两种方法的比较,分析二者求解方程的快慢程度。 二、问题分析 由matlab 画图命令,容易得到此方程解的范围为(2,4);两种迭代方法,在使用相同的误差(0.00001)的情况下,得出matlab 迭代次数,通过次数的比较得出二者求解速度快慢比较。 三、实验程序及注释 (1)、二分法程序: clear; %清除所有内存数据; f=inline('12-3*x+2*cos(x)'); format long %数据显示格式设为长型; a=2;b=4; %求解区间; er=b-a;ya=f(a);k=0;er0=0.00001; %误差分析; while er>er0 x0=.5*(a+b); y0=f(x0); if ya*y0<0 b=x0; %二分法求解程序; else a=x0; ya=y0; end disp([a,b]);er=b-a;k=k+1 %显示各个区间值和求解次数; end disp([a,b]); %显示最后一个区间值; (2)、牛顿迭代法程序: clear; %清除所有内存数据; f=inline('12-3*x+2*cos(x)'); format long %数据显示格式设为长型; b=3;a=4;k=0; %求解区间; y0=f(b);y=f(a); while abs(b-a)>0.00001 t=a-y*(a-b)/(y-y0); b=a;y0=y; %牛顿迭代法求解程序; a=t;y=f(a); k=k+1; disp([b,a]);k %显示各个区间值和求解次数; end disp([b,a]); %显示最后一个区间值;

电力系统稳态分析报告-牛顿拉夫逊法

0 引言 潮流是配电网络分析的基础,用于电网调度、运行分析、操作模拟和设计规划,同时也是电压优化和网络接线变化所要参考的内容。潮流计算通过数值仿真的方法把电力系统的详细运行情况呈现给工作人员,从而便于研究系统在给定条件下的稳态运行特点。随着市场经济的发展,经济利益是企业十分看重的,而线损却是现阶段阻碍企业提高效益的一大因素。及时、准确的潮流计算结果,可以给出配电网的潮流分布、理论线损及其在网络中的分布,从而为配电网的安全经济运行提供参考。从数学的角度来看,牛顿-拉夫逊法能有效进行非线性代数方程组的计算且具有二次收敛的特点,具有收敛快、精度高的特点,在输电网中得到广泛应用。随着现代计算机技术的发展,利用编程和相关软件,可以更好、更快地实现配电网功能,本文就是结合牛顿-拉夫逊法的基本原理,利用C++程序进行潮流计算,计算结果表明该方法具有良好的收敛性、可靠性及正确性。 1 牛顿-拉夫逊法基本介绍 1.1 潮流方程 对于N个节点的电力网络(地作为参考节点不包括在内),如果网络结构和元件参数已知,则网络方程可表示为: YV I = (1-1) 式中,Y为N*N阶节点导纳矩阵;V为N*1维节点电压列向量;I为N*1维节点注入电流列向量。如果不计网络元件的非线性,也不考虑移相变压器,则Y 为对称矩阵。 电力系统计算中,给定的运行变量是节点注入功率,而不是节点注入电流,这两者之间有如下关系: ? ?= EI S (1-2) 式中,S为节点的注入复功率,是N*1维列矢量;?S为S的共轭;

??i diag ??=???? E V 是由节点电压的共轭组成的N*N 阶对角线矩阵。 由(1-1)和(1-2),可得: ??=S EYV 上式就是潮流方程的复数形式,是N 维的非线性复数代数方程组。将其展开,有: ?i i i ij j j i P jQ V Y V ∈ -=∑ j=1,2,….,N (1-3) 式中, j i ∈表示所有和i 相连的节点j ,包括j i =。 将节点电压用极坐标表示,即令i i i V V θ=∠,代入式(1-3)中则有: ()i i i i ij ij j j j i P jQ V G jB V θθ∈-=∠-+∠∑ ()()cos sin i j ij ij ij ij j i V V G jB j θθ∈=+-∑ 故有: () ()cos sin sin cos i i j ij ij ij ij j i i i j ij ij ij ij j i P V V G B Q V V G B θθθθ∈∈?=+?? =-?? ∑∑ i=1,2,…,N (1-4) 式(1-4)是用极坐标表示的潮流方程。 而节点功率误差: (cos sin )θθ∈?=-+∑SP i i i j ij ij ij ij j i P P V V G B (1-5) (cos sin )θθ∈?=--∑SP i i i j ij ij ij ij j i Q Q V V G B (1-6) 式中:SP i P ,SP i Q 为节点i 给定的有功功率及无功功率。 1.2 牛顿-拉夫逊法基本原理 1.2.1 牛拉法的一般描述 牛拉法是把非线性方程式的求解过程变成反复对相应的线性方程式的求解

相关文档
最新文档