线性代数应用实例

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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 三阶系统的零输入响应

相关文档
最新文档