Matlab学习系列16 数值计算线代篇Word格式文档下载.docx

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

Matlab学习系列16 数值计算线代篇Word格式文档下载.docx

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

Matlab学习系列16 数值计算线代篇Word格式文档下载.docx

symsx;

A=[3211;

322-x^21;

5132;

7-x^2132];

D=det(A)

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

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

D=-3*(x^2-1)*(x^2-2)

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

X=-1

1

2^(1/2)

-2^(1/2)

二、向量组的线性相关性

例3向量组

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

A=[2-135;

4-313;

3-234;

4-11517;

7-6-70]'

;

%formatrat;

%使用分数表示

rref(A)

ans=10021

010-35

0014-5

00000

可见,向量组的秩是3,

是一个最大线性无关组;

并且

注:

也可以用[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求下列方程组的通解:

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);

x0=zeros(n,1);

%将特解x0初始化为零向量

r=length(s);

%矩阵A的秩赋给变量r

x0(s,:

)=R(1:

r,end)%矩阵R的最后一列按基准元素的位置得到特解x0

x=null(A,'

r'

)%得到对应齐次方程组Ax=0的基础解系

R=120293

001028

000000

000000

s=13

x0=3

0

8

x=-2-2-9

100

00-2

010

001

例5已知齐次线性方程组

问当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)%解方程“D=0”即要求的k值

fori=1:

4

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

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

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

x=null(Ak,'

D=2*k^4-31*k^3+30*k^2+161*k+98

K=-1

-1

7/2

14

x=-1-1

10

01

00

x=-1-1

x=-0.5

-1

x=0.2

0.4

四、基变换

设Rn中的两组基向量U和V(都是n×

n矩阵),若向量w在以U为基的坐标系内的坐标为wu(n×

1数组),在以V为基的坐标系内的坐标为wv(n×

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

U*wu=V*wv

所谓基坐标的变换,就是已知wu,求出wv.将上式两边均左乘V-1,得到

wv=V-1*U*wu

故坐标变换矩阵为P=V-1*U.

例6已知R4中的两组基向量为

求从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

-1100

0001

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求下列矩阵的特征值和特征向量:

formatshortg

213;

112];

%特征多项式法

%P=poly(A);

%lamda1=roots(P)

lamda2=eig(A)

[V,D]=eig(A)

inv(V)*A*V

lamda2=5.0000

-1.0000

-0.0000

V=0.63960.7071-0.5774

0.6396-0.7071-0.5774

0.4264-0.00000.5774

D=5.000000

0-1.00000

00-0.0000

ans=5.0000-0.00000

-0.0000-1.0000-0.0000

-0.00000.00000

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

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

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

假如开始时有30%的居民住在市区,70%的居民住在郊区,问:

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

30年、50年后又如何?

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

问题分析:

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

(1)把人口变量用市区xc和郊区xs两个分量表示,一年以后,市区人口为xc1=(1-0.06)xc0+0.02xs0,郊区人口xs1=0.06xc0+(1-0.02)xs0,用矩阵乘法来表示:

从初始到k年,此关系保持不变,故

对于

(2),借助矩阵A的特征值和特征向量,因为A作用在其特征向量上只改变值大小(为其特征值的倍数)而不改变方向。

为此先求出A的特征值λ1,λ2及特征向量v1,v2;

将x0用特征向量v1,v2作为坐标系表示出来(即做以[v1,v2]为基坐标的基变换),

x0=αv1+βv2

从而,

令k趋于∞,判断xk是否存在极限。

x0=[0.3;

0.7];

A=[0.940.02;

0.060.98];

x1=A*x0

x10=A^10*x0

x50=A^50*x0

V(:

1)=V(:

1)./V(2,1);

2)=V(:

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

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

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

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

symsn;

xn=k

(1)*D(1,1)^n*V(:

1)+k

(2)*D(2,2)^n*V(:

2);

%xn=-0.05*(0.92)^n*v1+0.25*1^n*v2

limit(xn,n,inf)

x1=0.2960

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用正交变换法将下列二次型化为标准型(保持几何形状不变):

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.66670.3333

-0.66670.3333-0.6667

-0.33330.66670.6667

D=-1.000000

02.00000

005.0000

f=-y1^2+2*y2^2+5*y3^2

XTAX=YTVTAVY=YTDY

七、用矩阵做图形变换

图形变换是指对图形进行平移、旋转、缩放、投影(透视)等变换,其实质是改变图形的各个顶点的坐标。

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

注:

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

BTAT=CT.

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

1.基本变换

(1)缩放变换

若a=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),'

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

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(:

g'

%绘制变换后的三角形

(2)对称变换

①关于原点的对称变换

②关于x轴的对称变换

关于y轴的对称变换

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

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

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

①延x轴方向错切

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

平行于y轴的直线变换后,y=0的点不动(不动点),y≠0的点沿x方向平移了cy,形成与y轴夹角为θ的直线,且tgθ=cy/y=c.

②延y轴方向错切

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

变换矩阵为

逆时针方向旋转时角度θ取正值;

顺时针方向旋转时角度θ取负值。

2.平移变换

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

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

若常数=1,称为标准齐次坐标表示法。

若坐标变换结果是非标准化齐次坐标表示,应将其化为标准齐次坐标表示,方法是所有项都除以齐次项:

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

ABC=[34;

%平移变换

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

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

l=1;

m=0.5;

T=[100;

010;

lm1];

%平移变换矩阵

ABC2=ABC1*T;

%做平移变换

plot(ABC2(:

1),ABC2(:

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

3.组合变换

一些复杂的变换都可以分解为若干基本变换的组合,二维组合变换矩阵T=T1×

T2×

…×

Tm,其中Ti是基本变换矩阵,具有不可交换性。

例如,

(1)绕坐标原点以外的任意一点P(x0,y0)旋转θ角的旋转变换

可分解为:

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

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

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

于是,组合变换矩阵为:

T=T1*T2*T3.

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

设直线方程为:

Ax+By+C=0(A≠0,B≠0),直线在x轴上的截距为-C/A,在y轴上的截距为-C/B,直线与x轴的夹角α=arctg(-A/B).

①平移变换——沿x轴方向平移C/A,使直线通过坐标原点;

②旋转变换——绕坐标原点旋转-α角,使直线与x轴重合;

③关于x轴做对称变换;

④旋转变换——绕坐标原点旋转α角;

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

于是组合变换矩阵为:

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

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

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

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

当前位置:首页 > 自然科学 > 数学

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

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