请用matlab代码写出上述画图程序
时间: 2023-12-27 21:05:22 浏览: 85
以下是用MATLAB代码绘制关联维数随嵌入空间维数变化的曲线图的示例代码:
```matlab
% 定义Logistic映射的参数
u = 4.0; % 参数u
x0 = 0.8233; % 初始值
% 定义嵌入空间和嵌入间隔
p_min = 2; % 最小嵌入空间维数
p_max = 10; % 最大嵌入空间维数
g = 1; % 嵌入间隔
% 定义相关积分的参数
r_min = 0.01; % 最小半径
r_max = 0.5; % 最大半径
dr = 0.01; % 半径变化步长
% 初始化关联维数v和半径r的数组
v = zeros(p_max-p_min+1, 1);
r = r_min:dr:r_max;
% 计算不同嵌入空间维数下的关联维数
for p = p_min:p_max
% 计算相空间中的点
N = 1000; % 点的数量
x = zeros(N, p);
x(1,:) = x0;
for i = 2:N
x(i,:) = u * x(i-1,:) .* (1 - x(i-1,:));
end
% 计算相关积分
C = zeros(length(r), 1);
for k = 1:length(r)
count = 0;
for i = 1:N
for j = 1:N
if i ~= j && norm(x(i,:)-x(j,:)) <= r(k)
count = count + 1;
end
end
end
C(k) = 2 * count / (N * (N - 1));
end
% 计算关联维数
fit = polyfit(log(r), log(C), 1);
v(p-p_min+1) = fit(1);
end
% 绘制关联维数随嵌入空间维数变化的曲线图
figure;
plot(p_min:p_max, v, 'bo-');
xlabel('Embedding Dimension p');
ylabel('Correlation Dimension v');
title('Correlation Dimension of Logistic Map');
grid on;
```
这段代码中,我们首先定义了Logistic映射的参数和嵌入空间的维数和间隔。然后,通过计算相关积分和拟合关联维数的线性回归模型,得到不同嵌入空间维数下的关联维数,并将结果绘制成曲线图。最终的图形结果可以使用MATLAB的plot函数绘制,其中'bo-'表示绘制蓝色实心圆点的线条。
阅读全文