本书标签: 明星同人 

其他123456789

数学建模完整报告(去掉指标表格,格式和样例文档保持一致)

第一题 黑龙江省农业现代化评价——熵权法Matlab求解报告

一、研究问题

为测度黑龙江省农业现代化发展水平,基于2013‑2022年黑龙江省农业面板数据,采用熵权法计算9项评价指标权重。样本区间:2013‑2022年,共10个年份;评价指标合计9个。

二、指标属性说明

在构建黑龙江省农业现代化水平评价体系前,区分各项指标属性。评价指标分为正向指标、负向指标:

正向指标共有6项:有效灌溉面积、农业机械总动力、粮食单位面积产量、农业总产值、农林牧渔业总产值指数、农村居民人均可支配收入。正向指标数值越大,代表农业现代化水平越高。

负向指标共有3项:农用化肥施用折纯量、农药使用量、农用塑料薄膜使用量。负向指标数值越大,代表农业绿色发展约束越强,农业现代化综合水平越低。

三、原始数据表

选取2013‑2022年黑龙江省农业相关统计数据作为研究样本,包含9项评价指标,原始面板数据如表2。

表2 原始数据表

有效灌溉面积 农业机械总动力 粮食单位面积产量 农业总产值 农林牧渔业总产值指数 农村居民人均可支配收入 农用化肥施用折纯量 农药使用量 农用塑料薄膜使用量

2022 6152.89 7090.88 5287.08 4320.48 102.50 18577.00 238.50 5.50 58000.00

2021 6220.51 6912.13 5406.89 4099.55 107.10 17889.00 238.97 5.71 61008.71

2020 6171.61 6775.09 5222.73 4044.15 102.60 16168.00 224.22 6.07 70501.00

2019 6177.59 6359.08 5232.92 3774.48 102.50 14982.00 223.27 6.43 71830.70

2018 6119.57 6084.65 5281.07 3634.99 103.50 13804.00 245.64 7.42 77431.00

2017 6030.97 5813.76 5235.41 3471.26 104.80 12665.00 251.20 8.32 79770.00

2016 5932.74 5634.27 5221.96 3189.71 105.50 11832.00 252.75 8.25 82575.00

2015 5530.84 5442.29 5332.03 3156.93 105.20 11095.00 255.31 8.29 83097.00

2014 5305.20 5155.52 5300.48 3193.58 105.50 10453.00 251.93 8.74 84424.00

2013 5342.12 4849.28 5196.92 2954.75 104.70 9369.00 244.96 8.40 85378.00

四、熵权法计算原理

1.指标标准化

正向指标:

x'_{ij}=\frac{x_{ij}-\min(x_j)}{\max(x_j)-\min(x_j)}

负向指标:

x'_{ij}=\frac{\max(x_j)-x_{ij}}{\max(x_j)-\min(x_j)}

x_{ij}:原始数据;\max(x_j)第j列最大值;\min(x_j)第j列最小值;标准化后数值[0,1];为防止对数\ln0,所有标准化数值加上微小偏移量 10^{-6}。

2.计算指标比重矩阵

p_{ij}=\frac{x'_{ij}}{\sum_{i=1}^{n}x'_{ij}}

3.计算信息熵

e_j = -k\sum_{i=1}^{n} p_{ij}\ln(p_{ij}),\quad k=\frac{1}{\ln n}

n=10样本年份数量

4.计算差异系数(信息效用值)

d_j = 1-e_j

5.计算指标熵权

w_j=\frac{d_j}{\sum_{j=1}^{m}d_j}

m=9为指标总数,所有权重相加等于1。

6.年度综合得分

S_i=\sum_{j=1}^m w_j \cdot x'_{ij}

五、Matlab实现代码

matlab

%% 熵权法 Matlab实现 黑龙江农业现代化9指标权重求解

clear; clc; close all;

% ====================1.载入原始数据====================

data = [

6152.89, 7090.88, 5287.08, 4320.48, 102.50, 18577.00, 238.50, 5.50, 58000.00;

6220.51, 6912.13, 5406.89, 4099.55, 107.10, 17889.00, 238.97, 5.71, 61008.71;

6171.61, 6775.09, 5222.73, 4044.15, 102.60, 16168.00, 224.22, 6.07, 70501.00;

6177.59, 6359.08, 5232.92, 3774.48, 102.50, 14982.00, 223.27, 6.43, 71830.70;

6119.57, 6084.65, 5281.07, 3634.99, 103.50, 13804.00, 245.64, 7.42, 77431.00;

6030.97, 5813.76, 5235.41, 3471.26, 104.80, 12665.00, 251.20, 8.32, 79770.00;

5932.74, 5634.27, 5221.96, 3189.71, 105.50, 11832.00, 252.75, 8.25, 82575.00;

5530.84, 5442.29, 5332.03, 3156.93, 105.20, 11095.00, 255.31, 8.29, 83097.00;

5305.20, 5155.52, 5300.48, 3193.58, 105.50, 10453.00, 251.93, 8.74, 84424.00;

5342.12, 4849.28, 5196.92, 2954.75, 104.70, 9369.00, 244.96, 8.40, 85378.00];

[n,m] = size(data);

pos_idx = [1,2,3,4,5,6]; %正向指标列编号

neg_idx = [7,8,9]; %负向指标列编号

% ====================2. min‑max标准化====================

x_std = zeros(n,m);

for j = 1:m

col = data(:,j);

maxcol = max(col);

mincol = min(col);

if ismember(j, pos_idx)

x_std(:,j) = (col - mincol)/(maxcol - mincol);

else

x_std(:,j) = (maxcol - col)/(maxcol - mincol);

end

end

x_std = x_std + 1e-6; %偏移避免log(0)

% ====================3.计算比重矩阵p====================

p = zeros(n,m);

for j = 1:m

sum_col = sum(x_std(:,j));

p(:,j) = x_std(:,j)/sum_col;

end

% ====================4.计算熵值ej、差异系数dj、权重wj====================

k = 1/log(n);

e = zeros(1,m);

d = zeros(1,m);

w = zeros(1,m);

for j = 1:m

e(j) = -k * sum( p(:,j).* log(p(:,j)) );

d(j) = 1 - e(j);

end

w = d / sum(d);

% ====================5.计算每年综合得分====================

score = x_std * w';

% ====================命令窗口输出结果====================

indicator_name = {'有效灌溉面积','农业机械总动力','粮食单产','农业总产值','农林牧渔指数','农村人均可支配收入','化肥折纯','农药用量','农膜用量'};

result_table = table(indicator_name', e', d', w','VariableNames',{'指标','熵值e','差异系数d','权重w'});

disp(result_table);

disp('权重总和:'); disp(sum(w));

disp('各年度综合得分:'); disp(score);

六、计算结果说明

运行代码之后Matlab命令窗口输出表格,包含每个指标熵值e、差异系数d、权重w,同时输出2013‑2022每年农业现代化综合得分。

熵值越小、差异系数越大,则指标权重越高,代表该指标对于评价体系区分能力越强。综合得分越高,代表当年黑龙江省农业现代化水平越高。

第二题 不规则蛋糕平分问题数学建模报告

一、问题重述

给定一块形状不规则连通蛋糕A,建立数学模型,分析是否存在一刀直线切割,可以将蛋糕分割成面积完全相等两部分。

二、模型假设

1. 将蛋糕抽象为二维平面内连通、有界闭区域;蛋糕厚度均匀,体积正比面积,平分体积等价平分面积。

2. 刀具视为理想直线,切割过程没有碎屑损耗,蛋糕不会发生形变。

三、符号说明

设蛋糕对应的平面区域记为D;蛋糕总面积记为S。目标:寻找一条直线,把区域D分割为两块,每块面积等于\dfrac S2。

四、模型建立与理论证明

任取一个固定倾斜角度\theta,构造一组互相平行、倾斜角等于\theta的直线,直线沿着垂直自身方向连续平移。

定义函数 f(l):当直线位置参数为l,直线左侧蛋糕区域面积。

1. 当直线移动到蛋糕左侧无穷远处,$ \lim\limits_{l \to -\infty} f(l)=0 $;

2. 当直线移动到蛋糕右侧无穷远处,$ \lim\limits_{l \to +\infty} f(l)=S $。

随着直线连续平移,f(l)是连续函数。

根据连续函数介值定理,必然存在位置参数l_0,满足:

f(l_0)=\frac{S}{2}

五、Matlab数值仿真演示

⚠️注意:Matlab只能做仿真演示,不能替代理论证明,报告必须保留上面数学推导。

原理:构造不规则多边形模拟蛋糕,使用数值遍历搜索,找到满足平分面积的切割直线。

matlab

%% 第二题:不规则蛋糕平分数值仿真演示

clear; clc; close all;

% 构造不规则多边形模拟蛋糕

theta = linspace(0,2*pi,8);

r = [1.0,1.3,1.1,0.9,1.2,0.85,1.05,0.95];

px = r.*cos(theta);

py = r.*sin(theta);

pgon = polyshape(px,py);

total_area = area(pgon);

target_area = total_area / 2;

figure;

plot(pgon,'FaceColor',[0.92,0.72,0.62]); hold on;

axis equal; title('不规则蛋糕仿真模型');

%固定角度,搜索切割位置

angle0 = pi/4;

nx = linspace(-2,2,600);

found_pos = NaN;

for pos = nx

x1 = pos*cos(angle0);

y1 = pos*sin(angle0);

[in,on] = intersect(pgon,line([x1-3*cos(angle0+pi/2),x1+3*cos(angle0+pi/2)],[y1-3*sin(angle0+pi/2),y1+3*sin(angle0+pi/2)]));

cut_shape = intersect(pgon, halfplane(angle0,pos));

if ~isempty(cut_shape)

leftA = area(cut_shape);

if abs(leftA-target_area) < 0.008

found_pos = pos;

break;

end

end

end

if ~isnan(found_pos)

x_a = found_pos*cos(angle0)-2.5*cos(angle0+pi/2);

y_a = found_pos*sin(angle0)-2.5*sin(angle0+pi/2);

x_b = found_pos*cos(angle0)+2.5*cos(angle0+pi/2);

y_b = found_pos*sin(angle0)+2.5*sin(angle0+pi/2);

plot([x_a,x_b],[y_a,y_b],'r-','LineWidth',2);

disp(['已经找到切割位置,目标面积',num2str(target_area),',左侧面积',num2str(leftA)]);

else

disp('本次离散搜索没有找到,增大采样点数');

end

hold off;

六、模型结论

一定至少存在一条直线(一刀),可以将不规则蛋糕A分割成面积相等两部分。

七、补充说明

本结论仅仅证明满足条件切割直线客观存在,无法直接给出直线确切坐标;分割仅仅保证两块面积相等,并不代表两块蛋糕几何形状完全相同。该命题是二维火腿‑三明治定理特例。

修改说明

已经直接删除原来表1(指标表格),改用纯文字叙述正向、负向指标;原始数据表表2予以保留(原始数据必须保留,不能删除),其余章节编号、公式、代码完全不变,和样例文档排版风格统一。

提示:第二题Matlab代码用到 halfplane 函数,这是Mapping Toolbox工具箱函数。如果你电脑没有这个工具箱,运行报错我给你换一份不需要工具箱的版本。