简介: 维空间中,由 个顶点,可以组成“最简单”的图形,叫单纯形。
法就是先构造一个初始的,包含给定点的单纯形。 在以上三种手段失效的时候,使用
收缩。 (半径的定义可以有很多,比如两两点的距离, 只要当“半径”趋于 的时候,该单
纯形趋于一个点即可)相关资料:虽然只提到二维的情况,不过可
以推广到 维。
主要通过上面的几个图例,知道四种手段即可:
反射,扩展,压缩,收缩看懂了这四个基本手
段后,就不用去搜其他资料了。 最好的方法就是直接找 里面的 函数。
这套代码里面,允许对以上四种操作的尺寸做定制。 这个距离在 里面可以手
工定制:
! "! #!$ #!
同理还可以改变其他几个代码单纯形变换流程: 看流程之前,先确保一提到上面四个操
作,就能反映出相关的点之间的关系。 最好点:
次差点:
最差点:%
反射点:
扩展点:
内压缩点: 和 % 之间)
外压缩点:" 和 之间) 。如果反射点值小于 ,那么考虑扩展点 ,选 和
中小者去替换 %
"。如果反射点值小于 ,用 如替换 %
&。非以上两种情况,考虑压缩点
&。% 比 小,那么考虑 ,如果 比 % 小,选 替换,否则考虑收缩
&"。 比 % 小,那么考虑 ",如果 " 比 小,选 " 替换,否则考虑收缩
'。如果在第 & 步中确定需要收缩,那么将所有点向 方向按比例收缩 剩下的内容代码
里面比较详细了。代码: 下面这个就是看了 实现的 之后,稍加改写的
一个版本。
去掉了一些通用性的定制变量,一些繁琐的参数判断,尽量写了详细的注释。 ()*
+*$, -(**-*
./
)+$, -**-*
-0最大迭代次数,默认
0精度,默认 .#参数检查
$1"*
223请至少传入函数和初始点3!
默认值设置
$1&
222- !
$1'
222 .#!222
$!变量个数
0!把 变成列向量 + 是单纯形矩阵, 行 列