传递一个变量约束fmincon
2视图(30天)
显示旧的评论
这就跟你问声好!
我用“fmincon”解算器优化函数,数组的输入。优化函数是有趣= @ (x) ((sqrt ((x (1) - a) ^ 2 + (x (2) - b) ^ 2) + sqrt ((x (1) - c) ^ 2 + (x (2) - d) ^ 2)) ^ 2 - (y (nn)) ^ 2) ^ 2。注意,y (nn)变化与“神经网络”。
目前,我在for循环定义‘有趣的’所以我可以通过一个标量“y”。同样,“有趣”的约束函数,即c = sqrt ((x (1) - h) ^ 2 + (x (2) - g) ^ 2) - y (nn)也改变“神经网络”。然而,我不能调用c (x, y (nn))在fimincon和我也不能定义c (x)在for循环的固定值y (nn)。所以,我想问:
- 有什么有效的方式通过向量输入“y”fmincon没有定义一个for循环的乐趣吗?
- 我怎么通过一个向量参数c (x)除了“x”?
谢谢你!
0评论
接受的答案
马特·J
2023年5月18日
编辑:马特·J
2023年5月18日
我认为这就是你的意思,
为nn = 1: N
ynn = y (nn);
有趣= @ (x) (√(x (1) - a) ^ 2 + (x (2) - b) ^ 2) + sqrt ((x (1) - c) ^ 2 + (x (2) - d) ^ 2)) ^ 2 - (ynn) ^ 2) ^ 2
= @监狱(x) nonlcon (x, ynn h g);
xopt = fmincon (Aeq有趣,x0, A, b,说真的,磅,乌兰巴托,反对);
结束
函数测查[c] = nonlcon (x, y, h, g)
c =√(x (1) - h) ^ 2 + (x (2) - g) ^ 2) - y;
测查= [];
结束