MATLAB 与差分.ppt
用用MatlabMatlab求解差分方程问题求解差分方程问题一阶线性常系数差分方程一阶线性常系数差分方程线性常系数差分方程组线性常系数差分方程组例例1:污水处理厂每天可将处理池的污水浓度降低一:污水处理厂每天可将处理池的污水浓度降低一个固定比例个固定比例q,问多长时间才能将污水浓度降低一半?,问多长时间才能将污水浓度降低一半?差分方程是在离散时段上描述现实世界中变差分方程是在离散时段上描述现实世界中变化过程的数学模型化过程的数学模型.记第记第k天的污水浓度为天的污水浓度为ck,则第则第k+1天的污水浓度为天的污水浓度为 ck+1=(1-q)ck,k=0,1,2,从从k=0开始递推开始递推n次得次得 以以cn=c0/2代入即求解。代入即求解。一阶线性常系数差分方程一阶线性常系数差分方程濒危物种的自然演变和人工孵化问题:濒危物种的自然演变和人工孵化问题:沙丘鹤属于濒危物种,它在较好自然环境下,沙丘鹤属于濒危物种,它在较好自然环境下,年均增长率仅为年均增长率仅为1.94%,而在中等和较差环境下年,而在中等和较差环境下年均增长率分别为均增长率分别为-3.24%和和-3.82%,如果在某自,如果在某自然保护区内开始有然保护区内开始有100只鹤,建立描述其数量变化只鹤,建立描述其数量变化规律的模型,并作数值计算。规律的模型,并作数值计算。模型建立模型建立 记第记第k年沙丘鹤的数量为年沙丘鹤的数量为xk,年均增长率为年均增长率为r,则第则第k+1年鹤的数量为年鹤的数量为xk+1=(1+r)xk k=0,1,2 已知已知x0=100,在较好,中等和较差的自然在较好,中等和较差的自然环境下环境下 r=0.0194,-0.0324,和和-0.0382 我们利用我们利用Matlab编程,递推编程,递推20年后观察沙丘鹤的数量变年后观察沙丘鹤的数量变化情况:化情况:1、试建立一个关于变量试建立一个关于变量n,r的函数,描绘沙丘的函数,描绘沙丘鹤的数量变化情况。鹤的数量变化情况。2、人工孵化是挽救濒危物种的措施之一,如果每、人工孵化是挽救濒危物种的措施之一,如果每年孵化年孵化5只鹤放入保护区,观察在中等自然条件下只鹤放入保护区,观察在中等自然条件下沙丘鹤的数量如何变化沙丘鹤的数量如何变化如果我们想考察每年孵化多少只比较合适,可以令如果我们想考察每年孵化多少只比较合适,可以令 Xk+1=aXk+b ,a=1+rXk+1=aXk+5 ,a=1+r在在command窗口里调窗口里调用用sqh函数函数 k=(0:20);y1=sqh(20,0.0194);y2=sqh(20,-0.0324);y3=sqh(20,-0.0382);round(y1,y2,y3)function x=sqh(n,r)a=1+r;x=100;for k=1:n x(k+1)=a*x(k);end plot(k,y1,k,y2,k,y3)在同一坐标系下画图在同一坐标系下画图 plot(k,y1,:)plot(k,y2,-)plot(k,y3,r)用用gtext(r=0.0194),gtext(r=-0.0324),gtext(r=-0.0382)在图上做标记。在图上做标记。利用利用plot 绘图观察数量绘图观察数量变化趋势变化趋势考虑人工饲养因素,可建立考虑人工饲养因素,可建立n,r,b的函数的函数:function x=fhsqh(n,r,b)a=1+r;X=100;For k=1:n X(k+1)=a*x(k)+b;end 对于不同的对于不同的b,可用同样的方法进行观察,可用同样的方法进行观察;注:如果第注:如果第k+1时段变量时段变量Xk+1不仅取决于第不仅取决于第k时时段变量段变量Xk,而且与以前时段变量有关,就要用高阶,而且与以前时段变量有关,就要用高阶差分方程来描述,但方法与前面的分析相同。差分方程来描述,但方法与前面的分析相同。一阶线性常系数差分方程的解、平衡点及其稳定性一阶线性常系数差分方程的解、平衡点及其稳定性自然环境下自然环境下,b=0人工孵化条件下人工孵化条件下令令xk=xk+1=x得差分方程的平衡点得差分方程的平衡点k时,时,xkx,称平衡点是稳定的称平衡点是稳定的线性常系数差分方程组线性常系数差分方程组汽车租赁公司的运营问题:汽车租赁公司的运营问题:一家汽车租赁公司在一家汽车租赁公司在3个相邻的城市运营,为方便个相邻的城市运营,为方便顾客起见公司承诺,在一个城市租赁的汽车可以在任顾客起见公司承诺,在一个城市租赁的汽车可以在任意一个城市归还。根据经验估计和市场调查,一个租意一个城市归还。根据经验估计和市场调查,一个租赁期内:赁期内:A 市租赁的汽车在市租赁的汽车在A,B,C市归还的比例分别为市归还的比例分别为 0.6,0.3,0.1;B 市租赁的汽车归还比例市租赁的汽车归还比例0.2,0.7,0.1;C 市租赁的归还比例分别为市租赁的归还比例分别为0.1,0.3,0.6。若公司开业时将若公司开业时将600辆汽车平均分配到辆汽车平均分配到3个城市,个城市,建立运营过程中汽车数量在建立运营过程中汽车数量在3个城市间转移的模型,并个城市间转移的模型,并讨论时间充分长以后的变化趋势。讨论时间充分长以后的变化趋势。0.60.3A B CA B CA B C假设在假设在每个租每个租赁期开赁期开始能把始能把汽车都汽车都租出去,租出去,并都在并都在租赁期租赁期末归还末归还0.10.70.20.10.60.30.1模型及其求解模型及其求解记第记第k个租赁期末公司在个租赁期末公司在ABC市的汽车数量市的汽车数量分别为分别为x1(k),x2(k),x3(k)(也是第(也是第k+1个租赁个租赁期开始各个城市租出去的汽车数量),很期开始各个城市租出去的汽车数量),很容易写出第容易写出第k+1个租赁期末公司在个租赁期末公司在ABC市的市的汽车数量为汽车数量为(k=0,1,2,3)用矩阵表示用矩阵表示用用matlab编程,计算编程,计算x(k),观察观察n年以后的年以后的3个城市个城市的汽车数量变化情况的汽车数量变化情况function x=czqc(n)A=0.6,0.2,0.1;0.3,0.7,0.3;0.1,0.1,0.6;x(:,1)=200,200,200;for k=1:n x(:,k+1)=A*x(:,k);end作图观察数量变化趋势 k=0:10;plot(k,x),gridgtext(x1(k),gtext(x2(k),gtext(x3(k)结果分析结果分析:1 可以看到时间充分长以后可以看到时间充分长以后3个城市汽车数个城市汽车数量趋于量趋于180,300,1202 可以考察这个结果与初始条件是否有关可以考察这个结果与初始条件是否有关 若最开始若最开始600辆汽车都在辆汽车都在A市,可以看到市,可以看到变化时间充分长以后,各城市汽车数量变化时间充分长以后,各城市汽车数量趋于稳定,与初始值无关趋于稳定,与初始值无关直接输入直接输入x(:,1)的值即可)的值即可x(:,1)=600,0,0;round(x);plot(k,x),grid