网址链接:CVX学习笔记
一、使用报错及问题分析案例1:
1)错误示例
variable u(9);
x(1) = 1;
for k = 1 : 9,
x(k+1) = sqrt( x(k) + u(k) ); // 报错!!!!
end
此将会报错,因为这里将赋值x(1)= 1时,在CVX模型中Matlab变量x被初始化为一个数值数组; 而Matlab将不允许随后将CVX对象插入数值数组中。应做如下修改:
2)正确示例
因此需要显示的声明x变量是表达式持有者,即加入“expression x(10); //显示的声明x为表达式”。
variable u(9);
expression x(10); //显示的声明x为表达式
x(1) = 1;
for k = 1 : 9,
x(k+1) = sqrt( x(k) + u(k) );
end
3)正确示例-2
或者采用如下方式定义x
x = cvx( zeros(10,1) ) ,
![](https://img-blog.csdnimg.cn/969a763a81a84e56b101cf10bc997800.png)
二、使用报错及问题分析案例2:
CVX报错:
Invalid quadratic form(s): not a square
![](https://img-blog.csdnimg.cn/4515365d5f15463bb521d4f3c115e49f.png)
![](https://img-blog.csdnimg.cn/3d9a975f3d444fffaca57186925740d4.png)
![](https://img-blog.csdnimg.cn/7d52dc5ba2c9480db6b53ccda1454254.png)