当前位置:文档之家› 线性代数应用实例

线性代数应用实例

线性代数应用实例 ● 求插值多项式右表给出函数()f t 上4个点的值,试求三次插值多项式230123()p t a a t a t a t =+++,并求(1.5)f 的近似值。

解:令三次多项式函数230123()p t a a t a t a t =+++过表中已知的4点,可以得到四元线性方程组:⎪⎪⎩⎪⎪⎨⎧=+++-=+++=+++=627931842033210321032100a 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 =+上的值()i f t 时,就可以用n 次多项式2012()n n p t a a t a t a t =++++对()f t 进行插值。

● 在数字信号处理中的应用----- 数字滤波器系统函数数字滤波器的网络结构图实际上也是一种信号流图。

它的特点在于所有的相加节点都限定为双输入相加器;另外,数字滤波器器件有一个迟延一个节拍的运算,它也是一个线性算子,它的标注符号为z -1。

根据这样的结构图,也可以用类似于例7.4的方法,求它的输入输出之间的传递函数,在数字信号处理中称为系统函数。

图1表示了某个数字滤波器的结构图,现在要求出它的系统函数,即输出y 与输入u 之比。

先在它的三个中间节点上标注信号的名称x1,x2,x3,以便对每个节点列写方程。

由于迟延算子z -1不是数,要用符号代替,所以取q = z -1,按照图示情况,可以写出:1223312311844x qx ux q x u x x =+⎛⎫=-+ ⎪⎝⎭=写成矩阵形式为11223300231100844010q 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.54y 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 tu 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 111y y y C C C p p p p p p n n n n n n n 即 V ·C = Y 0 , 其解为 C =V \ Y 0式中 112000[,,,];[,D ,,D ]n n C C C y y y -==T T 0C Y⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡=---1121121111n n n n n p p p p p pV V 为范德蒙矩阵,在MATLAB 的特殊矩阵库中有vander 函数可直接生成。

MATLAB 程序ea703.ma=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年代美国流行的剑桥大学医学院的简捷营养处方。

现在的问题是:如果用这三种食物作为每天的主要食物,那么它们的用量应各取多少?才能全面准确地实现这个营养要求。

12用量为x 3个单位(100g ),表中的三个营养成分列向量为:图2 三阶系统的零输入响应12136511352,34,74,07 1.1a a a ⎡⎤⎡⎤⎡⎤⎢⎥⎢⎥⎢⎥===⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦⎣⎦⎣⎦则它们的组合所具有的营养为11223312336511352347407 1.1x a x a x a x x x ⎡⎤⎡⎤⎡⎤⎢⎥⎢⎥⎢⎥++=++⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦⎣⎦⎣⎦使这个合成的营养与剑桥配方的要求相等,就可以得到以下的矩阵方程:123365113335234744507 1.13x x Ax b x ⎡⎤⎡⎤⎡⎤⎢⎥⎢⎥⎢⎥=⇒=⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦⎣⎦⎣⎦用MATLAB 解这个问题非常方便,列出程序ag763如下:A=[36,51,13;52,34,74;0,7,1.1] b=[33;45;3] x=A\b程序执行的结果为:0.2772 0.3919 0.2332x ⎡⎤⎢⎥=⎢⎥⎢⎥⎣⎦即脱脂牛奶的用量为27.7g ,大豆面粉的用量为39.2g ,乳清的用量为23.3g ,就能保证所需的综合营养量。

人口迁徙模型设在一个大城市中的总人口是固定的。

人口的分布则因居民在市区和郊区之间迁徙而变化。

每年有6%的市区居民搬到郊区去住,而有2%的郊区居民搬到市区。

假如开始时有30%的居民住在市区,70%的居民住在郊区,问十年后市区和郊区的居民人口比例是多少?30年、50年后又如何?这个问题可以用矩阵乘法来描述。

把人口变量用市区和郊区两个分量表示,即,ck k sk x x x ⎡⎤=⎢⎥⎣⎦其中x c 为市区人口所占比例,x s 为郊区人口所占比例,k 表示年份的次序。

在k=0的初始状态:0000.30.7c s x x x ⎡⎤⎡⎤==⎢⎥⎢⎥⎣⎦⎣⎦。

一年以后,市区人口为x c1= (1-0.02) x c0+0.06x s0,郊区人口x s1= 0.02x c0 + (1-0.06)x s0,用矩阵乘法来描述,可写成:11010.940.020.3 0.29600.060.980.7 0.7040c s x x Ax x ⎡⎤⎡⎤⎡⎤⎡⎤==⋅==⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦⎣⎦⎣⎦⎣⎦此关系可以从初始时间到k 年,扩展为2120k k k k x Ax A x A x --====,用下列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程序运行的结果为:1103050 0.2960 0.2717 0.2541 0.2508,,,, 0.7040 0.7283 0.7459 0.7492x x x x ⎡⎤⎡⎤⎡⎤⎡⎤====⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦⎣⎦⎣⎦⎣⎦无限增加时间k ,市区和郊区人口之比将趋向一组常数 0.25/0.75。

为了弄清为什么这个过程趋向于一个稳态值,我们改变一下坐标系统。

在这个坐标系统中可以更清楚地看到乘以矩阵A 的效果。

选u 1为稳态向量[0.25,0.75]T 的任意一个倍数,令u 1=[1,3]T 和u 2=[-1,1]T。

可以看到,用A 乘以这两个向量的结果不过是改变向量的长度,不影响其相角(方向):110.940.02110.060.9833Au u ⎡⎤⎡⎤⎡⎤===⎢⎥⎢⎥⎢⎥⎣⎦⎣⎦⎣⎦220.940.0210.920.920.060.9810.92Au u --⎡⎤⎡⎤⎡⎤===⎢⎥⎢⎥⎢⎥⎣⎦⎣⎦⎣⎦初始向量x0可以写成这两个基向量u1和u2的线性组合;0120.30110.250.050.250.050.7031x u u -⎡⎤⎡⎤⎡⎤==⋅-⋅=-⎢⎥⎢⎥⎢⎥⎣⎦⎣⎦⎣⎦因此0120.250.05(0.82)k k k x A x u u ==-式中的第二项会随着k 的增大趋向于零。

相关主题