1、分别写出使用for循环和 while循环计算1+2+3+…+100的值的 MATLAB程序?

实验二、矩阵的基本运算

已知矩阵A 、B 、b 如下:

应用Matlab 软件进行矩阵输入及各种基本运算。

熟悉Matlab 软件中的关于矩阵运算的各种命令

1、线性代数中的矩阵运算。

本文是我即将在 机械工业出版社 出版的 数学建模 新书:

我这本书是面向数学建模入门的学习者,主要解决的痛点是,市面上的数学建模书普遍都:

  1. 对建模算法的理解和表述偏理论不够通俗,所配案例和编程实现缺少细节,学生知识储备有限阅读困难、代码要么调试不通,要么只能勉强套用;
  2. 算法的编程实现代码都比较陈旧和啰嗦,只考虑可实现性不考虑可读性和易用性,有必要改写成更先进、更适宜学生学习的最新的简洁代码。

本书真正将编程融入算法,并彻底贯彻这样的理念:

真正案例导向,把算法讲通俗,把案例讲细致,把编程实现的技术细节讲明白,把案例体现的建模方法既要融入又要提炼出来加以应用。

欢迎关注和品鉴,也欢迎加入本书的读者群(QQ:)学习交流:




则称 为一致矩阵。 阶一致阵具有如下性质:

i)一致阵的唯一非零特征根为

ii)一致阵的任一列(行)向量都是对应于特征根 的特征向量

因此,判别一个 阶矩阵 是否为一致矩阵,只要计算 的最大特征根 即可。如果 不是一致矩阵,则可以证明 , 并且 越大,不一致程度越严重。

Matlab 的自带函数 prod() 是计算连乘,有参数可以控制按行/列连乘。

第二步,计算 的 次方根 :

第三步,对 做归一化,得到权向量:

归一化后的向量,其和为 1,适合作为权重。

第四步,计算最大特征值:

一个数学式子要翻译成代码,首先得看懂它:右端分子是矩阵乘法 结果是 向量,然后逐元素除以 对应元素,外面求和再除以 ,即取平均:

第五步,计算一致性指标:

第六步,与 Saaty 的基准对比,计算一致性比率

其中, 为前文得到的 5 个因素的权向量。

该权向量就是方案层(3个旅游地)对目标层(选择旅游地)的权重。其中,第 3 个权重最大为 0.4554,所以应该选择第3个旅游地,作为最佳旅游地。

以上就演示了怎么从算法步骤到代码实现的一般过程:拿一个具体算例,用代码片段按部就班的推算,直到完成最后结果,再打包成函数,可以无限复用。这样去锻炼编程,就能正确入门编程,然后慢慢提高。

最后注:MATLAB自带的 eig() 函数,可直接计算矩阵的所有特征值与特征向量,执行:

返回值D的主对角线元素为矩阵A的特征值,V的各列分别为对应的特征向量。

对于正互反矩阵,其最大特征值必为实的,且位于第1个位置,用取最大函数max()找出来,并记录其索引:

用该索引再取出对应的特征向量,再做归一化得到权向量:

用上述内容替换自定义的 aAHP() 函数的相应部分,就可以得到精确版本的层次分析法,可保存为 AHP() 函数(请读者自行练习)。

么焕民,数学建模(层次分析法),智慧树平台在线课程。

## 方根法, 近似计算最大特征值及其对应的特征向量 ## 实现单位根近似的层次分析法 # 输入: A 为判断矩阵 # 输出: 权重向量, 一致性比率, 最大特征值, 一致性指标 权重向量, 一致性比率, 最大特征值, 一致性指标 # Saaty随机一致性指标值 # 依次对5个矩阵作用上aAHP函数, 得到所有结果 # 批量提取并合并结果 # 向上加权合成得到目标权重

——————————————

原创作品,转载请注明,禁止用于出版。

我要回帖

更多关于 for循环不能嵌套while循环 的文章

 

随机推荐