MATLB实现线性代数基础知识(加减乘除,求逆,分解,解方程组)

%%线性代数基础知识
clear
clc
A = [8 4 3;4 8 6;7 8 9]
inv(A)
transpose(A)
rref(A)
rank(A)
det(A)
B = [8 9 2;4 7 5;7 4 8]
mul = A*B
chu1 = A\B
chu2 = A/B
jian = A-B



%%例子
clear
clc
syms a b c d
A = [a b;c d]
A'
inv(A)
det(A)


%%矩阵的变换与分解
%提取对角元素
clear
clc
A = pascal(3)
diag(A)

%产生第K阶对角线上的元素
a = [1 2 3]
A = diag(a,0)
B = diag(a,1)
C = diag(a,-1)

%创建一个分块矩阵
m =1
n = [1 2;3 4]
p = 9
d = [1 -1;2 -2;3 -3]
S = blkdiag(m,n,p,d)



%%矩阵的分解
clear
clc
A = [45 56 34 87 98 23 56 90;23 64 27 75 97 24 58 90;26 83 38 41 21 70 56 35]
B = [4 2 3;4 5 6;7 8 9]
%有奇异值分解 
s = svd(A)
[U,S,V] = svd(A)
[U1,S1,V1] = svd(A,0)
%LU分解
[L,M] = lu(A)
%QR分解
[Q,R] = qr(A)
%Cholesky分解
C = chol(B)


%%特征值与特征向量
clear
clc
A = [4 6 0;-3 -5 0;-3 -6 1]
P = poly(A)
[V,D] = eig(A)
Q = roots(poly(A))

%%矩阵的相似对角化
%化A为对角阵
O = V\A*V


%%将一个二次型化为标准型
clear
clc
A = [1 1 0 -1;1 1 -1 0;0 -1 1 1 ;-1 0 1 1]
[P,D] = eig(A)
syms x1 x2 x3 x4
X = [x1;x2;x3;x4]
Y = P*X


%%齐次线性方程组的直接求法
clear
clc
A = [1 1 1 1 1;3 2 1 1 -3;0 1 2 2 6;5 4 3 3 -1]
B = null(A,'r')
syms k1 k2 k3
x = k1*B(:,1)+k2*B(:,2)+k3*B(:,3)



%%非齐次线性方程组直接求法
clear
clc
%求逆法,对于AX=B,只要A的行列式不为0
%解为inv(A)*B

%左除法与右乘法


A = [1  1  5;
     2  1  8;
     1  2  7;
    -1  1 -1];
b = [6 8 10 2]';
M = [A b];

R = rref(M)


%%符号线性方程组求解
clear
clc
syms a b c
A = [a 0 0;0 b 0]
b = [1;c]
X = linsolve(A,b)


%%非线性方程组符号解
clear
clc
e1 = str2sym('a+b+x=y')
e2 = str2sym('2*a*x-b*y=-1')
e3 = str2sym('2*(a+b)=x+y')
e4 = str2sym('a*y+b*x=4')
[a,b,x,y] = solve(e1,e2,e3,e4)


%%常微分方程的符号解
clear
clc
dsolve('Dy=1+y^2','x')
dsolve('Dy=1+y^2','y(0)=1','x')

dsolve('x^2*D2y+x*Dy+(x^2-1/2)*y=0','y(pi/2)=2','Dy(pi/2)=-2/pi','x')

猜你喜欢

转载自blog.csdn.net/weixin_51229250/article/details/122151980