Is MATLAB solving Difference equations ?
Ältere Kommentare anzeigen
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 Kommentar
Ahmed ElTahan
am 25 Mär. 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
Akzeptierte Antwort
Weitere Antworten (1)
Matt J
am 6 Jul. 2013
0 Stimmen
There is the filter() command. If you were looking for a symbolic solution, you might find something in the Symbolic Math Toolbox.
3 Kommentare
Azzi Abdelmalek
am 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
am 6 Jul. 2013
Samir A. Farag
am 23 Okt. 2014
Bearbeitet: Walter Roberson
am 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
Kategorien
Mehr zu Symbolic Math Toolbox finden Sie in Hilfe-Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!