How to define a function?
Afficher commentaires plus anciens
I am trying to define DY, which is the derivative of Y by using the "diff" command and "matlabFunction()" in order to evaluate Y(0)=1 and DY(0)=2 by using "dsolve". I am having trouble with the "diff" command, the message "Undefined function 'diff' for input arguments of type 'function_handle'." keeps coming up. I have already tried rewriting this multiple ways. Any help would be greatly appreciated. Thank you.
DE = D2y + 4*Dy + 4*y == 0
Y = matlabFunction(y)
DY = diff(Y)
DY = matlabFunction(DY)
y = dsolve(DE, Y(0)==1,DY(0)==2)
Réponse acceptée
Plus de réponses (1)
Rik
le 2 Nov 2017
What are you trying to do? If you don't convert the symbolic function to an anonymous function, it works just fine.
%clear is just for education purposes, use functions to keep your workspace clean.
%Needing clear is a sign of bad programming.
clear D2y DE Dy DY sol t y Y
syms y(t)
Dy = diff(y,t); D2y = diff(y,t,t);
DE = D2y + 4*Dy + 4*y == 0;
sol = dsolve(DE, y(0)==1, Dy(0)==2);
Y=y;%Y =matlabFunction(y);
DY = diff(Y);
%DY = matlabFunction(DY);
y = dsolve(DE, Y(0)==1,DY(0)==2);
disp(y)
disp(sol)
2 commentaires
Pauline Li
le 2 Nov 2017
Rik
le 2 Nov 2017
If you want to run dsolve(DE, Y(0)==1,DY(0)==2) or diff(Y), Y and DY must be symbolic functions. It is as simple as that. If that is not what you are trying to solve, you need to explain what function it is you want to solve.
Conversion to anonymous function is something you can do, but afterwards you can't differentiate it.
Catégories
En savoir plus sur Equation Solving dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!