How to plot multiple graph

1 回表示 (過去 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.

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

カテゴリ

Help Center および File ExchangeConversion Between Symbolic and Numeric についてさらに検索

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by