《数值分析》课程设计实验报告
龙格—库塔法分析 Lorenz 方程
200820302033 胡涛
一、问题叙述
考虑著名的 Lorenz 方程
dx
dt
dy
dt
dz
dt
(
s y
x
)
rx
y
xz
xy bz
其中 s,r,b 为变化区域内有一定限制的实参数,该方程形式简单,表面上看并无惊人之处,
但由该方程揭示出的许多现象,促使“混沌”成为数学研究的崭新领域,在实际应用中也产
生了巨大的影响。
二、问题分析
Lorenz 方程实际上是一个四元一阶常微分方程,用解析法精确求解是不可能的,只能
用数值计算,最主要的有欧拉法、亚当法和龙格- 库塔法等。为了得到较高精度的,我们采
用经典四阶龙格—库塔方法求解该问题。
三、实验程序及注释
(1)算法程序
function [T]=Runge_Kutta(f,x0,y0,h,n)
if nargin<5
n=100;
end
r=size(y0);r=r(1);
s=size(x0);s=s(1);
r=r+s;
T=zeros(r,n+1);
T(:,1)=[y0;x0];
for t=2:n+1
%定义算法,其中 f 为待解方程组,
x0 是初始自变量,y0 是初始函数
值,h 是步长,n 为步数
%如果输入参数个数小于 5,则步数
n=100
%返回初始输出矩阵的行列数,并将
值赋给 r(1)
%返回初始输入矩阵的行列数,并
将值赋给 s(1)
%以下是具体的求解过程
k1=feval(f,T(1:r-1,t-1));
k2=feval(f,[k1*(h/2)+T(1:r-1,t-1);x0+h/2]);
k3=feval(f,[k2*(h/2)+T(1:r-1,t-1);x0+h/2]);
k4=feval(f,[k3*h+T(1:r-1,t-1);x0+h]);
x0=x0+h;
T(:,t)=[T(1:r-1,t-1)+(k1+k2*2+k3*2+k4)*(h/6);x0];
end
(2)主程序
function dy=fun(x)
s=10.0;
r=28.0;
b=8.0/3;
dy(1)=s*(x(2)-x(1));
dy(2)=(r*x(1)-x(3)*x(1)-x(2));
dy(3)=x(1)*x(2)-b*x(3);
dy=dy';
(2)运行程序
%定义函数
%给参数 s,r,b 赋值
%Lorenz 方程表达式
T=Runge_Kutta('fun',0,[10;10;10],0.01,5000);
plot3(T(1,:),T(2,:),T(3,:));
axis([-20 20 -50 50 0 50])
view(3)
%调用前面的算法程序
%显示三分量的关系图
%定义坐标轴长度
%设定观察角度
四、实验数据结果及分析
(1)各初始变量相同时的图像分析
各初始变量取相同的值[10,10,10],运行上述程序后,得到如下图像:
从图中可以看出,各初始变量相同时,曲线总是被吸引回奇怪吸引子附近作来回跳跃。
初始变量值取为[-10,-10,-10] ,[20,20,20]时,依然如此。图像如下:
[-10,-10,-10]
[20,20,20]
(2)初始值的每个分量变化对图像的影响
y 分量:
[0,2,0]
[0,5,0]
[0,15,0]
[0,20,0]
从上面可以看出,随着初始 y 值的增大,奇怪吸引子中曲线在其附近来回跳跃的两个位
置中的一个吸引力变弱,另一个吸引力变强。初始 y 继续增大到某一特定值,情况又会变回
来。这说明在空间存在一些区域,当初始位置位于这些区域外时解将出现奇怪吸引子的性质,
而在这些区域以内解将呈现普通吸引子的性质。
z 分量:[0,0,20]
从上图可以看出解的曲线为一直线,这可以从方程的角度来解释。当 x=0,y=0 时在方程
中 dx/dt=0,dy/dt=0,x,y 方向的值不发生变化,仅 z 方向的值变化,因此解为一直线。
(3)调整参数 r、s、b 对图像的影响
为便于分析,我们只调整 r、s、b 三个参数中的任意一个。当只调整 b 且将初始变量取
为[0,eps,0]。具体情况如下:
s=10.0,r=28.0,b=8.0/3
s=10.0,r=28.0,b=9.6/3
s=10.0,r=28.0,b=11.0/3
s=10.0,r=28.0,b=15.0/3
增大 b 值时,Lorenz 曲线在其附近来回跳跃的两个位置会一个加强,一个减弱。当 b
达到某一值时,个位置丧失吸引力,另一位置则将曲线完全吸引过来变成普通吸引子。改变
s 和 r 的值也有类似的现象。
五、实验结论
本实验利用龙格—库塔法对 Lorenz 方程进行了分析,从实验中我们得出,Lorenz 方程
的解对初始变量和参数 r、s、b 具有很强的敏感性。