黎卡提方程的matlab解法
时间: 2023-08-23 18:11:26 浏览: 104
黎卡提方程的MATLAB解法可以使用迭代求解的方法。首先,根据黎卡提方程的迭代公式,可以得到迭代的初值和迭代公式。然后,使用while循环进行迭代计算,直到迭代结果收敛于一个常数矩阵。最后,根据迭代结果计算出黎卡提方程的解。
具体的MATLAB代码如下所示:
```
I = eye(size(A));
iA = inv(I - A);
E = iA * (I + A);
G = 2 * iA^2 * B;
H = R + B' * iA' * Q * iA * B;
W = Q * iA * B;
P0 = zeros(size(A));
i = 0;
while(1)
i = i + 1;
P = E' * P0 * E - (E' * P0 * G + W) * inv(G' * P0 * G + H) * (E' * P0 * G + W)' + Q;
if (norm(P - P0) < eps)
break;
else
P0 = P;
end
end
P = 2 * iA' * P * iA;
```
其中,A、B、Q、R分别为黎卡提方程中的矩阵,eps为迭代的收敛精度。通过以上代码,可以得到黎卡提方程的解P。
#### 引用[.reference_title]
- *1* [matlab求解黎卡提代数方程_LQR](https://blog.csdn.net/m0_62299908/article/details/127807014)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item]
- *2* [Matlab 黎卡提方程](https://blog.csdn.net/qq_42293758/article/details/89500356)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item]
- *3* [【Matlab】求解黎卡提 Riccati 方程 李雅普诺夫 Lyapunov 方程](https://blog.csdn.net/weixin_36815313/article/details/118406162)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]