欧拉法-改进欧拉法-斐波那契法原理及流程图

  • 格式:docx
  • 大小:283.04 KB
  • 文档页数:9

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


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

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

()
再对式右端积分用矩形公式计算,则有
,
在式右端取,舍去余项。则得
,
作为的近似值。
在式右端取,舍去余项,则得
𝑦2=𝑦1+𝑦𝑦(𝑦1,𝑦
1

作为的近似值.
一般地,在式右端取舍去余项,则得

作为的近似值.式为欧拉法计算公式.
我们知道微分方程的解是平面上的一族积分曲线,这族曲线中
过点的积分曲线就是初值问题式的解.

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


例:
用欧拉法求微分方程
[]
2',(0)1,0.1,0,1x

yyyhy区间为=-==
欧拉法流程图如下:
欧拉法程序如下:
clear;
clc;
x1=0;
x2=1;
h=;
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

x0+h=>x1
y0+h*f(x0,y0)=>y1

n=1

输出x1,y1
n=1+n
x1=> x0
y1=> y0

结束
n=N

读入
开始
计算
Y=y

2
改进欧拉法求微分方程

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

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

将作为的近似值.
在式右端再取,舍去余项,则得

将作为的近似值.
一般地,在式右端取,舍去余项.则得

将作为的近似值.
式为改进欧拉法计算公式.
流程图如下:
例:用改进欧拉法求微分方程[]2',(0)1,0.1,0,1xyyyhy区间为=-==

改进欧拉法程序如下:
clear;

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

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


F
0=F1

=1

F
n=Fn−1+Fn−2

, n≥2


所以当试点个数n确定之后,最初的两个试点分别选为:
x1=a+Fn−2Fn(b−a);

x2=a+Fn−1Fn(b−a).
显然x1,x2关于区间[a,b]对称,即有x1-a=b-x2,如图所示