完整版Matlab学习系列16数值计算线代篇.docx

上传人:b****6 文档编号:6633578 上传时间:2023-01-08 格式:DOCX 页数:18 大小:159.80KB
下载 相关 举报
完整版Matlab学习系列16数值计算线代篇.docx_第1页
第1页 / 共18页
完整版Matlab学习系列16数值计算线代篇.docx_第2页
第2页 / 共18页
完整版Matlab学习系列16数值计算线代篇.docx_第3页
第3页 / 共18页
完整版Matlab学习系列16数值计算线代篇.docx_第4页
第4页 / 共18页
完整版Matlab学习系列16数值计算线代篇.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

完整版Matlab学习系列16数值计算线代篇.docx

《完整版Matlab学习系列16数值计算线代篇.docx》由会员分享,可在线阅读,更多相关《完整版Matlab学习系列16数值计算线代篇.docx(18页珍藏版)》请在冰豆网上搜索。

完整版Matlab学习系列16数值计算线代篇.docx

完整版Matlab学习系列16数值计算线代篇

16.数值计算一线代篇

一、行列式

det(A)――矩阵A的行列式;

inv(A)矩阵A的逆;

rank(A)矩阵A的秩;

B(:

i)=b――将向量b赋给矩阵B的第i行;

[A,eye(5)]――在矩阵A右端,拼接5阶单位矩阵;

[U,s]=rref(A)――对矩阵A作行变换,U返回A的最简行阶梯形

A的秩;

 

代码:

formatshortg%省略小数位多余的0

A=[123;221;343];

B=rref([A,eye(3)])

%对矩阵[A,I]进行初等行变换,得到最简行阶梯矩阵B

if(rank(B(:

1:

3))==3)

%判断B的前3列是否为单位阵,若是取出后3列,即A逆

A仁B(:

4:

6)

else

disp('A不可逆');

end

运行结果:

13-2

-1

-1

例2解方程

代码:

symsx;

A=[3211;322-xA21;5132;7-xA2132];

D=det(A)

f=factor(D)%对行列式D进行因式分解

X=solve(D)%求方程“D=0”的解

运行结果:

D=-3*(xA2-1)*(xA2-2)

f=-3*(x-1)*(x+1)*(xA2-2)

-1

2A(1/2)-2A(1/2)

二、向量组的线性相关性

例3向量组

2

4

3

4

7

1

3

2

1

6

1

亠52

丄53

亠54

-55

3

1

3

15

7

5

3

4

17

0

求它的秩和一个最大线性无关组,并用来表示其它向量

代码:

A=[2-135;4-313;3-234;4-11517;7-6-70]';

%formatrat;%使用分数表示

rref(A)

运行结果:

ans=

1

0

0

2

1

0

1

0

-3

5

0

0

1

4

-5

0

0

0

0

0

可见,向量组的秩是3,1,2,3是一个最大线性无关组;并且

4213243,515253

注:

也可以用[R,s]=rref(A);length(s)得到秩。

三、线性方程组的通解

null(A,‘r——返回齐次线性方程组Ax=0的基础解系,选项’r'返回有理数解,否则按分数显示;

x0=inv(A)*b——若A-1存在,直接可以得到Ax=b的一个特解x0,

否则只能按求解理论求解;

subs(A,k,n),将矩阵或式A中的k用n代替

例4求下列方程组的通解:

2x14x2x34x416x52

3x16x22x36x423%7

3x16x24x36x419xs23

x12x25x32x419x543

代码:

symsx;

A=[2,4,-1,4,16;-3,-6,2,-6,-23;3,6,-4,6,19;1,2,5,2,19];

b=[-2;7;-23;43];

[R,s]=rref([A,b])

[m,n]=size(A);

xO=zeros(n,1);%将特解x0初始化为零向量

 

运行结果:

R=1

0

0

0

s=13

x0=3

20293

01028

00000

00000

0

0

x=-2-2-9

100

00-2

010

001

例5已知齐次线性方程组

(1

2k)N

3x2

3x3

3x4

0

3x1

(2

3X3

3x4

0

3x1

3x2

(2

3x4

0

3x13x23((11k)x4

求出其基础

问当k取何值时方程组有非零解?

在有非零解的情况下,解系。

代码:

symsk;

A=[1-2*k,3,3,3;3,2-k,3,3;3,3,2-k,3;3,3,3,11-k];

D=det(A)

K=solve(D)%解方程“X0”即要求的k值

fori=1:

4

Ak=double(subs(A,k,K(i)));

%用K(i)替换矩阵A中的k,得到的是符号矩阵,

%再用double函数转化为数值矩阵

x=null(Ak,'r')

end

运行结果:

D=2*kA4-31*kA3+30*kA2+161*k+98

K=-1

-1

7/2

14

x=-1-1

10

01

00

x=-1-1

10

01

00

x=-0.5

-1

-1

1

x=0.2

0.4

0.4

四、基变换

设Rn中的两组基向量U和V(都是nxn矩阵),若向量w在以

U为基的坐标系内的坐标为Wu(nx1数组),在以V为基的坐标系内的坐标为wv(nxi数组),则在基准坐标系内的坐标应分别为U*wu和V*Wv,这两者应该相等,即

U*Wu=V*Wv

所谓基坐标的变换,就是已知Wu,求出Wv.将上式两边均左乘

V-1,得到

Wv=V

'*U*Wu

故坐标变换矩阵为P:

=V-1

*U.

例6已知R4中的两组

寸基向量为

1

1

-1-1

2

0

-2

1

2

-1

2-1

1

1

1

3

-1

1

10,

0

2

1

1

0

1

11

1

2

2

2

求从U到V的坐标变换矩阵P.

代码:

U=[11-1-1;2-12-1;-1110;0111];

V=[20-21;1113;0211;1222];

P=inv(V)*U%从U到V的基变换矩阵

wu=[1234]';

wv=P*wu

%已知某向量在U坐标系下坐标为WU,求它在V坐标系下的坐标

运行结果:

P=01-11

-1

1-11-1

wv=3

1

4

-2

五、特征值与特征向量

变换可以用矩阵表示。

矩阵A的特征向量是指,经过矩阵A(左乘)变换后不发生方向改变的那些向量;特征值是指在经过这些变换后特征向量的伸缩的倍数。

对于实对称矩阵来说,不同特征值对应的特征向量必定正交。

矩阵(变换)A的所有特征向量组成了该矩阵(变换)的一组基,可以理解为坐标系的坐标轴,可以把这个坐标系扭曲、拉伸、旋转,称为基变换。

例如,在主成分分析中,通过在拉伸最大的方向设置基,忽略一些小的量,可以极大的压缩数据而减小失真。

矩阵(变换)的所有特征向量作为空间的基之所以重要,是因为在这些方向上矩阵(变换)可以拉伸向量而不必扭曲和选择它,使得计算大为简单。

2.Matlab实现

orth(A)返回矩阵A的列向量组构成空间的标准正交基;

P=poly(A)返回矩阵A的特征多项式,P是行向量,元素为

多项式系数;

roots(P)――求多项式P的零点;

r=eig(A)――r为列向量,元素为矩阵A的特征值;

[V,D]=eig(A)――矩阵D为A的特征值(从小到大排列)所构成的对角矩阵,V的列向量为A的特征向量,与D中特征值一一对应

(VtAV=D,VT=V-1),D也是矩阵A的相似对角化矩阵;

[V,D]=schur(A)――矩阵D为对称矩阵A的特征值所构成的对角阵,V的列为A的单位特征向量,与D中特征值一一对应;例7求下列矩阵的特征值和特征向量:

222019

216911

8461

0847

代码:

formatshortg

A=[123;213;112];

%特征多项式法

%P=poly(A);

%lamda1=roots(P)lamda2=eig(A)[V,D]=eig(A)inv(V)*A*V

-0.0000

V=0.6396

0.7071

-0.5774

0.6396

-0.7071

-0.5774

0.4264

-0.0000

0.5774

D=

5.0000

0

0

0

-1.0000

0

0

0

-0.0000

ans=

5.0000

-0.0000

0

-0.0000

-1.0000

-0.0000

-0.0000

0.0000

0

例8(人口迁徙模型)设某大城市的总人口是固定的。

人口的分布则因居民在市区和郊区之间迁徙而变化。

每年有6%的市区居民搬到郊区去住,而有2%的郊区居民搬到市区。

假如开始时有30%的居民

住在市区,70%的居民住在郊区,问:

(1)10年后市区和郊区的居民人口比例是多少?

30年、50年后又如何?

(2)无限增加时间,该比例最终是否会趋于稳定?

问题分析:

该问题可以用矩阵乘法来描述。

(1)把人口变量用市区Xc和郊区Xs两个分量表示,一年以后,市

区人口为Xci=(1-0.06)Xco+O.O2xso,郊区人口Xsi=O.O6xco+(1-0.02)Xso,用矩阵乘法来表示:

对于

(2),借助矩阵A的特征值和特征向量,因为A作用在其特

征向量上只改变值大小(为其特征值的倍数)而不改变方向。

为此先求出A的特征值入,2及特征向量Vi,V2;将X0用特征向量

Vi,V2作为坐标系表示出来(即做以[Vi,V2]为基坐标的基变换),

X0=o/什pV2

从而,

xkAkx0Ak(v1v2)Akv,Akv21kv1;v2

令k趋于x,判断Xk是否存在极限。

代码:

x0=[0.3;0.7];

A=[0.940.02;0.060.98];

x仁A*x0

x10=AA10*x0

x50=AA50*x0

[V,D]=eig(A)

V(:

1)=V(:

1)./V(2,1);

V(:

2)=V(:

2)./V(1,2)%对V做初等变换化简

k=inv(V)*x0%求x0用特征向量作为坐标系的表示

%x0在原坐标系I中的表示为x0,

%则基坐标变换到在坐标系V的表示为x=P*x0=inv(V)*l*x0

symsn;

xn=k

(1)*D(1,1)An*V(:

1)+k

(2)*D(2,2)an*V(:

2);

%xn=-0.05*(0.92)an*v1+0.25*1An*v2

limit(xn,n,inf)

0.7040

x10=0.2717

0.7283

x50=0.2508

0.7492

V=-0.7071-0.3162

0.7071-0.9487

D=0.92000

01.0000

V=-1.00001.0000

1.00003.0000

k=-0.0500

0.2500

ans=1/4

3/4

最终得到:

无限增加时间k,市区和郊区人口之比将趋向一组常数

0.25/0.75.

六、二次型例9用正交变换法将下列二次型化为标准型(保持几何形状不变)

f(x1,x2,x3)

x122x223x324x1x24x2x3

代码:

A=[1-20;-22-2;0,-2,3];%输入二次型的矩阵A

[V,D]=eig(A)

%或用[V,D]=schur(A),结果相同;V为正交变换矩阵,即Y=VX

symsy1y2y3;

f=[y1,y2,y3]*D*[y1;y2;y3]

运行结果:

V二

-0.6667

-0.6667

0.3333

-0.6667

0.3333

-0.6667

-0.3333

0.6667

0.6667

D=-1.00000

0

02.00000

005.0000

f=-y1A2+2*y2八2+5*y3A2

注:

XtAX二YtVtAVY二YtDY

七、用矩阵做图形变换

图形变换是指对图形进行平移、旋转、缩放、投影(透视)等变

换,其实质是改变图形的各个顶点的坐标。

图形变换可以通过对表示图形坐标的矩阵进行运算来实现,称为

矩阵变换法:

原图形、一变换后图形

一变换一

顶点坐标*占“二顶点坐标矩阵矩阵矩阵

注:

也可以用变换矩阵左乘实现,上式两边转置即可,即:

btat=ct.

F面只介绍二维图形的矩阵变换,代码示例是类似的省略之

X1

y1

X2

y2*

M

M

Xn

ynn2

(1)缩放变换

a

X

y门

0

若a=d则为等比例缩放;若

xy1

II

ab_x2y2

cd22MM

Xnynn2

1.基本变换

0axdy

d

a=1,则x方向不变;若a=0,则图

形压缩为y轴上的线段例10已知三角形的三个顶点坐标,绘制三角形并进行缩放变换。

代码:

ABC=[44;13;31];%三角形的三个顶点

E=[ABC(1,1),ABC(1,2)];%为了让图形封闭,在末尾补上起始点

ABC=[ABC;E]

subplot(1,2,1)

plot(ABC(:

1),ABC(:

2),'r');%将各个顶点连线,绘制三角形

axis([0,5,0,5]);

%放缩变换

a=0.6;

d=1.2;

T=[a0;0d];%变换矩阵

ABC1=ABC*T;%对原顶点做变换得到新的顶点

subplot(1,2,2)

plot(ABC1(:

1),ABC1(:

2),'g');%绘制变换后的三角形

运行结果:

(2)对称变换

关于原点的对称变换

关于x轴的对称变换

关于y轴的对称变换

关于直线y=x的对称变换

关于直线y=-x的对称变换

(3)错切变换(延x轴或y轴一个方向移动,另一个方向不变)

1延x轴方向错切

10

Xyc1xcyy

变换后,平行于X轴的直线变换后仍平行于x轴;平行于y轴的直线

变换后,y=0的点不动(不动点),y工0的点沿x方向平移了cy,形成

与y轴夹角为B的直线,且tg§=cy/y=c.

2延y轴方向错切

(4)绕坐标原点的旋转变换

变换矩阵为

cossinT

sincos

逆时针方向旋转时角度B取正值;顺时针方向旋转时角度B取负值

2.平移变换

2X2变换矩阵是不能实现平移变换的,为此需要扩展一维

100

xy1010xlym1

lm1

注:

补上一维的常数,称为齐次坐标表示法;若常数=1,称为标

准齐次坐标表示法。

若坐标变换结果是非标准化齐次坐标表示,应将

其化为标准齐次坐标表示,方法是所有项都除以齐次项:

同除以s

xys

例11已知三角形的三个顶点坐标,绘制三角形并进行平移变换。

代码:

为了让图形圭寸闭,在末尾补上起始点

将各个顶点连线,绘制三角形

E=[ABC(1,1),ABC(1,2)];%

ABC=[ABC;E]subplot(1,2,1)

plot(ABC(:

1),ABC(:

2),'r');%

axis([0,5,0,5]);

%平移变换

ABC1=[ABC,ones(length(ABC),1)];

%加上一列1扩维,变成标准齐次坐标表示

1=1;

m=0.5;

T=[100;010;lm1];%平移变换矩阵

ABC2=ABC1*T;%做平移变换

subplot(1,2,2)

plot(ABC2(:

1),ABC2(:

2),'g');

axis([0,5,0,5])

运行结果:

5

5

'rrr

1r*

4.5

・・

4.5

4

--

4

--

3.5

--

3.5

--

3

--

3

--

2.5

-・

2.5

2

・・

2

}、"1

1.5

■\-

1.5

-

1

--

1

0.5

・・

0.5

0

jU■II

0

ii1■1

012345

012345

注:

三维变换矩阵还具备更多的功能,总结如下:

3.组合变换

一些复杂的变换都可以分解为若干基本变换的组合,二维组合变

换矩阵T=TiXT2X-XTm,其中Ti是基本变换矩阵,具有不可交换性。

例如,

(1)绕坐标原点以外的任意一点P(xo,yo)旋转B角的旋转变换可分解为:

①平移变换一一将旋转中心P平移到坐标原点;

100

T1010

X0y。

1

②旋转变换绕坐标原点旋转B角;

cossin0

T2sincos0

001

3平移变换——使旋转中心P回到原来的位置

100

T3010

x0y01

于是,组合变换矩阵为:

T=T1*T2*T3.

(2)关于任意直线的对称变换

设直线方程为:

Ax+By+C=0(A半0,B半0),直线在x轴上的截

距为-C/A,在y轴上的截距为-C/B,直线与x轴的夹角a=arctg(A/B).

可分解为:

100

T1010

C/A01

②旋转变换——绕坐标原点旋转

-a角,使直线与X轴重合;

cos()

sin(

)0

T2sin()

cos(

)0

0

0

1

3关于x轴做对称变换;

100

T3010

001

4旋转变换绕坐标原点旋转a角;

cossin0

T2sincos0

001

5平移变换——沿x方向平移-C/A,使直线回到原位置

100

T1010

C/A01

于是组合变换矩阵为:

T=T1*T2*T3*T4*T5.

注:

(1)可见前面的二维变换矩阵都可以统一地在三维矩阵中实

现;

(2)以上介绍的二维图形的矩阵变换,类似地可以推广到三维空

间图形的矩阵变换

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

当前位置:首页 > 党团工作 > 入党转正申请

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

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