大学数学实验
别妄想泡我
875次浏览
2021年01月30日 00:58
最佳经验
本文由作者推荐
小班幼儿年龄特点-熟练的反义词
大学数学实验
项目一
矩阵运算与方程组求解
实验
1
行列式与矩阵
实验目的
掌握矩阵的输入方法
.
掌握利用
Mathematica (4.0
以上版本
)
对矩阵进行转置、加、
减、数乘、相乘、乘方等运算
,
并能求矩阵的逆矩阵和计算方阵的行列式
.
基本命令
在
Mathematica
中
,
向量和矩阵是以表的形式给出的
.
1.
表在形式上是用花括号括起来的若干表达式
,
表达式之间用逗号隔开
.
如输入
{2,4,8,16}
{x,x+1,y,Sqrt[2]}
则输入了两个向量
.
2.
表的生成函数
(1)
最简单的数值表生成函数
Range,
其命令格式如下
:
Range[
正整数
n]
—生成表{1,2,3,4,
…
,
n
};
Range[m, n]
—生成表
{
m
,
…
,
n
};
Range[m, n, dx]
—生成表
{
m
,
…
,
n
},
步长为
d
x
.
(2)
通用表的生成函数
Table.
例如
,
输入命令
Table[n^3,{n,1,20,2}]
则输出
{1,27,125,343,729,1331,2197,3375,4913,6859}
输入
Table[x*y,{x,3},{y,3}]
则输出
{{1,2,3},{2,4,6},{3,6,9}}
3.
表作为向量和矩阵
一层表在线性代数中表示向量
,
二层表表示矩阵
.
例如
,
矩阵
可以用数表
{{2,3},{4,5}}
表示
.
输入
A={{2,3},{4,5}}
则输出
{{2,3},{4,5}}
命令
MatrixForm[A]
把矩阵
A< br>显示成通常的矩阵形式
.
例如
,
输入命令
:
MatrixForm[A]
则输出
2
3
4
5
但要注意
,
一般地
, MatrixForm[A]
代表的矩阵
A
不能参与运算
.
输入
B={1,3,5,7}
输出为
{1,3,5,7}
输入
MatrixForm[B]
输出为
虽然从这个形式看向量的矩阵形式是列向量
,
但实质上
Mathematica
不区分行向量与列向
量
.
或者说在运算时按照需要
, Mathematica
自动地把向量当作行向量或列向量
.
下面是一个生成抽象矩阵的例子
.
输入
Table[a[i,j],{i,4},{j,3}]
MatrixForm[%]
则输出
注
:
这个矩阵也可以用命令
Array
生 成
,
如输入
Array[a,{4,3}]//MatrixForm
则输出与上一命令相同
.
4.
命令
IdentityMatri x[n]
生成
n
阶单位矩阵
.
例如
,
输入
IdentityMatrix[5]
则输出一个
5
阶单位矩阵
(
输出略
).
5. < br>命令
DiagonalMatrix[
…
]
生成
n
阶 对角矩阵
.
例如
,
输入
DiagonalMatrix[{b[1],b[2],b[3]}]
则输出
{{b[1],0,0},{0,b[2],0},{0,0,b[3]}}
它是一个以
b[1], b[2], b[3]
为主对角线元素的
3
阶对角矩阵
.
6.
矩阵的 线性运算
:A+B
表示矩阵
A
与
B
的加法
;k*A
表示数
k
与矩阵
A
的乘法
; A.B
或
D ot[A,B]
表示矩阵
A
与矩阵
B
的乘法
.
7.
求矩阵
A
的转置的命令
:Transpose[A].
8.
求方阵
A
的
n
次幂的命令
:MatrixP ower[A,n].
9.
求方阵
A
的逆的命令
:Inverse[A].
10.
求 向量
a
与
b
的内积的命令
:Dot[a,b].
实验举例
矩阵
A
的转置函数
Transpose[A]
例
1.1
求矩阵的转置
.
输入
ma={{1,3,5,1},{7,4,6,1},{2,2,3,4}};
Transpose[ma]//MatrixForm
输出为
如果输入
Transpose[{1,2,3}]
输出中提示命令有错误
.
由此可见
,
向量不区分行向量或列向量
.
矩阵线性运算
例
1.2
设
A
输入
A={{3,4,5},{4,2,6}};
B={{4,2,7},{1,9,2}};
A+B//MatrixForm
4B-2A//MatrixForm
输出为
如果矩阵
A
的行数等于矩阵
B
的列数
,
则可进行求
AB
的运算
.
系统中乘法运算符为
“
.
”
,
即用
A.B
求
A
与
B
的乘积
,
也可以用命令
Dot[A,B]
实现
.
对方阵
A
,
可用
MatrixPower[A,n]
求其
n
次幂
. < br>例
4
3
4
5
2
< br>
1
1.3
设
ma
,
mb
0
4
2
6
3
8
2
7
9
2
,
求矩阵
3
5
4
1
3
4
5
4
2
7
,
B
1
9
2
,
求
A
B
,
4
B
2
A
.
4
2
6
ma
与
mb
的乘积
.
输入
Clear[ma,mb];
ma={{3,4,5,2},{4,2,6,3}};
mb={{4,2,7},{1,9,2},{0,3,5},{8,4,1}};
//MatrixForm
输出为
矩阵的乘法运算
1.4
设
A
4
2
7
1
例
1
9
2
,
B
0
,
求
AB
与
B
T
A
,
并求< br>A
3
.
0
3
5
< br>
1
输入
Clear[A,B];
A={{4,2,7},{1,9,2},{0,3,5}};
B={1,0,1};
A.B
输出为
{11,3,5}
这是列向量
B
右乘矩阵
A
的结果
.
如果输入
B.A
输出为
{4,5,12}
这是行向量
B
左乘矩阵
A
的结果
B
T
A
,
这里不需要先求
B
的转置
.
MatrixPower[A,3]//MatrixForm
输出为
1.5
设
A
1
1
1
例
1
1
1
,
B
3
2
1
0
4
1
,
求
3
AB
2
A
及
A
T
B
.
1
2
3
12
4
输入
A={{
1,1,1},{1,
1,1},{1,2,3}}
MatrixForm[A]
B={{3,2,1},{0,4,1},{
1,2,
4}}
MatrixForm[B]
3A.B
2A//MatrixForm
求方阵
A
的三次方
,
输入
Transpose[A].B//MatrixForm
则输出
3
AB< br>
2
A
及
A
T
B
的运算结果分别为
求方阵的逆
例
2
5
1.6
设
A
0
3
1
3
2
2
3
3
,
1
4
6
2
1
5
求
A
1
.
输入
Clear[ma]
ma={{2,1,3,2},{5,2,3,3},{0,1,4,6},{3,2,1,5}};
Inverse[ma]//MatrixForm
则输出
注
:
如果输入
Inverse[ma//MatrixForm]
则得不到所要的结果
,
即求矩阵的逆时必须输入矩阵的数表形式
例
12
8
24
7
534
6
8
1.7
求矩阵
的逆矩阵
.
32
4
3024
26
9
27
0
解
A={{7,12,8,24},{5,34,6, -8},{32,4,30,24},{-26,9,27,0}}
MatrixForm[A]
Inverse[A]//MatrixForm
例
3
2
1.8
设
A
1
1
0
4
4
0
1
3
3
7
,
B
5
3
4
1
2
1
5
1
3
2
1
3
,
求
A
1
B
.
3
3
2
2
输入
Clear[A,B];
A={{3,0,4,4},{2,1,3,3},{1,5,3,4},{1,2,1,5}};
B={{0,3,2},{7,1,3},{1,3,3},{1,2,2}};
Inverse[ma].B//MatrixForm
输出为
对于线性 方程组
AX
b
,
如果
A
是可逆矩阵
,
X
,
b
是列向量
,
则其解向量为
A
1
b
.
例
3
x
2
y
z
7
,
1.9
解方程组
x
y
3
z
6
,
2
x
4
y
4
z
2
.
输入
Clear[A,b];
A={{3,2,1},{1,-1,3},{2,4,-4}};
b={7,6,-2};
Inverse[A].b
输出为
{1,1,2}
求方阵的行列式
3
1
1
0
5
1
3
1
3
2
4
1
3
.
例
1.10
求行列式
D
5
2
1
输入
Clear[A];
A={{3,1,-1,2},{-5,1,3,-4},{2,0,1 ,-1},{1,-5,3,-3}};
Det[A]
输出为
40 < br>a
2
1
a
2
1
b
2
1< br>c
2
1
d
2
a
b
c
d
1< br>a
1
b
1
c
1
d
1
1
1< br>1
.
例
1.11
求
D
b
2
c
d
2
2
输入< br>
Clear[A,a,b,c,d];
A={{a^2+1/a^2,a,1/a,1},{b^2+1/b^2,b,1/b,1},
{c^2+1/c^2,c,1/c,1},{d^2+1/d^2,d,1/d,1}};
Det[A]//Simplify
则输出
1
x
12
x
1
3
x
1
4
x
1
1x
2
2
x
2
3
x
2
4
x2
1
x
3
2
x
3
3
x
34
x
3
1
x
4
2
x
4
3x
4
4
x
4
1
x
5
2
.
x
5
3
x
5
4
x
5
例1.12
计算范德蒙行列式
输入
Clear[x];
Van=Table[x[j]^k,{k,0,4},{j,1,5}]//MatrixForm
输出为
再输入
Det[van]
则输出结果比较复杂
(
项很多
)
若改为输入
Det[van]//Simplify
或
Factor[Det[van]]
则有输出
(x[1]-x[2])(x[1]-x[3])(x[2]-x[3])(x[1]-x[4])
(x[2]-x[4])(x[3]-x[4])(x[1]-x[5])(x[2]-x[5])
(x[3]-x[5])(x[4]-x[5])
例
1.13
设矩阵
3
7
A
11
2
5
7
92
4
6
2
5
6
9
7
8
3
7
9
0
4
0
3
,
求
|
A
|,
tr
(
A
),
A
3
.
7
6
输入
A={{3,7,2,6,
4},{7,9,4,2,0},{11,5,
6,9,3},{2,7,
8,3,7},{5,7,9,0,
6}}
MatrixForm[A]
Det[A]
Tr[A]
MatrixPower[A,3]//MatrixForm
则输出
|
A
|,
tr
(
A
),
A
3
分别为
11592
3
向量的内积
向量内积的运算仍用“
.
”表示
,
也可以用命令
Dot
实现
例
1.14
求向量
u
{
1
,
2
,
3
}与
v
{
1
,
1
,
0}
的内积
.
输入
u={1,2,3};
v={1,-1,0};
u.v
输出为
-1
或者输入
Dot[u,v]
所得结果相同
.
实验习题
2
3
1
1
1
1
1.
设
A< br>
1
1
1
,
B
< br>
1
2
4
,
求
3< br>AB
2
A
及
A
B
.
1
1
1
0
5
1
1
0
2.
设
A
0
1
,
求
A
10
.
一般地
A
k< br>
?
(
k
0
0
1
1
1
1
1
a
1
1
1
1
1
a
3.
求
1
1
1
a
1
1
的逆
.
1
11
1
a
1
1
11
1
a
1
是正整数
).
4
2
3
4.
设
A< br>
1
1
0
,
且
AB
A
2
B
,
求
B
.
1
2
3
x
1
2
x
2
3
x
3
1
,
5.
利用逆矩阵解线性方程组
2
x
1
2
x
2
5
x
3
2
,
3
x
5
x
x
3
.
2
3
1
实验
2
矩阵的秩与向量组的极大无关组
实验目的
学习利用
Mathematica
求矩阵的秩
,
作矩阵的初等行变换
;
求向量组的秩与极大无关
组
.
基本命令
1.
求矩阵
M
的所有可能的
k
阶子式组成的矩阵的命令
:Minors[ M,k].
2.
把矩阵
A
化作行最简形的命令
:RowReduce[A].
3.
把数表
1,
数表
2,
…
,
合并成一个数表的命令
:Join[list1,list2,
…
].
例如输入
Join[{{1,0,
1},{3,2,1}},{{1,5},{4,6}}]
则输出
{{1,0,
1},{3,2,1},{1,5},{4,6}}
实验举例
求矩阵的秩
例
3
2
1
3
2
2.1< br>
设
M
2
1
3
1
3
,
求矩阵
7
0
5
1
8
M
的秩.
输入
Clear[M];
M={{3,2,
1,
3,
2},{2,
1,3,1,
3},{7,0,5,
1,
8}};
Minors[M,2]
则输出
{{
7,11,9,
5,5,
1,
8,8,9,11},{
< br>14,22,18,
10,10,
2,
16 ,16,18,22},{7,
11,
9,5,
5, 1,8,
8,
9,
11}}
可见矩阵
M
有不为
0
的二阶子式
.
再输入
Minors[M,3]
则输出
{{0,0,0,0,0,0,0,0,0,0}}
可见矩阵
M
的三阶子式都为
0.
所以
r
(
M
)
2
.
例
3
2
1
3
2.2
已知矩阵
M
2
1
3
1
的秩等于
7
0
t
< br>1
2,
求常数
t
的值
.
左上角的二阶子式不等于
0.
三阶子式应该都等于
0.
输入
Clear[M];
M={{3,2,-1,-3},{2,-1,3,1},{7,0,t,-1}};
Minors[M,3]
输出为
{{35-7t,45-9t,-5+t}}
当
t
5
时
,
所有的三阶子式都等于
0.
此时矩阵的秩等于
2.
1
1
7
6
0
4
1
4
2.3
求矩阵
1
5
9
0
的行最简形及其秩
.
1
3
16
1
< br>3
2
4
22
例
输入
A={{6,1,1,7},{4,0,4,1},{1,2,
9,0},{< br>
1,3,
16,
1},{2,
4, 22,3}}
MatrixForm[A]
RowReduce[A]//MatrixForm
则输出矩阵
A
的行最简形
根据矩阵的行最简形
,
便得矩阵的秩为
3.
矩阵的初等行变换
命令
RowfReduce[A]
把矩阵
A
化作行最简形
.
用初等行变换可以求矩阵的秩与矩阵的
逆
.
例
2
2
3
8
2.4
设< br>A
2
12
2
12
,
求矩阵
1
3
1
4
A
的秩
.
输入
Clear[A];
A={{2,-3,8,2},{2,12,-2,12},{1,3,1,4}};
RowReduce[A]//MatrixForm
输出为
因此
A
的秩为
2.
例
1
2
3
2.5
用初等变换法求矩阵
2
2
1
的逆矩阵
.
3
4
3
输入
A={{1,2,3},{2,2,1},{3,4,3}}
MatrixForm[A]
Transpose[Join[Transpose[A],IdentityMatrix[3]]]//M atrixForm
RowReduce[%]//MatrixForm
Inverse[A]//MatrixForm
则输出矩阵
A
的逆矩阵为
向量组的秩
矩阵的秩与它的行向量组
,
以及列向量组的秩相等
,
因此可以用命令
RowReduce
求向
量组的秩
.
例
2.6
求向量组
1
(
1
,
2
,
1
,
1
),
3
(
0
,
4
,
5
,
2
),
2
(
2
,
0
,
3
,
0
)
的秩
.
将向量写作矩阵的行
,
输入
Clear[A];
A={{1,2,-1,1},{0,-4,5,-2},{2,0,3,0}};
RowReduce[A]//MatrixForm
则输出
这里有两个非零行
,
矩阵的秩等于
2.
因此
,
它的行向量组的秩也等于
2.
例
2.7
向量组
1
(
1
,
1
,
2
,
3
),
2
(
1
,
1
,
1
,
1
),
3
(
1,
3
,
4
,
5
),
4
< br>(
3
,
1
,
5
,
7
)
是否 线性相关
?
输入
Clear[A];
A={{1,1,2,3 },{1,
1,1,1},{1,3,4,5},{3,1,5,7}};
RowReduce[A]//MatrixForm
则输出
向量组包含四个向量
,
而它的秩等于
3,
因此
,
这个向量组线性相关
.
例
2.8
向量组
1
(
2
,
2
,
7
),
< br>2
(
3
,
1
,
2
),
3
(
1
,
1
,
3
)
是否线性相关
?
输入
Clear[A];
A={{2,2,7},{3,-1,2},{1,1,3}};
RowReduce[A]//MatrixForm
则输出
向量组包含三个向量
,
而它的秩等于
3,
因此
,
这个向量组线性无关
.
向量组的极大无关组