请你帮一位应届高中毕业生选报高考志愿.试用层次分析法作出决策.matlab实现

假设考生需要在学校声誉、教学、科研、文体和环境这五个因素中选择志愿学校。
假设每个因素都有若干子因素,如教学因素中有教师水平、学生水平、深造条件等。
假设考生对每个因素和子因素的重要程度是不同的,可以通过层次分析法确定各因素和子因素的权重。

层次分析法建立各因素和子因素之间的层次结构模型。
对于每个因素和子因素,通过专家判断或问卷调查得到其相对权重。
将各因素和子因素的权重进行归一化处理。
对每个学校的各因素和子因素进行评分。
将各因素和子因素的评分与其相应的权重相乘,得到每个学校的加权得分。
根据加权得分的大小,确定考生填报的四个志愿。

对于每个因素和子因素,通过专家判断或问卷调查得到其相对权重。
将各因素和子因素的权重进行归一化处理。
对每个学校的各因素和子因素进行评分。
将各因素和子因素的评分与其相应的权重相乘,得到每个学校的加权得分。
根据加权得分的大小,确定考生填报的四个志愿。

通过层次分析法得到的学校的加权得分可以反映该学校在各因素和子因素中的表现,便于考生进行比较和选择。同时,该模型还可以通过调整各因素和子因素的权重来适应不同考生的选择偏好。

可以通过专家评估或者实际数据的反馈来验证该模型的可靠性和准确性。

特征值法

  function [Q]=AHP(B) [n,m]=size(B); for i=1:n for j=1:n if B(i,j)*B(j,i)~=1 fprintf('i=%d,j=%d,B(i,j)=%d,B(j,i)=%d\n',i,j,B(i,j),B(j,i)) end end end [V,D]=eig(B); tz=max(D); tzz=max(tz); c1=find(D(1,:)==max(tz)); tzx=V(:,c1); quan=zeros(n,1); for i=1:n quan(i,1)=tzx(i,1)/sum(tzx); end Q=quan; CI=(tzz-n)/(n-1); RI=[0,0,0.58,0.9,1.12,1.24,1.32,1.41,1.45,1.49,1.52,1.54,1.56,1.58,1.59]; CR=CI/RI(1,n); if CR>=0.1 fprintf('没有通过一致性检验\n'); else fprintf('通过一致性检验\n'); end end 

其他方法

  disp('请输入判断矩阵A') A=input('A='); [n,n] = size(A); Sum_A = sum(A); SUM_A = repmat(Sum_A,n,1); Stand_A = A ./ SUM_A; disp('算术平均法求权重的结果为:'); disp(sum(Stand_A,2)./n) disp('请输入判断矩阵A') A=input('A='); [n,n] = size(A); Prduct_A = prod(A,2); Prduct_n_A = Prduct_A .^ (1/n); disp('几何平均法求权重的结果为:'); disp(Prduct_n_A ./ sum(Prduct_n_A)) disp('请输入判断矩阵A') A=input('A='); [V,D] = eig(A); Max_eig = max(max(D)); [r,c]=find(D == Max_eig , 1); disp('特征值法求权重的结果为:'); disp( V(:,c) ./ sum(V(:,c)) 

原文链接:https://blog.csdn.net/blank9023/article/details/129870443?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522171852767216800182715464%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=171852767216800182715464&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_ecpm_v1~times_rank-7-129870443-null-null.nonecase&utm_term=2024%E9%AB%98%E8%80%83%E6%8A%A5%E8%80%83

© 版权声明
THE END
喜欢就支持一下吧
点赞11 分享