利用TOPSIS算法进行生长素和施肥量对农作物各指标影响力的分析

文章目录

  • [§1 摘要](#§1 摘要)
  • [§2 问题的重述](#§2 问题的重述)
    • [1. 背景介绍](#1. 背景介绍)
    • [2. 问题的产生及进行数学建模的意义](#2. 问题的产生及进行数学建模的意义)
  • [§3 TOPSIS算法](#§3 TOPSIS算法)
    • [1. TOPSIS算法介绍](#1. TOPSIS算法介绍)
    • [2. TOPSIS算法使用步骤](#2. TOPSIS算法使用步骤)
  • [§4 问题的分析](#§4 问题的分析)
    • [1. 对问题一的分析及解答](#1. 对问题一的分析及解答)
    • [2. 对问题二的分析及解答](#2. 对问题二的分析及解答)
    • [3. 对问题三的分析及解答](#3. 对问题三的分析及解答)
  • [§5 模型的改进](#§5 模型的改进)
  • 附录

§1 摘要

本文旨在分析生长素和施肥量对农作物各指标的影响力。本文采用TOPSIS算法等方法,借助MATLAB等软件构建了TOPSIS模型,综合分析了生长素和施肥量对农作物各指标的影响力。同时,通过查阅相关论文对该数学分析模型进行了合理性判断,从而确保分析结果的可靠性。

通过对题目的细致阅读和分析,可以得出本题为评价类题型。TOPSIS算法是一种评价算法,可以很好地解决农作物影响力分析的问题,故本文选择TOPSIS算法作为本研究的核心方法。

在研究中,本文首先对数据进行了初步的清洗和预处理,包括填补缺失值、处理异常值等。接下来,运用TOPSIS算法对处理后的数据进行综合评价,确定了生长素和施肥量对农作物各指标的影响程度。通过计算TOPSIS排序得分,能够比较不同生长素和施肥量方案的优劣,从而为农作物的生长调控提供科学依据。

最后,通过查阅相关论文,我们对所采用的数学分析模型进行了合理性验证。这有助于确认我们的研究方法和结果的可靠性。合理性验证涉及对模型的基本假设、算法实现和实验结果的对比验证,以确保本文的分析结果正确有效。

本研究的结果对于提高农作物品质和产量具有重要意义。通过综合分析生长素和施肥量对农作物各指标的影响力,农业决策者和农民可以制定合理的农业管理策略,以优化农作物的生长条件,提高农作物的产量和品质。

总之,本研究通过采用TOPSIS算法等方法,综合分析了生长素和施肥量对农作物各指标的影响力,并且对所采用的数学分析模型进行了合理性验证。

关键词:TOPSIS算法;MATLAB;影响力分析

§2 问题的重述

1. 背景介绍

河南作为农业大省,其农作物的品质和产量的提升对于社会稳定具有重要意义。为了实现农业的可持续发展,我们需要探索提高农作物产量和品质的有效方法。其中,生长素的使用和施肥量是影响农作物生长的重要因素之一。

生长素对植物的生长和发育起着至关重要的作用。它可以调节植物的细胞分裂、伸长和分化,并影响光合作用和营养物质的合成。在农业生产中,合理使用生长素可以促进植物的生长,提高农作物的产量和品质。

另一方面,施肥量也对农作物的生长和产量起着重要作用。合理施肥可以提供植物所需的营养元素,促进植物的养分吸收和利用,从而增加农作物的产量和改善品质。不同施肥量的调控可以对农作物生长过程中的养分供应进行有效管理。

为了深入研究生长素和施肥量对农作物的影响,我们可以建立一项评价体系,即数学模型,该数学模型可以通过分析不同情况下农作物的数据,得出生长素使用和施肥量对农作物的影响,通过数学模型的分析,我们将探究生长素使用的不同水平和施肥量的变化对农作物各项指标的影响。

通过这项研究,本文希望能够深入了解生长素使用和施肥量对农作物的影响。这将为农业生产中的决策制定提供重要的科学依据,帮助农民和相关部门制定合理的农业管理措施,以提高农作物的质量和产量,进一步推动河南农业的可持续发展,并为社会稳定做出积极贡献。

2. 问题的产生及进行数学建模的意义

用数学建模分析农作物的指标在农业领域具有重要的意义。现代农业面临着不断增长的人口需求和有限的农田资源的挑战,因此提高农作物的品质和产量变得至关重要。农用化肥和生长素是影响农作物生长和发育的重要因素,通过对它们的合理利用和调控,可以实现对农作物的影响和提升。数学建模分析可以帮助我们系统地了解农作物对生长素和施肥量的响应,从而优化农作物的生长条件,提高农作物的产量和品质。

不进行数学建模分析的话,我们将面临一系列劣势。首先,对复杂的自然生态系统和物理过程进行直接试验和观察是非常困难和昂贵的。在实地试验中,控制所有相关因素变得非常困难,因为生态系统具有高度复杂性和不确定性。此外,试验往往需要大量的土地、时间和人力资源,不能高效地进行大规模研究。另外,试验还受到自然因素如气候、季节的影响,结果可能不具有普适性和可重复性。

相比之下,数学建模分析提供了一种可行的方法来解决上述问题。通过建立数学模型,我们可以在控制变量的条件下进行理论研究和模拟实验。数学模型可以有效地模拟和预测农作物对生长素和施肥量的响应。通过调整模型中的参数和条件,我们可以评估不同生长素和施肥量对农作物产量和品质的影响,从而得出最佳的生长条件。

数学建模分析的好处和意义是多方面的。首先,数学模型可以帮助我们深入理解农作物生长的基本物理和生物过程,揭示影响农作物生长和发育的关键因素。这种深入的理解可以指导农业管理措施的制定和实施,优化农作物生长条件,提高农作物的产量和品质。

数学建模还可以提供高效、经济的研究方法。通过模拟实验,我们可以通过分析不同生长素和施肥量的组合方式来获取最佳配方,从而节省时间和资源。数学建模还可以帮助我们预测农作物的生长趋势和产量,为农业生产和市场供应提供重要的决策依据。

§3 TOPSIS算法

1. TOPSIS算法介绍

TOPSIS(Technique for Order Preference by Similarity to Ideal Solution)是一种多准则决策分析方法,也可以用于评估和排序问题。它基于假设,即理想解和非理想解之间的距离可以衡量出一个方案的优劣程度。该方法可应用于各种领域,包括农业中的作物影响力分析。

在农业中,生长素和施肥是影响作物生长和产量的关键因素。TOPSIS算法可用于评估不同生长素和施肥量对作物的影响力,从而帮助农业决策者做出更明智的决策。

首先,我们需要明确决策的准则。在这种情况下,可以考虑一些常见的准则,如作物的生长速度、生长高度、叶片颜色等。这些准则的选择应该基于农业领域的专业知识和实际需求。

接下来,我们需要收集不同施肥量和生长素处理的数据。例如,我们可以选择几种不同的施肥量(如高、中、低)和几种生长素处理(如正常、增强、抑制),并记录相应的作物表现数据。这些数据可以包括作物的生长速度、株高、叶片颜色等。

在TOPSIS算法中,我们需要将数据进行标准化处理,以确保各个指标的量纲一致。这可以通过将原始数据转化为0到1之间的比例值来实现。例如,对于每个指标,可以使用以下公式进行标准化处理:
标准化值 = (原始值 - 最小值)/(最大值 - 最小值)

接下来,我们需要确定理想解和非理想解。理想解是指在所有指标上取得最好值的解,而非理想解是指在所有指标上取得最差值的解。在这里,我们的目标是最大化一些指标(如生长速度)并最小化其他指标(如叶片颜色),因此理想解将是在每个指标上取得最大值的解,而非理想解将是在每个指标上取得最小值的解。

然后,我们计算每个解与理想解和非理想解之间的距离。距离的计算可以使用欧氏距离或其他距离度量方法。对于每个解,我们计算其与理想解的距离和其与非理想解的距离。

最后,我们根据两个距离值计算TOPSIS得分。TOPSIS得分是理想解距离与理想解距离之和与非理想解距离之和之比的负数。得分越高,表示解越接近理想状态。

根据TOPSIS算法的结果,我们可以对不同施肥量和生长素处理方案进行排名和排序,从而确定对作物影响力最大的处理方案。该方法可以为农业决策者提供指导,帮助他们选择最优的施肥量和生长素处理方式,以最大限度地提高作物的生长和产量。

TOPSIS算法是一种用于多准则决策分析的方法,在农业中可以应用于作物影响力的分析。通过对不同施肥量和生长素处理方案的数据进行标准化、计算距离和TOPSIS得分等步骤,我们可以评估不同方案的优劣并进行排序,从而帮助农业决策者做出更明智的决策。

2. TOPSIS算法使用步骤

第一步,用向量规范化的方法求得规范决策矩阵。设多属性决策问题的决策矩阵A=(aij )mn,规范化决策矩阵B=(bij)m n,其中:

第二步,构成加权规范阵C=(cij)mn。设由决策人给定各属性的权重向量为 w=[w1,w2,...,wn] ,则 cij = wjbij,其中 i=1,2,...,m;j =1,2,...,n。在评价过程中,每项评价标准占比不同,让重要的指标影响大一点,不重要的指标影响小一点。

第三步,确定正负理想解的距离。理想解属性大致可以分为效益型、成本型和区间型三种,其中正理想解:

效益最大值和成本最小值,当属性为区间型的时候要判断在哪个区间最佳。负理想解为效益最小值和成本最大值:

第四步,计算各方案到正理想解与负理想解的距离。备选方案di到正理想解的距离为:

备选方案di到负理想解的距离为:

第五步,计算各方案的综合评价指数。计算综合评价指数公式的分子为方案到负理想解的距离,分母为为方案到负理想解的距离与方案到正理想解的距离之和,所以综合评价指数越大越好。

综合评价指数公式:

第六步,按综合评价指数由大到小排列方案的优劣次序。

§4 问题的分析

1. 对问题一的分析及解答

将问题一:"分析生长素使用不同水平情况下,对农作物各指标的相关性、影响力单因素分析?"简化为易于使用TOPSIS算法的"在未使用肥料的情况下,生长素是否使用对农作物各指标的相关性及影响力由强到弱、由大到小依次为?"

为提高效率,以下数据均为相对而言更具代表性的临近成熟时期的数据,以下数据均取平均值,农作物的各个指标也是选取了较为重要的项目进行分析。

以下为进行清洗及处理以后的数据:

J~0~N~1~ J~2~N~1~
干物质(穗重) 2.88 2.46
SPAD(抽穗期) 40.4 42.6
株高 77.5 71.5
灌浆速率 5.296 5.302
产量(千粒重) 49.08 52.08
硬度仪(硬度) 71.14 68.69
近红外(moisture%) 10.9 10.65
吹泡仪(W) 230 190
损伤淀粉仪(Farrand) 40.86 39.66

在使用TOPSIS算法进行分析时,将上述各指标依次记为1、2、3、4、5、6、7、8、9,并使是否使用生长素的比重相等,将其权值均赋为0.5。

使用MATLAB进行编程并运行得到结果(代码见附录)。

在未使用肥料的情况下,生长素是否使用对农作物各指标的相关性及影响力由强到弱、由大到小依次为:

8 3 6 5 2 9 7 4 1

即在未使用肥料的情况下,生长素是否使用对农作物各指标的相关性及影响力由强到弱、由大到小依次为:

吹泡仪(W)、株高、硬度仪(硬度)、产量(千粒重)、SPAD(抽穗期)、损伤淀粉仪(Farrand)、近红外(moisture%)、灌浆速率、干物质(穗重)

2. 对问题二的分析及解答

将问题二:"分析施肥量不同水平情况下,对农作物各指标的相关性、影响力单因素分析?"简化为易于使用TOPSIS算法的"在都使用生长素的情况下,施肥量不同对农作物各指标的相关性及影响力由强到弱、由大到小依次为?"

为提高效率,以下数据均为相对而言更具代表性的临近成熟时期的数据,以下数据均取平均值,农作物的各个指标也是选取了较为重要的项目进行分析。

以下为进行清洗及处理以后的数据:

J~2~N~4~ J~2~N~3~ J~2~N~2~ J~2~N~1~
干物质(穗重) 3.43 5.261 1.95 2.46
SPAD(抽穗期) 45.5 50.8 49.3 42.6
株高 79 80.5 73.6 79.6
灌浆速率 5.296 5.137 5.256 5.254
产量(千粒重) 52.91 51.37 52.56 52.54
硬度仪(硬度) 67.89 70.91 70.17 68.69
近红外(moisture%) 11.22 11.08 11.2 10.67
吹泡仪(W) 2.87 3.02 2.65 5.37
损伤淀粉仪(Farrand) 23.96 27.89 39.8 22.58

在使用TOPSIS算法进行分析时,将上述各指标依次记为1、2、3、4、5、6、7、8、9,并使是否使用生长素的比重相等,将其权值均赋为0.25。

使用MATLAB进行编程并运行得到结果(代码见附录)。

在都使用生长素的情况下,施肥量不同对农作物各指标的相关性及影响力由强到弱、由大到小依次为:

3 6 5 2 9 7 4 8 1

即在都使用生长素的情况下,施肥量不同对农作物各指标的相关性及影响力由强到弱、由大到小依次为:

株高、硬度仪(硬度)、产量(千粒重)、SPAD(抽穗期)、损伤淀粉仪(Farrand)、近红外(moisture%)、灌浆速率、吹泡仪(W)、干物质(穗重)

3. 对问题三的分析及解答

将问题三:"在N4 条件下,J 指标对农作物指标的影响力分析?"简化为易于使用TOPSIS算法的"在施肥量为400g每单位面积的条件下,是否使用生长素对农作物各个指标的影响力由大到小依次为?"

为提高效率,以下数据均为相对而言更具代表性的临近成熟时期的数据,以下数据均取平均值,农作物的各个指标也是选取了较为重要的项目进行分析。

以下为进行清洗及处理以后的数据:

J~2~N~4~ J~0~N~4~
干物质(穗重) 3.42 3.13
SPAD(抽穗期) 45.5 50.7
株高 79 79
灌浆速率 5.296 5.355
产量(千粒重) 52.99 53.55
硬度仪(硬度) 67.89 69.21
近红外(moisture%) 11.23 10.94
吹泡仪(W) 3.68 2.58
损伤淀粉仪(Farrand) 23.63 22.58

在使用TOPSIS算法进行分析时,将上述各指标依次记为1、2、3、4、5、6、7、8、9,并使是否使用生长素的比重相等,将其权值均赋为0.5。

使用MATLAB进行编程并运行得到结果(代码见附录)。

在施肥量为400g每单位面积的条件下,是否使用生长素对农作物各个指标的影响力由大到小依次为:

3 6 5 2 9 7 4 8 1

即在施肥量为400g每单位面积的条件下,是否使用生长素对农作物各个指标的影响力由大到小依次为:

株高、硬度仪(硬度)、产量(千粒重)、SPAD(抽穗期)、损伤淀粉仪(Farrand)、近红外(moisture%)、灌浆速率、吹泡仪(W)、干物质(穗重)

§5 模型的改进

1. 验证

在论文《山旱区有机肥的施用对马铃薯干物质积累及产量的影响》中,作者得出结论:有机肥对马铃薯单株结薯数和单株薯重的增加有积极作用。该试验分析了5个有机肥施用量对"青薯9号"和"下寨65"产量的影响,结果表明,T4处理明显提高了"青薯9号"和"下寨65"的产量,其次是T1处理和T2处理。李艳宁等研究表明,合理施用有机肥,能够增加作物产量,该试验研究结果与其一致。但T3处理使得"青薯9号"减产,可能原因是生长后期降水过多导致其减产。总体而言,T4处理的增产效果最好,说明在一定的施肥范围内,增施有机肥能促进马铃薯产量增加,但过量的施肥会对块茎的形成产生不利影响。施用有机肥可以增产,这与前人的研究结果一致。

2.模型改进

针对上述模型的改进,我们可以从多个方面入手,以提高模型的准确性和实用性。

首先,数据处理方面的改进是至关重要的。虽然时间限制导致了数据清洗和分析环节的不完善,但为了提高模型的可靠性,我们应该寻找更多的时间和资源来进行更严谨的数据处理工作。这包括更全面地收集数据,确保数据的准确性和完整性,处理异常值和缺失值,并对数据进行适当的标准化和归一化处理。此外,可以应用更先进的数据处理技术和算法,例如数据挖掘和机器学习方法,以提取更多有价值的信息和模式。

其次,模型的指标选择和权重确定也需要改进。在原始模型中,我们对农作物各指标的影响力进行综合评价,但并没有详细说明指标的重要性和权重。为了更准确地反映实际情况,需要依据农业学和实践经验,采用专家调查、层次分析法或其他权重确定方法来确定各指标的相对权重。这样可以更准确地衡量各指标对农作物产量和品质的贡献程度。

另外,对TOPSIS算法的改进也可以提升模型的性能。TOPSIS算法是一种基于距离和相对接近性的评价方法,但它并不考虑指标之间的相关性。在实际情况中,农作物的各指标往往具有一定的关联性,因此在模型中引入相关性的考虑可以提高模型的准确性。可以考虑使用改进的TOPSIS算法,如模糊TOPSIS、加权TOPSIS等,来克服原始TOPSIS算法的局限性,并更好地应对农作物指标之间的相关性问题。

此外,模型的应用范围和推广价值也需要进一步考虑。虽然本研究针对生长素和施肥量对农作物的影响进行了分析,但还可以进一步扩展和应用到其他农业领域。例如,可以考虑分析其他因素对农作物产量和品质的影响,如气候因素、土壤条件等。同时,可以将该模型应用于实际农田中,通过实地数据的收集和验证,来进一步验证模型的可行性和实用性。

定期更新和改进模型也是至关重要的。随着农业科技的不断发展和更新,新的研究成果和数据也会不断涌现。因此,我们应该及时关注最新的研究进展,不断更新和改进我们的模型,以适应不断变化的农业环境和需求。

综上所述,通过改进数据处理、指标选择和权重确定、算法改进、应用推广等多个方面的措施,我们可以进一步提高农作物影响力分析模型的准确性和实用性。这些改进将为农业决策者和农民提供更科学、可靠的决策依据,促进农作物产量和品质的提升,为可持续农业的发展做出贡献。

附录

问题一代码:

python 复制代码
clc,clear 
% clc:清除命令窗口的内容,对工作环境中的全部变量无任何影响
% clear:清除工作空间的所有变量

a=[2.88	2.46
40.4	42.6
77.5	71.5
5.296	5.302
49.08	52.08
71.14	68.69
10.9	10.65
230	190
40.86	39.66
];
% 输入数据
[m,n]=size(a);
x2=@(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))./(ub-qujian(2))).*...
    (x>qujian(2)&x<=ub);
qujian=[5,6];lb=2;ub=12;

for j=1:n
    b(:,j)=a(:,j)/norm(a(:,j));%向量规范化
end
w=[0.5 0.5];
c=b.*repmat(w,m,1);%求加权矩阵

cstar=max(c);%求正理想解

c0=min(c);%求负理想解


for i=1:m
    sstar(i)=norm(c(i,:)-cstar);%求到正理想解的距离
    s0(i)=norm(c(i,:)-c0);%求到负理想解的距离
end
f=s0./(sstar+s0);
[sf,ind]=sort(f,'descend')  %求排序结果
% "ascend"时,进行升序排序,为"descend "时,进行降序排序

for i=1:m
    sstar(i)=norm(c(i,:)-cstar);%求到正理想解的距离
    s0(i)=norm(c(i,:)-c0);%求到负理想解的距离
end
f=s0./(sstar+s0);
[sf,ind]=sort(f,'descend')  %求排序结果
% "ascend"时,进行升序排序,为"descend "时,进行降序排序

问题二代码:

python 复制代码
clc,clear 
% clc:清除命令窗口的内容,对工作环境中的全部变量无任何影响
% clear:清除工作空间的所有变量

a=[3.43 5.261 1.95 2.46
	45.5 50.8 49.3 42.6
	79 80.5 73.6 79.6
	5.296 5.137 5.256 5.254
	52.91 51.37 52.56 52.54
	67.89 70.91 70.17 68.69
	11.22 11.08 11.2 10.67
	2.87 3.02 2.65 5.37
	23.96 27.89 39.8 22.58
];
% 输入数据
[m,n]=size(a);
x2=@(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))./(ub-qujian(2))).*...
    (x>qujian(2)&x<=ub);
qujian=[5,6];lb=2;ub=12;

for j=1:n
    b(:,j)=a(:,j)/norm(a(:,j));%向量规范化
end
w=[0.25 0.25 0.25 0.25];
c=b.*repmat(w,m,1);%求加权矩阵

cstar=max(c);%求正理想解

c0=min(c);%求负理想解


for i=1:m
    sstar(i)=norm(c(i,:)-cstar);%求到正理想解的距离
    s0(i)=norm(c(i,:)-c0);%求到负理想解的距离
end
f=s0./(sstar+s0);
[sf,ind]=sort(f,'descend')  %求排序结果
% "ascend"时,进行升序排序,为"descend "时,进行降序排序



for i=1:m
    sstar(i)=norm(c(i,:)-cstar);%求到正理想解的距离
    s0(i)=norm(c(i,:)-c0);%求到负理想解的距离
end
f=s0./(sstar+s0);
[sf,ind]=sort(f,'descend')  %求排序结果
% "ascend"时,进行升序排序,为"descend "时,进行降序排序

问题三代码:

python 复制代码
clc,clear 
% clc:清除命令窗口的内容,对工作环境中的全部变量无任何影响
% clear:清除工作空间的所有变量

a=[3.42 3.13
	45.5 50.7
	79 79
	5.296 5.355
	52.99 53.55
	67.89 69.21
	11.23 10.94
	3.68 2.58
	23.63 22.58
];
% 输入数据
[m,n]=size(a);
x2=@(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))./(ub-qujian(2))).*...
    (x>qujian(2)&x<=ub);
qujian=[5,6];lb=2;ub=12;

for j=1:n
    b(:,j)=a(:,j)/norm(a(:,j));%向量规范化
end
w=[0.5 0.5];
c=b.*repmat(w,m,1);%求加权矩阵

cstar=max(c);%求正理想解

c0=min(c);%求负理想解


for i=1:m
    sstar(i)=norm(c(i,:)-cstar);%求到正理想解的距离
    s0(i)=norm(c(i,:)-c0);%求到负理想解的距离
end
f=s0./(sstar+s0);
[sf,ind]=sort(f,'descend')  %求排序结果
% "ascend"时,进行升序排序,为"descend "时,进行降序排序



for i=1:m
    sstar(i)=norm(c(i,:)-cstar);%求到正理想解的距离
    s0(i)=norm(c(i,:)-c0);%求到负理想解的距离
end
f=s0./(sstar+s0);
[sf,ind]=sort(f,'descend')  %求排序结果
% "ascend"时,进行升序排序,为"descend "时,进行降序排序

这是我的第一篇数学建模论文,自己很清楚水平根本不够格,但完美是优秀的敌人,只有行动才能进步💪

相关推荐
2401_8827275715 分钟前
BY组态-低代码web可视化组件
前端·后端·物联网·低代码·数学建模·前端框架
Swift社区16 分钟前
LeetCode - #139 单词拆分
算法·leetcode·职场和发展
Kent_J_Truman1 小时前
greater<>() 、less<>()及运算符 < 重载在排序和堆中的使用
算法
IT 青年1 小时前
数据结构 (1)基本概念和术语
数据结构·算法
Dong雨2 小时前
力扣hot100-->栈/单调栈
算法·leetcode·职场和发展
SoraLuna2 小时前
「Mac玩转仓颉内测版24」基础篇4 - 浮点类型详解
开发语言·算法·macos·cangjie
liujjjiyun2 小时前
小R的随机播放顺序
数据结构·c++·算法
¥ 多多¥2 小时前
c++中mystring运算符重载
开发语言·c++·算法
trueEve3 小时前
SQL,力扣题目1369,获取最近第二次的活动
算法·leetcode·职场和发展
天若有情6733 小时前
c++框架设计展示---提高开发效率!
java·c++·算法