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

2 次查看(过去 30 天)
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)

采纳的回答

Matt Fig
Matt Fig 2012-10-25
编辑:Matt Fig 2012-10-25
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 个评论
Tom
Tom 2012-10-25
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 2012-10-25
编辑:Matt Fig 2012-10-25
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)

请先登录,再进行评论。

更多回答(1 个)

Walter Roberson
Walter Roberson 2012-10-25
Use matlabFunction()
  2 个评论
Tom
Tom 2012-10-25
编辑:Tom 2012-10-25
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 2012-10-25
Or indeed...
syms x
fx = input(':Please enter a valid function of x:')
dydx = diff(fx)
y = matlabFunction(fx)
plot(x,y)

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Equation Solving 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by