calculate derivative of a function using handle
Mostrar comentarios más antiguos
Hi, Matlab community
I have two scripts, one is
syms f(x)
f=@(x)func(x);
df=diff(f,x);
fplot(@(x) df(x),[0 10])
the other one is
function f=func(x)
if x >= 1 && x <= 2;
f=-x*1/4+2;
else
f=0;
end
And the error shows like:
Conversion to logical from sym is not possible.
How to solve ths problem?
Thank you for your attention
2 comentarios
KSSV
el 8 de Jun. de 2020
How did you use those functions...show us the full code.
denial nakayama
el 8 de Jun. de 2020
Respuestas (2)
Ameer Hamza
el 8 de Jun. de 2020
You need to take the derivative of the original function and then apply the limits
syms x
f(x) = (-x*1/4+2);
df(x) = diff(f,x).*(1<=x&x<=2);
fplot(df,[0 10])
7 comentarios
denial nakayama
el 9 de Jun. de 2020
Ameer Hamza
el 9 de Jun. de 2020
Can you paste complete error message?
denial nakayama
el 9 de Jun. de 2020
Ameer Hamza
el 9 de Jun. de 2020
Try your code again after running
clear f x
denial nakayama
el 9 de Jun. de 2020
Ameer Hamza
el 9 de Jun. de 2020
Not sure about the issue. I don't have R2014a. Maybe this will work
fplot(matlabFunction(df),[0 10])
Walter Roberson
el 9 de Jun. de 2020
In R2014a, fplot() was not yet able to plot symbolic expressions.
Walter Roberson
el 8 de Jun. de 2020
function f=func(x)
f = piecewise(x >= 1 && x <= 2, -x*1/4+2, 0);
3 comentarios
denial nakayama
el 9 de Jun. de 2020
denial nakayama
el 9 de Jun. de 2020
Walter Roberson
el 9 de Jun. de 2020
function f=func(x)
syms t
temp(t) = feval(symengine, 'piecewise', '([t >= 1 and t <= 2, -t*1/4+2], [Otherwise, 0])');
f = temp(x);
Categorías
Más información sobre Entering Commands en Centro de ayuda y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!