How to plot multiple graph

4 ビュー (過去 30 日間)
Nima Vali
Nima Vali 2020 年 9 月 21 日
コメント済み: Nima Vali 2020 年 9 月 21 日
Hello all
I am going to plot f= sin(5x)/x^3 and its derivative f '(x) within the domain x ∈[0.1,0.4]using semilogy plot.
  6 件のコメント
Nima Vali
Nima Vali 2020 年 9 月 21 日
clc; clear all; close all;
syms x
x=logspace(0.1,0.4);
f(x)=sin(5*x)./(x.^3);
Df=diff(f,x);
semilogx(x,f(x),'g')
hold on
semilogx(x,Df,'r')
grid
Nima Vali
Nima Vali 2020 年 9 月 21 日
but it comes with error

サインインしてコメントする。

回答 (2 件)

Jon
Jon 2020 年 9 月 21 日
I don't have the symbolic toolbox, but I could get your code to work by modifying as follows. Note I did not include the line syms x as I don't have the symbolic toolbox.
x=logspace(0.1,0.4);
f =sin(5*x)./(x.^3);
Df= gradient(f)./gradient(x);
semilogx(x,f,'g')
hold on
semilogx(x,Df,'r')
grid
  2 件のコメント
Jon
Jon 2020 年 9 月 21 日
The key line is
Df= gradient(f)./gradient(x)
This gives a simple numerical approximation to the derivative.
You can see what the gradient function does by typing doc gradient on the command line.
Nima Vali
Nima Vali 2020 年 9 月 21 日
Yes, I get it. Thank you for help.

サインインしてコメントする。


Ameer Hamza
Ameer Hamza 2020 年 9 月 21 日
You are using the symbolic variables incorrectly. Check this code
% clc; clear all; close all;
syms x
f(x)=sin(5*x)./(x.^3);
Df = diff(f,x);
xv = logspace(0.1,0.4);
semilogx(xv, f(xv), 'g')
hold on
semilogx(xv, Df(xv), 'r')
grid
  3 件のコメント
Image Analyst
Image Analyst 2020 年 9 月 21 日
And you might add a legend so you know what color is what.
legend('Original Signal', 'Derivative', 'Location', 'northeast');
Nima Vali
Nima Vali 2020 年 9 月 21 日
yes, Thank you.

サインインしてコメントする。

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by