线性代数应用实例
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
线性代数应用实例 ● 求插值多项式
右表给出函数()f t 上4个点的值,试求三次插值多项式23
0123()p t a a t a t a t =+++,
并求(1.5)f 的近似值。
解:令三次多项式函数23
0123()p t a a t a t a t =+++过
表中已知的4点,可以得到四元线性方程组:
⎪⎪⎩⎪⎪⎨
⎧=+++-=+++=+++=6
279318420
33
210321032100
a a a a a a a a a a a a a 对于四元方程组,笔算就很费事了。应该用计算机求解了,键入:
>>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
得到01233,2,2,1a a a a ==-=-=,三次多项函数为23
()322p t t t t =--+,故(1.5)f 近似等于23
(1.5)32(1.5)2(1.5)(1.5) 1.125p =--+=-。
在一般情况下,当给出函数()f t 在n+1个点(1,2,,1)i t i n =+L 上的值()i f t 时,就可
以用n 次多项式2012()n
n p t a a t a t a t =++++L 对()f t 进行插值。
● 在数字信号处理中的应用----- 数字滤波器系统函数
数字滤波器的网络结构图实际上也是一种信号流图。它的特点在于所有的相加节点都限定为双输入相加器;另外,数字滤波器器件有一个迟延一个节拍的运算,它也是一个线性算子,它的标注符号为z -1
。根据这样的结构图,也可以用类似于例7.4的方法,求它的输入输出之间的传递函数,在数字信号处理中称为系统函数。
图1表示了某个数字滤波器的结构图,现在要求出它的系统函数,即输出y 与输入u 之比。先在它的三个中间节点上标注信号的名称x1,x2,x3,以便对每个节点列写方程。
由于迟延算子z -1不是数,要用符号代替,所以取q = z -1
,按照图示情况,可以写出:
122331
23
118
44x qx u
x q x u x x =+⎛⎫=-+ ⎪⎝⎭=
写成矩阵形式为
11223300
23
11008
4401
0q x x x q x x x ⎡⎤⎡⎤⎡⎤⎡⎤⎢⎥⎢⎥⎛⎫⎢⎥⎢⎥⎢⎥⎢⎥==-+⇒ ⎪⎢⎥⎢⎥⎢⎥⎢⎥⎝⎭⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦⎣⎦⎣⎦⎣
⎦x u x =Qx -Pu
经过移项后,系统函数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)) 整理后得到 1222116288
(3)832 1.54 1.54
y q q z W u q q q q z z -----++====-+--++-++
用线性代数方法的好处是适用于任何复杂系统,并能用计算机解决问题。
信号与系统课程中的应用-----线性时不变系统的零输入响应
描述n 阶线性时不变(LTI )连续系统的微分方程为
,d d d d d d d d d d 111121u b t u b t
u b y a t y a t y a t y a m m m m n n n n n ++-+++=++++ΛΛ n ≥m
已知y 及其各阶导数的初始值为y (0),y (1)(0),…,y (n-1)
(0),求系统的零输入响应。
解:当LTI 系统的输入为零时,其零输入响应为微分方程的齐次解(即令微分方程等
号右端为0),其形式为(设特征根均为单根)
t p n t p t p n C C C t y e e e )(2121+++=Λ
其中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 0 y 0 = y (0)
p 1C 1+ p 2C 2+…+ p n C n =D y 0 (D y 0表示y 的导数的初始值y (1)(0))
…………………………………
011212111D y C p C p C p n n n n n n ----=+++Λ
写成矩阵形式为 ⎥⎥⎥⎥⎦
⎤⎢⎢⎢⎢⎣⎡=⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡----0100211121121D D 111
y y y C C C p p p p p p n n n n n n n M M ΛM O M M ΛΛ 即 V ·C = Y 0 , 其解为 C =V \ Y 0
式中 112000[,,,];[,D ,,D ]n n C C C y y y -==T T
0C Y L L
⎥⎥⎥⎥⎦
⎤
⎢⎢⎢⎢⎣⎡=---11211
21
111n n n n n p p p p p p Λ
M O
M
M ΛΛV 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]
三种情况,用hold on 语句使三次运行生成的图形画在一幅图上,得到图2。
● 减肥配方的实现
设三种食物每100克中蛋白质、碳水化合物和脂肪的含量如下表,表中还给出了80年代美国流行的剑桥大学医学院的简捷营养处方。现在的问题是:如果用这三种食物作为每天的主要食物,那么它们的用量应各取多少?才能全面准确地实现这个营养要求。
营养 每100g 食物所含营养(g)
减肥所要求的每日营养量
脱脂牛奶 大豆面粉 乳清 蛋白质 36 51 13 33 碳水化合物 52 34 74 45 脂肪
7
1.1
3
12用量为x 3个单位(100g ),表中的三个营养成分列向量为:
图2 三阶系统的零输入响应