洛伦兹系统ODE方程-MATLAB

  1. 洛伦兹系统ODE方程

这是一个用于计算简单洛伦兹系统ODE方程的MATLAB函数。这个函数的输入参数包括一个时间向量t和一个状态向量y。y是一个3维向量,代表简单洛伦兹系统的三个状态变量:x、y和z。输出参数f也是一个3维向量,分别对应x、y和z的导数值。

函数首先使用全局变量c,来定义简单洛伦兹系统的一个参数值。
接着,函数将f向量的每个元素初始化为0。
然后,函数分别计算x、y和z的导数,将其分别保存到f向量的对应位置:

f(1)代表x的导数,其计算公式为:10*(y(2)-y(1))
f(2)代表y的导数,其计算公式为:(24-4*c)y(1)+cy(2)-y(1)*y(3)
f(3)代表z的导数,其计算公式为:y(1)y(2)-8/3y(3)
最后,函数返回计算得到的f向量。
请注意,这是一个函数,需要在其他代码中进行调用,并且需要提前声明全局变量c的值。

function f=chao_SimpleLorenz(t,y)
global c
f=zeros(3,1);
f(1)=10*(y(2)-y(1));
f(2)=(24-4*c)*y(1)+c*y(2)-y(1)*y(3);
f(3)=y(1)*y(2)-8/3*y(3);
  1. 计算洛伦兹系统ODE方程

这是一个用于计算洛伦兹系统ODE方程的MATLAB函数。函数的输入参数包括一个时间向量t和一个状态向量X,其中X是一个12维向量,代表了洛伦兹系统的状态变量x、y、z及其对应的雅可比矩阵Y。
在函数体内,首先使用了全局变量c,来定义洛伦兹系统的参数值。
接下来,函数从输入的状态向量X中提取出x、y、z以及雅可比矩阵Y的值。
然后,函数初始化了一个12维的零向量f。
接着,函数计算了状态变量x、y、z的导数,即f(1)、f(2)和f(3),计算公式参照了洛伦兹系统的ODE方程。
接下来,函数构建了雅可比矩阵Jac,并用它来计算状态变量X的雅可比矩阵Y的导数值,并将结果保存到f的4到12维。
最后,函数返回计算得到的f向量。
需要注意的是,这是一个函数,需要在其他代码中进行调用,并且需要提前声明全局变量c的值。

function f=SimLorenz_ly(t,X)
global c
x=X(1); y=X(2); z=X(3);
Y= [X(4), X(7), X(10);
    X(5), X(8), X(11);
    X(6), X(9), X(12)];
f=zeros(12,1);
f(1)=10*(y-x);
f(2)=-x*z+(24-4*c)*x+c*y;
f(3)=x*y-8/3*z;
 Jac=[-10,10,0;
     24-4*c-z,  c,  -x;
      y,    x,   -8/3];
  f(4:12)=Jac*Y;
  1. 计算序列的C0复杂度
    这是一个用于计算序列的C0复杂度的MATLAB函数。这个函数的输入参数包括一个混沌序列x和一个容限度r。输出参数是C0,代表混沌序列的复杂度。函数首先对输入序列x进行FFT(快速傅里叶变换),然后计算FFT结果的平均幅度平方,保存为变量Gn。接下来,函数创建一个和输入序列x等长的零向量YY,并依次遍历输入序列的每个FFT结果元素。对于每个FFT结果元素,如果它的幅度平方超过容限度r乘以Gn,则将该元素保存到YY向量对应位置。然后,函数对YY进行IFFT(逆傅里叶变换),得到逆变换后的序列xx。接着,函数计算Ssum,
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值