MATLAB求差分方程模型

合集下载

实验二微分方程与差分方程模型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代码
差分方程求解matlab代码的基本思路,是使用差分方程去求解一
组由初始条件和终止时间定义的数学问题。

差分方程有很多不同的形式,首先要先弄明白所要解决的差分方程是什么样的,然后再选择一
个解法来求解它。

下面我们就给出一段matlab代码来说明如何求解差
分方程:
首先,要定义一个变量t,它作为一个时间变量,表示第n步的时
间变量,比如:
t=0:0.01:1;
其次,要定义一个变量y,它代表初始条件下的y的值,比如:
y=2;
然后,要写出所求解的初值问题,用matlab中的函数ode45来求解,比如:
fun=@(t,y) 2*y+2;
最后,要调用matlab中的函数ode45来求解问题,比如:
output=ode45(fun,t,y);
以上就是用matlab代码来求解差分方程的大概过程,编写matlab
代码的时候,需要定义时间变量,初始条件,和需要求解的初值问题,然后再调用相应的函数来求解。

通过这种方法,就可以解决复杂的差
分方程,并得到其所对应的函数值。

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解差分方程

• title('(a)'); xlabel('(n)');ylabel('(n)');%ep141.m: 调用filter解差分方程y(n)-ay(n-1)=x(n)
• a=0.8; ys=1;
%设差分方程系数a=0.8,初始状态:y(-1)=1
• xn=[1,zeros(1,30)] %x(n)=单位脉冲序列,长度N=31
• B=1; A=[1,-a]; %差分方程系数
• xi=filtic(B,A,ys); %由初始条件计算等效初始条件的输入序列xi
• yn=filter(B,A,xn,xi); %调用filter解差分方程,求系统输出信号y(n)
图形表现
批注本地保存成功开通会员云端永久保存去开通
用matlab解差分方程
本例子截取书上第19页,
matlab求解程序
• %ep141.m: 调用filter解差分方程y(n)-ay(n-1)=x(n)
• a=0.8; ys=1;
%设差分方程系数a=0.8,初始状态:y(-1)=1
• xn=[1,zeros(1,30)] %x(n)=单位脉冲序列,长度N=31
• B=1; A=[1,-a]; %差分方程系数
• xi=filtic(B,A,ys); %由初始条件计算等效初始条件的输入; %调用filter解差分方程,求系统输出信号y(n)
• n=0:length(yn)-1;
• subplot(3,2,1);stem(n,yn,'.')

用Matlab求解差分方程问题

用Matlab求解差分方程问题

• • • • • • •
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,'r') >> plot(k,y2,'y') >> plot(k,y2,'y',k,y1,':')
• 人工孵化是挽救濒危物种的措施之一, 如果每年孵化5只鹤放入保护区,观察在 中等自然条件下沙丘鹤的数量如何变化
Xk+1=aXk +5 ,a=1+r
如果我们想考察每年孵化多少只比较合 适,可以令
• • • • • •
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)作,而不是必须编一个函数
1,2
5 2 10 b
植物能一直繁殖下去的条件是b>0.191
线性常系数差分方程组
• 汽车租赁公司的运营
• 一家汽车租赁公司在3个相邻的城市运营,为方便顾客起见公司承 诺,在一个城市租赁的汽车可以在任意一个城市归还。根据经验
估计和市场调查,一个租赁期内在A市租赁的汽车

matlab用z变换求解差分方程

matlab用z变换求解差分方程

matlab用z变换求解差分方程
在matlab中,可以使用z变换来求解差分方程。

z变换是一种将离散信号转换为复变量函数的方法,其在数字信号处理中有着广泛应用。

通过将差分方程转换为z域的方程,可以方便地求解。

在matlab中,可以使用ztrans函数来进行z变换的计算。

该函数需要输入一个差分方程,返回其在z域中的表示。

然后,可以使用iztrans函数来进行逆z变换,将z域的结果转换为时间域的结果。

在使用z变换求解差分方程时,需要注意选择合适的初始条件,以及确保差分方程是稳定的。

此外,还需要注意处理z变换中的极点和零点,以避免求解出现错误。

总之,使用matlab求解差分方程可以借助z变换的方法,通过简单的函数调用来实现。

需要注意的是,在实际应用中需要考虑各种因素,以保证求解的准确性和可靠性。

- 1 -。

用Matlab求解差分方程问题

用Matlab求解差分方程问题

一阶线性常系数差分方程的解、平衡点及其稳定性
xk 1 axk b
• 自然环境下,b=0 • 人工孵化条件下
xk ak x0
xk ak x0 b(1 a
k
ak 1 )
1 ak a x0 b 1 a
• 令xk=xk+1=x得
x
差分方程的平衡点 • k→∞时,xk→x,称平衡点是稳定的
• 以k=0时x0=M代入,递推n次可得n年后本息为
xn 1 r M
n
• 污水处理厂每天可将处理池的污水浓度 降低一个固定比例q,问多长时间才能将 污水浓度降低一半? • 记第k天的污水浓度为ck,则第k+1天的污 水浓度为 ck+1=(1-q)ck,k=0,1,2,· · · · 从k=0开始递推n次得
• 用矩阵表示
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
一阶线性常系数差分方程的解平衡点及其稳定性?自然环境下b0?人工孵化条件下0kkxax?101kkkxaxbaa???????1kkxaxb????令xkxk1x得差分方程的平衡点?k时xkx称平衡点是稳定的011kkaaxba????1bxa??高阶线性常系数差分方程??如果第k1时段变量xk1不仅取决于第k时段变量xk决于第k时段变量xk而且与以前时段变量有关就要用高阶差分方程来描述而且与以前时一年生植物的繁殖?一年生植物春季发芽夏天开花秋季产种没有腐烂风干被人为掠取的那些种子可以活过冬天其中一部分能在第2年春季发芽然后开花产种其中的另一部分虽未能发芽但如又能活过个冬天则其中过一个冬天则其中一部分可在第三年春季发芽然后开花产种如此继续一年生植物只能活1年而近似的认为种子最多可以活过两个冬天试建立数学模型研究这种植物数量变化的规律及它能一直繁殖下去的条件

差分方程模型matlab

差分方程模型matlab

差分方程模型matlab差分方程模型在数学和工程领域中具有重要的应用。

它是描述动态系统行为的一种数学模型,通常由一系列离散时刻的状态变量和状态转移方程组成。

MATLAB作为一种功能强大的数值计算软件,为差分方程模型的建模和求解提供了便捷的工具和环境。

本文将介绍差分方程模型在MATLAB中的使用方法和应用场景。

首先,我们将探讨差分方程模型的基本原理和概念,然后详细介绍在MATLAB中的建模步骤和求解技巧。

最后,我们会给出一些在实际问题中使用差分方程模型的案例,并展示其在系统分析、控制和优化等方面的优势。

差分方程模型是描述离散系统行为的数学模型,常用于描述在给定时间步长下变量之间的关系。

它与连续时间的微分方程模型相对应,但在很多情况下,离散系统更符合实际情况。

差分方程模型可以描述许多系统,例如电路、金融市场、人口增长等。

在MATLAB中建立差分方程模型需要以下步骤:1. 定义变量:首先需要确定模型涉及的状态变量,然后在MATLAB 中声明这些变量。

可以使用向量或矩阵表示多个变量。

2. 构建状态转移方程:差分方程模型通过状态转移方程描述系统变量在不同时间步长之间的变化规律。

在MATLAB中,可以使用循环或矩阵运算构建状态转移方程。

3. 设定初值条件:差分方程模型通常需要给定初始条件,即在 t=0 时刻各个变量的值。

在MATLAB中,可以使用向量或矩阵存储初始条件。

4. 求解差分方程:在MATLAB中可以使用函数或求解器来求解差分方程模型。

常用的函数包括 `solve`、`ode45`、`ode15s`等,它们可以根据模型的具体特点选择合适的求解方法。

在实际应用中,差分方程模型在系统分析、控制和优化等方面具有广泛的应用。

例如,在系统分析中,可以通过建立差分方程模型来预测系统的行为和变化趋势。

在控制问题中,差分方程模型可以描述系统动态行为,从而设计和优化控制策略。

在优化问题中,差分方程模型可以作为约束条件或目标函数进行求解。

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求解差分方程问题

用Matlab求解差分方程问题

用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计算了
Xk= a1bcXk-1 + a2b(1-a1)bcXk-2
• • • • • • • • Function x=zwfz(x0,n,b) C=10;a1=0.5;a2=0.25; p=a1*b*c;q=a2*b*(1-a1)*b*c; X1=x0; X2=p*(x1); for k=3:n X(k)=p*(xk-1)+q*(xk-2); end
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
• 可以看到时间充分长以后3个城市汽车数 量趋于180,300,120 • 可以考察这个结果与初始条件是否有关 • 若最开始600辆汽车都在A市,可以看到 变化时间充分长以后,各城市汽车数量 趋于稳定,与初始值无关
直接输入x(:,1)的值即可
x(:,1)=[600,0,0]; round(x'); plot(k,x),grid

用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'])
用Matlab求解差分方程问题
一阶线性常系数差分方程
高阶线性常系数差分方程
线性常系数差分方程组
差分方程是在离散时段上描述现 实世界中变化过程的数学模型
• 例1、 某种货币1年期存款的年利率是r , 现存入M元,问年3;r)xk , k = 0 , 1 , 2 · · · · ·
方程(1)的解可以表为 C1,c2 由初始条件x0,x1确定。
1,2 1, xk 0( k )
1,2 1, xk ( k )
• 本例中,用待定系数的方法可以求出 b=0.18时,c1=95.64, c2=4.36 , (1, 2 ) (0.9430, 0.0430) 这样 xk 95.64(0.9430)k 4.36(0.0430)k 实际上,
直接输入x(:,1)的值即可
x(:,1)=[600,0,0]; round(x'); plot(k,x),grid
600 500
400
300
200
100
0
0
1
2

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解差分方程

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

用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市,可以看到变化时间充分长以后,各城市汽车数量趋于稳定,与初始值无关
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
பைடு நூலகம்
function Xn=sqh(n,r,X0) Xn=(1+r)^n*X0; end 单击工具栏中的保存按钮,文件名sqh3.m 保存以后在指令窗口调用sqh3函数,输入: >>Xn=sqh3(20,0.0194,100) 输出同上。
Matlab实现
Xk+1 =(1+r)Xk
function x=sqh(n,r) x(1)=100; for k=1:n x(k+1)=(1+r)*x(k); end 单击工具栏中的保存按钮,文件名sqh4.m 保存以后在指令窗口调用sqh4函数,输入: >>xn=sqh4(20,0.0194) 输出同上。
结果分析:Xk+pXk-1 + qXk-2=0 (1)
x1+px0=0
k
(2)
• 对高阶差分方程可以寻求形如 xk 2 p q 0 的解。代入(1)式得 称为差分方程的特征方程。差分方程的特征根:
1,2
p
p 2 4q 2
k 1 1
方程(1)的解可以表为 xk c C1,C2 由初始条件x0,x1确定。
141.3199 144.0615 146.8563
利用plot 绘图观察数量变化趋势
>>k=0:20; >>y1= sqh4(20,0.0194); >>plot(k,y1) 得到Figure1 在Edit菜单下Copy Figure,可以将图 粘贴到Word文档。
150 145 140 135 130 125 120 115 110 105 100
xn = Columns 1 through 6 100.0000 101.9400 103.9176 105.9336 107.9888 110.0837 Columns 7 through 12 112.2194 114.3964 116.6157 118.8780 121.1843 123.5353 Columns 13 through 18 125.9318 128.3749 130.8654 133.4042 135.9922 138.6305 Columns 19 through 21
记一棵植物春季产种的平均数为c,种子能活过一个冬 天的(1岁种子)比例为b,活过一个冬天没有发芽又活过一 个冬天的(2岁种子)比例仍为b,1岁种子发芽率a1,2岁 种子发芽率a2。
• 设c,a1,a2固定,b是变量,考察能一直繁殖的条件
• 记第k年植物数量为Xk,显然Xk与Xk-1,Xk-2有 关,由Xk-1决定的部分是 a1bcXk-1,由Xk-2决 定的部分是 a2b(1-a1)bcXk-2 Xk= a1bcXk-1 + a2b(1-a1)bcXk-2
3.建立M函数文件 格式: function 输出变量=函数名称(输入变量) 例如:输入 function Xn=sqh(n,r) X0=100; Xn=(1+r)^n*X0; end 单击工具栏中的保存按钮,文件名sqh2.m 保存以后在指令窗口调用sqh2函数,输入: >>Xn=sqh2(20,0.0194) 输出同上。
作图观察5年以后数量的变化趋势:在指令窗口输入 >> y1=qczl(5); 300 >> k=0:5; 280 >> plot(k,y1)
260 240 220 200 180 160 140 120
0
0.5
1
1.5
2
2.5
3
3.5
4
4.5
5
练习: 1. 若最初600辆汽车平均分配在三个城市, 作图观察30年以后数量的变化趋势 2. 若最开始600辆汽车都在A市,变化时间 充分长以后,各城市汽车数量的变化情况 如何?
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
输出: ans = 179.9324 299.9895 120.0781
2. 建立M文件 function x=qczl(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
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计算了
0
2
4
6
8
10
12
14
16
18
20
在同一坐标系下画图
>> k=0:20; %一个行向量 >> y1= sqh4(20, 0.0194); >> y2= sqh4(20, -0.0324); >> y3= sqh4(20, -0.0382); >> plot(k,y1,k,y2,':',k,y3,'r')
1. 可以看到时间充分长以后3个城市汽车 数量趋于180,300,120 2. 若最开始600辆汽车都在A市,可以看 到变化时间充分长以后,各城市汽车数 量趋于稳定,与初始值无关
利用线性规划知识;找到凸集,因为所谓的最优解,一般都在凸集
600
500
400
300
200
100
0
0
5
10
15
20
25
30
c2
k 2
1,2 1, xk 0(k )
1,2 1, xk ( k )
• 本例中,用待定系数的方法可以求出 b=0.18时,c1=95.64, c2=4.36 , (1, 2 ) (0.9430, 0.0430) k k 这样 x 95.64(0.9430) 4.36(0.0430)
>> k=0:20; >> y1=zwfz(100,21,0.18); >> y2=zwfz(100,21,0.19); >> y3=zwfz(100,21,0.20); >> plot(k,y1,k,y2,':',k,y3,'r')
250
200
150
100
50
0
0
2
4
6
8
10
12
14
16
18
20
Xk= a1bcXk-1 + a2b(1-a1)bcXk-2
假设 X0=100,a1=0.5,a2=0.25,c=10,b=0.18~0.20 简化为 Xk= pXk-1 + qXk-2 • • • • • • • • function x=zwfz(x0,n,b) c=10;a1=0.5;a2=0.25; p=a1*b*c;q=a2*b*(1-a1)*b*c; x(1)=x0; x(2)=p*x(1); for k=3:n x(k)=p*x(k-1)+q*x(k-2); end
0.1 A 0.6 0.7 0.3 B C
A
0.2
B
0.1
C
0.6 C
假设在 每个租 赁期开 始能把 汽车都 租出去, 并都在 租赁期 末归还
A
B 0.1
0.3
模型及其求解
• 记第k个租赁期末公司在ABC市的汽车数量 分别为x1(k),x2(k),x3(k)(也是第k+1个租赁 期开始各个城市租出去的汽车数量),很 容易写出第k+1个租赁期末公司在ABC市的 汽车数量为(k=0,1,2,3· · · )
当a=3, a=4时,如图
100 99.5 99 98.5 98 97.5 97 96.5 96
0
2
4
6
8
10
12
14
16
18
20
112
110
108
106
104
102
100
0
2
4
6
8
10
12
14
16
18
20
高阶线性常系数差分方程 ——一年生植物的繁殖
• 一年生植物春季发芽,夏天开花,秋季产种, 没有腐烂,风干,被人为掠取的那些种子可以 活过冬天,其中一部分能在第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
k
5 实际上, 1,2
10 2
b
插入的数 的大小, 其必须满 足一个递 减趋势, 增长值为 负
植物能一直繁殖下去的条件是b>0.191
线性常系数差分方程组
• 汽车租赁公司的运营
相关文档
最新文档