matlab线性代数

基本命令:

A的转置——A’
A的行列式——det(A)
矩阵A的秩——rank(A)
A的逆矩阵——inv(A)
A的n次幂——A^n
矩阵A和B里的元素相乘——A .* B
选择A的第i行生成一个行向量——ai=A(i,:)
选择A的第j列生成一个列向量——aj=A(:,j)
生成n阶零矩阵——zeros(n)
生成n阶单位矩阵——eye(n)
两个向量的内积——a1 * a2’

其他命令:

存储工作空间变量——save 文件名 变量名
查询函数的用法——help 函数名
列出所有变量的详细资料——whos
演示程序demo——demo

特殊矩阵:

全一矩阵——y = ones(n) y = ones(m,n)
均匀分布随机矩阵——y = rand(n) y =rand(m,n)
正态分布随机矩阵——y = randn(n) y = randn(m,n)
线性等分向量——y = linspace(a,b) 默认100等分 %n等分: y = linspace(a,b,n)
对数等分向量——y =logspace(a,b) 默认50等分 %n等分:y = logspace(a,b,n)
矩阵A中元素的个数——n = numel(A) 以输入元素为对角线元素的矩阵——out = blkdiag(a,b,c…)
n阶Hadamard矩阵——H =hadamard(n) Hankel矩阵——H = hankel© 第一列元素为c,反三角以下元素为0
n阶Hilbert矩阵——H = hilb(n) H(i,j) = 1/(i+j-1)
n阶逆Hilbert矩阵——H = invhilb(n)
n阶魔方矩阵——M = magic(n)

向量的范数——n = norm(X) 具体help查询

矩阵的范数——n = norm(A) 具体help查询

其他运算:

矩阵A的特征值——D = eig(A)
特征向量矩阵X和特征值组成的对角阵D——[X,D] = eig(A)
将非奇异矩阵A正交化为Q——Q = orth(A) (Q’ * Q = 单位矩阵)
由已定义的矩阵A,E,O,A作为矩阵的子块,生成矩阵B——B = [A,E;O,A]

矩阵A的列向量组的极大线性无关组——rref(A)

数——c = cond(A) 默认为2条件数
p条件数:c = cond(A,p)
[
数学定义为矩阵A的条件数等于A的范数与A的逆的范数的乘积,即cond(A) = ‖ A ‖·‖ A逆
]

LU = A——[L,U] = lu(A)

LU = PA——[L,U,P] = lu(A)
[
U为上三角阵,L为下三角阵或其变换形式,P为单位矩阵的行变换矩阵
]

例子

①解方程组
  在这里插入图片描述

clear
format rat   %format函数控制输出格式 format rat是小数去用分数输出表示
A=[5,0,4,2;1,-1,2,1;4,1,2,0;1,1,1,1];
B=[3;1;1;0];
S=length(A(:,1))
R=rank(A)
if S==R
   X=A\B
else
   fprintf('error\n')
end

②解线性方程组

在这里插入图片描述

clear
A=[1,-2,3,1,1;1,1,-1,-1,-2;2,-1,1,0,-2;2,2,5,-1,1];
b=[7;2;7;18];
B=[A,b];
n=length(A(1,:))
RA=rank(A)
RB=rank(B)
if RA==RB
   if RA==n
      X=A\b
   else
      D=rref(B)
   end
else
   fprintf('No Solution for the Equations')
end

③解齐次线性方程组

在这里插入图片描述

clear
A=[1,1,1,4,-3;2,1,3,5,-5;1,-1,3,-2,-1;3,1,5,6,-7];
R=rank(A)
%X=rref(A)
%仅仅用rref的话,本题的秩=2<5,方程有非零解,需要自己再去做
%因此不必用rref,MATLAB提供了一个求矩阵令空间的函数null来方便求解
Y=null(A,'r')在这里插入代码片

④求非齐次线性方程组的通解
在这里插入图片描述

clear
A=[1,5,-1,-1;1,-2,1,3;3,8,-1,1;1,-9,3,7];
b=[-1;3;1;7];
B=[A,b];
RA=rank(A)
RB=rank(B)
Y=null(A,'r')
n=length(b)
if RA==RB
   if RA==n
      X=A\B      %方程组满秩时,求出唯一解
   else
      p=pinv(A)*b    %在方程组不满秩时,求出特解
      Y=null(A,'r')  %求出方程组的基础解系
      n1=length(Y(1,:))
      k=sym(['kI'])  %这里是ki,是为了把数组k说明成字符型变量
      for i=1:n1     %求出方程的全部解
         k(i)=strcat('k',num2str(i))
         p=p+k(i)*Y(:,i)
      end
   end
else
   fprintf('No Solution for the Equations')
end

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值