MATLAB课件 第八章 线性代数基础Word文件下载.docx

上传人:b****5 文档编号:19861451 上传时间:2023-01-11 格式:DOCX 页数:15 大小:72.26KB
下载 相关 举报
MATLAB课件 第八章 线性代数基础Word文件下载.docx_第1页
第1页 / 共15页
MATLAB课件 第八章 线性代数基础Word文件下载.docx_第2页
第2页 / 共15页
MATLAB课件 第八章 线性代数基础Word文件下载.docx_第3页
第3页 / 共15页
MATLAB课件 第八章 线性代数基础Word文件下载.docx_第4页
第4页 / 共15页
MATLAB课件 第八章 线性代数基础Word文件下载.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

MATLAB课件 第八章 线性代数基础Word文件下载.docx

《MATLAB课件 第八章 线性代数基础Word文件下载.docx》由会员分享,可在线阅读,更多相关《MATLAB课件 第八章 线性代数基础Word文件下载.docx(15页珍藏版)》请在冰豆网上搜索。

MATLAB课件 第八章 线性代数基础Word文件下载.docx

102030];

size(a)

43

length(a)ans=

注意size(a)与length(a)两者之间的区别。

1.4矩阵的迹

矩阵的迹定义为该矩阵对角线上的各元素之和,也等于该矩阵的特征值之和。

Matlab调用格式为:

trace();

【例5】求矩阵A=[1230;

2203;

3211]的迹

A=[1230;

3211];

trace(A)

32

1.5转置运算

在MATLAB中,矩阵转置运算的表达式和线性代数一样,即对于矩阵A,其转置矩阵的MATLAB表达式为A’或transpose(A)。

但应该注意,在MATLAB中,有几种类似于转置运算的矩阵元素变换运算是线性代数中没有的,他们是:

fliplr(A)将A左右翻转;

flipud(A)将A上下翻转;

rot90(A)将A逆时针方向旋转90。

【例6】求矩阵A=[1230;

3211]的转置矩阵

3211],B=A'

A=

1230

2203

3211

B=

123

2202

30311

transpose(A)

rot90(A)

30311

1.6逆矩阵运算

矩阵的逆运算是矩阵运算中很重要的一种运算。

它在线性代数及计算方法中都有很多的论述,而在MATLAB中,众多的复杂理论只变成了一个简单的命令inv()。

【例7】求矩阵A=[12;

34]的逆矩阵。

A=[12;

34],invA=inv(A),A*invA

12

34

invA=

-2.00001.0000

1.5000-0.5000

1.00000

0.00001.0000

从ans变量的结果可以看出,A的逆矩阵没有求错。

在线性代数教材中,通常采用初等行变换的方式来求解矩阵的逆。

这样的方法可以用以下方法可以实现:

34],n=size(A);

A1=[A,eye(n)];

A2=rref(A1);

invA=A2(:

1+n

(1):

end)

【例8】求矩阵A=[ab;

cd]的逆矩阵。

cd];

invA=inv(A)

invA=

[d/(a*d-b*c),-b/(a*d-b*c)]

[-c/(a*d-b*c),a/(a*d-b*c)]

1.7广义逆矩阵

由线代知识知道,如果矩阵奇异,则逆矩阵不存在,另外,长方形的矩阵有时也会涉及到求逆的问题,这样就需要定义一种新的“逆矩阵”。

对于矩阵A,如果存在一个矩阵N,满足ANA=A,则N矩阵称为A的广义逆矩阵,记作

,如果A是一个n×

m的长方形矩阵,则N为m×

n阶的矩阵。

满足这样的广义逆矩阵有无穷多个。

可以证明,对于一个给定的矩阵A,存在一个唯一的矩阵M使得下面的3个条件同时成立:

1)AMA=A2)MAM=M3)AM与MA均为对称矩阵

这样的矩阵M称为矩阵A的Moore-Penrose广义逆矩阵,记作

MATLAB提供了求取矩阵Moore-Penrose广义逆矩阵的函数pinv(),其格式为:

M=pinv(A)%按默认精度求取Moore-Penrose广义逆矩阵

M=pinv(A,e)%按指定精度e求取Moore-Penrose广义逆矩阵

其中,e为判0用误差限,如果省略此参数,则判0用误差限选用机器的精度eps.如果A是非奇异方阵,则该函数得出的结果就是矩阵的逆矩阵,但这样求解的速度将明显慢于函数inv().

【例9】求奇异矩阵A=[12;

36]的广义逆矩阵

pinv(A);

M=pinv(A),A*M*A,M*A*M,A*M,M*A

M=

0.02000.0600

0.04000.1200

1.00002.0000

3.00006.0000

0.10000.3000

0.30000.9000

0.20000.4000

0.40000.8000

从结果可以看出,所求的广义逆矩阵满足以上的三个条件。

【例10】求矩阵A=[12;

34]的广义逆矩阵。

34];

invA=pinv(A)

1.8伴随矩阵

Matlab中没有直接求矩阵的伴随矩阵的函数,引入伴随矩阵的概念,实际上是为了求逆阵,一般数学软件都有求逆阵的函数。

如果A可逆,则A*=|A|A^(-1),伴随矩阵是容易求得的;

【例11】求矩阵A=[101;

212;

046]的伴随矩阵。

A=[101;

046],bsjz=det(A)*inv(A)

101

212

046

bsjz=

-24-1

-1260

8-41

下面是自编的函数bansui(),可以直接求得伴随矩阵,但注意一定要将该函数保存在搜索路径之下。

functionB=bansui(A)

ce=poly(eig(A));

cesize=max(size(ce));

p=[0ce(1:

(cesize-1))];

s=(-1)^(max(size(A))+1);

B=s*polyvalm(p,A);

【例12】求矩阵A=[101;

046]的伴随矩阵

046];

bsjz=bansui(A)

-2.00004.0000-1.0000

-12.00006.00000

8.0000-4.00001.0000

det(A)

6

A*bsjz

6.000000.0000

0.00006.00000.0000

00.00006.0000

从上面结果可以看出,A*bsjz=det(A)*E

【例13】求奇异矩阵A=[12;

36]的伴随矩阵

36];

6-2

-31

2.线性方程组求解

我们将线性方程的求解分为两类:

一类是方程组求唯一解或求特解,另一类是方程组求无穷解即通解。

可以通过系数矩阵的秩来判断:

若系数矩阵的秩和增广矩阵的秩相等且等于n(n为方程组中未知变量的个数),则有唯一解;

若系数矩阵的秩和增广矩阵的秩相等且r<

n,则有无穷解;

线性方程组的无穷解=对应齐次方程组的通解+非齐次方程组的一个特解;

其特解的求法属于解的第一类问题,通解部分属第二类问题。

2.1求线性方程组的唯一解或特解(第一类问题)

利用矩阵除法求线性方程组的特解(或一个解)

方程:

AX=b

解法1:

X=A\b

【例14】求方程组的解

解:

A=[56000

15600

01560

00156

00015];

B=[10001]'

;

R_A=rank(A)%求秩

X=A\B%求解或X=inv(A)*B

运行后结果如下

R_A=

5

X=

2.2662

-1.7218

1.0571

-0.5940

0.3188

这就是方程组的解。

解法2.用函数rref求解:

C=[A,B]%由系数矩阵和常数列构成增广矩阵C

R=rref(C)%将C化成行最简行

R=

1.000000002.2662

01.0000000-1.7218

001.0000001.0571

0001.00000-0.5940

00001.00000.3188

则R的最后一列元素就是所求之解。

【例15】求方程组

的一个特解。

A=[11-3-1;

3-1-34;

15-9-8];

B=[140]'

X=A\B%由于系数矩阵不满秩,该解法可能存在误差。

X=[00-0.53330.6000]’(一个特解近似值)。

此时,不能采用如下命令:

x=inv(A)*B,因为inv要求矩阵为方阵。

而用命令:

x=pinv(A)*B

x=[0.3504-0.0916-0.38810.4232],可用A*x验算

注:

如果矩阵A不是一个方阵,或者A是一个非满秩的方阵时,A没有逆矩阵,但可以找到一个与A的转置同型的矩阵B,使得A*B*A=A,B*A*B=B,此时称B为A的伪逆,也称广义逆矩阵。

使用:

pinv(A)

若用rref求解,则比较精确:

A=[11-3-1;

C=[A,B];

%构成增广矩阵

R=rref(C)

1.00000-1.50000.75001.2500

01.0000-1.5000-1.7500-0.2500

00000

由此得解向量X=[1.2500–0.250000]’(一个特解)。

2.2求线性齐次方程组的通解

在Matlab中,函数null[nʌl]用来求解零空间,即满足A·

X=0的解空间,实际上是求出解空间的一组基(基础解系)。

对齐次线性方程组Ax=0;

格式z=null(A)%z的列向量为方程组的正交规范基,满足

z=null(A,’r’)%z的列向量是方程AX=0的有理基

如果A为数值矩阵,调用null(A,’r’);

或调用null(A)

如果A为符号矩阵,只能调用null(A)

【例16】求解方程组的通解:

A=[111-1;

1-11-3;

1311];

formatrat%指定有理式格式输出

B=null(A,'

r'

)%求解空间的有理基

运行后显示结果如下:

-12

0-1

10

01

即方程组的通解为:

若调用:

c=null(A),则应:

formatshort

c=null(A)

得:

c=

-0.50000.7071

-0.1667-0.4714

0.83330.2357

0.16670.4714

或通过行最简型得到基:

B=rref(A)

101-2

0101

0000

2.3求非齐次线性方程组的通解

非齐次线性方程组需要先判断方程组是否有解,若有解,再去求通解。

因此,步骤为:

第一步:

判断AX=b是否有解,若有解则进行第二步

第二步:

求AX=b的一个特解

第三步:

求AX=0的通解

第四步:

AX=b的通解=AX=0的通解+AX=b的一个特解。

【例17】求方程组的解

A=[101-1;

0113;

0211;

14-76];

B=[1-2-80]'

回车可得:

3.0000

-4.0000

-1.0000

1.0000

或采用简化行阶梯形方法:

R=rref(C)

10003

0100-4

0010-1

00011

【例18】求解方程组的通解:

解法一:

在Matlab编辑器中建立M文件如下:

b=[140]'

B=[Ab];

n=4;

R_A=rank(A)

R_B=rank(B)

formatrat

ifR_A==R_B&

R_A==n

X=A\b

elseifR_A==R_B&

R_A<

n

C=null(A,'

else

X='

Equationhasnosolves'

end

运行后结果显示为:

2

R_B=

Warning:

Rankdeficient,rank=2tol=8.8373e-015.

InD:

\Matlab\pujun\lx0723.matline11

0

-8/15

3/5

C=

3/2-3/4

3/27/4

01

所以原方程组的通解为X=k1

+k2

+

解法二:

用rref求解

C=rref(B)%求增广矩阵的行最简形,可得最简同解方程组。

10-3/23/45/4

01-3/2-7/4-1/4

00000

对应齐次方程组的基础解系为:

非齐次方程组的特解为:

所以,原方程组的通解为:

X=k1

【例19】:

编写程序求解AX=b,要求由人机交互模式输入矩阵A,b,并根据判定定理给出各种情况的求解答案。

编写程序如下:

A=input('

PleaseinputmatrixA:

'

);

b=input('

Pleaseinputmatrixb:

B=[A,b];

n=size(A);

R_A=rank(A);

R_B=rank(B);

R_A==n

(2)

n

(2)

X=pinv(A)*b

else

equitionnosolve'

编写完后,保存为mm.m文件,然后在窗口输入mm,回车后按提示输入系数矩阵和常数列,即可自动判定方程组解的情况并求出方程组的解。

mm

[12;

34]

[1;

2]

X=%方程组有唯一解的情况

1/2

24]

X=%方程组有无穷多解的情况

1/5

2/5

-2

1

3]

X=%方程组无解的情况

equitionnosolve

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 法律文书 > 调解书

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1