已有单变量的递归,求多变量递归的算法
多变量递归系统的算法
对于多变量系统 ,各通道间存在相互耦合现象,即各通道的输出不仅取决于本身的输入信号,还与其它通道的输出相关。
已知,单个递归这样写,多个如何写,只要写出两个通道递归都感激不尽,如下方法:
RegRecursive(int curr1, int n1, int curr2, int n2)。
因为两个通道有一定耦合关系,设置其他一个通道也会改变另一个通道的输出亮度,所以两个一起递归
只知道curr和 输出亮度 成正比关系,因此 为使输出亮度与标准亮度最接近,递归设置通道的值 curr。
- C# code
void RegRecursive(int curr, int n) { //设置寄存器值为curr setReg(curr); //测输出亮度与标准亮度的差Lv double Lv=Measure();//测量 //递归变量为1时结束,因为无法在二分下去了 if (n==1) { return; } else { //对递归变量二分,使快速收敛 n=n/2; if (Lv >= 0) { //如大于标准值,则当前值curr减去n的二分之一 curr = curr n; } else { //如小于标准值,同理 curr = curr + n; } //代入新的设置值和变量来递归。 RegRecursive(int curr, int n) } }
[解决办法]
在这个问题里,单变量的递归能不能推广到多变量?
如果变量间的耦合必须要重新描述的话,就不能直接推广。