matlab-线性代数

matlab-线性代数
matlab-线性代数

一、矩阵的生成

1.简单的矩阵的生成

(1)直接输入矩阵元素

对直接从键盘输入一系列元素生成矩阵,只要遵循下面几个基本原则:

1、矩阵每一行的元素必须用空格或逗号分开;

2、在矩阵中,采用分号或回车表明每一行的结束;

3、整个输入矩阵必须包含在方括号“[]”中。

注意:创建矩阵在方括号的末尾,可以用回车或分号结束。用回车结束,显示所输入的矩阵;用分号结束,所输入的矩阵不显示。

输入:A=[4,5,7,8;6,1,2,5;3,5,4,6;4,2,4,8]

显示:A = 4 5 7 8

6 1

2 5

3 5

4 6

4 2

4 8

(2)生成大矩阵

在MATLAB中,可以将小矩阵连接起来生成一个较大的矩阵。事实上,前面直接输入法生成矩阵就是将单个元素连接起来生成矩阵。方括号“[]”就是连接算子。

输入:B=[A,A+1;A+2,A+3]

显示:B =

4 5 7 8 5 6

8 9

6 1 2 5

7 2

3 6

3 5

4 6 4 6

5 7

4 2 4 8

5 3

5 9

6 7 9 10 7 8

10 11

8 3 4 7 9 4

5 8

5 7

6 8 6 8

7 9

6 4 6 10

7 5

7 11

2.常用矩阵的生成

下面介绍一些常用矩阵的生成命令:zeros,ones,eye,rand和randn。

(1)zeros生成全0阵

调用格式为:B=zeros(n):生成n n的全0矩阵;如果n不是标量将给出出错信息。

B=zeros(m,n):生成m?n的全0矩阵。

B=zeros(size(A)):生成与矩阵A大小相同的全0阵。

注意:在MATLAB中不需要预先定义矩阵的维数,MATLAB自动为矩阵分配存储空间。尽管如此,如果采用全零阵为矩阵生成的全部元素或某一行、某一列的元素保留存储空间,则大多数MATLAB程序将运行得更快。

(2)ones生成全1阵

调用格式为:

Y=ones(n):生成n?n的全1矩阵;如果n不是标量将给出出错信息。

Y=ones(m,n):生成m?n的全1阵。

Y=ones(size(A)):生成与矩阵A大小相同的全1阵。

(3)eye生成单位阵

调用格式为:

Y=eye(n):生成n?n的单位阵。

Y=eye(m,n):生成m?n的矩阵,其对角线元素为1,其它元素为0。

Y=eye(size(A)):生成一个与矩阵A大小相同的单位阵。

注意:在MATLAB中,单位阵的定义比线性代数中的定义更广泛。例如:输入:eye(3,2)

显示:ans =

1 0

0 1

0 0

(4)rand生成均匀分布的随机阵

调用格式为:

Y=rand(n):生成一个n?n的随机阵:如果n不是标量将给出出错信息。

Y=rand(m,n):生成一个m?n随机阵。

Y=rand(size(A)):生成一个与矩阵A大小相同的随机阵。

说明:rand函数产生0,1之间均匀分布的随机数。

(5)randn正态分布随机阵

命令的形式为:

Y=randn(n):生成一个n?n的随机阵:如果n不是标量将给出出错信息。

Y=randn(m,n):生成一个m?n随机阵。

Y=rand(size(A)):生成一个与矩阵A大小相同的随机阵。

二、矩阵运算

在MATLAB语言中,矩阵的运算既可以使用运算符,也可以使用等效的运算函数。

(1)加法和减法运算

对于矩阵运算可以由下面的命令执行加减法:

C=A+B或C=plus(A,B)

C=A-B或C=minus(A,B)

这里要求A和B的大小必须相同,因为加减运算是把A和B的对应元素相加减。如果A和B的大小不同,MATLAB将自动给出错误信息。

特殊情况是A和B中有一个是标量,MATLAB允许标量和任意大小的矩阵相加减,结果是把矩阵中的每个元素和这个标量相加减。

在MATLAB中,算术运算符“+”和“-”可以作为一元运算符使用。+A就是取A,而-A则是对A中的每个元素取负。

输入:A=[1 2 3;4 5 6];B=[7 8 9;4 6 8];

C=A+B

显示:C =

8 10 12

8 11 14

输入:C=C-2

显示:C =

6 8 10

6 9 12

输入:C=-C

显示:C =

-6 -8 -10

-6 -9 -12

(2)乘法运算

矩阵乘的运算命令为:A*B或mtimes(A,B)

矩阵乘A*B是矩阵A和B的线性代数乘。就是说,对于非标量A和B,矩阵A的列数必须等于矩阵B的行数。标量可以和任意大小的矩阵相乘,就是线性代数中的数与矩阵的乘法。

输入:A=[1 2 3;4 5 6];B=ones(3)

显示:B =

1 1 1

1 1 1

1 1 1

输入:C=A*B

显示:C =

6 6 6

15 15 15

(3)矩阵求逆

行数和列数相等的矩阵称为方阵,只有方阵有逆矩阵。方阵的求逆函数为:B=inv(A)

该函数返回方阵A的逆阵。如果A不是方阵或接近奇异的,则会给出警告信息。

在实际应用中,很少显式的使用矩阵的逆。在MATLAB中不是使用逆阵x=inv(A)*B来求线性方程组Ax=B的解,而是使用矩阵除法运算x=A\B来求解。因为MATLAB设计求逆函数inv时,采用的是高斯消去法,而设计除法解线性方程组时,并不求逆,而是直接采用高斯消去法求解,有效的减小了残差,并提高了求解的速度。因此,MATLAB推荐尽量使用除法运算,少用求逆运算。

(4)除法运算

在线性代数中,只有矩阵的逆的定义,而没有矩阵除法的运算。而在MATLAB 中,定义了矩阵的除法运算。矩阵除法的运算在MATLAB中是一个十分有用的运算。根据实际问题的需要,定义了两种除法命令:左除和右除。

矩阵左除:

C=A\B或C=mldivide(A,B)

矩阵右除;

C=A/B或C=mrdivide(A,B)

通常矩阵左除不等于右除,如果A是方阵,A\B等效于A的逆阵左乘矩阵B。也就是inv(A)*B。如果A是一个n?n矩阵,B是一个n维列向量,或是有若干这样的列的矩阵,则A\B就是采用高斯消去法求得的方程AX=B的解。如果A接近奇异的,MATLAB将会给出警告信息。

如果A是一个m?n矩阵,其中m不等于n,B是一个m维列向量,或是由若干这样的列的矩阵,则X=A\B是不定或超定方程组AX=B的最小二乘解。通过QR 分解确定矩阵A的秩k,方程组的解X每一列最多只有k个非零元素。如果k

B/A大体等效于B*inv(A) (B右乘A的逆阵),但在计算方法上存在差异,更精确的,B/A=(A T\B T)T。

输入:A=[1 2 3;4 5 7;4 7 9];B=[1 3 7;3 5 7;8 5 1];

矩阵左除。输入:A\B

显示:ans =

-0.7500 -0.5000 -2.0000

5.7500 -3.5000 -18.0000

-3.2500 3.5000 15.0000

矩阵右除。输入:A/B

显示:ans =

-0.0217 0.4565 -0.0435

0.6522 0.3043 0.3043

-0.5652 1.8696 -0.1304

(5)乘方运算

矩阵乘方命令为:

C=A^B或C=mpower(A,p)

矩阵的乘方运算要求A是一个方阵,且p是一个标量,A^p的意思是矩阵A 的p次方。如果p是个整数,则A^p是矩阵A自乘p次;如果p是一个负整数,则首先对A求逆,然后将它自乘p次。

输入:A=[1 2 3;4 5 7;4 7 9];A^2

显示:ans =

21 33 44

52 82 110

68 106 142

输入:A^-2

显示:ans =

-1.0000 -1.3750 1.3750

6.0000 -0.6250 -1.3750

-4.0000 1.1250 0.3750

(6)方阵的行列式

方阵的行列式运算函数是:

a=det(A)

如果矩阵A不是方阵,会给出警告信息。

输入:A=[4 1 2 4;1 2 0 2;10 5 2 0;0 1 1 7];det(A)

显示:ans = 0

(7)矩阵的秩

矩阵的求秩函数是:a=rank(A)

输入:A=[3 1 0 2;1 -1 2 -1;1 3 -4 4];rank(A)

显示:ans = 2

三、矩阵变换

(1)矩阵旋转

矩阵旋转函数的用法如下:

1B=fliplr(A):矩阵A关于垂直轴沿左右方向进行列维翻转。

2B=flipud(A):矩阵A关于水平轴沿上下方向进行行维翻转。

3B=rot90(A):矩阵A逆时针方向旋转90?

4B=rot(A,k):矩阵A逆时针旋转k*90?,其中k为整数

输入:A=[1 2 3;4 5 6]

显示:A =

1 2 3

4 5 6

输入:B=fliplr(A)

显示:B =

3 2 1

6 5 4

输入:C=flipud(A)

显示:C =

4 5 6

1 2 3

输入:D =rot90(A)

显示:D=

3 6

2 5

1 4

(2)矩阵的产生函数diag

diag函数用于产生或提取对角线元素。它的用法有如下几种:

1X=diag(v,k):当v是有n个元素的向量,返回方阵X,它的大小为n+|k|,向量v的元素位于X的第k条对角向上。k=0表示主对角线,k>0为主对角线以上,k<0为主对角线以下。

2X=diag(v):将向量v的元素放在矩阵X的主对角线上,等同于上面k=0的情况。

3v=diag(X,k):对于矩阵X,返回列向量v,它的元素由X的第k条对角线的元素构成。

4v=diag(X):返回X的主对角线元素,等同于上面k=0的情况。

输入:v=[1 2 3];diag(v,0)

显示:ans =

1 0 0

0 2 0

0 0 3

输入:diag(v,-1)

显示:ans =

0 0 0 0

1 0 0 0

0 2 0 0

0 0 3 0 输入:X=[1 2 3;4 5 6;7 8 9]

显示:X =

1 2 3

4 5 6

7 8 9

输入:diag(X)

显示:ans =

1

5

9

输入:diag(X,1)

显示:ans =

2

6

(3)矩阵的提取函数tril和triu

函数tril用于提取下三角矩阵,用法如下:

1L=tril(X):返回X的下三角部分,其余部分用“0”补齐。

2L=tril(X,k):返回X的第k条对角线以下的元素,其余部分用“0”补齐。k=0是主对角线,k>0位于主对角线以上,k<0位于主对角线以下。

函数triu用于产生或提取上三角矩阵,用法如下:

1U=triu(X):返回X的上三角部分元素,其余部分用“0”补齐。

2U=triu(X,k):返回X的第k条对角线以上的元素,其余部分用“0”补齐。k=0是主对角线,k>0位于主对角线以上,k<0位于主对角线以下。

输入:A=[1,2,3;4,5,6]

显示:A =

1 2 3

4 5 6

输入:tril(A)

显示:ans =

1 0 0

4 5 0

输入:tril(A,1)

显示:ans =

1 2 0

4 5 6

输入:triu(A)

显示:ans =

1 2 3

0 5 6

输入:triu(A,-1)

显示:ans =

1 2 3

4 5 6

输入:triu(A,1)

显示:ans =

0 2 3

0 0 6

四、矩阵的分解

把一个给定的矩阵分解成几个“较简单的”矩阵连乘积形式,在线性方程组的求解中,是十分有用的。

1.Cholesky分解

设A为一个n n的对称正定矩阵,则存在对角线为正的上三角矩阵R,使得:A=R T R

并不是所有的对称矩阵都可以进行Cholesky分解,能进行此种分解的矩阵必须是正定的。

Cholesky分解的函数调用格式为:

R=chol(X)

其中X是对称正定矩阵,R是上三角阵,使得R T R=X。如果X是非正定的,将给出出错信息。

2.LU分解

Gausian消去法或LU分解,可以将任何方阵表示为一个下三角矩阵L和一个上三角矩阵U的乘积。

A=LU

其中L矩阵为下三角阵,当对它进行置换以后,对角线元素为1。

函数lu的调用格式为:

[L,U]=lu(A)

在U中存储一个上三角矩阵,在L中存储一个“心理上的”下三角阵,实际上它是下三角矩阵和置换矩阵的乘积,使得A=L*U。

[L,U,P]=lu(A):得到一个下三角矩阵L,上三角矩阵U和置换矩阵P,使得P*A=L*U。

矩阵行列式的值和矩阵的逆也可以利用LU分解如下进行:

det(A)=det(L)*det(U)

inv(A)=inv(U)*inv(L)

3.正交分解

正交分解或全QR分解,将矩阵矩阵分解为一个正交矩阵和一个上三角矩阵的乘积:

A=QR或AP=QR

其中Q是正交矩阵,R是一个上三角矩阵,P是置换矩阵。

QR分解的函数qr对矩阵进行三角分解,它适用于方阵和矩形矩阵。它将一个矩阵表示成正交阵和上三角矩阵的乘积。函数用法为:

1[Q,R]=qr(X):生成一个上三角矩阵R和正交矩阵Q,使得X=Q*R。其中R 与X同维。

2[Q,R,E]=qr(X):生成置换矩阵E、上三角矩阵R和正交矩阵Q,使得X*E=Q*R,列置换矩阵E如此选取,可使得abs(diag(R))是递减的。

Matlab线性代数实验指导书

Matlab线性代数实验指导书 理学院线性代数课程组 二零零七年十月

目录 一、基础知识 (1) 1.1、常见数学函数 (1) 1.2、系统在线帮助 (1) 1.3、常量与变量 (2) 1.4、数组(矩阵)的点运算 (3) 1.5、矩阵的运算 (3) 二、编程 (4) 2.1、无条件循环 (4) 2.2、条件循环 (5) 2.3、分支结构 (5) 2.4、建立M文件 (6) 2.5、建立函数文件 (6) 三、矩阵及其运算 (7) 3.1、矩阵的创建 (7) 3.2、符号矩阵的运算 (11) 四、秩与线性相关性 (14) 4.1、矩阵和向量组的秩以及向量组的线性相关性 (14) 4.2、向量组的最大无关组 (14) 五、线性方程的组的求解 (16) 5.1、求线性方程组的唯一解或特解(第一类问题) (16) 5.2、求线性齐次方程组的通解 (18) 5.3、求非齐次线性方程组的通解 (19) 六、特征值与二次型 (22) 6.1、方阵的特征值特征向量 (22) 6.2、正交矩阵及二次型 (23)

一、基础知识 1.1常见数学函数 函数数学计算功能函数数学计算功能 abs(x) 实数的绝对值或复数的幅值floor(x) 对x朝-∞方向取整acos(x) 反余弦arcsinx gcd(m,n) 求正整数m和n的最大公约数acosh(x) 反双曲余弦arccoshx imag(x) 求复数x的虚部angle(x) 在四象限内求复数x的相角lcm(m,n)求正整数m和n的最小公倍 自然对数(以e为底数) asin(x) 反正弦arcsinx log(x) 常用对数(以 10 为底数) asinh(x) 反双曲正弦arcsinhx log10(x) atan(x) 反正切arctanx real(x) 求复数 x 的实部atan2(x,y) 在四象限内求反正切rem(m,n) 求正整数m和n的m/n之余数atanh(x) 反双曲正切arctanhx round(x) 对x四舍五入到最接近的整数 符号函数:求出 x 的符号ceil(x) 对x朝+∞方向取整 sign(x) conj(x) 求复数x的共轭复数 sin(x) 正弦sinx 反双曲正弦sinhx cos(x) 余弦cosx sinh(x) cosh(x) 双曲余弦coshx sqrt(x) 求实数x的平方根exp(x) 指数函数e x tan(x) 正切tanx fix(x) 对 x 朝原点方向取整 tanh(x) 双曲正切tanhx 如:输入 x=[-4.85 -2.3 -0.2 1.3 4.56 6.75],则: ceil(x)= -4 -2 0 2 5 7 fix(x) = -4 -2 0 1 4 6 floor(x) =-5 -3 -1 1 4 6 round(x) = -5 -2 0 1 5 7 1.2 系统的在线帮助 1.2.1 help 命令: 1.当不知系统有何帮助内容时,可直接输入 help以寻求帮助: >> help(回车) 2.当想了解某一主题的内容时,如输入: >> help syntax (了解Matlab的语法规定) 3.当想了解某一具体的函数或命令的帮助信息时,如输入: >> help sqrt (了解函数sqrt的相关信息) 1.2.2 lookfor 命令 现需要完成某一具体操作,不知有何命令或函数可以完成,如输入: >> lookfor line (查找与直线、线性问题有关的函数) 1.3 常量与变量

Matlab 使用之线性代数综合实例讲解

一、上机目的 1、培养学生运用线性代数的知识解决实际问题的意识、兴趣和能力; 2、掌握常用计算方法和处理问题的方法; 二、上机内容 1、求向量组的最大无关组; 2、解线性方程组; 三、上机作业 1、设A=[2 1 2 4; 1 2 0 2; 4 5 2 0; 0 1 1 7]; 求矩阵A列向量组的一个最大无关组. >> A=[2 1 2 4;1 2 0 2;4 5 2 0;0 1 1 7] A = 2 1 2 4 1 2 0 2 4 5 2 0 0 1 1 7 >> rref(A) ans = 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 所以矩阵A的列向量组的一个最大无关组就是它本身; 2、用Matlab解线性方程组 (1) >> A=[2 4 -6;1 5 3;1 3 2] A = 2 4 -6 1 5 3 1 3 2 >> b=[-4;10;5]

b = -4 10 5 >> x=inv(A)*b x = -3.0000 2.0000 1.0000 >> B=[3 41 -62;4 50 3;11 38 25] B = 3 41 -62 4 50 3 11 38 25 >> c=[-41;100;50] c = -41 100 50 >> x=inv(B)*c x = -8.8221 2.5890 1.9465 3、(选作)减肥配方的实现 设三种食物每100克中蛋白质、碳水化合物和脂肪的含量如下表,表中还给出了20世纪80年代美国流行的剑桥大学医学院的简捷营养处方。现在的问题是:如果用这三种食物作为每天的主要食物,那么它们的用量应各取多少才能全面准确地实现这个营养要求? 四、上机心得体会

数学用Matlab学习线性代数线性方程组与矩阵代数

用Matlab学习线性代数 线性方程组与矩阵代数 实验目的:熟悉线性方程组的解法和矩阵的基本运算及性质验证。 Matlab命令: 本练习中用到的Matlab命令有:inv,floor,rand,tic,toc,rref,abs,max,round,sum,eye,triu,ones,zeros。 本练习引入的运算有:+,-,*,’,,\。其中+和-表示通常标量及矩阵的加法和减法运算;*表示标量或矩阵的乘法;对所有元素为实数的矩阵,’运算对应于转置运算。若A为一个n n ?非奇异矩阵(det!=0)且B为一个n r?矩阵,则运算\A B等价于1 -。 A B 实验内容: 1.用Matlab随机生成44?的矩阵A和B。求下列指定的,,, C D G H,并确定 那些矩阵是相等的。你可以利用Matlab计算两个矩阵的差来测试两个矩阵是否相等。 (1)C=A*B,D=B*A,G=(A’*B’)’,H=(B’*A’)’C=H;D=G; (2)C=A’*B’,D=(A*B)’,G=B’*A’,H=(B*A)’C=H;D=G; (3)C=inv(A*B),D=inv(A)*inv(B),G=inv(B*A),H=inv(B)*inv(A) (4)C=inv((A*B)’),D=inv(A’*B’),G=inv(A’)*inv(B’),H=(inv(A)*inv(B))’(3)(4)中无相等的 2.令n=200,并使用命令 A=floor(10*rand(n));

b=sum(A ’)’ z=ones(n,1); 注释:(n 行一列全为1的矩阵) 生成一个n n ?矩阵和两个n R 中的向量,它们的元素均为整数。(因为矩阵和向量都很大,我们添加分号来控制输出。 (1) 方程组 Ax b =的真解应为z 。为什么? 【A 中的每一行的元素之和 正好等于对应b 的每一列,故z 为其一解,又det 不等于0,RA=RAb=n ,故z 为其解】试说明,可在Matlab 中利用”\”运算或计算1A -,然后用计算1A b -来求解。比较这两种计算方法的速度和精度。我们将使用Matlab 命令tic 和toc 来测量每一个计算过程消耗的时间。只需要用下面的命令: tic,x=A\b ;toc tic,y=inv(A)*b; toc 哪一种方法更快? tic,x=A\b ;更快! 为了比较这两种方法的精度,可以测量求得的解x 和y 与真解z 接近的程度。利用下面的命令: max(abs(x-z)) max(abs(y-z)) 哪种方法的到的解更精确? >> max(abs(x-z))= 4.0168e-013 更精确! >> max(abs(y-z)) = 6.1107e-013 (2) 用n=500和n=1000替换(1)中的n 。 如(1)结果一样!

用Matlab学习线性代数_行列式

用Matlab学习线性代数__行列式 实验目的理解行列式的概念、行列式的性质与计算 Matlab函数det 实验内容 前面的四个练习使用整数矩阵,并演示一些本章讨论的行列式的性质。最后两个练习演示我们使用浮点运算计算行列式时出现的不同。 理论上将,行列式的值应告诉我们矩阵是否是奇异的。然而,如果矩阵是奇异的,且计算其行列式采用有限位精度运算,那么由于舍入误差,计算出的行列式的值也许不是零。一个计算得到的行列式的值很接近零,并不能说明矩阵是奇异的甚至是接近奇异的。此外,一个接近奇异的矩阵,它的行列式值也可能不接近零。 1.用如下方法随机生成整数元素的5阶方阵: A=round(10*rand(5)) 和B=round(20*rand(5))-10 用Matlab计算下列每对数。在每种情况下比较第一个是否等于第二个。(1)det(A) ==det(A T) (2)det(A+B) ;det(A)+det(B) (3)det(AB)==det(A)det(B) (4)det(A T B T) ==det(A T)det(B T) (5)det(A-1)==1/det(A) (6)det(AB-1)==det(A)/det(B) > A=round(10*rand(5)); >> B=round(20*rand(5))-10; >> det(A) ans = 5972 >> det(A') ans 5972 >> det(A+B) ans =

36495 >> det(A)+det(B) ans = 26384 >> det(A*B) ans = 4 >> det(A)*det(B) ans = 4 >> det(A'*B') ans = 4 >> det(A')*det(B') ans = 4 >> det(inv(A)) ans = 0.00016745 >> 1/det(A) ans = 0.00016745 >> det(A*inv(B)) ans = 0.29257 >> det(A)/det(B) ans = 0.29257 >> 2.n阶的幻方阵是否奇异?用Matlab计算n=3、4、5、…、10时的det(magic(n))。看起来发生了什么?验证当n=24和25时,结论是否仍然成立。【当n为奇数时,det(magic(n))不为0;当n为偶数时,det(magic(n))为0;】>> det(magic(3)) ans = -360 >> det(magic(4)) ans = >> det(magic(5)) ans = 5070000

线性代数方程组数值解法及MATLAB实现综述

线性代数方程组数值解法及MATLAB实现综述廖淑芳20122090 数计学院12计算机科学与技术1班(职教本科)一、分析课题 随着科学技术的发展,提出了大量复杂的数值计算问题,在建立电子计算机成为数值计算的主要工具以后,它以数字计算机求解数学问题的理论和方法为研究对象。其数值计算中线性代数方程的求解问题就广泛应用于各种工程技术方面。因此在各种数据处理中,线性代数方程组的求解是最常见的问题之一。关于线性代数方程组的数值解法一般分为两大类:直接法和迭代法。 直接法就是经过有限步算术运算,可求的线性方程组精确解的方法(若计算过程没有舍入误差),但实际犹如舍入误差的存在和影响,这种方法也只能求得近似解,这类方法是解低阶稠密矩阵方程组级某些大型稀疏矩阵方程组的有效方法。直接法包括高斯消元法,矩阵三角分解法、追赶法、平方根法。 迭代法就是利用某种极限过程去逐步逼近线性方程组精确解的方法。迭代法具有需要计算机的存储单元少,程序设计简单,原始系数矩阵在计算过程始终不变等优点,但存在收敛性级收敛速度问题。迭代法是解大型稀疏矩阵方程组(尤其是微分方程离散后得到的大型方程组)的重要方法。迭代法包括Jacobi法SOR法、SSOR法等多种方法。 二、研究课题-线性代数方程组数值解法 一、直接法 1、Gauss消元法 通过一系列的加减消元运算,也就是代数中的加减消去法,以使A对角线以下的元素化为零,将方程组化为上三角矩阵;然后,再逐一回代求解出x向量。

1.1消元过程 1. 高斯消元法(加减消元):首先将A 化为上三角阵,再回代求解。 11121121222212n n n n nn n a a a b a a a b a a a b ?? ? ? ? ???(1)(1)(1)(1)(1)11121311(2)(2)(2)(2)222322 (3)(3)(3)3333()()000 00 n n n n n nn n a a a a b a a a b a a b a b ?? ? ? ? ? ? ??? 步骤如下: 第一步:1 11 1,2,,i a i i n a -? +=第行第行 11121121222212 n n n n nn n a a a b a a a b a a a b ?? ? ? ? ???1112 11(2)(2)(2)22 22 (2)(2)(2)2 00n n n nn n a a a b a a b a a b ?? ? ? ? ??? 第二步:(2)2 (2)222,3, ,i a i i n a -?+=第行第行 111211(2)(2)(2)2222(2)(2)(2)2 00n n n nn n a a a b a a b a a b ?? ? ? ? ???11 12 1311(2)(2)(2)(2)222322 (3)(3)(3)33 33(3)(3)(3)3 0000 0n n n n nn n a a a a b a a a b a a b a a b ?? ? ? ? ? ? ??? 类似的做下去,我们有: 第k 步:() ()k ,1, ,k ik k kk a i i k n a -?+=+第行第行。 n -1步以后,我们可以得到变换后的矩阵为: 11121311(2)(2)(2)(2)222322 (3)(3)(3)3333()()00000 n n n n n nn n a a a a b a a a b a a b a b ?? ? ? ? ? ? ?? ?

线性代数matlab练习题答案(包括程序和结果)

1. syms x y a1=[1,2,3,4;2,3,4,1;3,4,1,2;4,1,2,3] a2=[x,y,x+y;y,x+y,x;x+y,x,y] s1=det(a1) s2=det(a2) >> a1 = 1 2 3 4 2 3 4 1 3 4 1 2 4 1 2 3 a2 = [ x, y, x+y] [ y, x+y, x] [ x+y, x, y] s1 = 160 s2 = -2*x^3-2*y^3 >> 2. a1=[1,2;3,4] a2=[-1,2,0,7;6,0.5,2.6,9;0,-5,12,3] >> a1 = 1 2 3 4 a2 =

-1.0000 2.0000 0 7.0000 6.0000 0.5000 2.6000 9.0000 0 -5.0000 12.0000 3.0000 >> 3. a=[6,9,5;3,-1,4;2,0.4,1] b=[1,2,3;-1,3,4;8,1,2] s11=3*a*b-2*a s12=b'*a s21=a*b==b*a s22=(a-b)*(a+b)==a^2-b^2 s23=(a*b)'==b'*a' >> a = 6.0000 9.0000 5.0000 3.0000 -1.0000 4.0000 2.0000 0.4000 1.0000 b = 1 2 3 -1 3 4 8 1 2 s11 = 99.0000 114.0000 182.0000 102.0000 23.0000 31.0000 24.8000 17.8000 26.8000 s12 = 19.0000 13.2000 9.0000 23.0000 15.4000 23.0000 34.0000 23.8000 33.0000 s21 =

matlab线性代数实验

线性代数MATLAB 实验指导书 MATLAB 是Matrix Laboratory 的缩写,是一个集数值计算、图形处理、符号运算、文字处理、数学建模、实时控制、动态仿真和信号处理等功能为一体的数学应用软件,而且该系统的基本数据结构是矩阵,又具有数量巨大的内部函数和多个工具箱,使得该系统迅速普及到各个领域,尤其在大学校园里,许多学生借助它来学习大学数学和计算方法等课程,并用它做数值计算和图形处理等工作。我们在这里介绍它的基本功能,并用它做与线性代数相关的数学实验。 在正确完成安装MATLAB 软件之后,直接双击系统桌面上的MATLAB 图标,启动MATLAB ,进入MATLAB 默认的用户主界面,界面有三个主要的窗口:命令窗口(Commend Window ), 当前目录窗口(Current Directory ),工作间管理窗口(Workspace )。 命令窗口是和Matlab 编译器连接的主要窗口,“>>”为运算提示符,表示Matlab 处于准备状态,当在提示符后输入一段正确的运算式时,只需按Enter 键,命令窗口中就会直接显示运算结果。 实验1 矩阵的运算,行列式 实验名称:矩阵的运算,行列式 实验目的:学习在matlab 中矩阵的输入方法以及矩阵的相关运算,行列式。 实验原理:介绍相关的实验命令和原理 (1)一般矩阵的输入 (2)特殊矩阵的生成 (3)矩阵的代数运算 (4)矩阵的特征参数运算 (5)数字行列式和符号行列式的计算 实验命令 1 矩阵的输入 Matlab 是以矩阵为基本变量单元的,因此矩阵的输入非常方便。输入时,矩阵的元素用方括号括起来,行内元素用逗号分隔或空格分隔,各行之间用分号分隔或直接回车。 例1 输入矩阵 ???? ? ??--=654301211A ,可以在命令窗口中输入 >>A=[1 1 2;-1 0 3;4 -5 6] A = 1 1 2 -1 0 3 4 - 5 6 2 特殊矩阵的生成 某些特殊矩阵可以直接调用相应的函数得到,例如: zeros(m,n) 生成一个m 行n 列的零矩阵

线性代数方程组数值解法及MATLAB实现综述

线性代数方程组数值解法及MATLAB 实现综述 廖淑芳 20122090 数计学院 12计算机科学与技术1班(职教本科) 一、分析课题 随着科学技术的发展,提出了大量复杂的数值计算问题,在建立电子计算机成为数值计算的主要工具以后,它以数字计算机求解数学问题的理论和方法为研究对象。其数值计算中线性代数方程的求解问题就广泛应用于各种工程技术方面。因此在各种数据处理中,线性代数方程组的求解是最常见的问题之一。关于线性代数方程组的数值解法一般分为两大类:直接法和迭代法。 直接法就是经过有限步算术运算,可求的线性方程组精确解的方法(若计算过程没有舍入误差),但实际犹如舍入误差的存在和影响,这种方法也只能求得近似解,这类方法是解低阶稠密矩阵方程组级某些大型稀疏矩阵方程组的有效方法。直接法包括高斯消元法,矩阵三角分解法、追赶法、平方根法。 迭代法就是利用某种极限过程去逐步逼近线性方程组精确解的方法。迭代法具有需要计算机的存储单元少,程序设计简单,原始系数矩阵在计算过程始终不变等优点,但存在收敛性级收敛速度问题。迭代法是解大型稀疏矩阵方程组(尤其是微分方程离散后得到的大型方程组)的重要方法。迭代法包括Jacobi 法SOR 法、SSOR 法等多种方法。 二、研究课题-线性代数方程组数值解法 一、 直接法 1、 Gauss 消元法 通过一系列的加减消元运算,也就是代数中的加减消去法,以使A 对角线以下的元素化为零,将方程组化为上三角矩阵;然后,再逐一回代求解出x 向量。 1.1消元过程 1. 高斯消元法(加减消元):首先将A 化为上三角阵,再回代求解。 11121121222212n n n n nn n a a a b a a a b a a a b ?? ? ? ? ???L L M M O M M L (1)(1)(1)(1)(1)11121311(2)(2)(2)(2)222322(3)(3)(3)3333()()000000n n n n n nn n a a a a b a a a b a a b a b ?? ? ? ? ? ? ???L L L M M M O M M L 步骤如下:

线性代数MATLAB程序实例

线性代数MATLAB程序实例 1、mat_ex00.m 浮点数与符号数显示 2、mat_ex01.m 行列式的数值计算与符号计算函数det() 3、mat_ex02.m 逆矩阵计算 4、mat_ex03.m 矩阵求秩的数值与符号函数rank() 5、mat_ex04.m 求解齐次线性方程组的MATLAB方法 6、mat_ex05.m 非齐次线性方程组的MATLAB求解 7、mat_ex06.m 非齐次线性方程组的相容性、唯一解和无穷解情况 8、mat_ex07.m 求矩阵的特征值与特征向量函数eig() 9、Image_SVD.m 利用矩阵的奇异值分解秩k逼近,进行图像压缩 10、MATLAB绘图命令 (1)常用绘图命令 二维图形: plot最基本、最常用的绘图函数,用于绘制线性二维图。有多

条曲线时,循环使用由坐标轴颜色顺序属性定义的颜色,以区别不同的曲线;之后再循环使用由坐标轴线型顺序属性定义的线型,以区别不同的曲线。 fplot 在指定的范围limits 内画出一元函数y=f(x)的图形。ezplot 绘制隐函数图形。 三维图形: plot3根据给定的数值点绘制三维曲线图。 mesh 生成由X ,Y 和Z 指定的网线面,可以选择颜色的三维网格图。 surf 在矩形区域内显示三维带阴影曲面图。 (2)图形标注 title 给当前图形加上标题,每个图形对象可以有一个标题,标题定位于图形的上方正中央。 xlabel 、ylabel 、zlabel 给x 、y 、z 轴贴上标签。 grid 给二维或三维图形的坐标面增加分隔线。 legend 对同一张图上的不同曲线进行标注。 (3)、gra_ex01.m 绘制下面二元函数的三维图形 222222)1(53)1(223 1)5(10)1(3),(y x y x y x e e y x x e x y x f z -+---+-------==(4)、smile_03.m 平面图形笑脸的几何变换实例

线性代数及matlab英汉对照

Matlab部分函数名的义源 rand(m,n) random 随机 inv(a) inverse 逆矩阵 root 平方根sqrt(a) squared abs(a) absolute value 绝对值 det(a) determinant 行列式 rank(a) rank 秩 trace(a) trace 迹 rref(a) reduced row echelon form 最简行阶梯形 space 零核空间null(a) null sym(a) symbol 符号 orth(a) orthogonal 正交 norm norm 模 poly(a) polynomial 多项式 roots(p) root 根 eig(a) eigen- 特征的eigensys(a) eigen- system 特征的 线性代数部分词汇英汉对照 adjoint matrix 伴随矩阵 algebraic cofactor 代数余子式 augmented matrix 增广矩阵 block matrix 分块矩阵 basic solution set 基础解系 characteristic equation 特征方程 characteristic polynomial 特征多项式 coefficient matrix 系数矩阵 cofactor 余子式 column vector 列向量 canonical form [二次型的]标准形 cramer’s rule 克莱姆法则 determinant of order n n阶行列式 diagonal matrix 对角矩阵 dimension 维数 echelon form 阶梯形 eigenvalue 特征值 eigenvector 特征向量 elementary matrix 初等矩阵 elementary row operation 行初等变换 full rank 满秩 general solution 通解 gram-schmidt process 施密特正交化过程 identity matrix 单位矩阵 index of inertia 惯性指数

matlab线性代数例题

《数学实验》在线习题3 Matlab 程序设计部分 一. 分析向量组123[123],[120],T T T a a a ==--=,4[121]T a =--,5[246]T a =的线性相关性,找出它们的最大无关组,并将其余向理表示成最大无关组的线性组合。 解, a1=[1 2 3]'; a2=[-1 -2 0]'; a3=[0 0 1]'; a4=[1 -2 -1]'; a5=[2 4 6]'; A=[a1,a2,a3,a4,a5] ; [R,S]=rref(A) r=length(S) R = 1.0000 0 0.3333 0 2.0000 0 1.0000 0.3333 0 0 0 0 0 1.0000 0 S = 1 2 4 r = 3 线性相关 a1,a2,a3,a4,a5 最大无关组是a1,a2,a4 其余向量的线性组合是a3=1/3a1+1/3a2 a5=2a1 二. 计算行列式 3 2231111113 22322222243 223 3333333223444444x x y x y y x x y x y y D x x y x y y x x y x y y = 的值。其中[][][][]1 23412342357,4567x x x x y y y y ==。 解, syms x1 x2 x3 x4 y1 y2 y3 y4 D=[x1^3 x1^2*y1 x1*y1^2 y1^3;x2^3 x2^2*y2 x2*y2^2 y2^3;x3^3 x3^2*y3 x3*y3^2 y3^3;x4^3 x4^2*y4 x4*y4^2 y4^3]; d=det(D)

用MATLAB线性代数的基本运算

111 第五章线性代数的基本运算 本章学习的主要目的: 1 复习线性代数中有关行列式、矩阵、矩阵初等变换、向量的线性相关性、线性方程组的求解、相似矩阵及二次型的相关知识. 2学会用MatLab 软件进行行列式的计算、矩阵的基本运算、矩阵初等变换、向量的线性相关性的判别、线性方程组的求解、二次型化标准形的运算. 5.1 行列式 5.1.1 n 阶行列式定义 由2n 个元素),,2,1,(n j i a ij =组成的记号 D=nn n n n n a a a a a a a a a 212222111211 称为n 阶行列式.其值是所有取自不同行不同列的n 个元素的乘积n np 2 p 21 p 1a a a 的 代数和,各项的符号由n 级排列n p p p 21决定,即 D= ∑ -n p p p n p p p 21n np 2 p 21 p 1) 21( a a a )1(τ, 其中 ∑ n p p p 21表示对所有n 级排列求和,),,,(21n p p p τ是排列n p p p 21的逆序数. 5.1.2行列式的性质 (1) 行列式与它的转置行列式相等. (2) 互换行列式的两行(列),行列式变号. (3) 若行列式有两行(列)完全相同,则此行列式为零.

112 (4) 行列式的某一行(列)中所有的元素都乘以同一数k,等于用数k 乘此行列式. (5) 若行列式有两行(列)元素成比例,则此行列式为零. (6) 若行列式的某一列(行)的元素是两数的和,则此行列式等于对应两个行列式之和. 即 nn n n ni n n i i nn n n ni n n i i nn n n ni ni n n i i i i a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a 21'2 1 '22221 '11211212 1 22221 112 1121'2 1 '222221'111211+ =+++ (7) 若行列式的某一行(列)的各元素乘以同一数加到另一行(列)对应的元素上去,行列式不变. (8) 行列式等于它的任一行(列)的各元素与其对应的代数余子式乘积之和,即 ),,2,1(,0,1 j k n i k i k i D A a D n j ij =?? ?≠=== ∑ =, 或),,2,1(,0,1 i n j k j k j D A a D n ik ij =?? ?≠=== ∑ = (9) 设A,B 是n 阶方阵,则T A A =,A A n k k =,B A AB =, (10)若A 是n 阶可逆矩阵,则0≠A ,A A 1 1= - (11) 设n 21,,,λλλ 是n 阶方阵A 的特征值,则i n A λ1 i =∏=, (12) 设*A 是n 阶方阵A 的伴随矩阵,则2n *1 ≥=-n A A (13) 几种特殊行列式的计算: nn nn a a a a a a 22112211000000= , nn nn n n a a a a a a a a a 221122*********= nn nn n n a a a a a a a a a 22112 1 222111000=,112n 12) 1(122 2111211)1(0 00n n n n n n a a a a a a a a a ---=

Matlab 使用之线性代数综合实例

课程《线性代数》上机 内容 《线性代数》综合实例成绩 姓名专业 班级 学号 教学班指导 教师 上机 日期 一、上机目的 1、培养学生运用线性代数的知识解决实际问题的意识、兴趣和能力; 2、掌握常用计算方法和处理问题的方法; 二、上机内容 1、求向量组的最大无关组; 2、解线性方程组; 三、上机作业 1、设A=[2124;1202;4520;0117]; 求矩阵A列向量组的一个最大无关组. >>A=[2124;1202;4520;0117] A= 2124 1202 4520 0117 >>rref(A) ans= 1000 0100 0010 0001 所以矩阵A的列向量组的一个最大无关组就是它本身; 2、用Matlab解线性方程组 (1) >>A=[24-6;153;132] A= 24-6 153 132 >>b=[-4;10;5] b= -4 10 5 >>x=inv(A)*b x=

-3.0000 2.0000 1.0000 >>B=[341-62;4503;113825] B= 341-62 4503 113825 >>c=[-41;100;50] c= -41 100 50 >>x=inv(B)*c x= -8.8221 2.5890 1.9465 3、(选作)减肥配方的实现 设三种食物每100克中蛋白质、碳水化合物和脂肪的含量如下表,表中还给出了20世纪80年代美国流行的剑桥大学医学院的简捷营养处方。现在的问题是:如果用这三种食物作为每天的主要食物,那么它们的用量应各取多少才能全面准确地实现这个营养要求? 营养 每100克食物所含营养(g)减肥所要求的 每日营养量脱脂牛奶大豆面粉乳清 蛋白质36511333 碳水化合物52347445脂肪07 1.13 (请同学们选择实际生活中的其它例子,建立模型并用Matlab求解) 四、上机心得体会 通过此次上机实验,我进一步的认识到了Matlab软件的功能。Matlab 操作简单、功能强大,它使一些复杂的线性代数问题的计算变得更加简单,有效地提高了人们计算的效率。而且把一些复杂的实际问题转化为矩阵后再利用Matlab求解既简单有快捷。 通过线性代数的学习,能使学生获得应用科学中常用的矩阵、线性方程组等理论及其有关基本知识,并具有较熟练的矩阵运算能力和用矩阵方法解决一些实际问题的能力。同时,该课程对于培养学生的逻辑推理和抽象思维能力、空间直观和想象能力具有重要的作用。所以我们要掌握Matlab,并熟练地使用它来解决遇到的实际问题。

Matlab线性代数

西安交通大学 电气410 张亚东

线性代数实验报告 电气410 张亚东 一、利用matlab操作矩阵基本运算,矩阵初等变换和秩的求解`, 有关方阵的特征值和特征向量的求解。 (1)同型矩阵的加减乘除 a=[2,1,1;1,2,1;1,1,2]; f=[1,2,3;0,1,2;9,1,2]; a+f a-f a*f a/f 运行结果; (2)矩阵的转置 f=[1,2,3;0,1,2;9,1,2]; f’ 运行结果: (3)数乘 f=[1,2,3;0,1,2;9,1,2]; x=2; x*f 运行结果:

(4)初等变换 a=A(r,c) %将A的第r行第c列的元素赋给变量a A(r,: )=k*A(r,: ) %把矩阵A的第r行第c列乘以数字k A(:,c)=s*A(:,c) %把矩阵A的第c列乘以数字s a([i,j],: )=a([j,i].: ) %交换矩阵a的第i行和第j行 a(j,: )=a(j,: )+k*a(i,: ) %矩阵a的第i行乘以常数k加到第j行 (5)秩的求解 a=[2,1,1;1,2,1;1,1,2]; rank(a); 运行结果: (6)方阵的特征值和特征向量的求解 a=[2,1,1;1,2,1;1,1,2]; [tx,ty]=eig(a) (7)求矩阵的逆 a=inv(B);

二、下图给出了某城市部分单行道的交通流量(每小时通过的车辆数)图中有6个路口,已有9条街道记录了当天的平均车流量,另有7处的平均车流量未知。试利用每个路口的进出车流量相等关系来推算这7处的平均车流量。 (1)实验问题 利用每个路口的进出车流量相等关系来推算这 7处的平均车流量; (2)问题分析 根据每个路口进出车流量相同,列出方程, 解方程,求出增广矩阵,得出通解; (3)程序设计 b=[0,1,0,0,-1,0,0,200;1,-1,0,1,0,0,0,200;1,0,1,0,0,0,0,800;0,0,1,0,0,1,0,600;0,0 ,0,1,0,1,-1,0;0,0,0,0,-1,0,1,200]; matrix=rref(b)

相关文档
最新文档