Filter löschen
Filter löschen

Creating a symbolic variable, then using it as a real variable

2 Ansichten (letzte 30 Tage)
Tom
Tom am 25 Okt. 2012
I need my program to calculate the derivative of a function, and as far as I understand that means I need to make a symbolic variable. How then can I continue to use that variable as a real vector?
This is what I have tried:
syms x
y = input('Please enter a valid function of x')
deriv = diff(y)
syms clear
x = 0:pi/30:pi;
plot(x,y)

Akzeptierte Antwort

Matt Fig
Matt Fig am 25 Okt. 2012
Bearbeitet: Matt Fig am 25 Okt. 2012
syms x
y = input('Please enter a valid function of x: ')
deriv = diff(y) % This will be symbolic
x = 0:pi/30:pi; % Now x is a double.
y = matlabFunction(y) % y is a function handle.
plot(x,y(x))
  2 Kommentare
Tom
Tom am 25 Okt. 2012
Thanks a lot, Matt! Can I ask, why does that only work with y(x) in the plot argument, instead of just y?
Matt Fig
Matt Fig am 25 Okt. 2012
Bearbeitet: Matt Fig am 25 Okt. 2012
y is a function handle (as I say in the comment!), not a vector. If you want to make y a vector instead:
syms x
y = input('Please enter a valid function of x: ')
x = 0:pi/30:pi; % Now x is a double.
y = subs(y); % y is now a double.
plot(x,y)
Or without the symbolic toolbox at all:
x = 0:pi/30:pi;
y = 'Please enter a valid function of x: ';
y = feval(vectorize(inline(input(y,'s'))),x);
plot(x,y)

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

Walter Roberson
Walter Roberson am 25 Okt. 2012
Use matlabFunction()
  2 Kommentare
Tom
Tom am 25 Okt. 2012
Bearbeitet: Tom am 25 Okt. 2012
I couldn't work out how to use that. Can you see why this doesn't work?
syms x
y = sin(x)
deriv = diff(y)
subs(y,[x],[0:pi/30:pi])
plot(x,y)
Tom
Tom am 25 Okt. 2012
Or indeed...
syms x
fx = input(':Please enter a valid function of x:')
dydx = diff(fx)
y = matlabFunction(fx)
plot(x,y)

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Symbolic Math Toolbox finden Sie in Help Center und File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by