马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?我要加入
x
在求解一个矩阵极值的问题
:Z=A^17*B-C
其中A 为4乘4矩阵,含有x1,x2,x3,x4 . 四个未知量。B C 为已知4乘1矩阵。B=[0;0;0.0233;0.9767] C=[0;0.0677;0.0203;0.9120]
可知Z为一4乘1矩阵,求z(1)^2+z(2)^2+z(3)^2+z(4)^2的极值。
在下刚学习matlab,所以参照matlab的帮助,写了下列的my_fun.m文件,看着很繁,请多包涵。
function Z=my_fun(x)
Z=([1,0,0,0]*[x(1),0,0,1-x(4);1-x(1),x(2),0,0;0,1-x(2),x(3),0;0,0,1-x(3),x(4)]^17*[0;0;0.0233;0.9767]-[1,0,0,0]*[0;0.0677;0.0203;0.9120])^2+([0,1,0,0]*[x(1),0,0,1-x(4);1-x(1),x(2),0,0;0,1-x(2),x(3),0;0,0,1-x(3),x(4)]^17*[0;0;0.0233;0.9767]-[0,1,0,0]*[0;0.0677;0.0203;0.9120])^2+([0,0,1,0]*[x(1),0,0,1-x(4);1-x(1),x(2),0,0;0,1-x(2),x(3),0;0,0,1-x(3),x(4)]^17*[0;0;0.0233;0.9767]-[0,0,1,0]*[0;0.0677;0.0203;0.9120])^2+([0,0,0,1]*[x(1),0,0,1-x(4);1-x(1),x(2),0,0;0,1-x(2),x(3),0;0,0,1-x(3),x(4)]^17*[0;0;0.0233;0.9767]-[0,0,0,1]*[0;0.0677;0.0203;0.9120])^2;
其实就是用[1,0,0,0],[0,1,0,0]这样的函数把Z的每一项取出来,然后平方和。在进行赋值检验的时候没有问题,但是带入gatool工具箱后,在Fitness function:@my_fun.m,变量数目为4,bounds为0到1.
点击start后,出现如下的问题,望高手不吝赐教~~
GA running.
Error using ==> gads\private\makeState
GA cannot continue because user supplied fitness function failed with the following error:
Error using ==> feval
Undefined command/function 'my_fun.m'. |