数学建模(一):插值

简介: ​ 数学建模专栏:👉🏻数学建模从0到1👈🏻​

 

目录

题目:

实现代码:

Tips:


数学建模专栏:👉🏻数学建模从0到1👈🏻

题目:

image.gif编辑

实现代码:

%%
t0=data([1:2:end],:);%从第一行开始,每隔两行取一行数据(得到的是时间数据)
t0=t0';%对行向量求转置
t0=t0(:);%全部转成列向量
h0=data([2:2:end],:);%同理,取高度数据
h0=h0';
h0=h0(:);
H=17.4;
V=pi/4*H*H*h0;%计算各时刻的体积
dv = -1*gradient(V,t0);%对各个时刻进行求导,因为斜率是负的,所以这个地方的速度是负数,需要再乘一个-1转正数
n0 = find(h0 == -1);%找出空格数据
n1=[n0(1)-1:n0(2)+1,n0(3)-1:n0(4)+1];
t=t0;
t(n1)=[];
dv1=dv;
dv1(n1)=[];
%%
%这个地方取四个点行不通,因为边界点不连续,然后不连续的情况下求导误差巨大
n2=[n0(1),n0(2),n0(3),n0(4)];
t3=t0;
t3(n2)=[];
dv2=dv;
dv2(n2)=[];
%%
plot(t,dv1,'b*',t3,dv2,'ro');
plot(t,dv1,'b*')
plot(t3,dv2,'ro')
%%
pp=csape(t,dv1);%进行差值
tt=0:0.1:t(end);%给出差值点
fdv=ppval(pp,tt);
plot(tt,fdv,'r*');
I=trapz(tt(1:241),fdv(1:241))%计算24h内总流量的数值积分

image.gif

Tips:

简单讲一下思路:

(1)首先把题目中的数据以矩阵的形式输入到matlab中,分别将时间和时刻这两组数据存进列向量中,对应下面这段代码:【当然,也可以直接自己手动把两组数据输入到列向量中】

t0=data([1:2:end],:);%从第一行开始,每隔两行取一行数据(得到的是时间数据)
t0=t0';%对行向量求转置
t0=t0(:);%全部转成列向量
h0=data([2:2:end],:);%同理,取高度数据
h0=h0';
h0=h0(:);

image.gif

(2)然后,我们要对各个时刻的点进行求导,求导得到的是速度,然后要删掉四个空点(也就是题目中没有给数值的点),然后还要删掉四个分段的点,因为求导的前提条件就是连续,但是对于分段函数的边界点它不是连续的,题中根据速度散点图可知,可以把图分为三段,即有4个边界点,所以一共去除8个不可用点,代码如下所示:

dv = -1*gradient(V,t0);%对各个时刻进行求导,因为斜率是负的,所以这个地方的速度是负数,需要再乘一个-1转正数
n0 = find(h0 == -1);%找出空格数据
n1=[n0(1)-1:n0(2)+1,n0(3)-1:n0(4)+1];%删除8个不可用点
t=t0;
t(n1)=[];
dv1=dv;
dv1(n1)=[];

image.gif

(3)最后对数据进行插值,利用csape函数得到三次样条插值的系数,它的结果是存在一个结构体里的,利用ppval函数利用caspe得到的系数计算出插值,并画出图像代码如下所示:

pp=csape(t,dv1);%进行差值
tt=0:0.1:t(end);%给出差值点
fdv=ppval(pp,tt);
plot(tt,fdv,'r*');

image.gif

图:

image.gif编辑

(4)利用matlab中的trapz函数对离散的点进行求积分,代码如下所示:

I=trapz(tt(1:241),fdv(1:241))%计算24h内总流量的数值积分

image.gif

MATLAB函数trapz(x, y, n), 其中y是x的积分, 使用梯形法则逼近函数y = f(x)的积分

相关文章
2022年超详细如何使用Xftp连接CentOS 7来进行文件的传输【详细过程、图解】
这篇文章提供了使用Xftp工具连接到CentOS 7虚拟机进行文件传输的详细步骤和图解。步骤包括打开Xftp软件、创建新连接、查看并填写虚拟机的IP地址、输入虚拟机的连接账号密码,以及连接成功后进行文件传输。文章最后以"现场手撸、学无止境"作为结束语,鼓励读者不断学习和实践。
|
弹性计算
阿里云2核2G服务器租用费用,轻量和ECS服务器价格对比
阿里云2核2G服务器,ECS经济型e实例99元/年,轻量应用服务器则为82元/年。ECS还提供其他类型如u1和t6实例。99元的ecs.e-c1m1.large适合新老用户,具有2核2G内存,基础带宽0.2Gbps,最高可达2Gbps。
593 3
|
存储 安全 网络安全
匿名 FTP
【8月更文挑战第24天】
447 0
|
自然语言处理 算法
基于NIQE算法的图像无参考质量评价算法matlab仿真
基于NIQE算法的图像无参考质量评价算法matlab仿真
|
JSON 小程序 前端开发
【微信小程序】-- 案例 - 自定义 tabBar(四十六)
【微信小程序】-- 案例 - 自定义 tabBar(四十六)
|
前端开发 JavaScript Java
基于springboot+vue的江西旅游网(前后端分离)
本系统为原创项目,以江西旅游为主题,采用前后端分离,创作于2022年4月,项目代码工整,结构清晰,适合选题:旅游、旅游攻略、**旅游网、前后端分离类其他旅游系统等。系统采用springboot+vue整合开发,前端主要使用了element-ui框架、项目后端主要使用了springboot,数据层采用mybatis。
基于springboot+vue的江西旅游网(前后端分离)
|
easyexcel Java API
POI及EasyExcel【Java提高】
POI及EasyExcel【Java提高】
902 0
|
关系型数据库 MySQL 测试技术
不停机更换数据库解决方案
随系统规模逐渐增长,总会遇到更换数据库问题。 对MySQL分库分表后,需要从原来的单实例数据库迁移到新的数据库集群 系统从传统部署方式向云上迁移的时候,也需要从自建的数据库迁移到云数据库
425 0
|
Prometheus 运维 监控
ALL in one:如何搭建端到端可观测体系|学习笔记
快速学习ALL in one:如何搭建端到端可观测体系。
ALL in one:如何搭建端到端可观测体系|学习笔记