差分方程的迭代解法

合集下载

差分方程的求解

差分方程的求解

Y ( z) G( z ) R( z ) 1 G ( z ) E( z) 1 R( z ) 1 G ( z )
16
计算机控制技术课程讲义
例:已知采样控制系统如下图,求计算系统的闭环脉冲传递 函数
r(t) + —
10 s ( s 1)
Y(z)
y(t)
解: 系统开环脉冲传递函数为:
计算机控制技术课程讲义
Y ( z) G( z) R( z ) 1 GH ( z )
15
闭环脉冲传递函数
Y ( z) G( z) R( z ) 1 GH ( z ) E( z) 1 R( z ) 1 GH ( z )
误差脉冲传递函数
对于单位反馈系统
闭环脉冲传递函数 误差脉冲传递函数
k 0
则g * (t ) [1( k T ) e 10t ]z k 方法一: G ( z ) Z [ g * (t )] 1( k T) z
k 0 k
e 10t z ) 10T z 1 z e ( z 1)( z e 10T ) 方法二: G(s) 1 1 s s 10
9
10T 1 z z ( 1 e ) 直接查表得:G ( z) 计算机控制技术课程讲义 z 1 z e 10T ( z 1)( z e 10T )
4.5.3 开环脉冲传递函数

一、连续系统串联环节 方框图
R(s) Y(s)
G1(s)
G2(s)
Y ( s) G( s) G1 ( s)G2 ( s) R( s )

b0 rk b1rk 1 b2 rk 2 ... bm rk m ( y : 输出,r : 输入)

有限差分法-3

有限差分法-3

一、差分方程
下式为一维非稳定流的差分方程:
T Hi,k1 Hi1,k1 T 1 Hi,k Hi1,k
x
x
T
Hi1,k 1 x
Hi,k 1
T
1
Hi1,k x
Hi,k
S
x
Hi,k1 t
Hi,k
利用水量均衡原理,可得二维流的差分方程:
沿x方向流入量和流出量之差为:
T Hi, j,k 1 Hi1, j,k1 T 1 Hi, j,k Hi1, j,k
h2m,k 1
h m 1 1,k 1
h m 1 2,k 1
2
x
2
x
x
t
h m 1 1,k 1
h1,k
K
hm 1,k 1
hm 2,k 1
h m 1 1,k 1
h m 1 2,k 1
K
hm 2,k 1
h3m,k 1
h m 1 2,k 1
h m 1 3,k 1
x
2
x
2
x
t
h m 1 2,k 1
F3
A H m1 1 0,k 1
A H m1 2 1,k 1
A H m1 3 2,k 1
C1H
m 2,k
1
C2
H
m 3,k
1
C3
H
m 4,k
1
H m1 n1,k 1
Fn1
A H m1 n1 n2,k 1
Cn
1H
m n,k
1
简单迭代法也叫同步迭代法。
高斯-塞德尔迭代法也叫异步迭代法。
3、超松弛迭代法
2
x
x
t
hi,k 1 hi,k

差分方程解法及其在离散系统中的应用

差分方程解法及其在离散系统中的应用

差分方程解法及其在离散系统中的应用差分方程是数学中一类重要的离散数学方程,广泛应用于动态系统建模和离散事件系统的分析。

本文将介绍差分方程的解法以及它在离散系统中的应用。

一、差分方程的定义和基本概念差分方程是一种以离散形式描述系统变化的数学方程。

其基本形式为:Δyₙ = f(n, yₙ₋₁)其中,Δyₙ为相邻两个时刻n和n-1之间y的变化量,f(n, yₙ₋₁)为给定时刻n和n-1之间的函数关系。

二、差分方程求解的方法对于简单的差分方程,可以直接通过迭代求解。

例如,对于一阶线性差分方程:Δyₙ = k其中,k为常数。

可以通过重复应用这一关系求解,即:yₙ = y₀ + kₙ其中,y₀为初始条件,kₙ为Δyₙ在不同时刻的取值。

对于更复杂的差分方程,可以采用数值方法求解,如欧拉法、龙格-库塔法等。

这些方法可以通过将差分方程转化为递推方程,并利用数值计算得到近似解。

三、离散系统中差分方程的应用1. 经济学中的应用差分方程可以用来描述经济系统中的离散变化。

例如,经济增长模型中的劳动力增长率、资本积累速度等,都可以通过差分方程来建模和分析。

2. 自然科学中的应用差分方程在物理学、生态学等自然科学领域中也有广泛的应用。

例如,天体运动、人口增长、物种竞争等系统的演化过程都可以用差分方程来描述和预测。

3. 计算机科学中的应用差分方程在计算机科学中的应用也是十分重要的。

例如,计算机网络中数据包的传输、媒体数据的压缩等问题,都可以通过差分方程来建模和解决。

四、差分方程解法的局限性和改进方法虽然差分方程是一种有效的数学工具,但其在一些特殊情况下存在局限性。

例如,对于非线性和高阶差分方程,常常难以求得解析解。

此时,可以利用数值方法进行近似求解,或者采用数值优化算法寻找最佳解。

总结:差分方程是一种重要的离散数学工具,广泛用于动态系统建模和离散事件系统的分析。

通过合适的差分方程求解方法,可以有效地描述和预测各种离散变化的系统。

§7.3 差分方程及其求解

§7.3 差分方程及其求解

P,Q为待定系数
M 1 y n 为等幅正弦序列 M 1 y n 为增幅正弦序列 M 1 y n 为减幅正弦序列
X
2.特解
线性时不变系统输入与输出有相同的形式
第 21 页
输入 an x n e
x n e
jn
输出 an y n Ae
y n Ae
第 11 页
X
常系数线性差分方程的求解
北京电子科技学院

解法
1.迭代法
13 页
2.时域经典法:齐次解+特解; 3.零输入响应+零状态响应 利用卷积求系统的零状态响应
4. z变换法反变换y(n)
X

一.迭代法
解差分方程的基础方法 差分方程本身是一种递推关系。
缺点:得不到y n 输出序列的解析式
通式 : a k y n k br x n r
k 0 r 0 N M
X
差分方程的特点
(3)微分方程可以用差分方程来逼近,微分方程解是 精确解,差分方程解是近似解,两者有许多类似之 处。
(4)差分方程描述离散时间系统,输入序列与输出序 列间的运算关系与系统框图有对应关系,应该会写 会画。
yn C
yn C r
n
x n r (r与特征根重)
yn C1nr C2 r
n
n
X

例3
y n 2 y n 1 5u n 求全解 且 y 1 1
22 页
r 2 0 r 2
由递推关系,可得输出值:
y n 1, 4, 13, 40, n 0

差分方程的迭代解法

差分方程的迭代解法
实验23 迭代法及离散卷积的计算
1
实验目的


学习用Matlab计算离散信号的功率和能量。
学习并掌握用迭代法求解差分方程的方法 。 掌握用Matlab进行离散卷积运算的数值方法 和解析方法。加深对离散卷积的理解。
2
实验原理与说明
离散信号的能量与功率
与连续信号类似,离散信号也可分为能量信号和 功率信号。对于非周期信号,信号能量定义为
1
0
其它
2
0
其它
解 用Matlab并调用DSCONV()函数,程序如下:
% 计算离散信号的卷积 exp23_2a.m n1=-2;f1=[2 2 2 2 2 2]; % 序列的起始点,序列值 n2=0;f2=[1 1 1 1 1 1]; % 序列的起始点,序列值 M=6; % 将卷积值显示在中间,左右插入M点 dsconv(f1,n1,f2,n2,M) 在命令窗口显示的卷积结果 y= 2 4 6 8 10 12 10 8 6 4 2
9
计算示例
例2 求下述差分方程的解 y(k ) 1.5 y(k 1) y(k 2) 2 f (k 2) y (2) 2 。 其中输入信号 f (k ) (k ) ,初始条件 y (1) 1 ,
解 Matlab程序如下: % 计算例2的程序 exp23_1.m a=[-1.5 1];b=[0 0 2]; y0=[2 1];f0=[0 0]; n=0:30; f=ones(1,length(k)); y=recur(a,b,n,f,f0,y0); stem(n,y,'.'), xlabel('k'),ylabel('y(k)')

第二项与上类似

navierstokes方程的三种迭代法

navierstokes方程的三种迭代法

navierstokes方程的三种迭代法
Navier-Stokes方程是描述流体运动的基本方程,其解法通常涉及到数值计算。

以下是三种常见的迭代法:
有限差分法(Finite Difference Method):
有限差分法是一种直接求解Navier-Stokes方程的方法。

它通过将连续的时间和空间离散化,将偏微分方程转化为差分方程,然后通过迭代求解这些差分方程来逼近原方程的解。

这种方法简单直观,但可能对初值敏感,且在处理复杂边界条件时可能遇到困难。

有限元法(Finite Element Method):
有限元法是一种基于变分原理的数值方法。

它将连续的流体域离散为有限个小的子域(或称为“元”),然后在这些子域上定义近似函数。

通过最小化近似函数与真实解之间的误差,可以得到原方程的近似解。

这种方法能够处理复杂的边界条件,且对初值不敏感,但计算量较大。

有限体积法(Finite Volume Method):
有限体积法是一种介于有限差分法和有限元法之间的方法。

它将流体域划分为一系列控制体积,并在每个控制体积上定义离散的数值格式。

通过求解这些离散方程,可以
得到原方程的近似解。

这种方法在处理复杂边界条件和流场变化时具有较好的适应性,且计算效率较高。

以上三种迭代法各有优缺点,可以根据具体问题选择适合的方法进行求解。

Newton迭代法与有限差分迭代法求解方程

Newton迭代法与有限差分迭代法求解方程

非线性方程的数值解法作业1.问题表述设20()12f x x x ⎧=-⎨=⎩,试用Newton 迭代法与有限差分迭代法求解方程,并画出对比图像。

迭代停止条件为61|()|(10)2f x -<,即误差不超过61(10)2-。

2.MATLAB 程序利用牛顿法求解非线性函数的根求解f(x)=x^2-1=0的根初始值x0=2实现方法:牛顿法,有限差分牛顿法%% 主程序function mainszfun1=zeros(1,50);szfun2=zeros(1,50);%预存|f(xk)|的数组% 牛顿法tic,[szfun1,k1]=newton;s1=tochold on;rx1=1:1:k1-1;szfun1=szfun1(1:length(rx1));plot(rx1,szfun1,':^b');% 有限差分牛顿法tic,[szfun2,k2]=YQCF_newton(1.2);s2=tocrx2=1:1:k2-1;szfun2=szfun2(1:length(rx2));plot(rx2,szfun2,':or');title('两种数值方法比较');xlabel('迭代次数k');ylabel('|f(x)|函数值');legend(['牛顿法','time:',num2str(s1)],['有限差分','time:',num2str(s2)]);end%% 牛顿法迭代格式function [szfun1,k1-1]=newtonx0=2;xk=x0;k1=1;fk=abs(fun(xk));while fk>1/2*10^-6df=dfun(xk);%函数的导数值%避免导数过小if df<10^-10df=df+1/2*rand(1);endxk_1=xk-fun(xk)/df;%牛顿迭代公式 xk=xk_1;%更新点fk=abs(fun(xk));szfun1(k1)=fk;k1=k1+1;endend%% 有限差分法迭代格式function [szfun2,k2-1]=YQCF_newton(h) % h 初始迭代的步长x0=2;xk=x0;k2=1;fk=abs(fun(xk)); while fk>1/2*10^-6df=wfun(xk,h);%函数的导数值%避免导数过小if df<10^-10df=df+1/2*rand(1);endxk_2=xk-fun(xk)/df;%牛顿迭代公式 xk=xk_2;%更新点fk=abs(fun(xk));szfun2(k2)=fk;k2=k2+1;h=rand(1)*h;endend%% 辅助函数function y=fun(x)y=x^2-1;end% 函数导数function dirv_y=dfun(x)dirv_y=2*x;end% 差商带微商function wy=wfun(x,h)if h<10^-10h=h+1/2*rand(1);endwy=(fun(x+h)-fun(x))/h;end3.程序结果表1:图1:4.结果分析由程序结果可知:对于Newton法,达到问题要求的精度只需要4步,运行时间为0.0037,收敛速度很快;对于有限差分法,达到问题要求的精度只需要6步,运行时间为0.0039,收敛速度比newton慢些。

考研数学——差分方程及其应用

考研数学——差分方程及其应用

附录:差分方程及其应用一、差分的概念定义1设函数称改变量为函数的差分, 也称为函数的一阶差分, 记为, 即或 .一阶差分的差分称为二阶差分, 即类似可定义三阶差分, 四阶差分,……例1 设,求,。

解 。

二、差分方程的概念定义2含有未知函数的差分的方程称为差分方程.差分方程的一般形式:或差分方程中所含未知函数差分的最高阶数称为该差分方程的阶. 差分方程的不同形式可以互相转化.定义3满足差分方程的函数称为该差分方程的解.如果差分方程的解中含有相互独立的任意常数的个数恰好等于方程的阶数, 则称这个解为该差分方程的通解.我们往往要根据系统在初始时刻所处的状态对差分方程附加一定的条件,这种附加条件称为初始条件, 满足初始条件的解称为特解.定义4若差分方程中所含未知函数及未知函数的各阶差分均为一次的, 则称该差分方程为线性差分方程.线性差分方程的一般形式是其特点是都是一次的.三、一阶常系数线性差分方程一阶常系数线性差分方程的一般形式为:(1)其中, P为非零常数, 为已知函数. 如果则方程变为:称为一阶常系数线性齐次差分方程, 相应地,方程(1)称为一阶常系数线性非齐次差分方程.四、一阶常系数线性差分方程的迭代解法一阶常系数线性差分方程的一般形式为:, (2)其中常数,为的已知函数,当不恒为零时,(2)式称为一阶非齐次差分方程;当时,差分方程: (3)称为与一阶非次线性差分方程对应的一阶齐次差分方程。

下面给出差分方程的迭代解法。

1、求齐次差分方程的通解把方程(3)写作,假设在初始时刻,即时,函数取任意常数。

分别以代入上式,得最后一式就是齐次差分方程(3)的通解。

特别地,当时,齐次差分方程(3)的通解为:,。

2、求非齐次线性差分方程的通解1、设为常数此时,非齐次差分方程(2)可写作:。

分别以代入上式,得。

(4)若,则由(4)式用等比级数求和公式,得,, 或,,其中为任意常数。

若,则由(4)式,得:,,其中为任意常数。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

10
运行程序后,系统响应波形如图7-13所示。
图23-1 例1的系统响应波形
11
例3 用Matlab求下列序列的卷积和。 (a) f1 (k ) [2, 2, 2 , 2, 2, 2] , f 2 (k ) [1, 1, 1, 1, 1, 1] 。 1 k 5 k 1 2k 2 (b) f (k ) , f (k )
9
计算示例
例2 求下述差分方程的解 y(k ) 1.5 y(k 1) y(k 2) 2 f (k 2) y (2) 2 。 其中输入信号 f (k ) (k ) ,初始条件 y (1) 1 ,
解 Matlab程序如下: % 计算例2的程序 exp23_1.m a=[-1.5 1];b=[0 0 2]; y0=[2 1];f0=[0 0]; n=0:30; f=ones(1,length(k)); y=recur(a,b,n,f,f0,y0); stem(n,y,'.'), xlabel('k'),ylabel('y(k)')
差分方程的迭代解法
a y (k i ) b f (k i )
i 0 i i 0 l
N
M
y (k ) ai y (k i ) bi f (k i )
i 1 i 0
N
M
4
实验原理与说明
令上式中,有
y(0) a1 y(1) a 2 y(2) a N y( N ) b0 f (0) b1 f (1) bM f ( M )
实验23 迭代法及离散卷积的计算
1
实验目的


学习用Matlab计算离散信号的功率和能量。
学习并掌握用迭代法求解差分方程的方法 。 掌握用Matlab进行离散卷积运算的数值方法 和解析方法。加深对离散卷积的理解。
2
实验原理与说明
离散信号的能量与功率
与连续信号类似,离散信号也可分为能量信号和 功率信号。对于非周期信号,信号能量定义为
1
0
其它
2
0
其它
解 用Matlab并调用DSCONV()函数,程序如下:
% 计算离散信号的卷积 exp23_2a.m n1=-2;f1=[2 2 2 2 2 2]; % 序列的起始点,序列值 n2=0;f2=[1 1 1 1 1 1]; % 序列的起始点,序列值 M=6; % 将卷积值显示在中间,左右插入M点 dsconv(f1,n1,f2,n2,M) 在命令窗口显示的卷积结果 y= 2 4 6 8 10 12 10 8 6 4 2
k=0:10;fk=3*(0.5).^k;E=sum(abs(fk).^2)
f (k ) 6 cos( 2 k / 4)
k=0:3;fk=6*cos(0.5*pi.*k); E=sum(abs(fk).^2);P=E/4
f (k ) 6e j 2 k / 4
k=0:3;fk=6*exp(j*0.5*pi.*k); E=sum(abs(fk).^2);P=E/4

7
实验原理与说明
对于有限长序列,我们建立一个通用函数,它可
以计算并画出两个有限长序列卷积的结果和波形 。能使三个波形的横坐标统一,间隔相同。卷积 结果显示在横坐标的中间位置。这个函数取名为 DSCONV(),程序自己阅读.
8
计算示例
例1 计算下列离散信号的能量或功率。
f (k ) 3(0.5) k , k 0
5
实验原理与说明

迭代计算的一般规律
y (k ) ai y (k i ) bi f (k i )
i 1 i 0
N
M

第一项
a y(k i) a
i 1 i
NLeabharlann Na N 1 y (k N ) y (k N 1 a1 y ( k 1 )
E
k


f (k )
2
对于周期的离散信号,由于其能量无限大,故常
常用功率来作其测量参数。设有一周期为离散信 号,其功率定义为:
1 P N

k 0
N 1
f (k )
2
3
实验原理与说明
能量有限的信号称为能量信号。功率有限的信号称 为功率信号。所有周期信号都是功率信号。 离散序列的求和在MATLAB中可利用sum函数来实 现,其调用形式为 y=sum(f(n:m))
y(1) a1 y(0) a 2 y(1) a N y( N 1) b0 f (1) b1 f (0) bM f ( M 1)
以此类推,通过反复迭代,就可以求出任意时
刻的响应值。这种迭代方法最适合用计算机计 算,下面我们用Matlab来实现这种计算。
12
运行后显示的波形如图23-2(a)所示。
图23-2 离散卷积的图形 (a)
13
% 计算离散信号的卷积 exp23_2b.m n1=-2:2;f1=[1 1 1 1 1]; % 序列的起始点,序列值 n2=1:5;f2=n2; % 序列的起始点,序列值 M=6; % 将卷积值显示在中间,左右插入M点 dsconv(f1,n1,f2,n2,M) 在命令窗口显示的卷积结果 y= 1 3 6 10 15 14 12 9 5 运行后显示的波形如图23-2(b)所示。
14
图23-2 离散卷积的图形 (b)
15
实验内容
1、画出下列各信号的波形,求能量或功率。 (a) f (k ) [6, 4, 2, 2]

(b) f (k ) [3, 2, 1, 0, 1] (c) f (k ) cos(0.5k ) (d) f (k ) 8(0.5) k (k )

第二项与上类似
6
实验原理与说明
离散卷积的计算 Matlab信号处理工具箱提供了一个计算两个离散序列 卷积和的函数conv(),其调用格式为 y=conv(f,h) 式中,f、h分别为待卷积的两序列的向量表示,y是 卷积的结果。 如 >> f1=[2 2 2]; >> f2=[1 4 9]; >> y=conv(f1,f2) y = 2 10 28 26 18
相关文档
最新文档