Matlab 在线性代数中的应用

您所在的位置:网站首页 matlab求矩阵的极大无关组 Matlab 在线性代数中的应用

Matlab 在线性代数中的应用

2024-07-16 04:52| 来源: 网络整理| 查看: 265

目录

1 向量组的线性相关性

2  线性方程组

3 相似矩阵及二次型

3.1 使用 sym 函数直接创建符号矩阵 

3.2 将数值矩阵转化为符号矩阵 

3.3 符号矩阵的索引和修改 

1 向量组的线性相关性

 求列向量组 A 的一个最大线性无关组可用命令 rref(A)将 A 化成阶梯形的行最简形 式,其中单位向量对应的列向量即为最大线性无关组所含向量,其它列向量的坐标即为 其对应向量用最大线性无关组线性表示的系数。

例 1  求下列矩阵列向量组的一个最大无关组。

解  编写 M 文件 ex1.m 如下:

format rat a=[1,-2,-1,0,2;-2,4,2,6,-6;2,-1,0,2,3;3,3,3,3,4]; b=rref(a)

解  编写 M 文件 ex2.m 如下:

format rat a=[2,2,-1;2,-1,2;-1,2,2];b=[1,4;0,3;-4,2]; c=rref([a,b])

2  线性方程组

 Matlab 中解线性方程组可以使用“\”。虽然表面上只是一个简简单单的符号,而它 的内部却包含许许多多的自适应算法,如对超定方程用最小二乘法,对欠定方程它将给出范数最小的一个解,解三对角阵方程组时用追赶法等。 另外欠定方程组可以使用求矩阵 A 的阶梯形行最简形式命令 rref(A),求出所有的基础解系。

解  编写 M 文件 ex3.m 如下:

format rat a=[2,1,-5,1;1,-3,0,-6;0,2,-1,2;1,4,-7,6]; b=[8;9;-5;0]; solution=a\b

求得 solution=[3  -4  -1  1]'。

例 4  求超定方程组

解  编写 M 文件 ex4.m 如下:

a=[2,4;3,-5;1,2;2,1]; b=[11;3;6;7]; solution=a\b

 求得 solution=[ 3.0403   1.2418]'。 

例 5  求解方程组 

 

解  编写 M 文件 ex5.m 如下: 

format rat a=[1,-1,-1,1,0;1,-1,1,-3,1;1,-1,-2,3,-1/2]; b=rref(a)

 

3 相似矩阵及二次型

有时我们需要精确的特征值和特征向量,就须利用 Matlab 的符号运算功能。 在 Matlab 中创建符号矩阵和创建数值矩阵的形式很相似,只不过要用到符号定义 函数 sym。下面介绍使用此函数创建符号函数的几种形式。 

3.1 使用 sym 函数直接创建符号矩阵 

此方法和直接创建数值矩阵的方法几乎完全相同。矩阵元素可以是符号表达式,各 符号表达式的长度可以不同,矩阵元素之间可用空格或逗号分隔。 例如:

x=sym('[a+sin(d),b;1/c,d]');

y=det(x)

求得 y=(d*c*a+d*c*sin(d)-b)/c

3.2 将数值矩阵转化为符号矩阵 

在 Matlab 中,数值矩阵不能直接参与符号运算,必须先转化为符号矩阵。 例如: 

a=[2/3,sqrt(2);3,1] a= 0.6667 1.4142 3.0000 1.0000 b=sym(a) b=[ 2/3, sqrt(2)] [ 3, 1] 3.3 符号矩阵的索引和修改 

Matlab 的符号矩阵索引和修改同数值矩阵的索引和修改完全相同。 例如:对上例中的矩阵 b 进行修改

b(2,2)='log(9)'

3.4 举例 

A=[0,1,1,-1;1,0,-1,1;1,-1,0,1;-1,1,1,0]; [P,D]=eig(A)

上面求得的正交矩阵 P 是数值解,下面我们求正交矩阵的精确解。 

a=sym('[0,1,1,-1;1,0,-1,1;1,-1,0,1;-1,1,1,0]'); [v,d]=eig(a)

即求得矩阵 A的特征值为 1、1、1、3,对应的特征向量分别是矩阵 v 的第 1、2、 3、4 列。再把对应于特征值 1 的 3 个特征向量正交化、单位化,我们就容易求出正交 矩阵P 。 



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3