2023深圳杯(东三省)数学建模ABC题思路及代码

大家好呀,比赛开赛后我一直在去写各个题,深圳杯的难度还是比较大的,在这里给大家带来初步的选题建议及思路。

本次深圳杯小白推荐选择A题,数据分析类题目无论怎样都能完成论文,内容也会比较丰富。学过嵌入信息的可以选择b,数理基础比较扎实,会模拟仿真的可以选择C,D只建议有医学专业知识的人选择。

我会先做A题,预计28号完成完整论文,之后我会做BC其中一道。后续还会持续更新哈,图文版讲解得比较简陋,详细的视频版讲解请移步:

2023深圳杯(东北三省)数学建模选题建议及初步思路_哔哩哔哩_bilibili

A题影响城市居民身体健康的因素分析

请你们团队研究解决下面问题:

问题1 参考附件A3,分析附件A2中居民的饮食习惯的合理性,并说明存在的主要问题。

这一问主要是统计分析,针对于附件3的8个准则中的标准,对应寻找相应的附件2中的数据,之后进行统计汇总以及图表可视化即可。

问题2 分析居民的生活习惯和饮食习惯是否与年龄、性别、婚姻状况、文化程度、职业等因素相关。

做相关性分析即可,绘制热力图给出相关系数大小。重点是用什么对于数据对生活习惯进行表征,如果按照问题3来说,那么生活习惯与吸烟、饮酒、饮食习惯、工作性质、运动等因素是并列关系,没有包含关系,但是问卷调查数据中,除了其他因素,没有相应的生活习惯数据,因此,还是通过吸烟饮酒运动去表征生活习惯即可。

问题3 根据附件A2中的数据,深入分析常见慢性病(如高血压、糖尿病等)与吸烟、饮酒、饮食习惯、生活习惯、工作性质、运动等因素的关系以及相关程度。

可以做差异性分析,也就是说患不患病在这些因素上是否存在显著差异;也可以做一样的相关性分析。

问题4 依据附件A2中居民的具体情况,对居民进行合理分类,并针对各类人群提出有利于身体健康的膳食、运动等方面的合理建议。

可以做简单分类,例如直接进行年龄划分;也可以针对于一个因素,例如吸烟频率进行聚类划分。

B题 电子资源版权保护问题

隐写术一般被认为是信息隐藏学的一个重要分支,它专门研究如何隐藏实际存在的信息。隐写术有悠久的历史,部分案例甚至可追溯到公元前数百年。随着计算机和互联网技术的高速发展,近代隐写技术的研究被认为大约起始于20世纪90年代。因为隐写技术能将特定信息嵌入信息载体且不易被察觉,所以它可被广泛地应用于著作权保护、数据附加等领域。
问题1 针对附件1的图片P,建立生成嵌入信息深圳杯数学建模挑战赛的图片SP的数学模型,使得图片SP在人的视觉上尽可能与原图P相近。设计并实现生成图片SP的算法,将生成SP源代码和结果图片SP置于参赛作品的附录A中;给出从图片SP提取著作权信息使用的源代码并置于参赛作品的附录B中。

主要就是嵌入信息给一个图片。

给大家看一下我目前用到的一些代码吧,注意,只是初步代码,还没有完整实现:

复制代码
function stego_image = embedTextToImage(original_image, text_to_embed, alpha)
    % 嵌入信息
    % 输入:
    %   original_image: 原始图像
    %   text_to_embed: 要嵌入的文本信息(字符串)
    %   alpha: 嵌入强度(调节参数,一般取值在0.1-1之间,越大越明显)
    % 输出:
    %   stego_image: 嵌入了文本信息的图像
% 读取原始图像
original_image = imread('image.jpg');

% 要嵌入的文本信息
text_to_embed = '深圳杯数学建模挑战赛';

% 嵌入强度(根据需要调整)
alpha = 0.1;

% 嵌入信息并得到嵌入后的图像
stego_image = embedTextToImage(original_image, text_to_embed, alpha);

% 保存嵌入后的图像(如果需要)
imwrite(stego_image, 'path_to_save_stego_image.jpg');

    % 将RGB图像转换为灰度图像
    gray_image = rgb2gray(original_image);
    [M, N] = size(gray_image);

    % 获取文本信息的二进制编码
    binary_text = reshape(dec2bin(text_to_embed, 8).' - '0', 1, []);

    % 确定嵌入位置,这里简单地按照zigzag顺序选取
    zigzag_indices = zigzagOrder(M, N);
    num_bits_to_embed = numel(binary_text);

    % 嵌入信息
    stego_image = double(gray_image);

    for i = 1:num_bits_to_embed
        % 选择当前位置
        current_index = zigzag_indices(i);
        [row, col] = ind2sub([M, N], current_index);

        % 获得DCT系数
        block = stego_image(row:row+7, col:col+7);
        dct_block = dct2(block);

        % 判断当前位应该嵌入0还是1
        bit_to_embed = str2double(binary_text(i));

        % 根据嵌入强度调节系数
        alpha_i = alpha * (max(dct_block(:)) - min(dct_block(:)));

        % 嵌入信息
        if bit_to_embed == 0
            dct_block(2, 1) = dct_block(2, 1) - alpha_i;
        else
            dct_block(2, 1) = dct_block(2, 1) + alpha_i;

注意,以上只是部分代码,完整代码见文末。

我做完A再看看要继续做b还是c吧。

C题 无人机协同避障航迹规划

平面上A、B两个无人机站分别位于半径为500 m的障碍圆两边直径的延长线上,A站距离圆心1 km,B站距离圆心3.5 km。两架无人机分别从A、B两站同时出发,以恒定速率10 m/s飞向B站和A站执行任务。飞行过程中两架无人机必须避开障碍圆、并且不得碰面(即两架无人机的连线必须保持与障碍圆处于相交状态)。无人机的转弯半径不小于30 m。请建立数学模型,解决以下问题:
问题1 要求两架无人机中第一个到达目的站点的用时最少,给出两架无人机的飞行航迹方案。

题面不用解释了,大家应该都能看懂,给大家看一下我目前写的代码吧,注意,只是初步代码,还没有完整实现:

复制代码
function main()
    % 障碍圆参数
    obstacle_center = [0, 0]; % 障碍圆的圆心坐标
    obstacle_radius = 500;    % 障碍圆的半径

    % 无人机A和B的初始位置
    A_start = [1000, 0]; % 无人机A的初始位置
    B_start = [3500, 0]; % 无人机B的初始位置

    % 无人机的速度
    V = 10; % m/s

    % 定义优化问题
    options = optimoptions('fmincon', 'Display', 'off', 'Algorithm', 'interior-point');
    x0 = [0, 0]; % 初始猜测的无人机A和B的角度
    lb = [0, 0]; % 无人机A和B的角度下界
    ub = [2*pi, 2*pi]; % 无人机A和B的角度上界

    [best_angles, ~] = fmincon(@(x) objective_function(x, A_start, B_start, V), x0, [], [], [], [], lb, ub, @(x) constraints(x, A_start, B_start, V, obstacle_center, obstacle_radius), options);  % 最佳角度
    best_angle_A = best_angles(1);
    best_angle_B = best_angles(2);

    disp(['无人机A的最佳角度:', num2str(best_angle_A)]);
    disp(['无人机B的最佳角度:', num2str(best_angle_B)]);
end

% 目标函数:最小化无人机A到达目的地的时间
function time = objective_function(angles, A_start, B_start, V)
    theta_A = angles(1);
    theta_B = angles(2);
    time_A = norm(A_start - B_start) / V;
    time_B = norm(B_start - A_start + [cos(theta_A), sin(theta_A)] * V * time_A) / V;
    time = max(time_A, time_B);
end

% 约束条件:避开障碍圆并不碰面
function [c, ceq] = constraints(angles, A_start

注意,以上只是部分代码,完整代码见文末。

我做完A再看看要继续做b还是c吧。

D题 基于机理的致伤工具推断

题目看得我有点生理不适,此外我也不擅长这种题目,我就不做了,有医学专业知识的队伍可以尝试下。。

OK,总体而言还是那句话:本次深圳杯小白推荐选择A题,数据分析类题目无论怎样都能完成论文,内容也会比较丰富。学过嵌入信息的可以选择b,数理基础比较扎实,会模拟仿真的可以选择C,D只建议有医学专业知识的人选择。

我会先做A题,预计28号完成完整论文,之后我会做BC其中一道。

以上只是比较简略的图文版讲解,视频版讲解以及后续完整成品的预定请点击下方我的个人卡片查看↓:

相关推荐
AI科技星2 小时前
张祥前统一场论中两个电荷定义的统一性解析
开发语言·线性代数·算法·数学建模·平面
做cv的小昊3 小时前
【TJU】研究生应用统计学课程笔记(1)——第一章 数理统计的基本知识(1.1 数理统计的基本内容、1.2 数理统计的基本概念)
笔记·线性代数·考研·数学建模·ai·矩阵·概率论
做cv的小昊19 小时前
【TJU】应用统计学——第五周作业(3.1 假设检验的基本思想、3.2 单个正态总体参数的假设检验)
学习·线性代数·机器学习·数学建模·矩阵·概率论·tju
飞舞哲1 天前
含模型不确定性的机械臂神经网络状态反馈自适应控制
人工智能·神经网络·数学建模
smppbzyc1 天前
2026认证杯挑战赛A题【 水系电解液配方】原创论文讲解
数学建模·认证杯数学建模·认证杯·2026认证杯·认证杯数学建模竞赛·2026认证杯数学建模
smppbzyc2 天前
2026认证杯数学建模A题【 水系电解液配方】原创论文讲解(含完整python代码)
数学建模·数学建模竞赛·认证杯·2026认证杯·2026认证杯数学建模竞赛·认证杯数学建模竞赛
apcipot_rain2 天前
Python实战——蒙特卡洛模拟分析杀牌游戏技能收益
python·游戏·数学建模
LingLong_roar2 天前
OCC 7.9.3 + VS2022 可编译、可运行的最简可视化窗口
数学建模
551只玄猫3 天前
【数学建模 matlab 实验报告13】主成分分析
开发语言·数学建模·matlab·课程设计·主成分分析
热心网友俣先生3 天前
2026年认证杯赛题浅析
数学建模