应用MATLAB求解线性代数题目(三)——n维向量

目录

判定线性相关并给出极大无关组

向量空间——维数

size()函数


判定线性相关并给出极大无关组

MATLAB中没有直接判定线性相关并给出极大无关组。

根据线性代数的知识,先求出秩,根据秩的大小与向量的阶数比较判断出线性是否相关。

MATLAB求解矩阵的秩

>> A=[1 2 3;4 5 6;7 8 9]
 
A =
 
     1     2     3
     4     5     6
     7     8     9
 
>> rank(A)
 
ans =
 
     2

秩的大小小于向量的阶数,所有该向量组线性无关。

[R,J]=rref(A)
A是矩阵
R是简化后的阶梯形
J是主元

A =

     1     2     3
     4     5     6
     7     8     9

>> [R,J]=rref(A)

R =

     1     0    -1
     0     1     2
     0     0     0




>> B=A(J,:)

B =

     1     2     3
     4     5     6

这样求得的B便是矩阵A的极大线性无关组。

这里的矩阵A是由行向量组成,所以取1、2行为极大线性无关组;如果矩阵A由列向量组成,则取某某列为极大线性无关组。

>> a1=[1 2 2 3]';
>> a2=[1 4 -3 6]';
>> a3=[-2 -6 1 -9]';

r =

     3

>> 

A =

     1     1    -2
     2     4    -6
     2    -3     1
     3     6    -9

>> rank(A)

ans =

     2

>> [R,j]=rref(A)

R =

     1     0    -1
     0     1    -1
     0     0     0
     0     0     0


j =

     1     2
 
>> A1=R(:,j)

A1 =

     1     0
     0     1
     0     0
     0     0

上面的例子中a1、a2、a3均为列向量,向量的阶数为3.

向量空间——维数

先看向量空间维数的定义:

应用MATLAB求解线性代数题目(三)——n维向量_第1张图片

 

先定义一个一维数组:

>> a=1:10

a =

     1    2    3     4    5    6     7    8    9    10

一维数组可以看做向量,是由一行数据或者一列数据所组成,其大小为1xn或者是nx1。

再定义一个二维数组(即矩阵)


>> b=[1 2 3;4 5 6]

b =

     1    2    3
     4    5    6

二维数组是是由有一定的行数列数的数据组成,如上所示,其大小为mxn。

利用查看数组的维数函数ndims查看:
>> ndims(a)

ans =

    2
>> ndims(b)

ans =

    2

我们发现,向量的维数和矩阵的维数都是2。一维数组可以看做是1xn或nx1的矩阵。不管是一维数组或者二维数组,他们的维数是相同的。根据MATLAB的规定,它们的维数都是2。

可以通过帮助指令查看:

help ndims

参考文档给出的说明是:

The result is 2 because the vector has a size of 1-by-5.

结果为 2,因为向量的大小为 1×5。

所以MATLAB将向量当做是矩阵来处理的。

多维数组:

创建一个正态随机数的3x2x3的数组

>> c=randn(3,2,3)
c(:,:,1) =

    0.5377    0.8622
    1.8339    0.3188
   -2.2588   -1.3077


c(:,:,2) =

   -0.4336    2.7694
    0.3426   -1.3499
    3.5784    3.0349


c(:,:,3) =

    0.7254   -0.2050
   -0.0631   -0.1241
    0.7147    1.4897
>> ndims(c)

ans =

     3

从而可以看出,这里建立了一个三维数组,这个三维数据是由三个3x2的矩阵组成。

即:二维表示平面;三维表示空间。

size()函数

最后,补充MATLAB中size()函数的用法:

size:获取数组的行数和列数

(1)s=size(A),

当只有一个输出参数时,返回一个行向量,该行向量的第一个元素时矩阵的行数,第二个元素是矩

阵的列数。第三个元素是.....以此类推。

>> A

A =

     1     2     3
     4     5     6
     7     8     9

>> s=size(A)

s =

     3     3

(2)[r,c]=size(A),

当有两个输出参数时,size函数将矩阵的行数返回到第一个输出变量r,将矩阵的列数返回到第二个输出变量c。

 

>> [r,c]=size(A)

r =

     3


c =

     3

(3)size(A,n),

如果在size函数的输入参数中再添加一项n,并用1或2为n赋值,则 size将返回矩阵的行数或列数。其中r=size(A,1)该语句返回的时矩阵A的行数, c=size(A,2) 该语句返回的时矩阵A的列数。


>> A=[1 2 3;4 5 6]

A =

     1     2     3
     4     5     6

>> size(A,1)

ans =

     2

>> size(A,2)

ans =

     3

 

 我是小韩每天进步一点点,一名研0的研究生,刚开始写博客。希望和大家多多交流,一起进步!

求朋友点赞、收藏、关注哈,鼓励一下新人博主,或者提出建议。

你可能感兴趣的:(MATLAB,matlab,线性代数)