clc,clear all;
close all;
%%
% %高斯消去法
% a=[2 3 4;3 5 2;4 3 30];%线性方程组的系数矩阵
% b=[6;5;32];%线性方程组的右端列向量
% [m,n]=size(a);%测量系数矩阵的维数
%
% if m~=n
% fprint('线性方程组的系数矩阵非方阵');
% break;
% end
% fprintf('线性方程组的增广矩阵为\n');
% disp([a b])
% %简单顺序消去法
% for k=1:n-1
% if a(k,k)==0 %主对角元素是否为0的检查
% error('对角元素a(%1d,%1d)为零,程序终止\n',k,k);
% end
% for i=k+1:n
% I(i,k)=a(i,k)/a(k,k)
% for j=k:n
% a(i,j)=a(i,j)-I(i,k)*a(k,j);%消元
% end
% b(i)=b(i)-I(i,k)*b(k); %改变对应的常数项
% end
% fprintf('第%1d次小区后 的增广矩阵为\n',k);
% disp([a,b]);
% end
% %回代法求解线性方程组的 解
% x(n)=b(n)/a(n,m);
% fprintf('线性方程组的解为\n');
% fprintf('x(%1d)=%10.5f\n',n,x(n));
%
% for i=n-1:-1:1
% x(i)=b(i);
% for j=i+1:n
% x(i)=x(i)-a(i,j)*x(j);
% end
% x(i)=x(i)/a(i,i);
% fprintf('x(%1d)=%10.5f\n',i,x(i));
% end
%%
% % 求逆法解线性方程组
% % AX=B
% a=[3 2 -1; -1 3 2;1 -1 -1];%输入等式左边的系数
% b=[10 5 -1]'; %输入等式右边的已知项,B要做转置
% X=a\b %左除运算求解
% c=a*X %验证解是否正确
% a=a'; %先将a做转置
% b=[10 5 -1];
% x=b/a %以右除运算求解的结果相同
% x=b*inv(a)
%%
% %离散Lyapunov方程
% A=[8 1 6;3 5 7;4 9 2];
% Q=[16 4 1;9 3 1;4 2 1];
% x=dlyap(A,Q)
% norm(A*x*A'-x+Q)
%%
% %sylvester 方程的计算求解 不要求C矩阵为方阵
%形如AX-XB=C的矩阵方程为sylvester方程 ,其中A∈R(n×n),B∈R(m×m),C∈R(n×m)
% A=[8 1 6;3 5 7;4 9 2];
% B=[16 4 1;9 3 1;4 2 1];
% C=-[1 2 3;4 5 6;7 8 0];
% X=lyap(A,B,C)
%%
%A'*X+X*A=-Q lyap方程形式
%x=lyap(sym(A),B,C)
% A=[8 1 6;3 5 7;4 9 2];
% Q=[16 4 1;9 3 1;4 2 1];
% x=lyap(sym(A),-inv(A'),Q*inv(A'))
%%
% % Riccati方程是形式如y' = q0(x) + q1(x)y + q2(x)y2的常微 分方程
% %非线性方程的求解
% A=[-2 1 3;-1 0 -2;0 -1 -2];
% B=[2 2 -2;-1 5 -2;-1 1 2];
% C=[5 -4 4;1 0 4;1 -1 5];
% X=are(A,B,C)
MATLAB 线性方程组求解
最新推荐文章于 2023-07-03 19:18:04 发布