实验四 阻滞差分模型的稳定性数值辅助分析

实验题目 差分方程的稳定性
实验目的 会编程求阻滞差分模型的数值解,辅助分析其平衡点的稳定性
实验软件 Matlab
原理方法 M文件的编写,差分方程的迭代数值求解,不同参数、初值情况下解的稳定性分析。
实验内容 数值解辅助分析差分方程的稳定性。
实验步骤 1. 建立阻滞差分模型
2.计算不同参数情况下的方程数值解并作图,对比分析平衡点的稳定条件。
3. 画分岔图。
4.总结不同参数范围下模型的演化特征(倍周期特征)。

  1. 建立阻滞差分模型
f=@(x,b,n)b.*x.*(1-x/n); 
b=[1.7,2.6,3.3,3.45,3.55,3.57];
n=1000000;
x=ones(51,length(b));
x(1,:)=2000;
for k=1:100
x(k+1,:)=f(x(k,:),b,n);
End

figure;
hold on;
for i = 1:length(b)
plot(0:100, x(:, i), 'DisplayName', ['b = ', num2str(b(i))]);
end
xlabel('Iterations');
xlim([0,10])
ylabel('x');
title('Logistic Map for Different Values of b');
legend('show');
hold off;

2.计算不同参数情况下的方程数值解并作图,对比分析平衡点的稳定条件。

f=@(x,b)b.*x.*(1-x); 
b=[1.7,2.6,3.3,3.45,3.55,3.57];
x=ones(51,length(b));
x(1,:)=0.2;
for k=1:100
x(k+1,:)=f(x(k,:),b);
End

for n=1:length(b)
figure(n);
subplot(1,2,1);
fplot(@(x)[f(x,b(n)),x],[0,1]);
axis square; hold on;
x0=x(1,n); y0=0; 
for k=2:5
x1=x(k,n); y1=x(k,n);
plot([x0+i*y0, x0+i*y1, x1+i*y1], 'r');
x0=x1; y0=y1;
end
title(['初始(b=' num2str(b(n)) ')']);
hold off;
subplot(1,2,2); 
fplot(@(x)[f(x,b(n)),x],[0,1]);
axis square; hold on;
xy(1:2:41)=x(81:101,n)+i*x(81:101,n);
xy(2:2:40)=x(81:100,n)+i*x(82:101,n);
plot(xy,'r');
title(['结果(b=' num2str(b(n)) ')']);
hold off;
end
  1. 画分岔图。
d = 0.005;
x = d:d:1-d;
a = 0:0.004:4; 
Nx = length(x);
Na = length(a);
BF = zeros(Na, Nx); 

for k = 1:Na
a_k = a(k);
x1 = x;
for m = 1:200
x1 = Logistic(x1, a_k);
end
BF(k, :) = x1;
end
figure()
hold on
for k = 1:Na
a_k = a(k);
plot(a_k * ones(1, Nx), BF(k, :), ...
'LineStyle', 'none', 'Marker', '.', 'MarkerFaceColor', 'k', 'MarkerEdgeColor', 'k', ...
'MarkerSize', 1)
end
hold off
xlabel('b')
ylabel('x')

function x2 = Logistic(x1, a)
x2 = a * (1 - x1) .* x1;
end
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值