程序 > 示例:查找矢量的局部最小值/最大值
  
示例:查找矢量的局部最小值/最大值
1. 使用条件语句和循环的组合编写程序,以查找数据集局部最小值:
单击复制此表达式
函数 locmin 对输入矢量 v 进行扫描,并将每个元素与相邻的两个元素进行比较。如果元素 k 小于前一个元素和后一个元素,则其为局部最小值,并将其值和索引添加至输出矢量 m
2. 在以上程序的基础上编写第二个程序,来查找相同数据集的最大值:
单击复制此表达式
函数 locmax 使用在以 -v 调用 locmin 时获得的结果。-v 的局部最小值是同一索引下局部最大值的镜像。因此,局部最小值中的每个值都乘以 -1。索引-值对作为单个元素保存在输出矢量 M 中。
3. 定义使用内置函数 dbinom 的函数 f,其返回值 k 的概率密度:
单击复制此表达式
单击复制此表达式
单击复制此表达式
单击复制此表达式
单击复制此表达式
单击复制此表达式
4. 绘制以上两个函数:
单击复制此表达式
5. g(k,n) 的元素保存到数组中,以便可将其传递到已定义的程序中:
单击复制此表达式
6. 使用内建的长度函数查看程序找到多少个 locminlocmax 点:
单击复制此表达式
单击复制此表达式
7. 使用程序针对函数找到三个局部最小值点:
单击复制此表达式
单击复制此表达式
单击复制此表达式
单击复制此表达式
单击复制此表达式
单击复制此表达式
单击复制此表达式
单击复制此表达式
单击复制此表达式
8. 使用程序针对函数找到两个局部最大值点:
单击复制此表达式
单击复制此表达式
单击复制此表达式
单击复制此表达式
单击复制此表达式
单击复制此表达式
9. 绘制函数,并显示三个局部最小值点和两个局部最大值点:
单击复制此表达式
10. 比较使用程序获得的结果与使用内置函数 localminlocalmax 获得的结果 (需要输入 nx2 矩阵):
a. 使用 augment 函数构建 nx2 输入矩阵:
单击复制此表达式
单击复制此表达式
单击复制此表达式
b. 使用内置函数获取局部最小值点和最大值点:
单击复制此表达式
单击复制此表达式
结果一致。
* 
在编写新程序之前,请务必检查内置函数的可用性。