差分方程及matlab求解综述

合集下载

用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求解

实验二: 微分方程与差分方程模型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求解差分方程题.

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作为一种数值计算软件,提供了强大的工具和函数用于差分方程的求解和分析。

本文将介绍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实现

差分方程的解法分析及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代码。

matlab使用odefun函数来求解代数方程组,它可以用来快速求解差分方程中的未
知变量。

最后,使用ode45函数进行计算。

ode45函数是matlab自带的积
分函数,它可以根据设定的求解间隔将变量的连续变化转换成离散变
化形式,使得可以计算出结果。

以上就是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求解差分方程

用matlab求解差分方程
x1 ( k + 1) = 0.6 x1 ( k ) + 0.2 x2 ( k ) + 0.1x3 ( k ) x2 ( k + 1) = 0.3 x1 ( k ) + 0.7 x2 ( k ) + 0.3 x3 ( k ) x ( k + 1) = 0.1x ( k ) + 0.1x ( k ) + 0.6 x ( k ) 1 2 3 3
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求解差分方程问题

z变换和差分方程的matlab求解

z变换和差分方程的matlab求解

一、概述在科学和工程领域,差分方程和离散时间系统模型的求解是非常常见和重要的问题。

差分方程是描述离散时间系统动态行为的数学模型,而z变换则是一种用于分析和求解差分方程的工具。

在matlab中,我们可以利用其强大的数值计算和符号计算功能来求解差分方程和进行z 变换分析,本文将介绍如何使用matlab来求解差分方程和进行z变换分析。

二、差分方程的matlab求解1. 差分方程的表示差分方程表示为:y(n) + a1*y(n-1) + a2*y(n-2) + ... + aN*y(n-N) = b0*x(n) +b1*x(n-1) + ... + bM*x(n-M)其中y(n)为系统的输出,x(n)为系统的输入,aN, aN-1, ..., a1, bM, bM-1, ..., b0为差分方程的系数。

2. 差分方程的matlab表示在matlab中,可以使用“filter”函数来求解差分方程。

该函数的用法为:y = filter(b, a, x)其中b为差分方程输出项的系数,a为差分方程输入项的系数,x为系统的输入。

该函数可以帮助我们求解差分方程,并得到系统的输出。

3. 示例假设有一个差分方程为:y(n) - 0.5*y(n-1) = x(n)其在matlab中的求解代码如下:输入信号x = randn(1, 100);系数b = 1;a = [1, -0.5];求解差分方程y = filter(b, a, x);通过以上代码,我们可以得到系统的输出y,从而求解了差分方程。

三、z变换和差分方程的关系1. z变换的定义z变换是一种用于分析和求解离散时间系统的工具,其定义为:Y(z) = Z{y(n)} = sum(y(n)*z^(-n), n=-inf to inf)其中Y(z)表示系统的z变换,y(n)表示系统的离散时间响应,z为复数变量。

2. z变换与差分方程的关系差分方程和z变换的关系可以表示为:Y(z) = H(z)X(z)其中Y(z)为系统的输出的z变换,H(z)为系统的传递函数的z变换,X(z)为系统的输入的z变换。

差分方程的解法分析及MATLAB实现(程序)

差分方程的解法分析及MATLAB实现(程序)

差分方程的解法分析及MATLAB 实现(程序)摘自:张登奇,彭仕玉.差分方程的解法分析及其MATLAB 实现[J]. 湖南理工学院学报.2014(03) 引言线性常系数差分方程是描述线性时不变离散时间系统的数学模型,求解差分方程是分析离散时间系统的重要内容.在《信号与系统》课程中介绍的求解方法主要有迭代法、时域经典法、双零法和变换域法[1].1 迭代法例1 已知离散系统的差分方程为)1(31)()2(81)1(43)(-+=-+--n x n x n y n y n y ,激励信号为)()43()(n u n x n =,初始状态为21)2(4)1(=-=-y y ,.求系统响应. 根据激励信号和初始状态,手工依次迭代可算出2459)1(,25)0(==y y . 利用MATLAB 中的filter 函数实现迭代过程的m 程序如下:clc;clear;format compact;a=[1,-3/4,1/8],b=[1,1/3,0], %输入差分方程系数向量,不足补0对齐n=0:10;xn=(3/4).^n, %输入激励信号zx=[0,0],zy=[4,12], %输入初始状态zi=filtic(b,a,zy,zx),%计算等效初始条件[yn,zf]=filter(b,a,xn,zi),%迭代计算输出和后段等效初始条件2 时域经典法用时域经典法求解差分方程:先求齐次解;再将激励信号代入方程右端化简得自由项,根据自由项形式求特解;然后根据边界条件求完全解[3].用时域经典法求解例1的基本步骤如下.(1)求齐次解.特征方程为081432=+-αα,可算出41 , 2121==αα.高阶特征根可用MATLAB 的roots 函数计算.齐次解为. 0 , )41()21()(21≥+=n C C n y n n h (2)求方程的特解.将)()43()(n u n x n =代入差分方程右端得自由项为 ⎪⎩⎪⎨⎧≥⋅==-⋅+-1,)43(9130 ,1)1()43(31)()43(1n n n u n u n n n 当1≥n 时,特解可设为n p D n y )43()(=,代入差分方程求得213=D . (3)利用边界条件求完全解.当n =0时迭代求出25)0(=y ,当n ≥1时,完全解的形式为 ,)43(213 )41()21()(21n n n C C n y ⋅++=选择求完全解系数的边界条件可参考文[4]选)1(),0(-y y .根据边界条件求得35,31721=-=C C .注意完全解的表达式只适于特解成立的n 取值范围,其他点要用)(n δ及其延迟表示,如果其值符合表达式则可合并处理.差分方程的完全解为)(])43(213 )41(35)21(317[)1(])43(213 )41(35)21(317[)(25)(n u n u n n y n n n n n n ⋅+⋅+⋅-=-⋅+⋅+⋅-+=δ MATLAB 没有专用的差分方程求解函数,但可调用maple 符号运算工具箱中的rsolve 函数实现[5],格式为y=maple('rsolve({equs, inis},y(n))'),其中:equs 为差分方程表达式, inis 为边界条件,y(n)为差分方程中的输出函数式.rsolve 的其他格式可通过mhelp rsolve 命令了解.在MATLAB 中用时域经典法求解例1中的全响应和单位样值响应的程序如下.clc;clear;format compact;yn=maple('rsolve({y(n)-3/4*y(n-1)+1/8*y(n-2)=(3/4)^n+1/3*(3/4)^(n-1),y(0)=5/2,y(-1)=4},y(n))'),hn=maple('rsolve({y(n)-3/4*y(n-1)+1/8*y(n-2)=0,y(0)=1,y(1)=13/12},y(n))'),3 双零法根据双零响应的定义,按时域经典法的求解步骤可分别求出零输入响应和零状态响应.理解了双零法的求解原理和步骤,实际计算可调用rsolve 函数实现.yzi=maple('rsolve({y(n)-3/4*y(n-1)+1/8*y(n-2)=0,y(-1)=4, y(-2)=12},y(n))'),yzs=maple('rsolve({y(n)-3/4*y(n-1)+1/8*y(n-2)=(3/4)^n+1/3*(3/4)^(n-1),y(0)=1,y(-1)=0},y(n))'),4 变换域法设差分方程的一般形式为)()(00r n x b k n y a r Mr k N k -=-∑∑==.对差分方程两边取单边z 变换,并利用z 变换的位移公式得])()([])()([1010m r m r r M r l k l k k N k z m x z X z b z l y z Y z a ---=-=---=-=∑∑∑∑+=+整理成)()()()()()(00z X z X z B z Y z Y z A +=+形式有. )(, )(110110M M N N z b z b b z B z a z a a z A ----+++=+++=. )()(, )()(110110∑∑∑∑=--=--=--=--==M r r m m r r N k k l l k k z m x b s X zl y a s Y可以看出,由差分方程可直接写出 )(z A 和 )(z B ,系统函数)(/)()(z A z B z H =,将系统函数进行逆z 变换可得单位样值响应.由差分方程的初始状态可算出 )(0z Y ,由激励信号的初始状态可算出 )(0z X ,将激励信号进行z 变换可得 )(z X ,求解z 域代数方程可得输出信号的象函数 , )()()()()()(00z A z Y z X z X z B z Y -+= 对输出象函数进行逆z 变换可得输出信号的原函数)(n y .利用z 变换求解差分方程各响应的步骤可归纳如下:(1)根据差分方程直接写出 )(z A 、 )(z B 和)(z H ,)(z H 的逆变换即为单位样值响应;(2)根据激励信号算出 )(z X ,如激励不是因果序列则还要算出前M 个初始状态值;(3)根据差分方程的初始状态 )(, ),2( ),1(N y y y -⋅⋅⋅--和激励信号的初始状态 )(, ),2( ),1(M x x x -⋅⋅⋅--算出 )(0z Y 和 )(0z X ;(4)在z 域求解代数方程)()()()()()(00z X z X z B z Y z Y z A +=+得输出象函数 )(z Y , )(z Y 的逆变换即为全响应;(5)分析响应象函数的极点来源及在z 平面中的位置,确定自由响应与强迫响应,或瞬态响应与稳态响应;(6)根据零输入响应和零状态响应的定义,在z 域求解双零响应的象函数,对双零响应的象函数进行逆z 变换,得零输入响应和零状态响应.用变换域法求解例1的基本过程如下. 根据差分方程直接写出2181431 )(--+-=z z z A ,1311 )(-+=z z B .系统函数的极点为41,21. 对激励信号进行z 变换得)43/( )(-=z z z X .激励象函数的极点为3/4. 根据差分方程的初始状态算出102123 )(-+-=z z Y .根据激励信号的初始状态算出 0)(0=z X . 对z 域代数方程求解,得全响应的象函数)323161123/()83243125( )(2323-+-+-=z z z z z z z Y . 进行逆z 变换得全响应为)(])43(213 )41(35)21(317[)(n u n y n n n ⋅+⋅+⋅-= 其中,与系统函数的极点对应的是自由响应;与激励象函数的极点对应的是强迫响应. )(z Y 的极点都在z 平面的单位圆内故都是瞬态响应.零输入响应和零状态响应可按定义参照求解.上述求解过程可借助MATLAB 的符号运算编程实现.实现变换域法求解差分方程的m 程序如下: clc;clear;format compact;syms z n %定义符号对象% 输入差分方程、初始状态和激励信号%a=[1,-3/4,1/8],b=[1,1/3], %输入差分方程系数向量y0=[4,12],x0=[0], %输入初始状态,长度分别比a 、b 短1,长度为0时用[]xn=(3/4)^n, %输入激励信号,自动单边处理,u(n)可用1^n 表示% 下面是变换域法求解差分方程的通用程序,极点为有理数时有解析式输出 %N=length(a)-1;M=length(b)-1;%计算长度Az=poly2sym(a,'z')/z^N;Bz=poly2sym(b,'z')/z^M;%计算A(z)和B(z)Hz=Bz/Az;disp('系统函数H(z):'),sys=filt(b,a),%计算并显示系统函数hn=iztrans(Hz);disp('单位样值响应h(n)='),pretty(hn),%计算并显示单位样值响应Hzp=roots(a);disp('系统极点:');Hzp,%计算并显示系统极点Xz=ztrans(xn);disp('激励象函数X(z)='),pretty(Xz),%激励信号的单边z 变换Y0z=0;%初始化Y0(z),求Y0(z)注意系数标号与变量下标的关系for k=1:N;for l=-k:-1;Y0z = Y0z+a(k+1)*y0(-l)*z^(-k-l);endenddisp('初始Y0(z)'),Y0z,%系统初始状态的z 变换X0z=0;%初始化X0(z),求X0(z)注意系数标号与变量下标的关系for r=1:M;for m=-r:-1;X0z = X0z+b(r+1)*x0(-m)*z^(-r-m);endenddisp('初始X0(z)'),X0z,%激励信号起始状态的z 变换Yz=(Bz*Xz+X0z-Y0z)/Az;disp('全响应的z 变换Y(z)'),pretty(simple(Yz)),yn=iztrans(Yz);disp('全响应y(n)='),pretty(yn),% 计算并显示全响应Yziz=-Y0z/Az;disp('零输入象函数Yzi(z)='),pretty(Yziz),%零激励响应的z 变换yzin=iztrans(Yziz);disp('零输入响应yzi(n)='),pretty(yzin),% 计算并显示零输入响应 Yzsz=(Bz*Xz+X0z)/Az;disp('零状态象函数Yzs(z)='),pretty(Yzsz),%零状态响应的z 变换yzsn=iztrans(Yzsz);disp('零状态响应yzs(n)='),pretty(yzsn),% 计算并显示零状态响应该程序的运行过程与手算过程对应,显示在命令窗的运行结果与手算结果相同.。

差分方程及matlab求解.

差分方程及matlab求解.

程中出现.
定义3′ 含有两个或两个以上函数值yt,yt+1,…的函数方 程,称为(常)差分方程,出现在差分方程中未知函数下 标的最大差,称为差分方程的阶. n阶差分方程的一般形式为
F(t,yt,yt+1,…,yt+n)=0,
其中F为t,yt,yt+1,…,yt+n的已知函数 ,且yt和yt+n一定要 在差分方程中出现.
其中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 的通
解,那么,非齐次线性差分方程的通解为: 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 为常数 .分别称为一阶常 系数非齐次线性差分方程和其对应的齐次差分方程.
试以特解 yt =a+bt,(a,b为待定系数)代入方程得

matlab解差分方程

matlab解差分方程

解析法
通过数学变换和求解技巧,得到差分方程的解析解。
数值法
通过数值计算方法,如欧拉法、龙格-库塔法等,得到差分方程的近似解。
02
Matlab在解差分方程中的 应用
Matlab的符号计算功能
符号计算
Matlab提供了符号计算的功能, 可以用于解决差分方程的符号解。 通过符号计算,可以找到差分方 程的通解或特解,并分析解的性 质。
析解。
THANKS
要点二
递推法
通过递推公式求解高阶差分方程,适用于一阶高阶差分方 程。
04
差分方程的数值解法
欧拉方法
总结词
简单易行,但精度较低
详细描述
欧拉方法是一种简单的数值方法,用于求解差分方程。它基于差分方程的递推性质,通 过迭代的方式逐步逼近解。由于其简单性,欧拉方法在许多情况下是首选的数值方法。 然而,由于其精度较低,对于需要高精度解的问题,可能需要采用更高级的数值方法。
特征方程法
通过求解特征方程来求解线性差分方程,适用于多阶线性差分方程。
非线性差分方程的解析解法
迭代法
通过迭代公式求解非线性差分方程,适用于一阶非线性差分方程。
解析法
通过解析表达式求解非线性差分方程,适用于多阶非线性差分方程。
高阶差分方程的解析解法
要点一
降阶法
将高阶差分方程转化为低阶差分方程,再求解低阶差分方 程。
05
Matlab实现差分方程的解 法示例
解析解法的示例
差分方程
$y(n+1) - y(n) = 0$
解析解
$y(n) = y(0)$
解释
该差分方程表示每一项都与前一项相等,因此解为常 数。
数值解法的示例

怎样用Matlab求解差分方程题解读

怎样用Matlab求解差分方程题解读

Xk+1=aXk +b ,a=1+r
function x=fhsqh(n,r,b) a=1+r; X=100; For k=1:n X(k+1)=a*x(k)+b; end
k=(0:20) ; %一个行向量 y1=(20,-0.0324,5); 也是一个行向量 round( [ k ’, y 1 ’] ) 对k,y1四舍五入,但 是 不改变变量的值 plot( k , y1) k y1 是行向量列向量都可以 也可以观察200年的发展趋势,以及在较差 条件下的发展趋势,也可以考察每年孵 化数量变化的影响。
高阶线性常系数差分方程
如果第k+1时段变量Xk+1不仅取决 于第k时段变量Xk,而且与以前时段变 量有关,就要用高阶差分方程来描述
一年生植物的繁殖
一年生植物春季发芽,夏天开花,秋季 产种,没有腐烂,风干,被人为掠取的 那些种子可以活过冬天,其中一部分能 在第2年春季发芽,然后开花,产种,其 中的另一部分虽未能发芽,但如又能活 过一个冬天,则其中一部分可在第三年 春季发芽,然后开花,产种,如此继续, 一年生植物只能活1年,而近似的认为, 种子最多可以活过两个冬天,试建立数 学模型研究这种植物数量变化的规律, 及它能一直繁殖下去的条件。
用矩阵表示
x1 (k 1) 0.6 0.2 0.1 x1 ( k ) x ( k 1) 0.3 0.7 0.3 x ( k ) 2 2 x (k 1) 0.1 0.1 0.6 x ( k ) 3 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

用matlab求解差分方程

用matlab求解差分方程
一阶线性常系数差分方程的解、平衡点及其稳定性
01
单击此处添加正文,文字是您思想的提炼,请尽量言简意赅地阐述观点。
自然环境下,b=0
02
单击此处添加正文,文字是您思想的提炼,请尽量言简意赅地阐述观点。
人工孵化条件下
03
差分方程的平衡点
令xk=xk+1=x得
04
单击此处添加正文,文字是您思想的提炼,请尽量言简意赅地阐述观点。
添加标题
X(k)=p*(xk-1)+q*(xk-2);
添加标题
end
K=(0:20)’; Y1=zwfz(100,21,0.18); Y2=zwfz(100,21,0.19); Y3=zwfz(100,21,0,20); Round([k,y1’,y2’,y3’]) Plot(k,y1,k,y2,’:’,k,y3,’o’), Gtext(‘b=0.18’),gtext(‘b=0.19’),gtext(‘b=0.20’)
plot(k,y2,':') >> plot(k,y2,'--') >> plot(k,y2,'r') >> plot(k,y2,'y') >> plot(k,y2,'y',k,y1,':') >> plot(k,y2,k,y1,':') >> plot(k,y2,'oy',k,y1,':') 用gtext(‘r=0.0194’),gtext(‘r=-0.0324’),gtext(‘r=-0.0382’)在图上做标记。
可以看到时间充分长以后3个城市汽车数量趋于180,300,120 可以考察这个结果与初始条件是否有关 若最开始600辆汽车都在A市,可以看到变化时间充分长以后,各城市汽车数量趋于稳定,与初始值无关

用Matlab求解差分方程问题

用Matlab求解差分方程问题
1,2
5 2 10 b
植物能一直繁殖下去的条件是b>0.191
线性常系数差分方程组
• 汽车租赁公司的运营
• 一家汽车租赁公司在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个城市间转移的模型,并讨论时间 充分长以后的变化趋势。
Xk+1=aXk +b ,a=1+r
• • • • • •
function x=fhsqh(n,r,b) a=1+r; X=100; For k=1:n X(k+1)=a*x(k)+b; end
• k=(0:20) ; %一个行向量 • y1=(20,-0.0324,5); 也是一个行向量 • round( [ k ’, y 1 ’] ) 对k,y1四舍五入,但 是 不改变变量的值 plot( k , y1) k y1 是行向量列向量都可以 也可以观察200年的发展趋势,以及在较差 条件下的发展趋势,也可以考察每年孵 化数量变化的影响。
k=0:10; plot(k,x) ,grid gtext('x1(k)'), gtext('x2(k)'), gtext('x3(k)')
280 260 240 220 200 180 160 140 120
x2(k)
x1(k)
x3(k) 0 1 2 3 4 5 6 7 8 9 10
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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), ………………
相关文档
最新文档