线性代数应用实例
求插值多项式
右表给出函数f(t)上4个点的值,试求三次插值多项式
p(t) a 0 a-|t a 2t 2 a 3t 3 ,
并求f (1.5)的近似值。
角军:令三次多项式函数 p(t) a 0 a 1t a 2t 2
表中已知的4点,可以得到四元线性方程组:
a 。
3 a o a 1 a 2 a 3 0 a o
2a 1 4a 2 8a 3 1 a o
3a 1
9a 2
27a 3
6
对于四元方程组,笔算就很费事了。应该用计算机求解了,键入:
2 3
2,a 3 1,三次多项函数为 p(t) 3 2t
2t t ,故f(1.5)近
似等于 p(1.5) 3 2(1.5) 2(1.5)2 (1.5)3
1.125。
在一般情况下,当给出函数
f(t)在n+1个点t i (i 1,2,卅,n 1)上的值f(tj 时,就可
以用n 次多项式p(t) a 。a 1t a ?t 2
卅 a n t n
对f (t)进行插值。
在数字信号处理中的应用——数字滤波器系统函数
数字滤波器的网络结构图实际上也是一种信号流图。它的特点在于所有的相加节点都 限定为双输入相加器;另外,数字滤波器器件有一个迟延一个节拍的运算,它也是一个线 性算子,它的标注符号为z 1
o 根据这样的结 构图,也可以用
类似
于例 7.4的方法,求它
的输入输出之间的传递函数,在数字信号处 理中称为系统函
数。 图1表示了某个数字滤波器的结构图, 现在要求出它的系统函数,即输出 y 与输入 u 之比。先在它的三个中间节点上标注
信号 的名称x1,x2,x3,以便对每个节点列写方程。
t i
0 1 2 3 f(t i )
3
-1
6
得到x = 1 0 0 0 3
0 1
0 -2
0 0 1 0 -2
0 0 0 1 1 u
m ---
2
X 1
y
-i ---- 11 -- 1
—
z 1
■ V
1/4
J 1 1/4
■
* x 2
二―]X
3
z 1
,.
3/8
图1某数字滤波器结构图
>>A=[1,0,0,0;1,1,1,1;1,2,4,8;1,3,9,27], b=[3;0;-1;6], s=rref([A,b]) 得到 a 0 3,a 1
2, a 2
描述n 阶线性时不变(LTI )连续系统的微分方程为
d n y
d n 1y
dy
」d m
u
」du 」
a
n ,
a
n 1 y b
1 m
b
m
b
m 1u
,
a
1 n a 2dt dt
dt dt dt
y 及其各阶导数的初始值为 y (0),y ⑴(0),…,y (n -1)(0),求系统的零输入响应。
当LTI 系统的输入为零时,其零输入响应为微分方程的齐次解(即令微分方程等
0),其形式为(设特征根均为单根)
P 1, p 2,…,p n 是特征方程 a 1 n +a 2
n 1
+…+ a n + a n +1 =0
的根,它们可用 roots(a)
各系数 C 1,…,C n 由y 及其各阶导数的初始值来确定。对此有
C 1+C 2+…+C n = y o y o = y(0)
由于迟延算子Z 1
不是数,
要用符号代替,所以取 qx 2 2u 3 8q
x i X 2 X 3
X 3
X i
写成矩阵形式为
Z J 按照图示情况,可以写出
0 q 0
2 X 1
3 1
X 1
1 0 X 2
-q —
X 2 —
8
4
4 X 3
1
X 3
x = Qx - Pu
经过移项后,系统函数 现在可以列写计算系统函数的
syms q
Q(1,2) q; Q(2,3)=3/8*q Q(3,3)=0; P=[2;1/4;0] W=inv(eye (3) Q)*P
程序运行的结果为
可以写成:
W = x/u = inv(l - Q)* P
MATLAB 程序 ea705,
%规定符号变量
1/4; Q(3,1)=1;
%给非零元素赋值
%给右下角元素Q ( 3,3 )赋值后,矩阵中未赋值元素都自动置零
%给P 赋值
%用信号流图求传递函数的公式
我们关心的是以 整理后得到
16/( 8 2*(3*q 16/( 8 3*qA2 2*q) 2*q/( 8 3*qA2 2*q) ]
2)/( 8 3*qA2 2*q) 2/( 8 3*qA2 2*q)] 3*qA2 2*q) 2*q/( 8 3*q A
2
2*q)]
y x3作为输出的系统函数,
故再键入
pretty(W(3))
W(3) - —
16
22q
u 8 3q 2q 1.5q 2
q 4
z 1 8
1.5z 2 z 1 4
用线性代数方法的好处是适用于任何复杂系统,并能用计算机解决问题。
信号与系统课程中的应用
线性时不变系统的零输入响应
已知
解:
号右端为
n
a
2 y(t) C 1e p 1
t
C 2e p 2
t
C n e P n
t
其中 语句求得。
x
u W
P1C1+P2C2+…+ p n C n=Dy o (Dy o表示y的导数的初始值y⑴(0))
P 1n
叱1
P 2 1
C 2
p n 1C p
n
C
n
D n 1y 0
1
1
1 C 1 y 0 写成矩阵形式为
p 1
P 2
P n
C 2
Dy °
n 1
n 1
n 1
-n 1
P 1 P 2
P n
C
n
D
y °
即 VC = Y 0 ,其解为 C =V \ Y 0
式中
C [C
1 , C
2 ,
,C n ]T ;
Y o [y o , Dy 。,]
||,D n S]
1
1
1
V
P 1
P 2
P n
n 1
n 1
n 1
P 1 P 2
P n
V 为范德蒙矩阵,在 MATLAB 的特殊矩阵库中有 MATLAB 程序 ea703.m
a=input(' 输入分母系数向量 a=[a1 ,a2,...]=');
n=length(a)-1;
p=roots(a);V=rot90(vander(p));c= V\Y0'; dt=input('dt='); tf=input('tf=') t=0:dt:tf; y=zeros(1
, length(t));
for k=1: n y= y+c(k)*exp(p(k)*t);e nd plot(t ,y),grid
程序运行结果
用这个通用程序来解一个三阶系统, 运行此程序
并输入
a=[3,5,7,1]; dt=0.2; tf=8;
而Y0取
[1,0,0];[0 ,1,0];[0 ,0,1]
三种情况,用hold on 语句使三次运行生成的图形画在一幅图上,得到图 2。
减肥配方的实现
设三种食物每100克中蛋白质、碳水化合物和脂肪的含量如下表,表中还给出了
80年
代美国流行的剑桥大学医学院的简捷营养处方。现在的问题是:如果用这三种食物作为每 天的主要食物,那么它们的用量应各取多少?才能全面准确地实现这个营养要求。
营养 每100g 食物所含营养 (g)
减肥所要求的 每日营
养量
脱脂牛奶
大豆面粉
乳清
蛋白质 36 51 13 33 碳水化合物
52 34 74 45 脂肪
7
1.1
3
设脱脂牛奶的用量为 X 1个单位(100g ),大豆面粉的用量为 X 2个单位(100g ),孚L 清的 用量为X 3个单位(100g ),表中的三个营养成分列向量为:
vander 函数可直接生成。
Y0=input('
输入初始条件向量 Y0=[y0
,Dy0,D2y0,...]=');
0 2 4 6 8
图2三阶系统的零输入响应
在k=0 的初始状态:x0 x c0
x s0
0.3
0.7
一年以后,市区人口为
矩阵乘法来描述,可写成:
X ci= (1-0.02) X co+O.O6x s0,郊区人口x si= O.O2x co + (1-O.O6)X so,用
x
1
0.94 0.02 0.3
Ax0
0.06 0.98 0.7 0
0.2960
0.7040
36 51 13
a1 52 , a2 34 , a1 74 ,
07 1.1
则它们的组合所具有的营养为
36 51 13 x1a1 x2a2 x3a3 x1 52 x2 34 x3 74
0 7 1.1
使这个合成的营养与剑桥配方的要求相等,就可以得到以下的矩阵方程:
36 51 13 x1 33
52 34 74 x2 45 Ax b
0 7 1.1 x3 3
用MATLAB 解这个问题非常方便,列出程序ag763 如下:
A=[36,51,13;52,34,74;0,7,1.1]
b=[33;45;3]
x=A\b 程序执行的结果为:
0.2772
x 0.3919
0.2332
即脱脂牛奶的用量为27.7g,大豆面粉的用量为39.2g,乳清的用量为23.3g,就能保证所需
的综合营养量。
人口迁徙模型
设在一个大城市中的总人口是固定的。人口的分布则因居民在市区和郊区之间迁徙而变化。每年有6% 的市区居民搬到郊区去住,而有2%的郊区居民搬到市区。假如开始时有30% 的居民住在市区,70% 的居民住在郊区,问十年后市区和郊区的居民人口比例是多少?30 年、50 年后又如何?
这个问题可以用矩阵乘法来描述。把人口变量用市区和郊区两个分量表示,即
x
ck
X ,其中x c为市区人口所占比例,x s为郊区人口所占比例,k表示年份的次序。
x
sk
x
s1
MATLAB 程序进行计算:
A=[0.94,0.02;0.06,0.98] x0=[0.3;0.7] x1=A*x0, x10=AA10*x0 x30=AA30*x0 x50=A A
50*x0
程序运行的结果为:
无限增加时间
k ,市区和郊区人口之比将趋向一组常数
个过程趋向于一个稳态值,我们改变一下坐标系统。在这个坐标系统中可以更
清楚地看到 乘以矩阵A 的效果。选U 1为稳态向量[0.25,0.75] T
的任意一个倍数,令5=[1,3]丁和U 2=[-1,1] T
。 可以看到,用
适当选择基向量可以使矩阵乘法结果等价于一个简单的实数乘子,避免相角项出现, 使得问题简单化。这也是方阵求特征值的基本思想。
这个应用问题实际上是所谓马尔可夫过程的一个类型。所得到的向量序列 X 1 ,x 2,...,X k
称
为马尔可夫链。马尔可夫过程的特点是
k 时刻的系统状态X k 完全可由其前一个时刻的状态
x k-1所决定,与k-1时刻之前的系统状态无关。
此关系可以从初始时间到k 年,扩展为x k Ax k
1 A x
k 2
川
A k x 。,用下列
0.2960 x 0.7040 , x 10
0.2717
,x
30
0.7283
0.2541
0.7459 X
50
0.2508
0.7492
0.25/0.75。为了弄清为什么这
A 乘以这两个向量的结果不过是改变向量的长度,不影响其相角(方向)
因此
Au i
0.94 0.02 1 1 u 1 0.06 0.98 3
3 Au 2
0.94 0.02 1
0.92
0.06 0.98
1
0.92
初始向量 x0可以写成这两个基向量
u1和
0.30
1
1
X 。
0.25
0.05
0.70
3
1
0.92u 2
0.25u 1 0.05u 2 0.25u i
k
0.05(0.82) U 2
式中的第二项会随着 二项就可以忽略不计而得到
k 的增大趋向于零。如果只取小数点后两位,则只要
k>27,这第
A k x 0
0.25u 1
0.25 0.75
u2的线性组合;
k
X k A X 0
交通流的分析
某城市有两组单行道,
构成了一个包含四个节点
A,B,C,D 的十字路口如图6.5.2所示。
在交通繁忙时段的汽车从外部进出此十字路口的流量(每小时的车流数)标于图上。现要 求计算每两个节点之间路段上的交通流量
X l ,X 2,x 3,x 4。
解:在每个节点上,进入和离开的车数应该相等,这就决定了四个流通的方程: 节点 A: x i +450= X 2+6IO 节点 B: x 2+520= X 3+480 节点 C: x 3+390= X 4+600 节点 D: x 4+640= X 2+310
将这组方程进行整理,写成矩阵形式:
0 0 1 -1 ? 210
■
0 0
0,0
注意这个系数矩阵所代表的意义,它的左边四列从左至右依次为变量
X 1,X 2,x 3,x 4的系
数,第五列则是在等式右边的常数项。把第四列移到等式右边,可以按行列写恢复为方程, 其结果为:
X 1=X 4+330, X 2=X 4+170, X 3=X 4+210 0 = 0
由于最后一行变为全零,这个精简行阶梯形式只有三行有效,也就是说四个方程中有 一个是相依的,实际上只有三个有效方程。方程数比未知数的数目少,即没有给出足够的 信息来唯一地确定 X 1 ,X 2,X 3,和X 4。其原因也不难从物理上想象,题目给出的只是进入和离 开这个十字路区的流量,如果有些车沿着这四方的单行道绕圈,那是不会影响总的输入输 出流量的,但可以全面增加四条路上的流量。所以 X 4被称为自由变量,实际上它的取值也 不能完全自由,因为规定了这些路段都是单行道,
X 1,X 2,X 3,和X 4。都不能取负值。 所以要准确了解这里的交通流情况,还应该在
X 1,X 2,X 3,和X 4中,再检测一个变量。
乙
x 2
=160
X 2 X 3
=-40 x
x 4
= 210
X 1
X 4 = -330
其系数增广矩阵为:
1 1
-160
1
1
—40 [A,b]
1
1 210 * 1
1 ?-330
1
用消兀法求其行阶梯形式,
或者直接调用 1 0 0 -1 ? 330
||
0 1
-1 ? 170
为U0
二
*
U0=rref([A,b]), 可以得出其精简行阶梯形式
图3单行线交通流图
价格平衡模型
在Leon tiff成为诺贝尔奖金获得者的历史中,线性代数曾起过重要的作用,我们来看看他的基本思路。假定一个国家或区域的经济可以分解为n个部门,这些部门都有生产产
品或服务的独立功能。设单列n元向量x是这些n个部门的产出,组成在R n空间的产出向
量。先假定该社会是自给自足的经济,这是一个最简单的情况。因此各经济部门生产出的产品,完全被自己部门和其它部门所消费。Leontiff提出的第一个问题是,各生产部门的实
际产出的价格p应该是多少,才能使各部门的收入和消耗相等,以维持持续的生产。
Leon tiff的输入输出模型中的一个基本假定是:对于每个部门,存在着一个在R n空间
单位消耗列向量V i,它表示第i个部门每产出一个单位(比如100万美金)产品,由本部门和其他各个部门消耗的百分比。在自给自足的经济中,这些列向量中所有元素的总和应该为1。把这n个V i,并列起来,它可以构成一个n x n的系数矩阵,可称为内部需求矩阵V。
举一个最简单的例子,假如一个自给自足的经济体由三个部门组成,它们是煤炭业、电力业和钢铁业。它们的单位消耗列向量和销售收入列向量p如下表:
如果电力业产出了100个单位的产品,有40个单位会被煤炭业消耗,10个单位被自己消耗,而被钢铁业消耗的是
50个单位,各行业付出的费用为:
0.4
P e V2 P e 0.1
0.5
这就是内部消耗的计算方法,把几个部门都算上,可以写出
P c P c 各部门消耗成本=卩他P e V e P s V s血弘弘]P e 销售收入P e
P s P s
0. 0.4 0.6
其中V V c, V e,V s 0.6 0.1 0.2
0.4 0.5 0.2
于是总的价格平衡方程可以写成为:
P -Vp = 0
(I -V ) P =0
此等式右端常数项为零,是一个齐次方程。它有非零解的条件是系数行列式等于零,或者用行阶梯简化来求解。
用MATLAB 语句写出其解的表示式:
V=[0.,0.4,0.6;0.6,0.1,0.2;0.4,0.5,0.2],
U0 = rref([[eye(3)-V],zeros(3,1)])
程序运行的结果为
1.0000
0 -0.9394 0 U 0
1.0000 -0.8485
0 0 0 0
这个结果是合理的,
简化行阶梯形式只有两行,
说明[I-V ]的秩是2,所以它的行列式必
定为零。由于现在有三个变量,只有两个方程,必定有一个变量可以作为自由变量。记住
U0矩阵中各列的意义,它们分别是原方程中
p c , p e , p s ,的系数,所以简化行阶梯矩阵 U0
表示的是下列方程:
P c - 0.9394 p s = 0 P c = 0.9394 p s p e - 0.8485 p s = 0
p e = 0.8485 p s
这里取p s 为自由变量,所以煤炭业和电力业的价格应该分别为钢铁业价格的 0.94和0.85
倍。如果钢铁业产品价格总计为 100万元,则煤炭业的产品价格总计为
94万,电力业的
价格总计为85万
网络的矩阵分割和连接
在电路设计中,经常要把复杂的电路分割为局部电路,每一个电路都用一个网络’黑 盒子’来表示。黑盒子的输入为U i ,i i ,输出为U 2,i 2,其输入输出关系用一个矩阵 A 来表示(如
图 7.6.1 所示):
u 2
u 1
A i 2
h
A 是2X 2矩阵,称为该局部电路的传输矩阵。
把复杂的电路分成许多串接局部电路,分别求出 它们的传输矩阵,再相乘起来,得到总的传输矩阵, 可以使分析电路的工作简化。
图4单个子网络模型
以图7.6.2为例,把两个电阻组成的分压电路分 成两个串接的子网络。 第一个子网络只包含电阻
R 1,
第二个子网络只包含电阻
R 2,列出第一个子网络的电路方程为:
同样可列出第二个子网络的电路方 程,
I 3 I 2
U
2 / R
2>
U 3
U 2
写成矩阵方程为:
U 3
1
0 U 2
A
A
i
3 1/R 2
1
i
2
i i 2
12 11, U 2
U 1
写成矩阵方程为:
u 2
1 R 1
U 1 八
A
i 2 0 1
i 1
图5两个子网络串联模型
从上分别得到两个子网络的传输矩阵
1 R1 1 0
A1 1, A2
10 1 21/ R2 1
整个电路的传输矩阵为两者的乘积
1 R1 1 0 1 R1
A A1 A2
1 20 1 1/R
2 1 1/R2 1 R1/R2
实用中通常对比较复杂的网络进行分段,对于这样简单的电路是不分段的,这里只是一个示例。