差分方程数值解-老师.pptVIP

  • 3
  • 0
  • 约2.06千字
  • 约 49页
  • 2019-03-06 发布于江苏
  • 举报
用Matlab求解差分方程问题;差分方程是在离散时段上描述现实世界中变化过程的数学模型;污水处理厂每天可将处理池的污水浓度降低一个固定比例q,问多长时间才能将污水浓度降低一半? 记第k天的污水浓度为ck,则第k+1天的污水浓度为 ck+1=(1-q)ck,k=0,1,2,···· 从k=0开始递推n次得 以cn=c0/2代入即求解。;一阶线性常系数差分方程;模型建立;Matlab实现;;利用plot 绘图观察数量变化趋势; plot(k,y1,k,y2,k,y3) 在同一坐标系下画图 ;;;k=(0:20) ; %一个行向量 y1=(20,-0.0324,5); 也是一个行向量 round( [ k ’, y 1 ’] ) 对k,y1四舍五入,但 是 不改变变量的值 plot( k , y1) k y1 是行向量列向量都可以 也可以观察200年的发展趋势,以及在较差条件下的发展趋势,也可以考察每年孵化数量变化的影响。;一阶线性常系数差分方程的解、平衡点及其稳定性 ;高阶线性常系数差分方程;一年生植物的繁殖;模型及其求解;Xk= a1bcXk-1 + a2b(1-a1)bcXk-2;Xk= a1bcXk-1 + a2b(1-a1)bcXk-2;;结果分析:Xk= pXk-1 + qXk-2 (1) x1+px0=0 (2) ;本例中,用待定系数的方法可以求出 b=0.18时,c1=95.64, c2=4.36 , 这样 实际上, 植物能一直繁殖下去的条件是b0.191;线性常系数差分方程组;0.6;模型及其求解;用矩阵表示 用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 如果直接看10年或者20年发展趋势,可以直接在命令窗 口(commond window)作,而不是必须编一个函数;A=[0.6,0.2,0.1;0.3,0.7,0.3;0.1,0.1,0.6]; n=10; for k=1:n x(:,1)=[200,200,200]; x(:,k+1)=A*x(:,k); end round(x);作图观察数量变化趋势;;直接输入x(:,1)的值即可;按年龄分组的种群增长;模型及其求解;注意:第k时段的第i年龄组活过来的,是第k+1时段的第i+1年龄组 Xi+1(k+1)=sixi(k) i=1,2,···,n-1, k=0,1,···· 各年龄组在第k时段繁殖的数量和是第k+1时段的第1年龄组 X1(k+1)= k=0,1,···· 记在时段k种群各年龄组的数量为 X(k)=[x1(k),x2(k),····,xn(k)]’;这样,有x(k+1)=Lx(k),k=0,1,···· 给定在0时段,各年龄组的初始数量x(0) 就可以预测任意时段k,各年龄组的数量 设一种群分成5个年龄组, 繁殖率b1=0,b2=0.2,,b3=1.8,b4=0.8,b5=0.2 存活率s1=0.5,s2=0.8,s3=0.8,s4=0.1 各年龄组现有数量都是100只, 用matlab计算x(k);b=[0,0.2,1.8,0.8,0.2]; s=diag([0.5,0.8,0.8,0.1]); L=[b;s,zeros(4,1)]; x(:,1)=100*ones(5,1); n=30; for k=1:n x(:,k+1)=L*x(:,k); end round(x) k=0:30; subplot(1,2,1),plot(k,x),grid ;将x(k)归一化后的向量记做x’(k),称为种群按年龄组的分布向量,即各年龄组在k时段在数量上占总数的百分比。 y=diag(1./sum(x)) ;% sum(x)对列求和 Z=x*y Subplot(1,2,2),plot(k,z),grid 结果分

文档评论(0)

1亿VIP精品文档

相关文档