实验一 基础练习
练习1 基本操作和简单语句输入
- 用函数sym定义符号矩阵: - 1 - >> sym_matrix = sym('[a b c;Jack Help_Me NO_WAY]') - 结果: - 1 
 2
 3
 4- sym_matrix = 
 
 [ a, b, c]
 [ Jack, Help_Me, NO_WAY]
- 用函数syms定义符号矩阵 - 1 
 2
 3
 4
 5- >> syms a b c ; 
 >> M1 = sym('Classical');
 >> M2 = sym(' Jazz');
 >> M3 = sym('Blues');
 >> A = [a b c;M1,M2,M3;sym([2 3 5])]- 结果: - 1 
 2
 3
 4
 5- A = 
 
 [ a, b, c]
 [ Classical, Jazz, Blues]
 [ 2, 3, 5]
- 输入 - A=[7 1 5;2 5 6;3 1 5],B=[1 1 1; 2 2 2; 3 3 3],在命令窗口中执行下列表达式,掌握其含义:- A(2, 3) A(:,2) A(3,:) A(:,1:2:3) A(:,3).*B(:,2) A(:,3)*B(2,:) A*B A.*B A^2 A.^2 B/A B./A- 结果: - 1 
 2
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14- >> A=[7 1 5;2 5 6;3 1 5],B=[1 1 1; 2 2 2; 3 3 3] 
 A =
 7 1 5
 2 5 6
 3 1 5
 B =
 1 1 1
 2 2 2
 3 3 3- A(2,3)——输出矩阵A第二行第三列的值- 1 
 2
 3
 4
 5- >> A(2, 3) 
 ans =
 6- A(:,2)——输出矩阵A第二列的所有值- 1 
 2
 3
 4
 5
 6
 7- >> A(:,2) 
 ans =
 1
 5
 1- A(3,:)——输出矩阵A第三行的所有值- 1 
 2
 3
 4
 5- >> A(3,:) 
 ans =
 3 1 5- A(:,1:2:3)—— 输出矩阵A的第一列和第三列的值- 1 
 2
 3
 4
 5
 6
 7- >> A(:,1:2:3) 
 ans =
 7 5
 2 6
 3 5- A(:,3).*B(:,2)——输出矩阵A的第三列与矩阵B的第二列的乘积- 1 
 2
 3
 4
 5
 6
 7- >> A(:,3).*B(:,2) 
 ans =
 5
 12
 15- A(:,3).*B(2,:)——输出矩阵A的第三列与矩阵B的第二行的乘积- 1 
 2
 3
 4
 5
 6
 7- >> A(:,3).*B(2,:) 
 ans =
 10 10 10
 12 12 12
 10 10 10- A*B——将矩阵A与矩阵B进行矩阵乘法运算- 1 
 2
 3
 4
 5
 6
 7- >> A*B 
 ans =
 24 24 24
 30 30 30
 20 20 20- A.*B——将矩阵A与矩阵B中相同位置的元素相乘- 1 
 2
 3
 4
 5
 6
 7- >> A.*B 
 ans =
 7 1 5
 4 10 12
 9 3 15- A^2——将矩阵A与矩阵A进行矩阵乘法运算- 1 
 2
 3
 4
 5
 6
 7- >> A^2 
 ans =
 66 17 66
 42 33 70
 38 13 46- A.^2——将矩阵A与矩阵A相对应位置的元素相乘- 1 
 2
 3
 4
 5
 6
 7- >> A.^2 
 ans =
 49 1 25
 4 25 36
 9 1 25- B/A——矩阵B乘矩阵A的逆- 1 
 2
 3
 4
 5
 6
 7- >> B/A 
 ans =
 0.1842 0.2105 -0.2368
 0.3684 0.4211 -0.4737
 0.5526 0.6316 -0.7105- B./A——矩阵B与矩阵A相对应的元素相除- 1 
 2
 3
 4
 5
 6
 7- >> B./A 
 ans =
 0.1429 1.0000 0.2000
 1.0000 0.4000 0.3333
 1.0000 3.0000 0.6000
- 输入 - C=1:2:20,则- C(i)表示什么?其中- i=1,2,3,…,10;- 结果: - 1 
 2
 3
 4
 5- >> C=1:2:20 
 C =
 1 3 5 7 9 11 13 15 17 19- C(i)表示第i位的数据- 1 
 2
 3
 4
 5
 6
 7
 8
 9
 10
 11- >> C(1) 
 ans =
 1
 >> C(5)
 ans =
 9
- 查找已创建变量的信息,删除无用的变量 - 1 
 2
 3
 4
 5
 6
 7
 8
 9
 10
 11- >> A 
 A =
 7 1 5
 2 5 6
 3 1 5
 >> clear A
 >> A
 未定义函数或变量 'A'。
练习2 编程
- 编写程序,计算1+3+5+7+…+(2n+1)的值(用input 语句输入n 值) - 1 
 2
 3
 4
 5
 6
 7
 8- clear 
 clc
 n = input('input n = ');
 sum = 1;
 for i = 1:n
 sum = sum + (2*i+1);
 end
 disp(['sum = ' num2str(sum)]);- 结果: - 1 
 2- input n = 10 
 sum = 121
- 编写分段函数$y = { \[\begin{array}{ll} x & \textrm{$0 \leq x<1$}\\ 2-x & \textrm{$1 \leq x \leq 2$}\\ 0 & \textrm{其他} \end{array}\]- .\(的函数文件,存放于文件ff.m中,计算出\)f(-3)\(、\)f()\(、\)f()$的值。 - 1 
 2
 3
 4
 5
 6
 7
 8
 9
 10- x = input('x = '); 
 if(x>=0 && x<1)
 fx = x;
 else if(x >= 1 && x <= 2)
 fx = 2 - x;
 else
 fx = 0;
 end
 end
 disp(['f(x) = ', num2str(fx)]);- 结果: - 1 
 2
 3
 4
 5
 6
 7
 8- x = 0.5 
 f(x) = 0.5
 x = 1.5
 f(x) = 0.5
 x = -2
 f(x) = 0
 x = 3
 f(x) = 0
练习3 矩阵计算
- 加、减运算 - 1 
 2
 3
 4
 5
 6
 7
 8
 9
 10- clear 
 clc
 A=[1, 1, 1; 1, 2, 3; 1, 3, 6];
 B=[8, 1, 6; 3, 5, 7; 4, 9, 2];
 X=A+B;
 Y=A-B;
 disp(['A+B = ']);
 disp(X);
 disp(['A-B = ']);
 disp(Y);- 结果: - 1 
 2
 3
 4
 5
 6
 7
 8
 9- A+B = 
 9 2 7
 4 7 10
 5 12 8
 A-B =
 -7 0 -5
 -2 -3 -4
 -3 -6 4
- 乘法 - 两个矩阵相乘 - 1 
 2
 3
 4
 5
 6
 7
 8
 9- X= [2 3 4 5 
 1 2 2 1];
 Y=[0 1 1
 1 1 0
 0 0 1
 1 0 0];
 Z = X*Y;
 disp(['Z = ']);
 disp(Z);- 结果: - 1 
 2
 3- Z = 
 8 5 6
 3 3 3
- 矩阵的数乘 - 1 
 2
 3- a = 2*X; 
 disp('a = ');
 disp(a);- 结果: - 1 
 2
 3- a = 
 4 6 8 10
 2 4 4 2
- 向量的点乘(内积) - 1 
 2
 3
 4- X=[-1 0 2]; Y=[-2 -1 1]; 
 Z=dot(X, Y)
 % 或者
 sum(X.*Y)- 结果: - 1 
 2
 3- Z = 
 4- 1 
 2
 3- ans = 
 4
- 向量叉乘 - 1 
 2
 3- a=[1 2 3]; 
 b=[4 5 6];
 c=cross(a,b)- 结果: - 1 
 2
 3- c = 
 -3 6 -3
- 混合积 - 1 
 2- a=[1 2 3]; b=[4 5 6]; c=[-3 6 -3]; 
 x=dot(a, cross(b, c))- 结果: - 1 
 2
 3- x = 
 54
 
- 矩阵的除法 - 1 
 2
 3- a=[1 2 3; 4 2 6; 7 4 9]; 
 b=[4; 1; 2];
 x=a\b- 结果: - 1 
 2
 3
 4
 5- x = 
 -1.5000
 2.0000
 0.5000
- 矩阵乘方 - A为方阵,p 为大于0 的整数时,A^P 表示A 的P 次方,即A 自乘P 次;p 为小于0 的整数时,A^P 表示A-1 的P 次方。 - 1 
 2- A=[1 2 3; 4 2 6; 7 4 9]; 
 A^2- 结果: - 1 
 2
 3
 4
 5- ans = 
 30 18 42
 54 36 78
 86 58 126
- A 为方阵,p 为非整数时,则其中V 为A 的特征向量,为特征值矩阵。 - 1 
 2- A=[1 2 3; 4 2 6; 7 4 9]; 
 A^0.5- 结果: - 1 
 2
 3
 4
 5- ans = 
 -0.6094 - 0.0000i 2.4744 + 0.0000i -0.1031 - 0.0000i
 0.3712 - 0.0000i 1.3908 + 0.0000i 1.3197 - 0.0000i
 2.8112 - 0.0000i -0.6461 + 0.0000i 3.1847 - 0.0000i
 
- 矩阵的转置 - 1 
 2- A=[1 2 3; 4 2 6; 7 4 9]; 
 A'- 结果: - 1 
 2
 3
 4
 5- ans = 
 1 4 7
 2 2 4
 3 6 9
- 矩阵的逆矩阵 - 方法一 - 1 
 2
 3- A=[1 2 3; 2 2 1; 3 4 3]; 
 inv(A)
 %或 A^(-1)- 结果: - 1 
 2
 3
 4
 5- ans = 
 1.0000 3.0000 -2.0000
 -1.5000 -3.0000 2.5000
 1.0000 1.0000 -1.0000
- 方法二 - 1 
 2
 3- B=[1, 2, 3, 1, 0, 0; 2, 2, 1, 0, 1, 0; 3, 4, 3, 0, 0, 1]; 
 C=rref(B); %化行最简形
 X=C(:, 4:6)- 结果: - 1 
 2
 3
 4
 5- X = 
 1.0000 3.0000 -2.0000
 -1.5000 -3.0000 2.5000
 1.0000 1.0000 -1.0000
 
- 方阵的行列式 - 1 
 2- A=[1 2 3; 2 2 1; 3 4 3]; 
 D=det(A)- 结果: - 1 
 2
 3- D = 
 2.0000
- 符号矩阵的四则运算 - 1 
 2
 3
 4- A=sym('[1/x,1/(x+1);1/(x+2),1/(x+3)]'); 
 B=sym('[x,1;x+2,0]');
 C=B-A
 D=A\B- 结果: - 1 
 2
 3
 4
 5
 6
 7
 8
 9
 10- C = 
 
 [ x - 1/x, 1 - 1/(x + 1)]
 [ x - 1/(x + 2) + 2, -1/(x + 3)]
 
 
 D =
 
 [ -x*(2*x^2 + 7*x + 6), (x*(x^2 + 3*x + 2))/2]
 [ 2*(x + 1)^2*(x + 3), -(x*(x + 1)*(x + 3))/2]
- 符号矩阵的简化 - 因式分解 - 1 
 2- syms x; 
 factor(x^9-1)- 结果: - 1 
 2
 3- ans = 
 
 [ x - 1, x^2 + x + 1, x^6 + x^3 + 1]
- 符号矩阵的展开 - 1 
 2
 3- syms x y; 
 p=expand((x+1)^3)
 q=expand(sin(x+y))- 结果: - 1 
 2
 3
 4
 5
 6
 7
 8- p = 
 
 x^3 + 3*x^2 + 3*x + 1
 
 
 q =
 
 cos(x)*sin(y) + cos(y)*sin(x)
- 同类式合并 - Collect(s,v)将- s中的变量- v的同幂项系数合并。
- 符号简化 - 1 
 2- Simple(s); 
 Pretty(s);
 
练习4 秩与线性相关性
- 矩阵和向量组的秩以及向量组的线性相关性 - 1 
 2- A=[1 -2 2 3;-2 4 -1 3;-1 2 0 3;0 6 2 3;2 -6 3 4]; 
 B=rank(A)- 结果: - 1 
 2
 3- B = 
 3- 由于秩为3 < 向量个数,因此向量组线性相关。 
- 向量组的最大无关组 - 1 
 2
 3
 4
 5
 6
 7
 8- a1=[1 -2 2 3]'; 
 a2=[-2 4 -1 3]';
 a3=[-1 2 0 3]';
 a4=[0 6 2 3]';
 a5=[2 -6 3 4]';
 A=[a1 a2 a3 a4 a5]
 format rat %以有理格式输出
 B=rref(A) %求A的行最简形- 结果: - 1 
 2
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14- A = 
 1 -2 -1 0 2
 -2 4 2 6 -6
 2 -1 0 2 3
 3 3 3 3 4
 B =
 1 0 1/3 0 16/9
 0 1 2/3 0 -1/9
 0 0 0 1 -1/3
 0 0 0 0 0
练习5 线性方程的组的求解
- 利用矩阵除法求线性方程组的特解(或一个解) \[ \left\{ \begin{array}{ll} 5x_1 + & 6x_2 & & & & = & 1\\ x_1 + & 5x_2 + & 6x_3 & & & = & 0\\ & x_2 + & 5x_3 + & 6x_4 & & = & 0\\ & & x_3 + & 5x_4 + & 6x_5 & = & 0\\ & & & x_4 + & 5x_5 & = & 1 \end{array} \right. \] - 1 
 2
 3
 4
 5
 6
 7
 8- A=[5 6 0 0 0 
 1 5 6 0 0
 0 1 5 6 0
 0 0 1 5 6
 0 0 0 1 5];
 B=[1 0 0 0 1]';
 R_A=rank(A) %求秩
 X=A\B %求解- 结果: - 1 
 2
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12- R_A = 
 5
 X =
 1507/665
 -229/133
 37/35
 -79/133
 212/665- 这就是方程的解。 
- 求方程组的解: \[ \left\{ \begin{array}{ll} x_1 + & x_2 - & 3x_3 - & x_4 & = & 1\\ 3x_1 - & x_2 - & 3x_3 + & 4x_4 & = & 4\\ x_1 + & 5x_2 - & 9x_3 - & 8x_4 & = & 0 \end{array} \right. \] - 1 
 2
 3- A=[1 1 -3 -1;3 -1 -3 4;1 5 -9 -8]; 
 B=[1 4 0]';
 X=A\B- 结果: - 1 
 2
 3
 4
 5
 6- X = 
 0
 0
 -8/15
 3/5