matlab利用递归求解差分方程function y = recur(a,b,n,x,x0,y0);%% y = recur(a,b,n,x,x0,y0)% solves for y[n] from:% 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] %% a,b,n,x,x0 and y0 are vectors% a = [a1 a2

来源:学生作业帮助网 编辑:作业帮 时间:2024/04/19 18:55:19
matlab利用递归求解差分方程function y = recur(a,b,n,x,x0,y0);%% y = recur(a,b,n,x,x0,y0)% solves for y[n] from:% 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] %% a,b,n,x,x0 and y0 are vectors% a = [a1 a2

matlab利用递归求解差分方程function y = recur(a,b,n,x,x0,y0);%% y = recur(a,b,n,x,x0,y0)% solves for y[n] from:% 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] %% a,b,n,x,x0 and y0 are vectors% a = [a1 a2
matlab利用递归求解差分方程
function y = recur(a,b,n,x,x0,y0);
%
% y = recur(a,b,n,x,x0,y0)
% solves for y[n] from:
% 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]
%
% a,b,n,x,x0 and y0 are vectors
% a = [a1 a2 ...aN]
% b = [b0 b1 ...bM]
% n contains the time values for which the solution will be computed
% y0 contains the initial conditions for y,in order,
% i.e.,y0 = [y[n0-N],y[n0-N+1],...,y[n0-1]]
% where n0 represents the first element of n
% x0 contains the initial conditions on x,in order
% i.e.,x0 = [x[n0-M],...,x[n0-1]]
% the output,y,has length(n)
%
N = length(a);
M = length(b)-1;
y = [y0 zeros(1,length(n))];
x = [x0 x]
a1 = a(length(a):-1:1) % reverses the elements in a
b1 = b(length(b):-1:1)
for i=N+1:N+length(n),
y(i) = -a1*y(i-N:i-1)' + b1*x(i-N:i-N+M)';
end
y = y(N+1:N+length(n))
看到循环那有些看不明白

matlab利用递归求解差分方程function y = recur(a,b,n,x,x0,y0);%% y = recur(a,b,n,x,x0,y0)% solves for y[n] from:% 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] %% a,b,n,x,x0 and y0 are vectors% a = [a1 a2
首先,这个不是matlab利用递归求解差分方程,而是递推;差分方程其实就是递推关系式.
然后这个循环:
for i=N+1:N+length(n),
y(i) = -a1*y(i-N:i-1)' + b1*x(i-N:i-N+M)';
end
其实是因为:
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] = -(a1*y[n-1] + a2*y[n-2]...+ an*y[n-N] )+ b0*x[n] + b1*x[n-1] + ...+ bm*x[n-M]
具体来说,就是:
我们已知了y1、y2、y3.yN,然后通过循环依次求得yN+1、yN+2等等.

matlab利用递归求解差分方程function y = recur(a,b,n,x,x0,y0);%% y = recur(a,b,n,x,x0,y0)% solves for y[n] from:% 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] %% a,b,n,x,x0 and y0 are vectors% a = [a1 a2 如何讲解差分方程的概念 讲解差分方程,以及证明过程. 怎么用matlab的ode命令解下面的方程?上述方程我用matlab解后发现数值解和精确解差别较大,求帮助 数字信号处理关于解差分方程的单位抽样响应 背包问题的算法登上算法、递归算法、贪婪算法、动态规划算法利用matlab编程实现我把我仅有的分都给了 用于解差分方程的特征方程法的原理是什么?最好详细给出原理证明过程 利用递归的方法求自然数n的阶乘 如何利用MATLAB求不定积分. 利用matlab如何求置信区间? 什么是递归方程? matlab解递归的方程问题我有一个递归方程我还有一组关于cm的数据 从2002年到2010年: 0.0337 0.0846 0.1581 0.2338 0.3126 0.4176 0.5337 0.6454 0.8001 我想解出这个递归方程的 求详细的用C语言利用递归方法求5!.3Q利用递归方法求5!.并附上详细说明 matlab 全排列perm只能求1~9的,用递归求全排列 编写函数func(n)求Fibonacci数列(1 1 2 3 5 8.)的第17个数要求 使用函数的递归调用 求15分钟以内给出答案 1,1,1,3,5,9,17,31,57,.利用递归求前30项 利用递归方法求s=1*2+2*2+3*2+.+n*2 用matlab解方程求matlab代码.