Is MATLAB solving Difference equations ?
Show older comments
Hi
I am wondering whether MATLAB is able to solve DIFFERENCE (recursive) equations, not differential ones. For example, difference equations as those frequently encountered in Economics.
Is a there a proxy method to do it?
Thanks
1 Comment
Ahmed ElTahan
on 25 Mar 2016
Here is a function I have built to calculate it with added example. https://www.mathworks.com/matlabcentral/fileexchange/56142-output-estimation-difference-equation
Accepted Answer
More Answers (1)
Matt J
on 6 Jul 2013
0 votes
There is the filter() command. If you were looking for a symbolic solution, you might find something in the Symbolic Math Toolbox.
3 Comments
Azzi Abdelmalek
on 6 Jul 2013
Example
%y[n+2]-y[n+1]+0.25y[n]=u[n]
num=1
den=[1 -1 0.25]
n=0:0.1:5; % discrete time
x=heaviside(n) % input signal, in thise case heaviside signal
y=filter(num,den,x)
plot(n,y)
msh
on 6 Jul 2013
Samir A. Farag
on 23 Oct 2014
Edited: Walter Roberson
on 22 Feb 2017
% Mr. Azzi Abdelmalek, I have some notes on your answer.
%x(n+2)-1.3x(n+1)+0.4x(n)=u(n) % x(0)=0 and x(1)=0.
num=[0 0 1]; den=[1 -1 0.25];
k=0:1:5; % discrete time
% According to unit step definition, u(n)=1 for n>=0 and zero otherwise
% but using the heaviside function - and n is discrete and integer -
% contradicts this definition
% because it equals 0.5 - and not one - at n=0.
% So, to use k in discrete - and integre, i.e. 0, 1 , 2, .. etc,
% heaviside is not the proper function and you have to define it like my
% answer
x=[1 ones(1,5)]; % This yields outputs from y(0) to y(5)
y=filter(num,den,x)
% Also, the solution of difference equation is in discrete, so, to plot it,
use stem function
stem(k,y), grid
%Mr. Samir A. Farag, Teaching Assistant at H.T.I, Egypt
Categories
Find more on Symbolic Math Toolbox in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!