2012年
Problem A树的叶子
1.摘要
2.Introduction / 引言
3.Breaking Down the Problem / 问题的分解
4.Assumptions / 假设
5.Nomenclatures / 术语
6.模型
【1】模型一: 叶子的分类
(1)参数
为了对树叶进行分类,需要这7个参数
(2)比较
计算出这片树叶的七个参数,与某一个标准树叶类参数的方差
I
I
I
引入偏差指数用来表示: 它是数据库和待分类树叶间方差乘上合适权重后, 对 7 个参数的求和.
就是假设需要判断A是下面六种常见树叶中的什么类型,我们计算出A的七个参数,然后根据七个参数分别和数据库中六个分类的对应指标求方差,然后乘相应的权重求和,得到最小的,就是说A和最小的偏差最小,那么A就是这个类型的
六种常见的树叶
I
I
Ii 为相应参数的方差,
I
I
I7 例外:
因为第七个指标是四部分面积分别于总面积之比的比例因子,所以会有四个值,我们计算四个方差然后求算数平均值是最恰当的
(3)参数的权重 :层次分析
首先, 我们建立一个 7 × 7 的对称倒数矩阵 (或成对比较parison: 矩阵) 来做比较:
表格数据的来源
类似这种分析表
然后得到每个因子的权重
A=
[V,D] = eig(A) %V是特征向量, D是由特征值构成的对角矩阵(除了对角线元素外,其余位置元素全为0)
Max_eig = max(max(D)) %也可以写成max(D(:))
[R C]=size(D)
CI = (Max_eig - C) / (C-1);
RI=[0 0 0.52 0.89 1.12 1.26 1.36 1.41 1.46 1.49 1.52 1.54 1.56 1.58 1.59]; %注意哦,这里的RI最多支持 n = 15
CR=CI/RI(C)
disp('一致性指标CI=');disp(CI);
disp('一致性比例CR=');disp(CR);
if CR<0.10
disp('因为CR < 0.10,所以该判断矩阵A的一致性可以接受!');
else
disp('注意:CR >= 0.10,因此该判断矩阵A需要进行修改!');
end
说明矩阵A的一致性检验可以,于是开始求权重
求权重有三种方法
- 算术平均法
- 几何平均法
- 特征值求权重
第一种方法:算术平均法
方法1:算术平均法求权重
% 第一步:将判断矩阵按照列归一化(每一个元素除以其所在列的和)
Sum_A = sum(A)
[n,n] = size(A) % 也可以写成n = size(A,1)
% 因为我们的判断矩阵A是一个方阵,所以这里的r和c相同,我们可以就用同一个字母n表示
SUM_A = repmat(Sum_A,n,1) %repeat matrix的缩写
% 另外一种替代的方法如下:
SUM_A = [];
for i = 1:n %循环哦,这一行后面不能加冒号(和Python不同),这里表示循环n次
SUM_A = [SUM_A; Sum_A]
end
clc;A
SUM_A
Stand_A = A ./ SUM_A
% 这里我们直接将两个矩阵对应的元素相除即可
% 第二步:将归一化的各列相加(按行求和)
sum(Stand_A,2)
% 第三步:将相加后得到的向量中每个元素除以n即可得到权重向量
disp('算术平均法求权重的结果为:');
disp(sum(Stand_A,2) / n)
% 首先对标准化后的矩阵按照行求和,得到一个列向量
% 然后再将这个列向量的每个元素同时除以n即可(注意这里也可以用./哦)
第二种方法:几何平均法
%% 方法2:几何平均法求权重
% 第一步:将A的元素按照行相乘得到一个新的列向量
clc;A
Prduct_A = prod(A,2)
% prod函数和sum函数类似,一个用于乘,一个用于加 dim = 2 维度是行
% 第二步:将新的向量的每个分量开n次方
Prduct_n_A = Prduct_A .^ (1/n)
% 这里对每个元素进行乘方操作,因此要加.号哦。 ^符号表示乘方哦 这里是开n次方,所以我们等价求1/n次方
% 第三步:对该列向量进行归一化即可得到权重向量
% 将这个列向量中的每一个元素除以这一个向量的和即可
disp('几何平均法求权重的结果为:');
disp(Prduct_n_A ./ sum(Prduct_n_A))
第三种方法:特征值法
%% 方法3:特征值法求权重
% 第一步:求出矩阵A的最大特征值以及其对应的特征向量
clc
[V,D] = eig(A) %V是特征向量, D是由特征值构成的对角矩阵(除了对角线元素外,其余位置元素全为0)
Max_eig = max(max(D)) %也可以写成max(D(:))哦~
% 那么怎么找到最大特征值所在的位置了? 需要用到find函数,它可以用来返回向量或者矩阵中不为0的元素的位置索引。
% 那么问题来了,我们要得到最大特征值的位置,就需要将包含所有特征值的这个对角矩阵D中,不等于最大特征值的位置全变为0
% 这时候可以用到矩阵与常数的大小判断运算
D == Max_eig
[r,c] = find(D == Max_eig , 1)
% 找到D中第一个与最大特征值相等的元素的位置,记录它的行和列。
% 第二步:对求出的特征向量进行归一化即可得到我们的权重
V(:,c)
disp('特征值法求权重的结果为:');
disp( V(:,c) ./ sum(V(:,c)) )
% 我们先根据上面找到的最大特征值的列数c找到对应的特征向量,然后再进行标准化。
最终结果和论文中一样
但是论文中是先求权重再做一致性检验,学的是先一致性检验在求权重
(4)模型检验
现在我们将用枫叶作为树叶分类模型的检验样本.发现枫叶和类型4最为相似,所以我们需要基于量化分析的分类模型法
首先, 对给定的枫叶图片做预处理;
然后, 计算其矩度、宽高比、圆度、形状因子、边缘面积 平滑指数、边缘周长平滑指数和比例因子. 对于本例, 7 个参 数结果如下
最后, 用之前定义的公式计算偏差指数
在比较了给定枫叶参数与 6 个标准类别参数后, 得出 6个偏差指数如下
表中数据显示: 由于给定枫叶与类型 4 之间的偏差指数 最小, 所以该枫叶应落入类型 4 中, 而这也与我们的假设一致
【2】模型二:树叶分布和形状
1.思考
叶脉是一 篇树叶的骨架, 与叶肉一同作为基本组织. 基因、环境因素的作用导致了叶脉和基本组织的多样性, 进而由此决定了树叶的形状. 在这个模型中, 我们将讨论重点限定为: 树叶分布如何影响叶形.
假设一棵树由一条垂直于地面的枝干, 及枝干同侧两片水平的一模一样的树叶构成. 树叶面朝上, 朝着太阳的方向. 我们假设这棵树位于北纬 L 度. 则其一年中最大的太阳,高度角 (于春分日的中午) 为 α.
我们研究的关键是被部分遮挡的树叶,假设PL表示树叶有多大比例面积被遮挡,α表示太阳高度角
要求角度对pl的影响,我们分三种情况
2.三中情况:
1.α 趋向 90 度
一般是热带,然后热带的树叶一般是宽大,,,一般是一层
2.α 趋向 0 度
这种一般是寒带,树叶一般是针形,而且树冠上冶层密集
3.其他情况
这种处于温带,这种情况我们将控制另一个关键因素——两片树叶(在枝干上的)节点间的距离h
3.得到形状与重叠率的关系
选择菱形代替树叶,长轴,短轴,我们更改长轴的长度来改变树叶的形状,最小重叠面积 (记作 Aoverlapping) 进一步定义最小重叠率 E:
很明显最佳的情况是完全受光,如下图
h
=
h
h=h
h=h0,
E
=
0
E=0
E=0
一般情况如下图
若 h < h0, 则将产生一个遮挡区域 Aoverlapping. 接下来 研究在给定的太阳高度角 α 下分析 h, Lmajor和 E 之间的关系
我的理解是这样的
为什么平方?我感觉是为了化解负数的情况,反正只注重大小关系,都平方不影响最后的判断
当确定 h, α 的值时, 我们可得到叶长与重叠面积之间的的关系
自己实现一下
x=(5:0.001:35);
y=1-7./(1.5.*x);
y=y.^2;
plot(x,y,'-')
假设了这个角度的tan是1.25,h是7结果和论文的差不多
发现长轴长越大,那么覆盖的面积越大,Lmajor 越趋近 Lff tan α 时,重叠的面积越小
我们讨论了了 h = h0 和 h < h0 两种情况,所以h=h0为最佳,即
4.用过实例检验
为了检验这种关系我们利用收集的数据检验
利用计算出的树的太阳高度角,通过太阳高度角转换为纬度,我们 能够计算出该树的目的地,选择了小叶女贞树,桂花树,茶花树
【3】树形与叶形
鉴于叶脉构造决定叶形、枝干结构决定树形, 而与此同时, 叶脉和枝条也很相似 (参看图 3.1), 我们做出一个大胆的猜想: 叶形可能是树形的二维袖珍模型 (mimic). 也就是, 在叶形与树形间是否存在着某种联系.
为了判断我们的猜想是否正确, 我们模型总的想法是: 对 比树形、叶形间的一些特定参数, 从而确定是否有关系存在
在之前树叶的分类模型中, 叶形共有 6 个标准类型. 由于我们只对比树叶与树的一般相似性, 其中的类型 5 (带有锯齿状边缘的椭圆树叶) 可以并入类型 2 中. 因此, 我们分别得到了 5 类树叶、5 类树
【为啥5归类到2,我感觉侧重于树形,带锯齿和不带一样的,都是椭圆的,所以。。。那为啥第一类和第二类不是一类?额,我也不知道,求大佬指点】
根据我们得到的数据, 并参照我们为树叶设置的参数, 这一次我们为树的纵截面指定了 3 个参数, 它们与相应的树叶参数具有可比性
得到叶形和树形间存在关联
【4】树叶总质量
计算总质量的普遍方法就是树叶数量乘以每片叶子的总质量,我们利用光合作用,增加三个变量:树龄,生长率,一般类型(阔叶,针叶)
1.基于 C O CO CO2累积能力分类
注意:
C
O
CO
CO2累积能力并不是吸收
C
O
CO
CO2的能力,有这样一个关系:
2.确定求质量公式(根据累积量求总质量)
其中 Mleaf 为树叶的总质量 (单位: 克); Mcarbon dioxide为二氧化碳积累量 (单位: 磅); As 为二氧化碳积累能力 (单 位: 磅/克).
【公式为啥是这样?因为As是一克可以吸收多少磅,就这样啦】
3.利用树龄求出累积率
这是数据,由于不好提取我用了前29个进行回归拟合
这个是slow和树龄的拟合(一片叶子的累积量)
这个是论文中的
可以看到几乎差不多由于我的数据比原文的少,所以也算是成功拟合,R2一样,都是0.9999
其他的也进行同样的方法拟合
树龄和Moderate
勉勉强强算是成功拟合,数据一样了就差不多了
哈哈哈哈
这个就是树龄和co2的累积量的关系,然后就可以根据上面的质量与累积量的关系得到总质量与树龄的关系
很明显树龄是不容易得到的,所以我们需要寻找树龄与树特征的关系
4.利用树的特征求树龄
知道树木的生长曲线和logistics增长函数相似
将数据按照这个公式进行转换
P 表示了一棵树的总体轮廓 包括体积、高、质量
直径); A 表示树龄; k1, k2, k3, k4, k5 和 k6 为常数.
得到一个年龄和生长的关系
进行人为的划分生长年龄
5.模型描述
7.模型优缺点