function composite_indicator_smooth = untitled5(gender_ratio_variation)
% 模拟七鳃鳗雄性比例的变化
if strcmp(gender_ratio_variation, 'equal')
initial_ratio = 0.5; % 初始雄性比例为 50%
elseif strcmp(gender_ratio_variation, 'male_dominant')
initial_ratio = 0.9; % 初始雄性比例为 90%
elseif strcmp(gender_ratio_variation, 'female_dominant')
initial_ratio = 0.1; % 初始雄性比例为 10%
else
error('Invalid gender ratio variation');
end
generations = 50;
gender_ratio = zeros(1, generations);
gender_ratio(1) = initial_ratio;
predator_population = ones(1, generations); % 初始捕食者数量为 1
reproductive_success = ones(1, generations); % 初始繁殖成功率为 1
food_resources = ones(1, generations); % 初始食物资源为 1
composite_indicator = zeros(1, generations); % 初始综合指标为 0
for gen = 2:generations
% 模拟雄性比例的变化
gender_ratio(gen) = gender_ratio(gen - 1);
% 模拟繁殖成功率的变化,根据性别比例调整
reproductive_success(gen) = reproductive_success(gen - 1) - 0.005 * abs(gender_ratio(gen) - 0.5);
% 根据捕食者数量和繁殖成功率更新下一代捕食者数量
predator_population(gen) = predator_population(gen - 1) * reproductive_success(gen);
% 模拟食物资源的变化
food_resources(gen) = food_resources(gen - 1) - 0.02;
% 计算综合指标(加权求和),增加对雌性的权重
% 这里简单地加权求和,你可以根据实际情况调整权重
composite_indicator(gen) = 0.3 * gender_ratio(gen) + 0.4 * predator_population(gen) + 0.2 * reproductive_success(gen) + 0.1 * food_resources(gen);
end
% 使用正态分布进行平滑
smooth_filter = ones(1, 5) / 5; % 5点平均滤波
composite_indicator_smooth = conv(composite_indicator, smooth_filter, 'valid');
end
% 模拟性别比例为1:1的情况
equal_gender_ratio_indicator = untitled5('equal');
% 模拟性别比例为90%雄性的情况
male_dominant_indicator = untitled5('male_dominant');
% 模拟性别比例为10%雄性的情况
female_dominant_indicator = untitled5('female_dominant');
% 绘制结果
generations = 1:length(equal_gender_ratio_indicator);
figure('Position', [100, 100, 800, 400]);
% 综合指标图
plot(generations, equal_gender_ratio_indicator, 'LineWidth', 2, 'DisplayName', 'Equal Gender Ratio');
hold on;
plot(generations, male_dominant_indicator, 'LineWidth', 2, 'DisplayName', 'Male Dominant');
plot(generations, female_dominant_indicator, 'LineWidth', 2, 'DisplayName', 'Female Dominant');
hold off;
title('Smooth Composite Indicator in Different Gender Ratios');
xlabel('Generations');
ylabel('Composite Indicator');
legend('show');
grid on;
没有合适的资源?快使用搜索试试~ 我知道了~
MATLAB代码项目,可运行生成图
共4个文件
m:4个
需积分: 1 0 下载量 25 浏览量
2024-05-14
14:32:35
上传
评论
收藏 2KB ZIP 举报
温馨提示
MATLAB代码项目,可运行生成图
资源推荐
资源详情
资源评论
收起资源包目录
MATLAB代码.zip (4个子文件)
性别比例影响食物资源
SimpleClass.m 391B
untitled5.m 407B
综合指标评定
SimpleClass.m 892B
untitled5.m 3KB
共 4 条
- 1
资源评论
hashiqimiya
- 粉丝: 0
- 资源: 13
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功