- - --
线性代数应用实例
? 求插值多项式
23右表给出函数f(t)上4个点的值,试求三次插值多项式p(t)?a0?a1t?a2t?a3t,
并求f(1.5)的近似值。
23解:令三次多项式函数p(t)?a0?a1t?a2t?a3t过
ti f(ti) 0 3 1 0 2 -1 3 6 表中已知的4点,可以得到四元线性方程组:
?a0?a?a?a?a?0123??a0?2a1?4a2?8a3??a0?3a1?9a2?27a3?3?0 ??1?6 对于四元方程组,笔算就很费事了。应该用计算机求解了,键入: >>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]) 得到x = 1 0 0 0 3 0 1 0 0 -2 0 0 1 0 -2 0 0 0 1 1
得到a0?3,a1??2,a2??2,a3?1,三次多项函数为p(t)?3?2t?2t?t,故f(1.5)近似等于p(1.5)?3?2(1.5)?2(1.5)?(1.5)??1.125。
在一般情况下,当给出函数f(t)在n+1个点ti(i?1,2,2以用n次多项式p(t)?a0?a1t?a2t?2323,n?1)上的值f(ti)时,就可
?antn对f(t)进行插值。
? 在数字信号处理中的应用----- 数字滤波器系统函数
数字滤波器的网络结构图实际上也是一种信号流图。它的特点在于所有的相加节点都限定为双输入相加器;另外,数字滤波器器件有一个迟延一个节拍的运算,它也是一个线
1
性算子,它的标注符号为z?。根据这样的结u 2 x1 y 构图,也可以用类似于例7.4的方法,求它
z?1 的输入输出之间的传递函数,在数字信号处1/4 ?1/4 x3 x2 理中称为系统函数。
z?1 3/8 图1表示了某个数字滤波器的结构图, 现在要求出它的系统函数,即输出y与输入图1 某数字滤波器结构图 u之比。先在它的三个中间节点上标注信号的名称x1,x2,x3,以便对每个节点列写方程。
- .总结资料
- - --
由于迟延算子z?不是数,要用符号代替,所以取q? z?,按照图示情况,可以写出:
x1?qx2?2u1?1?3x2??q??x3?u
4?4?8x3?x111
写成矩阵形式为
?0?x1????x???x2???0??x3???1?q00??2?x??1??1?????1?3?q????x2????u?x=Qx-Pu
4??4??8??x??3??0?0???0经过移项后,系统函数W可以写成:
W=x/u=inv(I-Q)*P 现在可以列写计算系统函数的MATLAB程序ea705,
syms q% 规定符号变量
Q(1,2)?q;Q(2,3)=3/8*q?1/4; Q(3,1)=1; % 给非零元素赋值 Q(3,3)=0;
% 给右下角元素Q(3,3)赋值后,矩阵中未赋值元素都自动置零
P=[2;1/4;0]% 给P赋值
W=inv(eye(3)?Q)*P% 用信号流图求传递函数的公式
程序运行的结果为
W = [?16/(?8?3*q^2?2*q)?2*q/(?8?3*q^2?2*q)]
[ ?2*(3*q?2)/(?8?3*q^2?2*q)?2/(?8?3*q^2?2*q)] [?16/(?8?3*q^2?2*q)?2*q/(?8?3*q^2?2*q)] 我们关心的是以y?x3作为输出的系统函数,故再键入pretty(W(3)) y?16?2qq?8z?1?8??整理后得到W(3)??
u?8?3q2?2q?1.5q2?q?4?1.5z?2?z?1?4用线性代数方法的好处是适用于任何复杂系统,并能用计算机解决问题。
? 信号与系统课程中的应用-----线性时不变系统的零输入响应
描述n阶线性时不变(LTI)连续系统的微分方程为
dnydn?1ydydmudua1n?a2???an?an?1y?b1m???bm?bm?1u,n≥m
dtdtdtdtdt(1)(n-1)
已知y及其各阶导数的初始值为y(0),y(0),…,y(0),求系统的零输入响应。
解:当LTI系统的输入为零时,其零输入响应为微分方程的齐次解(即令微分方程等
号右端为0),其形式为(设特征根均为单根)
y(t)?C1ep1t?C2ep2t???Cnepnt
其中p1,p2,…,pn是特征方程a1?+a2?+…+ an?+ an+1=0的根,它们可用roots(a)语句求得。各系数C1,…,由y及其各阶导数的初始值来确定。对此有
C1+ C2+…+ = y0y0 = y(0)
p1C1+ p2C2+…+ pn=Dy0 (Dy0表示y的导数的初始值y(1)(0))
- .总结资料
nn-1
- - --
…………………………………
n?1n?1n?1p1C1?p2C2???pnCn?Dn?1y0
?1?p1写成矩阵形式为 ????n?1?p11p2?n?1p2?1??C1??y0??pn??C2??Dy0???????
???????????n?1?n?1???pn??Cn??Dy0?即 V·C = Y0, 其解为 C =V \\ Y0 式中C?[C1,C2,,Cn]T;Y0?[y0,Dy0,?1?pV??1???n?1?p11p2?,Dn?1y0]T
???1?pn?? ??n?1?pn?n?1p2?V为德蒙矩阵,在MATLAB的特殊矩阵库中有vander函数可直接生成。
MATLAB程序ea703.m
a=input('输入分母系数向量a=[a1,a2,...]= '); n=length(a)-1;
Y0=input('输入初始条件向量 Y0=[y0,Dy0,D2y0,...]= '); 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);end plot(t,y),grid
? 程序运行结果
用这个通用程序来解一个三阶系统,运行此程序并输入
a=[3,5,7,1]; dt=0.2; tf=8;
而Y0取
[1,0,0];[0,1,0];[0,0,1]
图2 三阶系统的零输入响应
三种情况,用hold on语句使三次运行生成的图形画在一幅图上,得到图2。
? 减肥配方的实现
设三种食物每100克中蛋白质、碳水化合物和脂肪的含量如下表,表中还给出了80年代美国流行的剑桥大学医学院的简捷营养处方。现在的问题是:如果用这三种食物作为每天的主要食物,那么它们的用量应各取多少?才能全面准确地实现这个营养要求。 营养 蛋白质 碳水化合物 脂肪 每100g食物所含营养(g) 脱脂牛奶 36 52 0 大豆面粉 51 34 7 乳清 13 74 1.1 减肥所要求的每日营养量 33 45 3 设脱脂牛奶的用量为x1个单位(100g),大豆面粉的用量为x2个单位(100g),乳清的- .总结资料
- - --
用量为x3个单位(100g),表中的三个营养成分列向量为:
?36??51??13??,a??34?,a??74?,a1??5221??????????0???7???1.1??则它们的组合所具有的营养为
?36??51??13???x?34??x?74?
x1a1?x2a2?x3a3?x1?52??2??3??????0???7???1.1??使这个合成的营养与剑桥配方的要求相等,就可以得到以下的矩阵方程:
?36?52???0
5113??x1??33??x???45??3474???2???71.1????3???x3???Ax?b
用MATLAB解这个问题非常方便,列出程序ag763如下:
A=[36,51,13;52,34,74;0,7,1.1] b=[33;45;3] x=A\\b
程序执行的结果为:
? 0.2772x??? 0.3919?? 0.2332?? ???即脱脂牛奶的用量为27.7g,大豆面粉的用量为39.2g,乳清的用量为23.3g,就能保证所需
的综合营养量。
? 人口迁徙模型
设在一个大城市中的总人口是固定的。人口的分布则因居民在市区和郊区之间迁徙而变化。每年有6%的市区居民搬到郊区去住,而有2%的郊区居民搬到市区。假如开始时有30%的居民住在市区,70%的居民住在郊区,问十年后市区和郊区的居民人口比例是多少?30年、50年后又如何?
这个问题可以用矩阵乘法来描述。把人口变量用市区和郊区两个分量表示,即
?xck?xk???,其中xc为市区人口所占比例,xs为郊区人口所占比例,k表示年份的次序。在
?xsk??xc0??0.3?k=0的初始状态:x0??????。
?xs0??0.7?一年以后,市区人口为xc1= (1-0.02) xc0+0.06xs0,郊区人口xs1= 0.02xc0 + (1-0.06)xs0,用矩阵乘法来描述,可写成:
- .总结资料
- - --
?xc1??0.940.02??0.3?? 0.2960? x1???????Ax?0?????? 0.7040??xs1??0.060.98??0.7?2此关系可以从初始时间到k年,扩展为xk?Axk?1?Axk?2??Akx0,用下列MATLAB
程序进行计算:
A=[0.94,0.02;0.06,0.98] x0=[0.3;0.7] x1=A*x0, x10=A^10*x0 x30=A^30*x0 x50=A^50*x0
程序运行的结果为:
? 0.2960?? 0.2717?? 0.2541?? 0.2508?x1??,x10??,x30??,x50??, ????? 0.7040?? 0.7283?? 0.7459?? 0.7492?无限增加时间k,市区和郊区人口之比将趋向一组常数 0.25/0.75。为了弄清为什么这
个过程趋向于一个稳态值,我们改变一下坐标系统。在这个坐标系统中可以更清楚地看到
TTT
乘以矩阵A的效果。选u1为稳态向量[0.25,0.75]的任意一个倍数,令u1=[1,3]和u2=[-1,1]。可以看到,用A乘以这两个向量的结果不过是改变向量的长度,不影响其相角(方向):
?0.940.02??1??1?Au1??????u1 ????0.060.98??3??3??0.940.02???1???0.92?Au2?????0.92u2 ?????0.060.98??1??0.92?
初始向量x0可以写成这两个基向量u1和u2的线性组合;
?0.30??1???1?x0???0.25??0.05??0.25u1?0.05u2 ??????0.70??3??1?因此
xk?Akx0?0.25u1?0.05(0.82)ku2
式中的第二项会随着k的增大趋向于零。如果只取小数点后两位,则只要k>27,这第二项就可以忽略不计而得到
xkk?27?0.25? ?Akx0?0.25u1????0.75?适当选择基向量可以使矩阵乘法结果等价于一个简单的实数乘子,避免相角项出现,使得问题简单化。这也是方阵求特征值的基本思想。
这个应用问题实际上是所谓马尔可夫过程的一个类型。所得到的向量序列x1,x2,...,xk称为马尔可夫链。马尔可夫过程的特点是k时刻的系统状态xk完全可由其前一个时刻的状态xk-1所决定,与k-1时刻之前的系统状态无关。
- .总结资料