专栏内容(赛前预售价99,比赛期间299): 2024数学建模国赛期间会发布思路、代码和优秀论文。(本专栏达不到国一的水平,适用于有一点点基础冲击省奖的同学,近两年有二十几个国二,但是达不到国一,普遍获得省奖,请勿盲目订阅)
python全套教程(一百篇博客):从新手到掌握使用python,可以对数学建模问题进行建模分析。
35套模型算法(优秀论文示例):马尔科夫模型、遗传算法、逻辑回归、逐步回归、蚁群算法、蒙特卡洛模拟、聚类模型、线性规划、粒子群算法、神经网络、相关系数、灰色预测、灰色关联分析、模糊综合评价、模拟退火、时间序列ARMA、方差分析支持向量机、插值、排队论、拟合模型、微分方程、层次分析法、小波分析、多元回归、图论floyd算法、图论Dijkstra模型、因子分析、动态规划、博弈论、决策树、典型相关分析、元胞自动机、主成分分析、TOPSIS法。
目录
摘要
近年来,水华现象发生频繁,影响了养殖对象的生长发育,还会破坏养殖生态系统的平衡。为此我们拟通过研究淡水养殖池塘相关主要理化因子,主要浮游生物数据及鱼虾生成等数据分析水华发生的原因,控制并预测水华的发生,从而提高养殖产量,减小环境污染。
针对问题一,分析池水、底泥与间隙水中常见理化因子之间的关系。我们以间隙水与底泥间隙水与池水之间的六个常见理化因子为研究对象,通过绘制常见理化因子含量变化的折线图,计算 Pearson 相关系数,发现间隙水与底泥之间的理化因子相关性较大,且多表现为一一对应关系,变化趋势相似;而池水与间隙水之间的理化因子几乎没有联系。最后用 SAS 做典型相关分析,进一步提取出间隙水与底泥之间的两组典型相关因子,同时通过对因子载荷的分析,验证了前面的分析结论。
针对问题二,对四个池塘水体质量进行评价,分析虾池与鱼池对水体质量的影响。我们首先运用Topsis模型进行水质的综合评价,发现评价结果与实际情况不完全吻合。为修正Topsis模型中专家打分法赋权的主观性误差,建立综合污染指数模型进行水质评价,依照《地表水环境质量标准》中的标准值,用MATLAB编程得到四个池塘的综合污染指数。就15周的平均综合污染指数而言,四个池塘的污染排名为(程度由重到轻):池塘3,池塘2,池塘1,池塘4。不考虑池塘3因面积不合理造成的管理不善问题,我们可以发现虾池的水华情况明显比鱼池严重,这与鲢鱼摄食浮游植物有关。
针对问题三,建立理化因子和浮游植物密度之间的关系模型,分析水华发生的现状并预测。我们用MATLAB进行灰色关联分析,根据灰色关联度筛选出影响浮游植物密度的主要理化因子。然后建立浮游植物密度与主要理化因子、时间变量T2之间的回归模型,拟合效果较好。通过浮游植物密度与主要理化因子含量在15周内变化的折线图,对水华发生现状进行分析,找到水华爆发的时间,并用灰色GM(1,1)模型对未来5周内水华发生情况进行了预测,结果表明,池塘1、3在未来将发生较严重的水华。最后,根据水华爆发时理化因子含量的变化范围,划出了大规模水华突发时理化因子含量预警线。
针对问题四,建立两种鱼体长与体重之间的关系模型,计算换养鱼的数量。首先,我们用MATLAB工具箱分别拟合了鲢鱼和鳙鱼体长体重之间的指数关系模型,拟合优度均达到99%。通过鱼的生长比速公式、浮游植物超标质量、鲢鱼鳙鱼对浮游植物的消化率等数学关系,建立鲢鳙换养模型。由该模型可以计算出在给定净化时间下,需要投放的量。根据最佳鱼塘最佳养殖密度的限制,我们计算出池塘一至少需要10周时间完成净化;池塘二至少需要6周时间。针对换养方案时间长、对小型藻类治理效果不佳的缺陷,我们提出了机械收获法和絮凝沉淀法作为辅助策略,并进行了效果评价。
针对问题五,分别针对鱼池和虾池构建生态养殖模式,以有效实现淡水养殖水体的自净化。我们运用前面的研究结果,考虑鱼塘、虾塘的差异性,通过综合控制法和互生互养原理,对鱼塘和虾塘分别构建了生态养殖模式,使得淡水养殖生态系统达到一个良好的平衡。
最后,我们对模型进行了客观公正的评价和推广。
关键词:典型相关分析;综合污染指数;灰色关联分析;鲢鳙换养量模型
1 问题的重述
水华(英文:Algal Blooms 或 Algae Bloom),就是淡水水体中藻类大量繁殖的一种自然生态现象,是水体富营养化的一种特征,主要由于生活及工农业生产中含有大量氮、磷、钾的废污水进入水体后,蓝藻(又叫蓝细菌,包括颤藻、念珠藻、篮球藻、发菜等)、绿藻、硅藻等藻类成为水体中的优势种群,大量繁殖后使水体呈现蓝色或绿色的一种现象[1]。
目前在我国水产养殖中,池塘养殖产量约占淡水养殖的70%。近年来,随着淡水生态系统水体污染和富营养化进程的加剧,经常导致有害蓝藻、轮虫等常见的浮游生物高密度发生,很容易诱发大面积水华。水华造成严重的环境污染及水体污染,对养殖业是一个严重的打击。
水华的发生不仅直接影响了养殖对象的正常生长发育,严重时大量排泄废水造成淡水资源污染,还会破坏养殖生态系统的平衡,导致养殖对象的不同程度死亡,造成巨大经济损失。为此我们拟通过研究淡水养殖池塘相关主要理化因子,主要浮游生物数据及鱼虾生成等数据分析水华发生的原因,控制并预测水华的发生,从而提高养殖产量,减小环境污染等。通过对水华发生的了解,加强大家环保意识。
我们需要解决如下问题:
1.分析水体、底泥与间隙水中常见理化因子之间的关系。
2.分别对四个池塘水体质量进行评价,分析虾池与鱼池对水体质量的影响。
3.建立理化因子和常见浮游植物密度之间关系的数学模型,分析四个池塘水华发生的现状并对未来五周水华发生情形进行预测。根据已得出的研究结果,给出大规模水华突发时主要理化因子的波动范围以起到水华预警的作用。
4.建立鲢鱼、鳙鱼体长与体重之间关系的数学模型。在养殖鲢鱼、鳙鱼等的生长过程中可以摄食浮游生物,净化某些藻类。考虑1号池塘与2号池塘在水华发生最严重的时候将其中所养殖的南美白对虾都换养成鲢鱼和鳙鱼,计算能对池塘中的藻类起到净化作用的放养条数并分析其净化效果。若仅仅是换养成鲢鱼和鳙鱼还不足以尽快消除水华现象,制定新的辅助策略并分析其实施效果。
5.通过研究,分别针对鱼池和虾池从养殖初期开始即构建一种生态养殖模式,以有效实现淡水养殖水体的自净化,减少向外部养殖废水的排放以实现环保,制定实施方案并验证方案效果。
2 问题的分析
2.1 问题一的分析
分析水体、底泥与间隙水中常见理化因子之间的关系。首先用 EXCEL 做出池水与间隙水、底泥与间隙水的六个理化因子含量的折线图,观察大致的相关关系。然后通过正态性检验的前提下考虑用 Pearson 相关系数模型和典型相关分析对其中的相关关系进行量化,得出更为可靠的结果。
2.2 问题二的分析
对四个池塘的水质进行评价并分析虾池和鱼池对水质的影响。首先查阅文献从众多数据中选取有限的指标。用 Topsis 算法对四个池塘的水质进行综合评价,但算法的缺陷在于权重选取的主观性会影响评价结果。还可以考虑综合污染指数法,综合各水质指标与水质标准的比较结果从而来评价水环境质量。根据虾池和鱼池的数据以及水质分析结果再对它们之间的联系做进一步探究。
2.3 问题三的分析
建立理化因子和浮游植物密度之间的关系模型,分析水华发生的现状并预测。可以通过灰色关联分析确定理化因子对浮游植物密度的影响程度,挑选出主要影响因子。然后尝试运用回归模型和灰色预测模型对水华现状作出评价并预测。水华大规模突发预警可以考虑主要影响因子对波动范围。
2.4 问题四的分析
建立鲢鱼、鳙鱼体长与体重之间关系的数学模型,考虑运用 matlab 中的 cftool 工具箱拟合曲线进行分析。再联系上一问“水华”爆发的时间和程度,根据鲢鱼和鳙鱼所食种类及其百分比和鱼类体重增长和消化食物的关系,建立放养数量的数学模型,得出需要在虾池中换养鱼的数量和时间,如果不能尽快消除“水华”,通过查阅文献寻找其他措施进行辅助。
2.5 问题五的分析
根据上面四问的研究结果并且查阅资料,分别针对鱼池和虾池构建一个良好的生态
系统,从生态系统中的生产者、消费者和分解者进行考虑,使其达到良好的自净化效果,
并根据以往的成功案例和联想预测出方案效果。
3. 问题的假设
1. 用于分析的数据来源真实可靠;
2. 投放鱼种后,浮游植物数量只因被鲢鱼鳙鱼摄食而变化,不受其他条件影响;
3. 鱼种投放后 20 周内不会发生死亡;
4.虾池换养的均为三周龄的鲢鱼和鳙鱼。
4. 符号说明
5. 模型的建立与求解
5.1 问题一的建模与求解
5.1.1 分析对象与指标的选取
问题 1 要求我们分析池水、底泥与间隙水中常见理化因子之间的关系。查阅资料知,
间隙水又称自由水,是土壤或水体底质空隙中不受土粒吸着能移动的水分[1],即介于池
水与底泥之间的水。因此,我们考虑分析垂直位置上相邻的池水与间隙水、底泥与间隙
水之间理化因子的关系。同时,选取附件一中的六个常见理化因子:总磷、磷酸盐磷、
总氮、硝态氮、亚硝态氮、铵态氮进行分析。
5.1.2 折线图分析
我们以池塘一的 A 采样点为例,用 EXCEL 分别对池水与间隙水、底泥与间隙水的
六个理化因子含量用折线图进行表示,结果如下图 1、图 2 所示。
观察上图可以发现,池水与间隙水之间的总磷、总氮含量有相同的趋势性,其他理化因子的关系无规则可循;间隙水与底泥之间的理化因子除销态氮外,基本都有相同的趋势性。因此初步知道间隙水与底泥之间理化因子相关性较大,池水与间隙水之间几乎
没有关系。
5.1.3 相关性分析
上节中的折线图直观地展现了大致的相关性,下面我们考虑用 Pearson 相关系数和
典型相关分析进一步探讨池水与间隙水、间隙水与底泥之间理化因子的关系,通过定量
分析得到更加可靠的结果。
5.1.3.1 正态分布检验
Pearson 相关系数以及典型相关分析都要求样本数据满足正态分布的要求,因此,
我们首先对样本数据的正态分布进行检验。此处我们以池塘一 A 采样点的间隙水总磷含
量为例进行说明。
从图 3 可以看出,样本数据与正态分布曲线拟合情况较好,于是我们用 SAS 软件
对样本数据进行正态分布检验,发现 Shapiro - Wilk (W 检验)的 p 值小于 0.05 水平,所
以拒绝零假设,认为样本符合正态分布的要求。
5.1.3.2 Pearson 相关系数模型
Pearson 相关系数用来衡量两个数据集合是否在一条线上面,也就是衡量定距变量间的
线性关系。当两个变量都是正态连续变量,而且两者之间呈线性关系时,经常选用 Pearson
相关系数刻画二者的相关程度。具体计算公式如下:
式中 r 代表相关系数,n 为样本个数,Xi 与 Yi 分别表示第 i 个样本的两组属性值。当 r =
1 时,称 X,Y 完全相关,此时 X,Y 之间具有线性函数关系;r > 0.8 时称为高度相关,当
r < 0.3 时称为低度相关,其它时候为中度相关。用 SAS 软件计算得到的相关系数见下表
1、表 2.
由表 1 和表 2 可以看到,池水与间隙水之间的理化因子相关性不高;间隙水与底泥
的磷酸盐磷、总氮、硝态氮、亚硝态氮、铵态氮之间都具有显著的相关性,铵态氮还达
到了高度相关。因此可以知道间隙水与底泥之间理化因子相关性较大,且为一一对应关
系,如间隙水中的铵态氮与底泥中的铵态氮相关性很强;池水与间隙水之间的理化因子
几乎没有关系。
5.1.3.3 典型相关分析模型
1936 年 Hulling 提出了典型相关分析,用于揭示两组多元随机变量之间的线性相关
关系。为进一步提取间隙水与底泥这两组变量之间多个理化因子的相关性,我们决定采
用典型相关分析,并用 SAS 软件求解(代码见附录 1)。
5.2.3.3 综合污染指数法结果分析
我们通过观察可得知,四个池塘均处于污染级别。池塘一和池塘二最后几周的污染
程度是呈上升趋势,污染指数增高,池塘三和池塘四最后几周是呈下降趋势,污染指数
下降。池塘一、二养殖南美白对虾,养殖后期容易发生水华现象,这些“水华”是由于
饲料投喂量过大,在池水中的残饵及虾体排泄物降解转化过程中,而使池水有机质含氮
量升高,水体 pH 值一般达到 8.0~9.5,偏碱性,导致虾体不易消化的蓝藻大量繁殖,
并最终成为池水中浮游植物的优势种群,以至于水质下降。池塘三、四主要养殖鲢鱼,
鲢鱼主要以藻类为食。养殖后期相比虾池水质会变好。而鱼类呼吸作用造成水体中的溶
解氧含量低和产生大量的铵态氮,有利于藻类植物的繁殖,也可能爆发“水华”现象。
影响养殖池塘水质的因素主要有饵料、养殖动物、底泥等。总体来看,池塘四的污
染指数较低,一般理想的池塘,要求面积较大,池水较深,光照充分,水源畅通,水质
肥沃,交通方便,以利于鱼类的生长和产量的提高,并利于生产管理。池塘的大小和深
浅,与鱼产量的高低有着非常密切的关系。生产实践证明,成鱼塘的面积以 4-10 亩以
宜,水深最好是 2-3 米。而 4-10 亩就是 0.267-1 公顷,第三个鱼塘面积过大(2.67 公
5.5 问题五的求解
5.5.1 问题 1 至 4 的研究结果
选取总磷、磷酸盐磷、总氮、硝态氮、亚硝态氮、铵态氮作为水中常见的理化因子
对分别对池水、底泥和间隙水进行分析,我们得到池水与间隙水中的理化因子相关性较
小,间隙水与底泥之间的相关性较大。
我们主要选取溶解氧、pH、浮游植物量、透明度和氮进行水质分析,池塘一和池塘
二由于养殖南美白对虾水质污染相对较为严重,且池塘一在第 13、14 和 15 周爆发水华,
池塘二在 8 周左右爆发水华。池塘四水质相对较好,因为混合养殖的鲢鱼和鲫鱼以藻类
为食,可以有效控制和消耗大量进入水体内的 N、P,起到改善水质的作用。
建立理化因子和常见浮游植物密度之间关系的数学模型,得到主要理化因子在水华
大规模爆发的预警线。
鲢鱼、鳙鱼体长与体重之间具有一定的关系模型,我们通过对爆发水华时的虾池换
养为鲢鱼和鳙鱼来改善水质。由于不能尽快消除水华以及无法减少小型浮游植物的含
量,我们又采取机械收获法、絮凝沉淀法作为辅助策略来有效消除水华。
5.5.2 养殖方案
水体的富营养化已经成为了一个全球化的问题,生态问题只有依靠生态学方法才能
解决。非经典生物操纵修复技术作为修复富营养化水体的技术手段之一,具有重要的现
实意义和实践意义。
水体自净是水体受到污染后,由于物理、化学、生物等因素的作用,使污染物的浓度
和毒性逐渐降低,经过一段时间,恢复到受污染以前状态的自然过程。根据净化机理,
可分为物理自净过程、化学自净过程和生物化学自净过程[7]。这里我们主要研究生物化
学自净过程,使得淡水养殖生态系统内达到一个良好的平衡。
(1)控制池塘内的底泥量,对底泥合理清淤。对富营养化水体进行底泥清淤能够快
速直接的减少底泥中富集的氮磷含量,同时因为底泥中氮磷含量的减少而使得底泥释放
量明显减少,导致了上覆水和表层水体中营养物质的含量发生明显的变化,富营养化水体
得到了快速而有效的控制。且被清理的底泥具有较高的农用肥料价值。
(2)选配湿地植物,湿地植物不仅能吸收去除水体中的营养盐,还能为基质微生物
提供适宜的微生态环境。通过有效地吸收氮、磷、COD 达到净化效果。选配湿地植物
时,应充分考虑不同植物的生长特点,合理搭配,才能达到预期的净化效果。
(3)向池塘中投入高效复合菌(EM),或者投入营养物质,激活土著微生物。微生
物对于污染物的分解和转化是依赖其自身的新陈代谢活动,通过分解代谢和合成代谢将
大分子有机物降解成为稳定的小分子无机物。因此,通过微生物对有机物的降解,可以
达到净化的效果。
(4)池塘周边树木以及草本植物的种植。一方面,草本植物可以有效吸收池水中氮
磷以防止水华现象的发生,另一方面,池塘周边土壤中的有机物也可以促进植物的生长,
使其具有充足的养分。达到优化的生态平衡效果。对于鱼池,除了上述措施,还应注意鲢鱼和鳙鱼的合理放养。鲢鱼的饵料主要以浮
游植物为主,鳙鱼的饵料主要以浮游动物为主,比例合适才能达到平衡。另外通过查阅
资料我们可知,鲢鱼的生长速度较快,因此应当适当加大鲢鱼投放比例,不仅能够充分
利用浮游植物饵料资源,还可以对有效控制蓝藻水华爆发,并且产生较大的经济效益。
对于虾池,存在较为严重的问题分别是容易爆发水华和虾病的传染以及蔓延。除了
上述措施,芽孢杆菌对虾池水中异养菌的生长有一定的抑制作用,对虾养殖中最重要的
细菌源——弧菌,具有显著的抑制作用[8]。同时对底泥异养细菌的生长和繁殖具有促进
作用,加速了虾池的物质和能量代谢与循环,有利于虾池环境的自我净化。我们可以在
养殖初期引入虾池。
5.5.3 验证方案效果
桑基鱼田就是一个典型的综合控制方法,利用互生互养的原理,在挖塘养殖的同时
在池塘基面上种桑,用蚕沙喂养殖鱼类,而把含有鱼类排泄物及氮磷的池塘底泥作为肥
料,形成一个闭合的生态链环,这样既能有效的避免底泥中氮磷含量的富集,同时也能
够将集中的氮磷作为肥料返还,增大产业链和能量链的延续。
对于我们所构建的生态系统,应做实验分别测量出构建前和构建后池塘中重要的理
化因子的含量,做出水质评价模型,即可判别效果是否显著。我们可以想象,在这个生
态系统中,浮游植物作为生产者,浮游动物和养殖种类作为消费者,微生物作为分解者,
其中的每一个因素都在生态系统中起着关键作用。我们所选用的生态系统使其更趋向于
良性的循环模式,也有效防止了原本此类池塘中所存在的弊端。
6. 模型的评价与推广
6.1 模型的优点
对于问题一,采用层层递进的方式,先做出关系折线图大致分析其中的相关关系,
再用 Pearson 相关系数模型和典型相关分析进一步进行量化分析。使问题的解决和阐述
更加合理也更加科学。
对于问题二,进行筛选数据选取合适的指标,简化了后面的运算量。分别从两个评
价方法入手,综合污染指数法有效地弥补了 Topsis 算法的缺点。两个方法相结合更为
科学地建立了评价体系。
对于问题三,首先进行灰色关联分析,建立了恰当的模型。在数据有限的情况下对
数据进行灰色系统预测。选取合适的指标和恰当的方法才能充分地发挥模型的作用,合
理地进行预测。
对于问题四,我们建立了体长和体重的多条曲线的拟合情况进行比较分析,使得模
型准确度更高,考虑更为全面。同时也找出鱼的数量和藻类生物减少的定量关系,可以
对问题进行深入分析,创造性地联系了鱼的增长体重和所食藻类量的关系。
6.2 模型的缺点
首先在问题二中筛选数据时采用了专家打分的方法对指标进行选择和确定 Topsis方法中的权重。专家打分具有一定的主观性,不够客观地反映其中的规律。其次,在问题四的第二小问中我们在研究需要在虾池中放养多少鱼苗来抑制水华时,对于鱼类体重
增长量和所食藻类量粗略地拟合建立模型,一定程度地影响后面结果的精准度。在第五
问中,由于时间和资源的有限,没有对模型进行实验验证,只有经过反复验证才更能确
定模型的准确性。
6.3 模型的推广
我们通过分析水体、底泥与间隙水中常见理化因子之间的关系,可以通过控制换水
的频率和对底泥的利用与清理来实现对池水、底泥和间隙水中常见的理化因子量的控
制。我们通过建立不同池塘水质的模型评价,可以通过理化因子种类与数量对池塘水质
进行评价,同时也可以将评价模型进行推广,用于更多的评价体系中。通过建立鲢鱼和
鳙鱼的生长方程和体长体重关系模型,我们可以得知它们的生长状况,从而采取合适的
方法进行养殖,同时也可以将模型推广到各种鱼类。我们所建立的相关模型,可以推广到大多数池塘乃至水产养殖领域,甚至将模型的运用推广到更多的其他领域。
7. 参考文献
[1] 百度百科.间隙水,
http://baike.baidu.com/link?url=13CTbU3fBNAefsWyOU4ZkMeIUN7CwH0JSxOQXN2othu
C7AmoqmIQ98hTFo5vn3C4W--JfUhhRlOItKdRAqhc6_,2015 年 8 月 13 日
[2] 百度文库.地表水环境质量标准 GB3838-2002(全),
http://wenku.baidu.com/link?url=ZldetgTc4pTUB6Cv3VCYhDaHB18eUv2O10uh-LbvVhG
U1bHCI3SwXhnEkl_gtIDOzsv4nWUy6eiV0EeX2E69SNLfcGBCBD5Y-IDdut3Dwv7,2015 年 8
月 13 日
[3] 刘曼红,于洪贤,刘其根,王瑞梅.淡水养殖池塘水质评价指标体系研究[J].安
徽农业科学,24:14569-14572,2011
[4] 高孜娟.西泉眼水库鲢鱼鳙鱼生长及其生态效应研究[D].东北林业大学,2012.
[5] 陈来生,洪海平,洪荣华,刘其根.千岛湖网围放养鲢鳙鱼的水体净化功能和渔业
合理经营的探讨[J], 水产科技情报,06:259-261,2005.
[6] 孙现通.怎样确定新建鱼塘的放养密度[J].农村,农业,农民,2004,10:26,2004.
[7] 杨丽蓉,陈利顶,孙然好.河道生态系统特征及其自净化能力研究现状与发展[J].
生态学报,09:5066-5075,2009
[8] 李卓佳,郭志勋,冯娟,张汉华,杨莺莺.应用芽孢杆菌调控虾池微生态的初步研
[J].海洋科学,11:28-31,2006
[9] 彭芳.水处理系统中藻类监测及去除实验研究[D].西安建筑科技大学,2008.
附录
input y1-y6 x1-x6 @@;
cards;
5.1649 0.0164 6.6161 0.2568 0.0158 4.265 4.9588 0.0138 1.2726 0.0493
0.0188 1.2249
7.3299 0.0052 6.5437 0.3584 0.0194 4.4886 2.1237 0 1.1688 0.0614 0.0246
0.1078
8.8763 0.0358 6.6253 0.02 0.0146 6.4108 1.9691 0.0048 0.497 0.0129 0.035
0.1103
10.1134 0.0361 5.8749 0.0108 0.0188 5.6794 1.7629 0.0024 1.2726 0.0041
0.0059 0.1441
7.0206 0.0409 5.9647 0.0136 0.0161 2.0624 1.7113 0.003 1.0882 0.5067
0.0315 0.5575
6.5567 0.0284 4.8684 0.0172 0.0175 2.558 1.9691 0.0042 0.7917 0.5698
0.1564 0.7268
5.5258 0.0332 3.8953 0.0221 0.0133 2.2884 1.5052 0.0028 0.4489 0.0429
0.0214 0.4076
4.0309 0.0333 4.9892 0.4225 0.2452 3.6182 3.7216 0.0103 1.3015 0.2583
0.0518 1.2635
4.5979 0.0214 4.5096 0.0086 0.0147 6.0542 6.0928 0.027 2.1992 0.2519
0.1442 2.1074
8.4124 0.0254 4.6899 0.011 0.0101 2.5 3.2577 0.0098 1.1472 0.7509 0.369
1.0169
8.7732 0.2089 4.6726 0.0884 0.0562 4.4645 3.5155 0.0065 1.739 0.2556
0.0096 0.4657
3.2577 0.0171 4.6334 0.0997 0.0092 1.9137 5.3196 0.0178 1.0701 0.2257
0.0345 0.7195
7.0206 0.017 6.6643 0.0249 0.0133 5.359 6.4536 0.03 1.696 0.4767
0.0668 0.942
6.9691 0.2058 6.9525 0.0185 0.0133 3.2072 7.0722 0.034 2.0101 0.1612
0.0294 0.7437
6.4021 0.2149 6.1152 0.0111 0.0142 5.8607 7.7938 0.0463 1.4823 0.082
0.0661 0.4947
;
proc cancorr data=ex all;var y1-y6; with x1-x6;
run;
function r=topsis(z)
A=formulation(z);%规范化矩阵
w=[1.004 0.886 0.812 0.691 0.740;1.004 0.886 0.812 0.691 0.740;1.004 0.886 0.812 0.691
0.740;1.004 0.886 0.812 0.691 0.740];
A=w.*A;
[x1,x2]=findidealpoints(A);%确定正负理想解
[d1,d2]=computingdistance(A,x1,x2);%计算距离
c=computingdegree(d1,d2);%计算接近程度
r=sorting(c);%排序
end
function c=computingdegree(d1,d2)
n=size(d1,2);
c=zeros(1,n);
for i=1:n
c(i)=d2(i)/(d1(i)+d2(i));
end
c
end
function [d1,d2]=computingdistance(z,x1,x2)
[n,m]=size(z);
for i=1:n
d1(i)=sqrt(sum((z(i,:)-x1).^2));
d2(i)=sqrt(sum((z(i,:)-x2).^2));
end
end
function C=count_weight(B)
A=B;
[n,m]=size(A);
b=ones(n,m);
for j=1:m
b(:,j)=A(:,j)-max(A(:,j));
end
b=b.^2;
c=sum(1./(sum(b)));
w=1./(c.*sum(b));
for j=1:m
C(:,j)=B(:,j)*w(j);
endend
function A=count_weight(A)
[n,m]=size(A);
w=zeros(1,m);
for j=1;m
for i=1:n
w(j)=1/(sum(1/(sum((A(i,j)-max(A(:,j))).^2)))*sum((A(i,j)-max(A(:,j))).^2));
end
end
A=w*A;
end
function [x1,x2]=findidealpoints(z)
[n,m]=size(z);
x1=zeros(1,m);
x2=zeros(1,m);
for j=1:m
x1(j)=max(z(:,j));
x2(j)=min(z(:,j));
end
end
function A=formulation(z)
[n,m]=size(z);
A=zeros(n,m);
for j=1:m
var_type(j)=input('please input a var_type: ');
end
for i=1:n
for j=1:m
if var_type(j)==1
A(i,j)=(z(i,j)-min(z(:,j)))./(max(z(:,j))-min(z(:,j)));
elseif var_type(j)==0
A(i,j)=(max(z(:,j))-z(i,j))./(max(z(:,j))-min(z(:,j)));
end
end
end
end
function result=sorting(e)
c=e;
n=size(c,2);%向量中元素的数目
result=[];
%记录 c 中元素最大的位置,将最大的数的数值设置为一个小量-1000000000;
for i=1:n
[a,result(i)]=max(c);
c(result(i))=-1000000000000;
endend