差分方程及matlab求解综述
用Matlab求解差分方程问题市公开课金奖市赛课一等奖课件

L 0 0
s2
0
0 sn1
0
0
x(k 1) Lx(k)
x(k ) Lk x(0)
~Leslie矩阵(L矩阵)
预测任意时段种群 按年龄组分布
第29页
按年龄分组种群增长
• 野生或喂养动物因繁殖而增加,因自然死亡和 人为屠杀而降低,不同年纪动物繁殖率,死亡 率有较大差异,因此在研究某一个群数量改变 时,需要考虑年纪分组种群增加。
600
500
400
300
200
100
0
0
1
2
3
4
5
6
7
8
9 10
第27页
6.6 按年龄分组人口模型
不同年纪组繁殖率和死亡率不同.
• 以雌性个体数量为对象 建. 立差分方程模型,讨论稳定情况下种群增长规律.
假设与建模
• 种群按年龄大小等分为n个年龄组,记i=1,2,…,n • 时间离散为时段,长度与年龄组区间相等,记k=1,2,… • 第i 年龄组1雌性个体在1时段内繁殖率为bi • 第i 年龄组在1时段内死亡率为di, 存活率为si=1- di
%一个行向量
• y1=(20,-0.0324,5); %也是一个行向量
• round( [ k ’, y 1 ’] ) %对k,y1四舍五入,但
•
%是 不改变变量值
• plot( k , y1) %k y1 是行向量列向量都能
够
To Matlab(ff7)
• 也能够观测发展趋势,以及在较差条件 下发展趋势,也能够考察每年孵化数量 改变影响。
第2页
模型建立
• 记第k年沙丘鹤数量为xk,年均增长率为r ,则第k+1年鹤数量为
实验二微分方程与差分方程模型Matlab求解

实验二: 微分方程与差分方程模型Matlab 求解一、实验目的[1] 掌握解析、数值解法,并学会用图形观察解的形态和进展解的定性分析;[2] 熟悉MATLAB 软件关于微分方程求解的各种命令; [3] 通过范例学习建立微分方程方面的数学模型以及求解全过程;[4] 熟悉离散 Logistic 模型的求解与混沌的产生过程。
二、实验原理1. 微分方程模型与MATLAB 求解 解析解用MATLAB 命令dsolve(‘eqn1’,’eqn2’, ...) 求常微分方程〔组〕的解析解。
其中‘eqni'表示第i 个微分方程,Dny 表示y 的n 阶导数,默认的自变量为t 。
〔1〕 微分方程例1 求解一阶微分方程 21y dxdy+= (1) 求通解 输入:dsolve('Dy=1+y^2') 输出: ans =tan(t+C1) 〔2〕求特解 输入:dsolve('Dy=1+y^2','y(0)=1','x') 指定初值为1,自变量为x输出: ans =tan(x+1/4*pi)例2 求解二阶微分方程 221()04(/2)2(/2)2/x y xy x y y y πππ'''++-=='=-原方程两边都除以2x ,得211(1)04y y y x x '''++-= 输入:dsolve('D2y+(1/x)*Dy+(1-1/4/x^2)*y=0','y(pi/2)=2,Dy(pi/2)=-2/pi','x') ans =- (exp(x*i)*(pi/2)^(1/2)*i)/x^(1/2) +(exp(x*i)*exp(-x*2*i)*(pi/2)^(3/2)*2*i)/(pi*x^(1/2))试试能不用用simplify 函数化简 输入: simplify(ans)ans =2^(1/2)*pi^(1/2)/x^(1/2)*sin(x) 〔2〕微分方程组例3 求解 d f /d x =3f +4g ; d g /d x =-4f +3g 。
怎样用Matlab求解差分方程题.

Matlab实现
首先建立一个关于变量n ,r的函数 function x=sqh(n,r) a=1+r; x=100; for k=1:n
x(k+1)=a*x(k); end
在command窗口里调用sqh函数
k=(0:20)';
>> y1=sqh(20,0.0194); >> y2=sqh(20,-0.0324); >> y3=sqh(20,-0.0382); >> round([k,y1',y2',y3'])
可以看到时间充分长以后3个城市汽车数量 趋于180,300,120
可以考察这个结果与初始条件是否有关
若最开始600辆汽车都在A市,可以看到变 化时间充分长以后,各城市汽车数量趋于 稳定,与初始值无关
直接输入x(:,1)的值即可
x(:,1)=[600,0,0]; round(x'); plot(k,x),grid
模型及其求解
记一棵植物春季产种的平均数为c,种子能 活过一个冬天的(1岁种子)比例为b,活过 一个冬天没有发芽又活过一个冬天的(2 岁种子)比例仍为b,1岁种子发芽率a1, 2岁种子发芽率a2。
设c,a1,a2固定,b是变量,考察能一直繁殖的条件 记第k年植物数量为Xk,显然Xk与Xk-1,Xk-2有关,由
高阶线性常系数差分方程
如果第k+1时段变量Xk+1不仅取决 于第k时段变量Xk,而且与以前时段变 量有关,就要用高阶差分方程来描述
一年生植物的繁殖
一年生植物春季发芽,夏天开花,秋季 产种,没有腐烂,风干,被人为掠取的 那些种子可以活过冬天,其中一部分能 在第2年春季发芽,然后开花,产种,其 中的另一部分虽未能发芽,但如又能活 过一个冬天,则其中一部分可在第三年 春季发芽,然后开花,产种,如此继续, 一年生植物只能活1年,而近似的认为, 种子最多可以活过两个冬天,试建立数 学模型研究这种植物数量变化的规律, 及它能一直繁殖下去的条件。
Matlab中的差分方程求解

Matlab中的差分方程求解差分方程是微分方程的离散形式,常常在计算机科学、物理学、经济学等领域中广泛应用。
而Matlab作为一种数值计算软件,提供了强大的工具和函数用于差分方程的求解和分析。
本文将介绍Matlab中差分方程求解的基本方法和常见应用。
一、差分方程的基本概念差分方程是一种通过递归关系描述变量之间关系的数学表达式。
与微分方程不同,差分方程是以离散时间点为基础的,适用于描述离散系统的动态行为。
一般来说,差分方程可以分为线性差分方程和非线性差分方程两类。
线性差分方程的一般形式为:y[n] = a*y[n-1] + b*y[n-2] + ... + c*x[n],其中y[n]为方程的解,x[n]为给定的输入,a、b、c为系数。
而非线性差分方程则没有这种简单的表达形式,通常需要通过迭代或数值方法求解。
二、在Matlab中,可以利用函数和工具箱来求解差分方程。
下面将介绍几种常见的求解方法。
1. 符号计算方法Matlab的符号计算工具箱提供了一系列用于求解差分方程的函数,例如dsolve()函数。
这些函数可以根据给定的差分方程自动进行符号运算,得到方程的解析解。
符号计算方法适用于简单的线性差分方程,对于复杂的非线性差分方程则很难求解。
2. 数值迭代方法对于非线性差分方程,常常采用数值迭代的方法来求解。
Matlab提供了多种迭代函数,例如fsolve()函数和fminsearch()函数。
这些函数可以根据给定的差分方程和初始值,通过迭代计算得到方程的数值解。
数值迭代方法适用于各种类型的差分方程,但需要注意选择合适的初始值和迭代算法以确保收敛。
3. 差分方程求解函数除了符号计算和数值迭代方法,Matlab还提供了一些专门用于求解差分方程的函数,例如ode23()函数和ode45()函数。
这些函数可以根据给定的差分方程和初始条件,通过数值方法求解方程的数值解。
相比于数值迭代方法,差分方程求解函数更加高效和稳定,适用于大规模的复杂差分方程。
差分方程的解法分析及MATLAB实现

差分方程的解法分析及MATLAB实现差分方程是描述离散时序系统行为的数学工具。
在离散时间点上,系统的行为由差分方程给出,这是一个递归方程,其中当前时间点的状态取决于之前的状态和其他外部因素。
解差分方程的方法可以分为两类:直接解法和转化为代数方程的解法。
直接解法通过求解差分方程的递归形式来得到解析或数值解。
转化为代数方程的解法则将差分方程转化为代数方程进行求解。
一、直接解法的步骤如下:1.将差分方程表示为递归形式,即将当前时间点的状态表示为之前时间点的状态和其他外部因素的函数。
2.根据初始条件,确定初始时间点的状态。
3.根据递归形式,计算出后续时间点的状态。
以下是一个简单的差分方程的例子:y(n)=2y(n-1)+1,其中n为时间点。
按照上述步骤求解该差分方程:1.将差分方程表示为递归形式:y(n)=2y(n-1)+12.根据初始条件,假设y(0)=1,确定初始时间点的状态。
3.根据递归形式,计算出后续时间点的状态:y(1)=2y(0)+1=2*1+1=3y(2)=2y(1)+1=2*3+1=7y(3)=2y(2)+1=2*7+1=15...依此类推计算出所有时间点的状态。
二、转化为代数方程的解法的步骤如下:1.假设差分方程的解具有指数形式,即y=r^n,其中r为待定参数。
2.将差分方程代入上述假设中,得到r的方程。
3.解得r的值后,再根据初始条件求解出常数值。
4.得到差分方程的解析解。
以下是一个复杂一些的差分方程的例子:y(n)=2y(n-1)+3y(n-2),其中y(0)=1,y(1)=2按照上述步骤求解该差分方程:1.假设差分方程的解具有指数形式:y=r^n。
2.代入差分方程得到:r^n=2r^(n-1)+3r^(n-2)。
3.整理得到:r^2-2r-3=0。
4.解得r的值为:r1=-1,r2=35.根据初始条件求解出常数值:y(0)=c1+c2=1,y(1)=c1-c2=2、解得c1=1.5,c2=-0.56.得到差分方程的解析解:y(n)=1.5*(-1)^n+-0.5*3^n。
差分方程求解matlab代码

差分方程求解matlab代码
差分方程的matlab代码通常指用matlab解决差分方程组的计算
机程序。
差分方程是一类特殊的微分方程,其中某个或某些未知函数
不仅取决于变量的某个当前值,还取决于它之前某些时刻的值,因此
这类方程用来描述变化随时间而发生的动态系统,如振荡器、时变系
统等。
下面是matlab解差分方程的一般步骤:
首先,要确定变量的间隔,也就是时间间隔。
它是求解方程的基础,时间间隔的大小会影响结果的精确程度。
其次,要确定初始值,即微分方程的初值。
这些初值可能有助于
准确地描述变化系统的状态,以便在迭代过程中可以得到更准确的解。
然后,需要编写与差分方程相关的matlab代码。
matlab使用odefun函数来求解代数方程组,它可以用来快速求解差分方程中的未
知变量。
最后,使用ode45函数进行计算。
ode45函数是matlab自带的积
分函数,它可以根据设定的求解间隔将变量的连续变化转换成离散变
化形式,使得可以计算出结果。
以上就是matlab解差分方程的一般步骤。
为了求解更复杂的差分
方程,可以在matlab中编写更复杂的代码,以获得更准确的结果。
MATLAB中的差分方程建模与求解方法

MATLAB中的差分方程建模与求解方法引言差分方程是数学中常见的一种方程类型,是一种离散形式的微分方程。
在实际问题中,差分方程能够提供对系统的离散描述,对于动态模型的建立和求解具有重要作用。
MATLAB作为一种功能强大的数值计算软件,其内置了丰富的工具箱和函数,为差分方程的建模和求解提供了便利。
一、差分方程的建模差分方程的建模是将实际问题转化为数学方程的过程。
在MATLAB中,差分方程的建模可以通过定义离散系统的状态和状态转移方程来实现。
下面以一个简单的例子说明差分方程的建模过程。
假设有一个人口增长模型,人口数在每年增加10%,则差分方程可以表示为:P(n+1) = P(n) + 0.1 * P(n),其中P(n)表示第n年的人口数,P(n+1)表示第n+1年的人口数。
在MATLAB中,可以通过定义一个函数来描述差分方程的状态转移方程,代码如下:```matlabfunction Pn = population_growth(Pn_minus_1)growth_rate = 0.1;Pn = Pn_minus_1 + growth_rate * Pn_minus_1;end```上述代码定义了一个名为"population_growth"的函数,该函数的输入参数为上一年的人口数"Pn_minus_1",输出为当前年的人口数"Pn"。
其中,growth_rate表示人口增长率,根据差分方程的定义,将上一年的人口数乘以增长率再加上本身,即可得到当前年的人口数。
二、差分方程的求解方法在MATLAB中,差分方程的求解可以通过多种方法实现。
下面介绍两种常用的差分方程求解方法:欧拉法和四阶龙格-库塔法。
1. 欧拉法(Euler's method)欧拉法是差分方程求解中最简单直观的一种方法。
其基本思想是通过离散化的方式逐步逼近连续函数的解。
具体步骤如下:1) 将时间段分割成若干个小区间;2) 根据差分方程的状态转移方程,在每个小区间内进行计算;3) 迭代计算直到达到指定的时间点。
用matlab求解差分方程

Xk-1决定的部分是 a1bcXk-1,由Xk-2决定的部分是 a2b(1-a1)bcXk-2 Xk= a1bcXk-1 + a2b(1-a1)bcXk-2
Xk= a1bcXk-1 + a2b(1-a1)bcXk-2
实际上,就是Xk= pXk-1 + qXk-2 我们需 要知道x0,a1,a2,c, 考察b不同时,种子繁 殖的情况。在这里假设 X0=100,a1=0.5,a2=0.25,c=10,b=0.18~0.20 这样可以用matlab计算了
500
400
300
200
100
0
0
1
2
3
4
5
6
7
8
9
10
按年龄分组的种群增长
野生或饲养的动物因繁殖而增加,因自然死亡 和人为屠杀而减少,不同年龄动物的繁殖率, 死亡率有较大差别,因此在研究某一种群数量 的变化时,需要考虑年龄分组的种群增长。 将种群按年龄等间隔的分成若干个年龄组,时 间也离散化为时段,给定各年龄组种群的繁殖 率和死亡率,建立按年龄分组的种群增长模型, 预测未来各年龄组的种群数量,并讨论时间充 分长以后的变化趋势。
Matlab求解差分方程问题 用Matlab求解差分方程问题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、 齐次差分方程的通解
将方程yt+1+ayt=0改写为:yt+1=-ayt, t=0,1,2,…. 假定在初始时刻(即t=0)时,函数yt取任意值A,那么由 上式逐次迭代,算得 y1=-ay0=-aA, y2=-ay1=(-a)2A, ……………… 方程的通解为yt =A(-a)t, t=0,1,2,…. 如果给定初始条件t=0时yt=y0,则A=y0,此时特解为: yt =y0(-a)t.
试以特解 yt =a+bt,(a,b为待定系数)代入方程得
a+b (t+1)+a(a+bt)=b0+b1t,
上式对一切t值均成立,其充分必要条件是: (1 + a )a + b = b0 (1 + a )b = b1
当1+a≠0时,即a≠-1时,
b0 b1 a= 1 + a (1 + a )2 b1 b= 1+ a
3、在法国著名的 Lascaux 洞穴中保留着古 代人类遗留下来的壁画。从洞穴中取出的 木炭在 1950 年做过检测, 测得碳 14 的衰减 系数为每克每分钟 0.97 个, 已知碳 14 的半 衰期为 5568 年,试求这些壁画的年龄(精 确到百年) 。
4、牛顿发现在温差不太大的情况下,物 体冷却的速度与温差成正比。现设正常 体温为 36.5 ,法医在测量某受害者尸 体时测得体温约为 32 度, 一小时后再次 测量,测的体温约为 30.5 度,试推测该 受害者的受害时间。
分别称为n阶常系数非齐次线性差分方程和n阶常 系数齐次线性差分方程.
定理1(齐次线性差分方程解的叠加原理)
若y1(t),y2(t),…,ym(t)是齐次线性差分方程
yt+n+a1yt+n-1 +a2yt+n-2+…+an-1yt+1+anyt=0的m个特解
(m≥2),则其线性组合y(t)=A1y1(t)+A2y2(t)+…+Amym(t)也
是方程的解,其中A1,A2,…,Am为任意常数.
n阶齐次线性差分方程yt+n+a1yt+n-1 +a2yt+n-2
定理2
+…+an-1yt+1+anyt=0一定存在n个线性无关的特解.
定理3(齐次线性差分方程通解结构定理) 如 果 y1(t),y2(t),…,yn(t) 是 齐 次 线 性 差 分 方 程 yt+n+a1yt+n-1 +a2yt+n-2 +…+an-1yt+1+anyt=0的n个线性无关 的特解,则方程的通解为: yA(t)=A1y1(t)+A2y2(t)+…+Anyn(t),
方程的通解
1 t 1 1 t -1 2 t 1 t 1 t +1 yt = A( ) + ( ) ( 2 - 1) = A ( ) + 2 2 3 2 2 3 2 A = A- 为任意常数 . 3
2.待定系数法求特解
情形Ⅰ f(t)为常数. 方程变为yt+1+ayt=b, a,b均为非零常数. 试以 yt = (为待定常数)形式的特解代入方程得 +a =(1+a) =b. 当a≠-1时,可求得特解
1. 一个半球状雪堆,其体积融化的速率与半 球面面积S成正比,比例系数k > 0。设融化中 雪堆始终保持半球状,初始半径为R且3小时 中融化了总体积的7/8,问雪堆全部融化还需 要多长时间?
2、 早期肿瘤的体积增长满足 Malthus 模型 ( =λ V,其中λ 为常数) , (1)求肿瘤的增倍时 间σ 。根据统计资料,一般有σ (7,465)(单 位为天) ,肺部恶性肿瘤的增倍时间大多大于 70 天而小于 465 天(发展太快与太慢一般都不 是恶性肿瘤) , 故σ 是确定肿瘤性质的重要参数 之一(2)为方便起见,医生通常用肿瘤直径来 表示肿瘤的大小,试推出医生用来预测病人肿 瘤直径增大速度的公式 D=
yt=(-a)ty0+(-a)t-1f(0)+(-a)t-2f(1)+…+f(t-1)
=(-a)ty0+ yt , (t=0,1,2,…),
其 中 yt = ( - a )t -1 f (0) + ( - a )t - 2 f (1) + f ( t - 1) = ( - a )i f ( t - i - 1)
二、 非齐次方程的通解与特解
1. 迭代法求通解
将方程改写为 yt+1=(-a)yt+f(t), t=0,1,2,…. 逐步迭代,则有
y1=(-a)y0+f(0),
y2=(-a)2y0+(-a)f(0)+f(1),
y3=(-a)3y0+(-a)2f(0)+(-a)f(1)+f(2),
………………
由数学归纳法,可得
四、 线性差分方程及其基本定理
形如
yt+n+a1(t)yt+n-1+a2(t)yt+n-2+…+an-1(t)yt+1+an(t)yt=f(t)
的差分方程,称为n阶非齐次线性差分方程.其中 a1(t),a2(t),…,an-1(t),an(t) 和 f(t) 都 是 t 的 已 知 函 数 , 且 an(t)≠0,f(t)≠0.而形如 yt+n+a1(t)yt+n-1+…+an-1(t)yt+1+an(t)yt=0
的差分方程,称为n阶齐次线性差分方程.其中 ai(t)(i=1,2,…,n)为t的已知函数,且an(t)≠0.
如果ai(t)=ai(i=1,2,…,n)均为常数(an≠0),则有
yt+n&-2+…+an-1yt+1+anyt=f(t),
yt+n+a1yt+n-1+a2yt+n-2+…+an-1yt+1+anyt=0.
y0=a0, y1=a1,…,yn-1=an-1,
这里a0,a1,a2,…,an-1均为已知常数.
只要保持差分方程中的时间滞后结构不变 , 无论 对 t 提前或推后一个相同的等间隔值 , 所得新方程与原 方程是等价的,即二者有相同的解.例如,方程 ayt+1-byt=0 与方程 ayt+2-byt+1=0 都是相互等价的.
解,那么,非齐次线性差分方程的通解为: y(t)=yA(t)+ y (t)
即
y(t)=A1y1(t)+A2y2(t)+…+Anyn(t)+ y(t), 这里A1,A2,…,An为n个任意(独立)常数.
第二节 一阶常系数线性差分方程
一阶常系数线性差分方程的一般形式为 yt+1+ayt=f(t) 和 yt+1+ayt=0, 其中 f(t) 为 t 的已知函数 ,a≠0 为常数 .分别称为一阶常 系数非齐次线性差分方程和其对应的齐次差分方程.
其中A1,A2,…,An为n个任意(独立)常数.
定理4(非齐次线性差分方程通解结构定理) 如果 y (t)是非齐次线性方程yt+n+a1(t)yt+n-1+a2(t)yt+n-2
+…+an-1(t)yt+1+an(t)yt=f(t)的一个特解,yA(t)是其对应的齐
次线性方程 yt+n+a1yt+n-1 +a2yt+n-2 +…+an-1yt+1+anyt=0 的通
b yt = 1+ a
当a=-1时,改设特解 yt = t (为待定系数),将其代 入方程得 (t+1)+a t=(1+a) t+ =b 求得特解 yt = bt
方程的通解为
b t , a -1 A( - a ) + yt = y A ( t ) + yt = 1+ a a = -1 A + bt, 其 中A为 任 意 常 数 .
一阶差分的性质
(1) 若yt=C(C为常数),则Dyt=0; (2) 对于任意常数k,D(kyt)=kDyt; (3) D(yt+zt)=Dyt+Dzt.
定义2 函数yt=f(t)在时刻t的二阶差分定义为一阶差分 的差分,即 D2yt= D (D yt)= D yt+1- D yt =(yt+2-yt+1)-(yt+1-yt)=yt+2-2yt+1+yt. 依此定义类推,有 D2yt+1= Dyt+2- Dyt+1=yt+3-2yt+2+yt+1, D2yt+2= Dyt+3- Dyt+2=yt+4-2yt+3+yt+2, ……………… 类推,计算两个相继的二阶差分之差,便得到三阶差分 D3yt= D2yt+1- D2yt=yt+3-3yt+2+3yt+1-yt, D3yt+1= D2yt+2- D2yt+1=yt+4-3yt+3+3yt+2-yt+1, ………………
差分方程初步
第一节 差分方程的基本概念
一、 差分的概念 定义1 设函数yt=f(t)在t=…,-2,-1,0,1,2,…处有定义,对 应的函数值为…,y-2,y-1,y0,y1,y2,…,则函数yt=f(t)在时间 t的一阶差分定义为 Dyt=yt+1-yt=f(t+1)-f(t). 依此定义类推,有 Dyt+1=yt+2-yt+1=f(t+2)-f(t+1), Dyt+2=yt+3-yt+2=f(t+3)-f(t+2), ………………