问题简述:
1920年,第一个化学震荡体系–Lotka
· A+X
· X+Y
· Y
其速率方程为:
假定体系敞开,物种A能够得到及时补充(这也是耗散系统维持震荡的必要条件),可得到各物种浓度变化关系如下:
体系模拟:
使用ode15s算法,取如下条件进行模拟:
模拟后进行快速傅里叶变换并分析频谱,Matlab代码如下:
function [ t_list, conc_mat ] = Lotka( tspan, ini_conc )
%1920年,洛特卡震荡子模型:
% A + X → 2X
% X + Y → 2Y
% Y → P
% A的浓度被视为常数,敞开体系可以实时补充
[t_list,conc_mat]=ode15s(@lotka_equation,tspan,ini_conc);
figure,plot(t_list,conc_mat(:,1));
figure,plot(t_list,conc_mat(:,2));
end
function [dxdy]=lotka_equation2(t,xy)
%按速率常数100,0.1,1进行反应
%初值条件使用x=6,y=1: 产生稳定震荡解,成功模拟lotka振子,注意到振幅有波动,主频左侧低频区产生高幅度信号.
dxdy=[100*xy(1)-0.1*xy(1)*xy(2);0.1*xy(1)*xy(2)-xy(2)];
end
命令行中输入[t,v]=Lotka([0,120],[6,1])
可得如下图像:
频谱分析:
取上述模拟结果的震荡期数据,并进行快速傅里叶变换:
fr_map=abs(fft(v(3000:11000,2)));
plot([0:1/4000:1],fr_map(1:4001));
作幅度-频率图像如下:
可以看到主频左侧确实出现小峰,体现为体系震荡幅度有周期性涨落.
总结:
BZ震荡
参考文献:
[1] A. J. Lotka, J. Am. Chem. Soc. 42, 1595 (1920)
[2] R. J. Field, R. M. Noyes, J. Chem. Phys. 60, 1877 (1974)
[3] R. J. Field, E. Koras, and H. M. Noyes, J. Am. Chem.Soc. 94, 8649 (1972).