2018年亚太杯APMCM数学建模大赛A题老年人平衡能力的实时训练模型求解全过程文档及程序

2018年亚太杯APMCM数学建模大赛

A题 老年人平衡能力的实时训练模型

原题再现

  跌倒在老年人中很常见。跌倒可能会导致老年人出现许多并发症,因为他们的康复能力通常较差,因此副作用可能会使人衰弱,从而加速身体衰竭。此外,对跌倒的恐惧可能会削弱行动能力,限制行动范围,从而显著恶化生活质量。因此,对老年人进行平衡能力评估,以帮助他们改善行动状态、纠正姿势和防止意外跌倒,具有重要的现实意义。

  目前还没有一个包罗万象的平衡定义。在医学中,平衡有两层含义。一种是当人体保持稳定姿势时的静态平衡状态。另一种是当身体在运动或受到外力时,自动调整自己以保持姿势时的动态平衡状态。在力学中,当物体上的合力为零时,就会产生平衡。身体的平衡或稳定性与重心的位置和支承面的面积有关。如果重心线落在轴承表面内,或者发生不平衡,则保持机体平衡。

  一家研究机构通过在老年受试者身上部署42个监测点进行了随机抽样测试。见下图所示各点的布局。
在这里插入图片描述
  根据附件中的实验数据,完成以下任务:

  问题1:根据附件2中的数据分析老年人的平衡特征。基于对步数、重心和运动的分析,建立特征提取模型。应用由42个监测点组成的系统提取25个身体平衡特征,对老年人的身体平衡进行综合评估。

  问题2:建立基于25个指标的平衡风险评估体系,评估老年人的平衡能力。给出相应的建议。

  问题3:根据提供的实际数据,对身体平衡力进行模拟计算和比较分析。为平衡能力较弱的老年人提供有效的建议。

  附件说明:

  附件1:《老年人基本数据》(格式:.xlsx)包含所有老年受试者的基本数据。

  附件2:附件2包含每个受试者在自由行走状态下的校准原始数据。有三个完整的gait(文件后缀:.trc),可以用Excel打开。第一列是帧序列,第二列是时间。从第三列开始,每三列代表监测点的运动坐标(x,y,z)。共有42个监测点。

整体求解过程概述(摘要)

  跌倒会造成成吨的伤害,这将影响老年人的生活水平。因此,结合步行时的身体姿势等因素,为他们建立一个平衡能力评估体系具有重要意义。

  我们的模型首先采用R型聚类方法和马氏距离从42个监测点中提取出25个具有医学意义的指标。我们的25项指标包含90.86%的全身特征信息,可靠性高。这一结果使测量每个受试者的基本身体状况成为可能。

  然后,基于这25个指标,采用改进的多项式曲线拟合方法建立了一个平衡能力体系,并将稳定配速曲线与实验配速曲线进行了比较,以塑造一个人的平衡能力。然后,我们的研究将我们的结果与实际跌倒时间进行了比较,对于所有有跌倒风险的老年人来说,准确率达到了近80%。然而,当应用于中等风险的老年人时,准确性会迅速下降。由于这种现象,我们的模型做了更多的改进。

  在我们改进的评估系统中,我们的模型考虑了TOPSIS的实际数据。我们使用来自实际数据的7个参数和附录2的追踪数据来衡量老年人的平衡能力。与实际跌倒时间相比,我们在几乎所有老年人中获得了80%的准确率。此外,我们改进的评估可以从整体上划分出平衡能力高和平衡能力低的老年人。

  改进模型的敏感性分析表明,模型中年龄和BMI参数的微小变化对结果的影响较小。3%的干扰只会影响2.5%的排名,5%的干扰会影响7.5%的排名。最后,我们从医学角度对不同类型的跌倒或平衡能力低下的老年人提出了不同的建议。

模型假设:

  1.记录跟踪数据时没有时间差。
  2.25个指标具有医学意义和物理意义,能够预测重心等物理参数。
  3.跟踪数据能够预测平衡能力。由于我们的R-TYPE CLUSTER算法、PCA算法都是基于实际数据的。
  4.追踪数据是每个受试者的正常步骤,即每个人在实验室里都像平时一样行走,尤其是在摔倒前。
  5.在长者跌倒和被追踪的这些年里,身体没有发生大的变化。

问题重述:

  背景
  在过去的几十年里,我国的老龄化程度逐渐加快。预计到2050年,60岁以上人口将占总人口的33%。这些年来,老年人摔倒事故也在大规模增加。当老年人跌倒时,他们会不稳定,失去平衡,对老年人来说,下半身肌肉衰退会导致平衡能力下降,不足以支撑老年人在跌倒时下半身;同时,由于老年人神经系统控制能力下降,神经传导减慢,运动反应时间延长,也会导致老年人在跌倒时不能及时调整身体保持平衡。这样,就有必要衡量老年人的平衡能力,为他们提供适当的建议,让他们保持平衡,更加注意他们的平衡。
  此外,对老年人平衡能力的预测研究较少。此外,大多使用单个传感器,检测精度有限,容易误判。

  问题重述
  建立一个模型,其中包含来自给定42个监测点的25个主要指标。该模型需要用于分析每个受试者的步数、重心、速度和加速度等。

  根据实际实验数据,建立一个能够评估老年人平衡能力的模型。

  模拟那些几年前摔倒的老年人,并向我们的模型证明我们的模型是否能够监测他们的平衡能力。

  为那些平衡能力较弱的老年人提供建议。

模型的建立与求解整体论文缩略图

在这里插入图片描述
在这里插入图片描述

全部论文及程序请见下方“ 只会建模 QQ名片” 点击QQ名片即可

程序代码:

部分程序如下:
%% import dataresultvar_yy=[];resultvar_zz=[];A = dir(fullfile('*.trc'));
for iiii=1:1:76data1=load(A(iiii).name);result_yy=[];result_zz=[]; resultfit_yy=[];resultfit_zz=[]; data2=data1(:,3:end);%matrix1*126 for i=1:1:25%rowyy=[];zz=[];for ii=2:1:5%columnif data3(i,ii)~=0yy=[yy,data2(:,3*data3(i,ii)-1)];zz=[zz,data2(:,3*data3(i,ii))];endendresult_yy=[result_yy,mean(yy,2)];result_zz=[result_zz,mean(zz,2)];yytofit=result_yy(:,i);zztofit=result_zz(:,i);% Create the model.fun = @(x,xdata)x(1)+x(2)*xdata+x(3)*(xdata).^2+x(4)*(xdata).^3 +x(5)*
(xdata).^4 +x(6)*(xdata).^5+x(7)*(xdata).^6+x(8)*(xdata).^7;tdata =data1(:,2);m0 = 1.0e+04 *[0.0280 0.1155 -0.6000 1.1672 -1.1046 
0.5433 -0.1334 0.0129];% Solve the bounded fitting problem.my1 = lsqcurvefit(fun,m0,tdata,yytofit);my2 = lsqcurvefit(fun,my1,tdata,yytofit);yyfitted=fun(my2,tdata);mz1 = lsqcurvefit(fun,m0,tdata,zztofit);mz2 = lsqcurvefit(fun,mz1,tdata,zztofit);
zzfitted=fun(mz2,tdata);resultfit_yy=[resultfit_yy,yyfitted];resultfit_zz=[resultfit_zz,zzfitted]; difference_yy=abs(resultfit_yy-result_yy);difference_zz=abs(resultfit_zz-result_zz);var_yy=var(difference_yy,0,1);var_zz=var(difference_zz,0,1);endresultvar_yy=[resultvar_yy;var_yy];resultvar_zz=[resultvar_zz;var_zz];
end
%%CLUSTER
clc, clear all
%read in circle
A = dir(fullfile('*.trc'));
resultfinal=[];
for i=1:1:2data1=load(A(i).name);[m,n]=size(data1);a=[]; for ii=1:1:42X=[data1(:,3*ii+1),data1(:,3*ii+2)];a(:,ii)=pdist(X,'mahal');end%%b=zscore(a); %standard the datar=corrcoef(b); %coefficient matrixd=pdist(b','correlation'); %计算相关系数导出的距离z=linkage(d,'average'); %按类平均法聚类figureh=dendrogram(z); %画聚类图set(h,'Color','k','LineWidth',1.3) %把聚类图线的颜色改成黑色,线宽加粗
T=cluster(z,'maxclust',25); %cluster into 25 catagoryresults= [];for iii=1:25tm=find(T==iii); %find the ith coatogory’s subjetcttm=reshape(tm,1,length(tm)); %in row 
results=[results;tm,zeros(1,15-length(tm))];end resultfinal=[resultfinal;results];end
%% topsis
clc, clear
data=load('datatopsis.txt');
[m,n]=size(data);
fun=@(qujian,lb,ub,x)(1-(qujian(1)-x)./(qujian(1)-lb)).*(x>=lb & 
x<qujian(1))+(x>=qujian(1) & x<=qujian(2))+(1-(x-qujian(2))./(ubqujian(2))).*(x>qujian(2) & x<=ub);
%properties trans
qj2=[0.41,0.48]; lb2=0.35; ub2=0.52;
data(:,2)=fun(qj2,lb2,ub2,data(:,2));
qj3=[2.5,5]; lb3=2; ub3=5.8;
data(:,3)=fun(qj3,lb3,ub3,data(:,3));
qj6=[19,28]; lb6=17; ub6=32;
data(:,6)=fun(qj6,lb6,ub6,data(:,6));
for j=1:nb(:,j)=data(:,j)/norm(data(:,j)); % normalize the matrix
end
%% weight
% data analysis in 1
maxdata=repmat(max(data),m,1);
mindata=repmat(min(data),m,1);
max_min=maxdata-mindata;
stddata=(data-mindata)./max_min;
%calculatee the weight
f=(1+stddata)./repmat(sum(1+stddata),m,1);
e=-1/log(m)*sum(f.*log(f));
d=1-e;
w=d/sum(d); % 权重向量
%%
c=b.*repmat(w,m,1); %求加权矩阵
Cstar=max(c) %求正理想解
Cstar(1)=min(c(:,1)); Cstar(4)=min(c(:,4)); 
Cstar(5)=min(c(:,5)); 
Cstar(7)=max(c(:,7)); %属性 1,3,5,6 为成本型, 属性 2 为效益型
C0=min(c) %q 求负理想解
C0(1)=max(c(:,1)); C0(4)=max(c(:,4)); 
C0(5)=max(c(:,5)); 
C0(7)=min(c(:,7)); %属性 1,3,5,6 为成本型, 属性 8 为效益型
for i=1:mSstar(i)=norm(c(i,:)-Cstar); %求到正理想解的距离S0(i)=norm(c(i,:)-C0); %求到负理想的距离
end
f=S0./(Sstar+S0);
[sf,ind]=sort(f,'descend'); %求排序结果
Y=[ind',sf'];
全部论文及程序请见下方“ 只会建模 QQ名片” 点击QQ名片即可

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/117205.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Android12 启动页适配

印象中&#xff0c;在2022年末接到了一个针对Android12启动页适配的需求&#xff0c;当时也使用了一些适配方案&#xff0c;也写了一个Demo&#xff0c;但是最终没有付诸适配行动&#xff1b;当然并不是适配失败&#xff0c;而是根据官方适配方案适配后太丑了… 1024纪念文章&a…

Dockerfile 镜像创建

目录 一、创建镜像的三种方法&#xff1a; 二、基于已有镜像创建&#xff1a; 1.启动一个镜像&#xff1a; ​编辑 2.将修改后的容器提交为新的镜像&#xff1a; 三、基于本地模板创建&#xff1a; 1.下载模板&#xff1a; 2.导入为镜像&#xff1a; 四、基于Dockerfile 创…

Spring Cloud 之 Sentinel简介与GATEWAY整合实现

简介 随着微服务的流行&#xff0c;服务和服务之间的稳定性变得越来越重要。Sentinel 是面向分布式服务架构的流量控制组件&#xff0c;主要以流量为切入点&#xff0c;从限流、流量整形、熔断降级、系统负载保护、热点防护等多个维度来帮助开发者保障微服务的稳定性。 熔断 …

【QT】QTableWidget

新建项目 制作流程 代码 #include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this);// tableWidget的使用// 第一步&#xff0c;设置列数ui->tableWidget->setColu…

嵌入式实时操作系统的设计与开发(互斥量学习)

一个无论多么小的系统&#xff0c;都会有大系统的缩影&#xff0c;就像俗话说“麻雀虽小五脏俱全”。 嵌入式实时操作系统中除了基本调度机制&#xff08;创建线程、调度线程、挂起线程等&#xff09;&#xff0c;事件处理机制&#xff08;中断管理、时钟管理&#xff09;、内…

拦截器以及统一功能的实现

目录 引言 实现一个简单的拦截器 拦截器小结 统一访问前缀 统一异常处理 统一返回参数 ControllerAdvice 引言 HandlerInterceptor是Spring MVC框架提供的一个拦截器接口&#xff0c;它用于对请求进行拦截和处理。在Spring MVC中&#xff0c;拦截器可以用于实现一些通用的功能…

Server Name Indication(SNI),HTTP/TLS握手过程解析

Server Name Indication&#xff08;SNI&#xff09;是一种TLS扩展&#xff0c;用于在TLS握手过程中传递服务器的域名信息。在未使用SNI之前&#xff0c;客户端在建立TLS连接时只能发送单个IP地址&#xff0c;并且服务器无法知道客户端请求的具体域名。这导致服务器需要使用默认…

旁注、目录越权、跨库查询、cdn绕过

原理&#xff1a; 搭建网站多IP多端口&#xff0c;更多一个域名多网站&#xff0c;IIS的在属性-高级里面设置主机头设置域名&#xff0c;域名是收费的需要自己买一个 旁注&#xff1a;在同一服务器上有多个站点&#xff0c;要攻击的这个站点假设没有漏洞&#xff0c;可以攻击…

Kingbase备份与还原及表的约束(Kylin)

备份与还原 逻辑备份是对整个数据库好数据库中的部分对象利用逻辑备份工具导出数据到备份文件在需要数据恢复的情况下利用逻辑还原工具把备份文件恢复到数据库中 使用场景 逻辑备份主要用于数据库逻辑错误的恢复&#xff0c;恢复后对其他数据没有太大影响逻辑备份可用于在大…

vue重修之路由【下】

文章目录 版权声明路由重定向、404&#xff0c;路由模式重定向404路由模式 声明式导航vue-routerrouter-link-active 和 router-link-exact-active定制router-link-active 和 router-link-exact-active跳转传参两种跳转传参总结 编程式导航两种语法路由传参path路径跳转传参nam…

RHCE---搭建博客网站

一.实验要求&#xff1a; Server-NFS-DNS主机配置NFS服务器&#xff0c;将博客网站资源文件共享给Server-web主机&#xff0c;Server-NFS-DNS主机配置DNS Server-web主机配置web服务&#xff0c;通过域名www.openlab.com可以访问到自建的博客网站 二.准备工作 创建两台虚拟机…

Linux流量监控

yum install -y iptrafiptraf-ng -d ens33

11 结构型模式- 代理模式

结构性模式一共包括七种&#xff1a; 代理模式、桥接模式、装饰者模式、适配器模式、门面(外观)模式、组合模式、和享元模式。 1 代理模式介绍 软件开发中的代理&#xff1a; 代理模式中引入了一个新的代理对象,代理对象在客户端对象和目标对象之间起到了中介的作用,它去掉客…

LSTM 与 GRU

RNN无法处理长距离依赖问题&#xff0c;通俗点就是不能处理一些较长的序列数据&#xff0c;那么今天就来介绍一下两个能处理长距离依赖问题地RNN变种结构&#xff0c;LSTM和GRU。 1. LSTM&#xff08;Long short-term memory&#xff09; 1.1 LSTM结构 上左图是普通RNN结构图…

Windows下Eclipse C/C++开发环境配置教程

1.下载安装Eclipse 官网下载eclipse-installer&#xff08;eclipse下载器&#xff09;&#xff0c;或者官方下载对应版本zip。 本文示例&#xff1a; Eclipse IDE for C/C Developers Eclipse Packages | The Eclipse Foundation - home to a global community, the Eclipse ID…

C语言-面试题实现有序序列合并

要求&#xff1a; a.输入两个升序排列的序列&#xff0c;将两个序列合并为一个有序序列并输出。 数据范围&#xff1a; 1≤n,m≤1000 1≤n,m≤1000 &#xff0c; 序列中的值满足 0≤val≤30000 输入描述&#xff1a; 1.输入包含三行&#xff0c; 2.第一行包含两个正整数n, m&am…

【强连通+背包】CF1763E

Problem - E - Codeforces 题意 思路 首先&#xff0c;先考虑第一个条件&#xff0c;要保证是p个节点互相到达且节点数最少&#xff0c;一定是个强连通&#xff0c;图的形态一定就是和强连通相关的。 然后&#xff0c;因为在这个前提上&#xff0c;要让单向节点数尽可能多&a…

【密评】商用密码应用安全性评估从业人员考核题库(十一)

商用密码应用安全性评估从业人员考核题库&#xff08;十一&#xff09; 国密局给的参考题库5000道只是基础题&#xff0c;后续更新完5000还会继续更其他高质量题库&#xff0c;持续学习&#xff0c;共同进步。 2501 多项选择题 GM/T 0047《安全电子签章密码检测规范》规定的电…

IMU预积分的过程详解

一、IMU和相机数据融合保证位姿的有效性&#xff1a; 当运动过快时&#xff0c;相机会出现运动模糊&#xff0c;或者两帧之间重叠区域太少以至于无法进行特征匹配&#xff0c;所以纯视觉SLAM对快速的运动很敏感。而有了IMU&#xff0c;即使在相机数据无效的那段时间内&#xff…

C++基类和派生类的内存分配,多态的实现

目录 基类和派生类的内存分配基类和派生类的成员归属多态的实现 基类和派生类的内存分配 类包括成员变量&#xff08;data member&#xff09;和成员函数&#xff08;member function&#xff09;。 成员变量分为静态数据&#xff08;static data&#xff09;和非静态数据&…