2015数学建模国赛b题代码分析

article/2025/9/24 2:49:49

所用代码出自2015年b285优秀论文,建模时可做参考

出租车数量 、 请求单数 、用户等待时间空间分布图 3D

distribute=xlsread('20150906distribute.csv'); 
Dis=[]; m1=17; 
for i=1:length(distribute) % 矩阵行和列的最大值    if (distribute(i,1)==m1)         [Dis]=[Dis; distribute(i,:)];     end
end
figure 
[x1]=Dis(:,2); % x坐标
[y1]=Dis(:,3); % y坐标
[z1]=Dis(:,4); % z坐标
nxDis=linspace(min(x1),max(x1),100); %最小值->最大值间的100个数据点
nyDis=linspace(min(y1),max(y1),100); 
[xx1,yy1]=meshgrid(nxDis,nyDis); %创建nxDis和nyDis的网格
[X1,Y1,Z1]=griddata(x1,y1,z1,xx1,yy1,'v4'); % 插值
surf(X1,Y1,Z1); % 三维曲面
%colormap gray; % 颜色
%axis equal; % 设置屏幕高宽比
xlabel('经度/°'); 
ylabel('纬度/°'); 
title('2015年9月6日高峰(17时)上海市出租车数量分布'); 
  • linspace(x1,x2,N)
    功 能:用于产生x1,x2之间的N点行矢量,相邻数据跨度相同。其中x1、x2、N分别为起始值、终止值、元素个数。若缺省N,默认点数为100。
    举例如下:
    X=linspace(5,100,20) % 产生从5到100范围内的20个数据,相邻数据跨度相同
    X =5 10 15 20 25 30 35 40 45 50 55 60 65 70 75 80 85 90 95 100
  • [A,B]=meshgrid(a,b)
    生成size(b)Xsize(a)大小的矩阵A和B。它相当于a从一行重复增加到size(b)行,把b转置成一列再重复增加到size(a)列。
  • griddata是matlab中的插值函数,’v4’是MATLAB自定义的 4 格点样条函数内插选项。
  • colormap gray:
    surf函数绘制表面图时自带的颜色就是由colormap决定的,使用默认parula来上色.MATLAB中默认自带了18中colormap,按照主题可分为:
    季节(summer,autumn,winter,spring)温度(hot,cool)材质(bone,copper)hues(pink,gray)颜色空间(hsv,colorcube-sort
    of)

:这段代码很有参考价值

A=[1.486,3.059,0.1;2.121,4.041,0.1;2.570,3.959,0.1;3.439,4.396,0.1;
4.505,3.012,0.1;3.402,1.604,0.1;2.570,2.065,0.1;2.150,1.970,0.1;
1.794,3.059,0.2;2.121,3.615,0.2;2.570,3.473,0.2;3.421,4.160,0.2;
4.271,3.036,0.2;3.411,1.876,0.2;2.561,2.562,0.2;2.179,2.420,0.2;
2.757,3.024,0.3;3.439,3.970,0.3;4.084,3.036,0.3;3.402,2.077,0.3;
2.879,3.036,0.4;3.421,3.793,0.4;3.953,3.036,0.4;3.402,2.219,0.4;
3.000,3.047,0.5;3.430,3.639,0.5;3.822,3.012,0.5;3.411,2.385,0.5;
3.103,3.012,0.6;3.430,3.462,0.6;3.710,3.036,0.6;3.402,2.562,0.6;
3.224,3.047,0.7;3.411,3.260,0.7;3.542,3.024,0.7;3.393,2.763,0.7];
x=A(:,1);y=A(:,2);z=A(:,3);
scatter(x,y,5,z)%散点图
figure
[X,Y,Z]=griddata(x,y,z,linspace(1.486,4.271)',linspace(1.604,4.276),'v4');%插值
pcolor(X,Y,Z);shading interp%伪彩色图
figure,contourf(X,Y,Z) %等高线图
figure,surf(X,Y,Z)%三维曲面

这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述

特定商圈 、 城郊地区全天空驶率变化折线图

(以 2015年 8月 30日全天东川路地铁站中心 10km范围为例)

data=xlsread('0830东川路.csv');   
[t0]=data(:,1); 
[K]=data(:,7); 
figure; 
plot(t0,K,'-rs','LineWidth',2,'MarkerEdgeColor','k','MarkerFaceColor','g','MarkerSize',10); 
% 's'表示正方形,线宽为2,MarkerEdgeColor标识符边缘颜色为黑色,MarkerFaceColor标识符填充颜色为绿色,MarkerSize标识符大小为10
axis([0 24 0 1]); % 坐标轴的显示范围
set(gca,'xtick',0:1:24); % X轴的记号点
xlabel('t/小时'); 
ylabel('K/空驶率'); 
title('2015年8月30日(工作日)东川路地铁站中心10km范围内空载率全天变化图'); 

这里写图片描述

边长7km方形区域内请求单数等高线和随机位置散点图

xmin=121.4; 
xmax=121.4824; 
ymin=31.2; 
ymax=31.263; %经纬度范围 
dx=(xmax-xmin)/9; 
dy=(ymax-ymin)/9; 
nx=linspace(xmin,xmax+dx,11); 
ny=linspace(ymin,ymax+dy,11); 
demand=xlsread('0910demand.csv'); 
De=[]; m=17; % 下午17时
for i=1:length(demand)     if (demand(i,1)==m)         [De]=[De; demand(i,:)]; end
end
figure; 
[x1]=De(:,2);
[y1]=De(:,3);
[z1]=De(:,4); 
nxDis=linspace(min(x1),max(x1),80); 
nyDis=linspace(min(y1),max(y1),80); 
[xx1,yy1]=meshgrid(nxDis,nyDis); 
z2=griddata(x1,y1,z1,xx1,yy1,'v4'); % 插值
contour(xx1,yy1,z2,200,'s'); % 绘制矩阵的等高线,指定等高线的数量为200
axis([xmin xmax+dx ymin ymax+dy]); % 坐标范围
set(gca,'xtick',nx); 
set(gca,'ytick',ny); 
set(gca,'DataAspectRatio',[110.94 85.276 1]); % 将横纵坐标按照经纬度折 算公里数缩放 使得图中显示恰好为正方形 
grid on; % 加上网格线
rotateticklabel(gca,'x',-30); % X轴刻度标签比较拥挤时旋转30度
hold on;  
Dio=xlsread('meshin4.xls'); 
scatter(Dio(:,2),Dio(:,1),90,'+r'); % 散点图,点的大小为90
title('随机散点分布情况');

双坐标折线图

meanall=[]; 
for i=1:24 meanall=[meanall;[mean(dataall(i).taxi(:,3)),mean(dataall(i).passenger(:,3))]]; 
end 
h=1:24; 
set(gcf,'PaperType','A4', ... 'paperOrientation', 'portrait', ... 'paperunits','CENTIMETERS','PaperPosition',[.00, .00,16,10]); 
[hAx,hLine1,hLine2]=plotyy(h,meanall(:,1),h,meanall(:,2)); % 双坐标
ylabel(hAx(1),'出租车均值') 
ylabel(hAx(2),'乘客均值') 
set(hLine1,'LineStyle','--','Marker','*','MarkerSize',6,'LineWidth',1.5) 
set(hLine2,'LineStyle',':','Marker','o','MarkerSize',6,'LineWidth',1.5) 
xtlabel=num2cell(h);%cat(2,num2cell(h(1:4:end-2)),method); 
set(hAx,'XTick',h,'XTickLabel',xtlabel,'xlim',[1,24]) 
grid on 
xlabel('时间') 
leglabel={'出租车均值','乘客需求均值'}; 
legend(leglabel,'Location','Best') 
title('成都市 2015 年 9 月 9 日全天出租车分布和乘客需求均值图') 
figname=strcat('chengdu_mean','.jpg'); 
saveas(gcf, figname, 'jpg'); 

这里写图片描述

补充:
R=normrnd(μ,σ):生成服从正态分布(μ参数代表均值,σ参数代表标准差)的随机数。输入的向量或矩阵μ和σ必须形式相同,输出R也和它们形式相同。标量输入将被扩展成和其它输入具有相同维数的矩阵。

参考:
[1] https://www.cnblogs.com/aminxu/p/4643109.html (插值,这篇博客写得真的很不错!)
[2] https://blog.csdn.net/hhhhhyyyyy8/article/details/77862343 (介绍colormap)
[3] https://www.cnblogs.com/haore147/p/3633017.html (plot参数解析)
[4] https://blog.csdn.net/qq_35052417/article/details/76461643 (axis用法)


http://chatgpt.dhexx.cn/article/mIUMdbfA.shtml

相关文章

2015年数模A题太阳影子定位学习笔记

To be continue … … 主要参考文献:[2015年国赛高教杯奖A题]电子科技大学-太阳影子定位的多目标优化模型 最近用java写了个求影长的程序,原地爆炸 文章目录 一、摘要二、问题重述1. 问题背景2. 需要解决的问题 三、问题分析3.1 问题一的分析3.2 问题二的…

互联网30年,泡沫如梦

人人都说互联网改变世界,这话没错。 但我认为互联网改变的方式,是泡沫。 资金,资源,人才因为一堆概念聚在一起,形成一个又一个的泡沫,然后泡沫破裂,大部分人失败,少数能够留下来的&a…

[机器学习] 半监督学习---伪标签Pseudo-Label

大数据时代中,在推荐、广告领域样本的获取从来都不是问题,似乎适用于小样本学习的伪标签技术渐渐淡出了人们的视野,但实际上在样本及其珍贵的金融、医疗图像、安全等领域,伪标签学习是一把锋利的匕首,简单而有效。 什么…

深度学习十大算法

首先先让我们来定义一下什么是“深度学习”。对很多人来说,给“深度学习”下一个定义确实很有挑战,因为在过去的十年中,它的形式已经慢慢地发生了很大的变化。 先来在视觉上感受一下“深度学习”的地位。下图是AI、机器学习和深度学习三个概念…

KBS 2021 | 联邦学习综述

目录 前言摘要1. 引言1.1 联邦学习的背景1.2 联邦学习面临的挑战 2. 相关工作2.1 联邦学习的定义 3. 联邦学习的分类3.1 数据划分3.1.1 横向联邦学习3.1.2 纵向联邦学习3.1.3 联邦迁移学习 3.2 隐私保护机制3.2.1 模型聚合3.2.2 同态加密3.2.3 差分隐私 3.3 可应用的机器学习模…

如何高效学习和阅读源码?

作者:明明如月学长, CSDN 博客专家,蚂蚁集团高级 Java 工程师,《性能优化方法论》作者、《解锁大厂思维:剖析《阿里巴巴Java开发手册》》、《再学经典:《EffectiveJava》独家解析》专栏作者。热门文章推荐&…

架构学习——ER图

一、什么是ER图? E-R图也称实体-联系图(Entity Relationship Diagram),提供了表示实体类型、属性和联系的方法,用来描述现实世界的概念模型。 二、为什么要画ER图? 它是描述现实世界关系概念模型的有效方法。是表示概念关系模型…

Thingworx入门学习

Thingworx入门学习 前言thingworx入门总结 前言 Thingworx是啥??? 基于物联网强大必入软件学习 thingworx的优点太多说些主要的 1.强大数据接入 2.数据分析 3.组态化模块化,二次开发节省成本快速开发 thingworx入门 提几点主线…

读后感:【许岑—如何成为有效学习的高手】

本博客的原创文章都是本人平时学习所做的笔记 。不要借鉴,不要参考 , 谢谢合作 本书关键词:适合自己、学习方法、短时间、注意力、解决难题、设定目标、名师

联邦学习(Federated Learning)

联邦学习简介 联邦学习(Federated Learning)是一种新兴的人工智能基础技术,其设计目标是在保障大数据交换时的信息安全、保护终端数据和个人数据隐私、保证合法合规的前提下,在多参与方或多计算结点之间开展高效率的机器学习。其…

机器学习类型概述

从不同的视角来看待诸多机器学习算法,有不同的划分。 1、语料视角 根据训练语料对人工参与类别划分或标签标识的需求程度,可将机器学习划分为四种类型: 监督学习、无监督学习、半监督学习、强化学习。 1.1、监督学习 Supervised Learning 在监督学习算…

对偶学习

考虑一个对偶翻译游戏,里面有两个玩家小明和爱丽丝,如下图所示。小明只能讲中文,爱丽丝只会讲英文,他们两个人一起希望能够提高英文到中文的翻译模型f和中文到英文的翻译模型g。给定一个英文的句子x,爱丽丝首先通过f把…

迁移学习简介及用途

迁移学习简介及用途 https://mp.weixin.qq.com/s/5_EYEJUycTtpfbxM_uGwHw --------------------- 本文来自 mishidemudong 的CSDN 博客 深度神经网络,相比于之前的传统机器学习方法,可以看成是一个全新的物种,这背后的原因,最…

十大机器学习算法

初学者应该知道的十大机器学习算法 来源:https://builtin.com/data-science/tour-top-10-algorithms-machine-learning-newbies 机器学习算法被描述为学习一个目标函数 (f),它最好地将输入变量 (X) 映射到输出变量 (Y):Y f(X) 最常见的机器…

贝叶斯学习

目录 贝叶斯学习 ​贝叶斯学习的特点: 朴素贝叶斯方法: 贝叶斯学习 贝叶斯学习就是基于贝叶斯理论(Bayesian Theory)的机器学习方法。 贝叶斯法则 也称为贝叶斯理论(Bayesian Theorem,或Bayesian Rule&a…

深度强化学习

前言 深度强化学习(DRL)已成为人工智能研究的热点之一。它已被广泛应用于端到端控制、机器人控制、推荐系统、自然语言对话系统等各个领域。本文对深度RL算法及其应用进行了分类,并将现有的DRL算法分为基于模型的方法、无模型的方法和先进RL方法进行介绍。 一、无模…

有效学习的6个方法学习方法

今天看了得到 有效学习的6个方法(上) 的一些感想。 1.价值感 这个就是做这件事情的动力,没有动力的话,是不愿意去做这件事的,效果当然也不会很好。做一件事把这做这件事的意义定的越大,越有动力&#xff0…

如何成为有效学习的高手(许岑)——思维导图

总结自许岑精品课《如何成为有效学习的高手》,图片看不清的可以看下面。 最后有彩蛋! 最后有彩蛋! 最后有彩蛋! 定义 高效学习的定义:找到最适合自己的学习手法,在相对短的时间内集中注意力,以…

如何有效的学习

大一时的我,完全就是个彻头彻尾的学渣,挂科、成绩被同学吊打,每天在宿舍浑噩度日。后来靠这个方法,我能做到最长连续学习10个小时,持续了三个月,也不会觉得很累。 如果你跟之前的我一样,学5分钟…

聊一聊我们应该如何有效学习

我之前写过 关于前端学习路线的一些建议(内含自测题)和 聊一聊加班严重时要如何自我提升 两篇文章。文章内容涉及的是学习路线和时间利用,今天我们就聊聊如何做到有效学习。 这里分享一些关于有效学习的经验,希望能对你有些许帮助…