使用For循环在Matlab中绘制不同b值的种群增长函数曲线
Matlab实现种群增长模型双曲线绘制
完整实现代码
% 初始参数设置 b_values = [0.1, 0.001]; % 分别对应b>d和b=d两种场景 d = 0.001; N0 = 400; time = 100; % 时间范围可按需调整 % 开启绘图保持,确保多条曲线叠加在同一画布 hold on; grid on; % 遍历每个b值,求解微分方程并绘图 for i = 1:length(b_values) b = b_values(i); % 定义种群增长微分方程:dN/dt = (b-d)*N growth_eq = @(t,N) (b - d)*N; % 调用ode45求解,时间步长为1 [time_points, population] = ode45(growth_eq, 0:1:time, N0); % 用不同颜色/线型区分曲线 if i == 1 plot(time_points, population, 'r-', 'LineWidth', 2); else plot(time_points, population, 'b--', 'LineWidth', 2); end end % 图表标注设置 title('种群增长模型曲线对比'); xlabel('时间'); ylabel('种群数量'); legend('b>d (b=0.1)', 'b=d (b=0.001)'); hold off;
关键说明
hold on:核心作用是保留当前绘图窗口,让后续绘制的曲线不会覆盖之前的内容,实现同一图中多曲线展示- 循环遍历
b_values:逐个处理每个b值,避免匿名函数直接使用数组导致的运算错误 - 曲线样式区分:通过红色实线和蓝色虚线直观区分
b>d(指数增长)和b=d(种群数量保持稳定)两种情况 - 标注补充:添加标题、坐标轴标签和图例,让图表信息更完整易读
内容的提问来源于stack exchange,提问作者linta
相关产品推荐
相关产品推荐

