MATLAB学习笔记(五):符号计算(符号矩阵+代数方程组求解)

ARM 162浏览

2.6 .1 符号矩阵分析

常用的矩阵分析指令如下:

det(A)行列式A

diag(A)取对角元素构成向量,或根据向量构成对角矩阵

[V,D]=eig(A)特征值分解,使 AV=VD (没看懂)

expm(A)矩阵指数e^A

inv(A)A的逆矩阵

[V,J]=jordan(A)Jordan分解,使AV=VJ

poly(A)矩阵的特征多项式

rank(A)矩阵的秩

>> clear >> syms a11 a12 a21 a22 >> A=[a11,a12;a21,a22]   A =   [ a11, a12] [ a21, a22]   >> DA=det(A)   DA =   a11*a22 - a12*a21   >> IA=inv(A)   IA =   [  a22/(a11*a22 - a12*a21), -a12/(a11*a22 - a12*a21)] [ -a21/(a11*a22 - a12*a21),  a11/(a11*a22 - a12*a21)]   >> EA=eig(A) %矩阵的特征根   EA =    a11/2 + a22/2 - (a11^2 - 2*a11*a22 + a22^2 + 4*a12*a21)^(1/2)/2  a11/2 + a22/2 + (a11^2 - 2*a11*a22 + a22^2 + 4*a12*a21)^(1/2)/2

2.6.2 一般代数方程组的解

指令 solve

S=solve('eq1','eq2',..'eqn','v1','v2',..'vn')

eq是字符串表达式或字符串表达式方程,v是求解的符号变量

S是架构数组,结果保存在S.v1,S.v2,...S.vn中

>> clear >> S=solve('u*y^2+v*z+w=0','y+z+w=0','y','z')  S =       y: [2x1 sym]     z: [2x1 sym]  >> disp('S.y='),disp(S.y),disp('S.z='),disp(S.z) S.y=  (v + 2*u*w + (v^2 + 4*u*w*v - 4*u*w)^(1/2))/(2*u) - w  (v + 2*u*w - (v^2 + 4*u*w*v - 4*u*w)^(1/2))/(2*u) - w   S.z=  -(v + 2*u*w + (v^2 + 4*u*w*v - 4*u*w)^(1/2))/(2*u)  -(v + 2*u*w - (v^2 + 4*u*w*v - 4*u*w)^(1/2))/(2*u)