MATLAB 线性方程组求解

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)


  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值