How to evaluate a function that has been saved to a variable

3 vues (au cours des 30 derniers jours)
Eth
Eth le 13 Mai 2021
Commenté : Walter Roberson le 13 Mai 2021
I have a function:
f = @(x) 2*tanh(x/2)
I'm taking the 1,2,3 derivatives of
d1 = diff(f(x))
d2 = diff(f(x),2)
d3 = diff(f(x),3)
I want to plot them now but not sure how to do this. If I try the following it gives me an error:
x = -1:0.01:1;
plot(x, d1(x))
How do you plot them if they are stored in a variable? or evaluate them?
  2 commentaires
Adam Danz
Adam Danz le 13 Mai 2021
> How do you plot them if they are stored in a variable? or evaluate them?
Your example uses values stored in a variable so I'm not sure what you're asking.
Don't forget that d1 will have 1 less value than x since you're differentiating, d2 will have 2 less values, etc.
Eth
Eth le 13 Mai 2021
Modifié(e) : Eth le 13 Mai 2021
Hi @Adam Danz I can plot the function with no issues as:
plot(x,f(x))
But when I try to plot the the derivatives as:
plot(x,d1(x))
I get the error:
Array indices must be positive integers or logical values.
Error in sym/subsref (line 909)
R_tilde = builtin('subsref',L_tilde,Idx);

Connectez-vous pour commenter.

Réponse acceptée

Walter Roberson
Walter Roberson le 13 Mai 2021
%provided that x is symbolic
d1(x) = diff(f(x))
d2(x) = diff(f(x),2)
d3(x) = diff(f(x),3)
  2 commentaires
Eth
Eth le 13 Mai 2021
Thank You!
Walter Roberson
Walter Roberson le 13 Mai 2021
f = @(x) 2*tanh(x/2)
f = function_handle with value:
@(x)2*tanh(x/2)
syms x
d1(x) = diff(f(x))
d1(x) = 
d2(x) = diff(f(x),2)
d2(x) = 
d3(x) = diff(f(x),3)
d3(x) = 
simplify(d2(2))
ans = 
Looks fine to me.
If you are expecting decimal values, then use vpa()

Connectez-vous pour commenter.

Plus de réponses (1)

David Hill
David Hill le 13 Mai 2021
syms x;
f = 2*tanh(x/2);
d1 = diff(f);
d2 = diff(f,2);
d3 = diff(f,3);
fplot(f,[-1,1]);
hold on;
fplot(d1,[-1,1]);
fplot(d2,[-1,1]);
fplot(d3,[-1,1]);

Tags

Produits


Version

R2021a

Community Treasure Hunt

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

Start Hunting!

Translated by