How get this program to calculate derivative properly?
Show older comments

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
darova
on 2 Apr 2020
Can you be more specific? What is wrong?
Show the original curve and the curve you want to see. Show the curve derivative was taken from.
Jaroslaw Dabrowski
on 2 Apr 2020
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
Answers (2)
KSSV
on 2 Apr 2020
Yn=A*sin(w*t);
dYn = A*w*cos(w*t) ;
2 Comments
KSSV
on 2 Apr 2020
Replace:
dYn=diff(Yn,i)./dt;
with:
dYn=diff(Yn)./dt;
Jaroslaw Dabrowski
on 2 Apr 2020
Jaroslaw Dabrowski
on 2 Apr 2020
0 votes
Categories
Find more on Surface and Mesh Plots 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!