Matlab_矩阵与线性方程

矩阵与线性方程

01 方阵的计算

矩阵行列式调用格式为:

det(A)

实践

  1. 计 算 行 列 式 ∣ 4 1 2 4 1 2 0 2 10 5 2 0 0 1 1 7 ∣ 计算行列式 \left| \begin{matrix} 4 & 1 & 2 & 4 \\ 1 & 2 & 0 & 2 \\ 10 & 5 & 2 & 0 & \\ 0 & 1 & 1 & 7 \end{matrix} \right| 41100125120214207
A=[4 1 2 4;1 2 0 2;10 5 2 0;0 1 1 7];
det(A)

运行

>> A=[4 1 2 4;1 2 0 2;10 5 2 0;0 1 1 7];
det(A)

ans =

  -8.5117e-15

实际上这个行列式的解析解为0,可以看见,此时的运行结果不是我们想的那样。这是因为A给出的是数值矩阵,运行det(A)时得到的是数值解,会有一定的误差。

但是如果我们将A声明为符号表达式,则可以解决这种情况。(这是一个好习惯)

A=str2sym('[4 1 2 4;1 2 0 2;10 5 2 0;0 1 1 7]');    % 符号矩阵
det(A)

运行

>> A=str2sym('[4 1 2 4;1 2 0 2;10 5 2 0;0 1 1 7]');    % 符号矩阵
det(A)
 
ans =
 
0

关于矩阵的加减乘法运算,此前都已经提及。这里主要想表达养成用符号表达式的习惯。


02 求解方程组

调用格式为:

求解N个方程eq1,...,eqN的N个未知变量var1,...,varN的解。

S=solve(eq1,eq2,...,eqN,var1,var2,...,varN);

实践

  1. 解 方 程 a x + b = 0 解方程ax+b=0 ax+b=0
syms a b x;
s1=solve(a*x+b==0,x)

值得注意的是:在旧版本中,可写成solve(‘a*x+b=0’,‘x’);

不过matlab 2019 后已经不接受向 solve 中传入字符串,并且将表示公式的等式中的 = 改成 == 表示条件判断;

运行

s1 =
 
-b/a

也可以直接使用结构体来表示方程的解,例如:

  1. 求 解 方 程 组 y 2 = 2 x ; x + y = 4 求解方程组y^2=2x; x+y=4 y2=2x;x+y=4
syms x y;
[x,y]=solve(y^2-2*x==0,y+x-4==0)        %[x,y]为输出列表,也可理解为结构体。

可以通过符号“.”来访问结构体中的值

syms x y;
S=solve(y^2-2*x==0,y+x-4==0);       %解S是一个结构体
x=S.x           %S.x表示结构体S中的x的值
y=S.y           %同上        

以上两段代码的结果一样

x =
 
 2
 8
 
 
y =
 
  2
 -4

附:矩阵基础知识

声明

A=[a1,a2,a3;b1,b2,b3;c1,c2,c3;]
空矩阵:
A=[]
零矩阵:
zeros(m,n)
值全为1矩阵:
ones(m,n)
单位矩阵:
eye(m,n)
主对角线元素为a1,a2...an矩阵:
diag([a1 a2 ... an])
n阶魔方矩阵:
magic(n)
0~1间均匀分布的随机矩阵:
rand(m,n)

访问

提取第i行元素:
A(i,:)
提取第j列元素:
A(:,j)
矩阵A按列拉长为一个列向量:
A(:)
提取矩阵A的第i1至i2行、j1至j2列元素构成新矩阵:
A(i1:i2,j1:j2)
删除矩阵A的第i1至i2行构成的新矩阵:
A(i1:i2,:)=[]
删除矩阵A的第j1至j2列构成的新矩阵:
A(:,j1:j2)=[]
拼接矩阵
[A B]或[A;B]

运算

矩阵相乘
A*B
矩阵点乘
A.*B
矩阵除法,A\B表示A(逆)B, A/B表示BA(逆)
A\B or A/B
求逆阵
inv(A)
行列式
det(A)
求秩
rank(A)
求特征值
eig(A)
求阶数
size(A)
求行最简形式
rref(A)
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值