How get this program to calculate derivative properly?

15 views (last 30 days)
function [Yn]=Jaroslaw_Dabrowski(dt, N)
% Help funkcji [Yn]=Jaroslaw_Dabrowski(dt, N)
%funkcja obliczna pochodne n-tego stopnia i rysuje ich wykres.
%Zmienne wejściowe: dt - odstępy czasowe,
% N - stopień pochodnej.
%Zmienne wyjściowe: Yn - obliczona pochodna.
A=2;
w=1;
hold on
if N>10;
error ('myApp:argChk','Decrease the number of loop iterations')
elseif N<=10;
for i=1:N;
t=-3*pi:dt:3*pi;
Yn=A*sin(w*t);
Ynn=A*sin(w*(t+dt));
Yn(189)=Ynn(188);
size(t);
size(Yn);
dYn=diff(Yn,i)./dt;
size(t);
dYn(189)=dYn(1);
size(dYn);
subplot(5,2,i)
grid on
plot(t,dYn)
xlabel('Time')
ylabel('Amplitude')
legend(strcat('Y_n, n=',num2str(i)))
end
end
end
  3 Comments
Jaroslaw Dabrowski
Jaroslaw Dabrowski on 2 Apr 2020
Sorry, i missed answer. Could you check the answer below?
darova
darova on 2 Apr 2020
No matter how much you take derivative cos() will be always the same frequency
So your function does return correct output

Sign in to comment.

Answers (2)

KSSV
KSSV on 2 Apr 2020
Yn=A*sin(w*t);
dYn = A*w*cos(w*t) ;
  2 Comments
Jaroslaw Dabrowski
Jaroslaw Dabrowski on 2 Apr 2020
It won't work like that. i must be there, becouse each plot must be in higher derivative.

Sign in to comment.


Jaroslaw Dabrowski
Jaroslaw Dabrowski on 2 Apr 2020
It should be like that. Theoretically derivative is wrong in my code, and i have no idea how to correct it

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!