数学建模常用算法—灰色关联分析法(GRA)

解决问题

灰色关联分析的基本思想是根据序列曲线几何形状的相似程度来判断其联系是否紧密。曲线越接近,相应序列之间的关联度就越大,反之就越小。

一般的抽象系统,如社会系统、经济系统、农业系统、生态系统、教育系统等都包含有许多种,多种因素共同作用的结果决定了该系统的发展态势。灰色关联分析法则用于确定各因素对其所在系统的影响程度

优点

灰色关联分析法弥补了采用数理统计方法作系统分析所导致的遗憾。它对样本量的多少和样本有无规律都同样适用,而且计算量小,十分方便,更不会出现量化结果与定性分析结果不符的情况。

缺点

要求需要对各项指标的最优值进行现行确定,主观性过强,同时部分指标最优值难以确定。(不建议在美赛中使用)

一般步骤

以国内某地区国内生产总值为例
在这里插入图片描述

1. 绘制统计图,并根据图线做简单分析

在这里插入图片描述

  • 四个变量均呈上升趋势
  • 第一产业几乎没有变化
  • 第二产业增幅相对较大

2. 确定分析数列

(1)母序列(又称参考序列、母指标)

能反映系统行为特征的数据序列,类似于因变量Y,此处记为 x 0 x\mathop{{}}\nolimits_{{0}} x0

(2)子序列(又称比较序列、子指标)

影响系统行为的因素组成的数据序列,类似于因变量X,此处记为( x 1 x\mathop{{}}\nolimits_{{1}} x1 , x 2 x\mathop{{}}\nolimits_{{2}} x2 , ··· , x m x\mathop{{}}\nolimits_{{m}} xm )

在本例中,国内生产总值是母序列,第一,第二和第三产业是子序列。

3. 对变量进行预处理(去量纲,缩小度量范围简化计算)

计算每个指标的均值,再将指标中的每个元素分别除以该指标的均值
在这里插入图片描述

4. 计算子序列中各个指标与母序列的关联系数

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

5. 计算子序列中各个指标与母序列的灰色关联度

对每个指标的关联系数分别求平均值,则得到灰色关联度
在这里插入图片描述

6. 得出结论

该地区在2000年至2005年间的国内生产总值受到第三产业的影响最大(其灰色关联度最大

代码

load gdp.mat  % 导入数据 一个6*4的矩阵
Mean = mean(gdp);  % 求出每一列的均值以供后续的数据预处理
gdp = gdp ./ repmat(Mean,size(gdp,1),1);  %size(gdp,1)=6, repmat(Mean,6,1)可以将矩阵进行复制,复制为和gdp同等大小,然后使用点除(对应元素相除),这些在第一讲层次分析法都讲过
disp('预处理后的矩阵为:'); disp(gdp)
Y = gdp(:,1);  % 母序列
X = gdp(:,2:end); % 子序列
absX0_Xi = abs(X - repmat(Y,1,size(X,2)))  % 计算|X0-Xi|矩阵(在这里我们把X0定义为了Y)
a = min(min(absX0_Xi))    % 计算两级最小差a
b = max(max(absX0_Xi))  % 计算两级最大差b
rho = 0.5; % 分辨系数取0.5
gamma = (a+rho*b) ./ (absX0_Xi  + rho*b)  % 计算子序列中各个指标与母序列的关联系数
disp('子序列中各个指标的灰色关联度分别为:')
disp(mean(gamma))
  • 73
    点赞
  • 395
    收藏
    觉得还不错? 一键收藏
  • 14
    评论
为了设计一个漂亮的Android为了设计一个漂亮的Android Studio App“我的”页面,你可以考虑以下几个步骤: Studio App“我的”页面,你可以考虑以下几个方面: 1.设计页面布局:你可以使用LinearLayout、RelativeLayout或Constraint1.页面布局:你可以使用LinearLayout、RelativeLayout或者ConstraintLayout等布局来设计你的页面。你需要考虑页面中包含哪些元素,例如头像、用户名、个人信息、设置选项等,Layout等布局方式来设计你的页面。在布局中,你需要考虑页面元素的大小、位置和排列方式,以及不同元素之间的间距和对齐方式并将它们放置在合适的位置。 2.添加控件:你可以使用TextView、ImageView、Button等控件来添加页面。 2.页面元素:你可以在页面中添加各种元素,例如TextView、ImageView、Button等。元素。例如,你可以使用ImageView来添加头像,使用TextView来添加用户名和个人信息,使用Button来添加设置你需要考虑元素的大小、颜色、字体、图标等,以及它们之间的排列方式和交互方式。 3.页面样式:你可以使用不同的样式来设计选项等。 3.设置控件属性:你可以设置控件的属性来改变它们的外观和行为。例如,你可以设置TextView的字体、你的页面,例如Material Design、Flat Design等。你需要考虑页面的整体风格和色彩搭配,颜色和大小,设置ImageView的大小和形状,设置Button的背景颜色和点击事件等。 4.添加交互功能:你可以使用Java代码来添加交互功能。例如,你可以使用setOnClickListener()方来为Button添加点击事件,以及不同元素之间的协调性和一致性。 4.页面功能:你可以在页面中添加各种功能,例如个人信息、设置、消息通知等。使用setText()方来改变TextView的文本内容,使用setBackgroundColor()方来改变LinearLayout你需要考虑功能的实用性和易用性,以及它们之间的逻辑关系和交互方式。 下面是一个简单的Android Studio App的背景颜色等。 下面是一个简单的示例代码,它演示了如何使用LinearLayout、TextView和Button来设计“我的”页面设计示例,你可以参考一下: ```xml一个“我的”页面,并为Button添加了点击事件: ```java //<LinearLayout 在 Activity android中:添加以下layout代码_width ="LinearLayoutmatch_parent layout =" findViewById android(R:.id.mylayout_height_layout); ="TextViewmatch name_parent" androidView = findViewById:(R.idorientation.name="vertical_view); "> Button settingButton <ImageView = findViewById android(R:.idlayout.setting_button_width); //=" 设置100dp" TextView 的文 android:本内容layout_height name="View100.setTextdp("" John Smith android:"); src="@drawable///avatar " 为Button android添加:点击事件layout_gravity setting="Buttoncenter.setOnClickListener(new View.OnClickListener_horizontal()" { android @:Overridelayout _margin Top=" public50 voiddp onClick(View"/> v ) { <TextView // android 处:理layout点击_width="事件 wrap_content Toast" .makeText(getApplicationContext android:(), "layoutSetting_height clicked="wrap",_content Toast.LENGTH_SHORT" ).show android:text(); ="用户名 " } }); android:textSize```="20sp" android:textColor="#000000" android:layout_gravity="center_horizontal" android:layout_marginTop="20dp"/> <Button android:layout_width="match_parent" android:layout_height="wrap_content" android:text="个人信息" android:textSize="16sp" android:textColor="#FFFFFF" android:background="#FF04EDC9" android:layout_marginTop="50dp"/> <Button android:layout_width="match_parent" android:layout_height="wrap_content" android:text="设置" android:textSize="16sp" android:textColor="#FFFFFF" android:background="#FF04EDC9" android:layout_marginTop="20dp"/> <Button android:layout_width="match_parent" android:layout_height="wrap_content" android:text="消息通知" android:textSize="16sp" android:textColor="#FFFFFF" android:background="#FF04EDC9" android:layout_marginTop="20dp"/> </LinearLayout> ```
评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值