matlab数值计算解法,第四章 MATLAB的数值计算功能(二)

一. 线性代数(Linear Algebra)

解线性方程(Linear

equation)就是找出是否存在一个唯一的矩阵x,使得a,b满足关系:

ax=b 或 xa=b

MALAB中x=a\b 是方程 ax=b 的解, x=b/a是方程式xa=b的解。

通常线性方程多写成ax=b,“\”较多用,两者的关系为:

(b/a)’=(a’\b’)

系数矩阵a可能是m行n列的,有三种情况:

*方阵系统: (Square matrix)

m=n 可求出精确解(a必须是非奇异(nonsingular),即满秩(full rank))

*超定系统:(Overdetermind system)m>n

可求出最小二乘解

*欠定系统:(Underdetermind system) m

MATLAB对不同形式的参数矩阵,采用不同的运算法则来处理,它会自动检测参数矩阵,以区别下面几种形式:

*三角矩阵(Triangular Matrix)

*对称正定矩阵(symmetrical positive determined matrix)

*非奇异方阵(Nonsingular matrix)

*超定系统(Overdetermind system)

*欠定系统(Underdetermind system)

1. 方阵系统:(Square array)

最常见的是系数矩阵为方阵a,常数项b为列矢量, 其解x可写成x=a\b,

x和b大小相同。

例1: 求方阵系统的根。

a=[11 6 7;

5 13 9; 17 1 8]

b=[16 13 4]’

x=a\b

a =

11 6 7

5 13 9

17 1 8

b =

16

13

4

x =

3.9763

5.4455

-8.6303

例2:假如a,b为两个大小相同的矩阵,求方阵系统的根。

a=[4 5 9;

18 19 5; 1 4 13]

b=[1 5 12;

3 15 19; 7 6 10]

x=a\b

C=a*x

a =

4 5 9

18 19 5

1 4 13

b =

1 5 12

3 15 19

7 6 10

x =

-3.6750 -0.7333 2.9708

3.7250 1.4667 -2.1292

-0.3250 0.0667 1.1958

C =

1.0000 5.0000 12.0000

3.0000 15.0000 19.0000

7.0000 6.0000 10.0000

若方阵a的各个行矢量线性相关(linear

correlation),则称方阵a为奇异矩阵。这时线性方程将有无穷多组解。若方阵是奇异矩阵,则反斜线运算因子将发出警告信息。

2.超定系统(Overdetermind system)

实验数据较多,寻求他们的曲线拟合。

如在t内测得一组数据y:

t y

0.0 0.82

0.3 0.72

0.8 0.63

1.1 0.60

1.6 0.55

2.2 0.50

这些数据显然有衰减指数趋势: y(t)~c1+c2e-t

此方程意为y矢量可以由两个矢量逐步逼近而得,一个是单行的常数矢量,一个是由指数e-t项构成,两个参数c1和c2可用最小二乘法求得,它们表示实验数据与方程y(t)~c1+c2e-t之间距离的最小平方和。

例1:求上述数据的最小二乘解。将数据带入方程式y(t)~c1+c2e-t中,可得到含有两个未知数的6个等式,可写成6行2

列的矩阵e.

t=[0 0.3 0.8 1.1 1.6 2.2]’;

y=[0.82 0.72 0.63 0.60 0.55 0.50]’;

e=[ones(size(t)) exp(-t)] %求6个y(t)方程的系数矩阵

c=e\y % 求方程的解

e =

1.0000 1.0000

1.0000 0.7408

1.0000 0.4493

1.0000 0.3329

1.0000 0.2019

1.0000 0.1108

c =

0.4744

0.3434

带入方程得:y(t)~0.4744+0.3434e-t

用此方程可绘制曲线:

t=[0 0.3 0.8 1.1 1.6 2.2]’;

y=[0.82 0.72 0.63 0.60 0.55 0.50]’;

t1=[0:0.1:2.5]’; y1=[ones(size(t1)),exp(-t1)]*c

plot(t1,y1,’b’,t,y,’ro’)

如果一个矩阵的行矢量是线性相关的,则它的最小二乘解并不唯一,因此,a\b运算将给出警告,并产生含有最少元素的基解。

3 .欠定系统: (Underdetermind system)

欠定系统为线性相关系统,其解都不唯一,MATLAB会计算一组构成通解的基解,而方程的特解则用QR分解法决定。

两种解法:最少元素解a\b,最小范数解pinv(a)*b.

例: 用两种方法求解欠定系统。

对a和矢量b分别用a\b和pinv(a)*b求解:

a=[1 1 1;

1 1 -1]

b=[10 6]’

p=a\b

q=pinv(a)*b

a =

1 1 1

1 1 -1

b =

10

6

p =

8.0000

0

2.0000

q =

4.0000

4.0000

2.0000

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值