欧拉法,改进欧拉法,斐波那契法基础原理及经过流程图

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1欧拉法求微分方程

方法说明

欧拉(Euler)法是解常微分方程初值问题

(4.1)

最简单的数值方法,其具体做法是,将区间[a,b]进行N等分:

,步长.并将式(4.1)写成等价的积分形式

(4.2)

再对式(4.2)右端积分用矩形公式计算,则有

, (4.3)

在式(4.3)右端取,舍去余项。则得

,

作为的近似值。

在式(4.3)右端取,舍去余项,则得

y2=y1+ℎf(x1,y1)

作为的近似值.

一般地,在式(4.3)右端取舍去余项,则得

(4.4)

作为的近似值.式(4.4)为欧拉法计算公式.

我们知道微分方程的解是平面上的一族积分曲线,这族曲线中过点的积分曲线就是初值问题式(4.1)的解.

欧拉法的几何意义是,过点引斜率为的积分曲线的切线,此切线与直线的交点为,再过点引以为斜率的切线与直线的交点为,依此类推,从出发,作以为斜率的切线,此切线与直线交点为.于是便得到过点的一条折线,见图4.1.过的积分曲线则用此折线来代替.因此,这种方法亦称折线法.

图4.1

例:用欧拉法求微分方程[

]2',(0)1,0.1,0,1x y y y h y 区间为=-==

欧拉法流程图如下:

欧拉法程序如下: clear;

clc;

x1=0; x2=1; h=0.1; x0=0; y0=1;

N=(x2-x1)/h;%要计算的次数 x(1)=x0; y(1)=y0; for n=1:N

x(n+1)=x(n)+h;

y(n+1)=y(n)+h*(y(n)-2*x(n)/y(n));

end

X=x

Y=y

2改进欧拉法求微分方程

方法说明

由于欧拉法采用矩形公式计算积分产生较大截断误差.改进欧拉法(又称改进折线法)是采取梯形公式来计算式(4.3)右端积分,则有

(5.1)

在式(5.1)右端取,舍去余项,则得

将作为的近似值.

在式(5.1)右端再取,舍去余项,则得

将作为的近似值.

一般地,在式(5.1)右端取,舍去余项.则得

(5.2)

将作为的近似值.

式(5.2)为改进欧拉法计算公式.流程图如下:

例:用改进欧拉法求微分方程

[] 2

',(0)1,0.1,0,1

x

y y y h

y

区间为

=-==

改进欧拉法程序如下:

clear;

clc;

x1=0;

x2=1;

h=0.1;

x0=0;

y0=1;

p(1)=0;

N=(x2-x1)/h;

x(1)=x0;

y(1)=y0;

for n=1:N

x(n+1)=x(n)+h;

y(n+1)=y(n)+h*(y(n)-2*x(n)/y(n));

p(n+1)=y(n)+h*(y(n+1)-2*x(n)/y(n+1));

y(n+1)=(y(n+1)+p(n+1))/2;

end

X=x

Y=y

3斐波那契法求极值

方法说明

斐波那契法原理类似于黄金分割法,只是搜索区间的缩短率不再采用黄金分割数0.618。如图7.1所示,只要在[a,b]内取两点x1,x2,并计算出f(x1),f(x2),通过比较,可将区间[a,b]缩短为[a,x2]或[x1,b]。因为新的区间内包含一个已经计算过函数值的点,所以再从其中取一个试点,又可将这个新区间再缩短一次,不断地重复这个过程,直至最终的区间长度缩短到满足预先给定的精确度为止。

图7.1

现在的问题是,怎样选取试点,在保证同样精确度的情况下使得计算f(x)函数值的次数最少?在计算函数值的次数一定的情况下,最初区间与最终区间的长度之比可作为取点方式优劣的一个标准。计算n次函数值,如何取点使最终区间最小?或者最终区间长度为1,计算n次函数值,初始区间最多为多长?为此,引入Fibonacci数列:

F0=F1=1

F n=F n−1+F n−2 , n≥2

表7.1

所以当试点个数n确定之后,最初的两个试点分别选为:

x1=a+F n−2

F n

(b−a);

x2=a+F n−1

F n

(b−a).

显然x1,x2关于区间[a,b]对称,即有x1-a=b-x2,如图7.2所示

图7.2

相关文档
最新文档