假设我用matlab编写了以下内容
c='x^2-6';
f=inline(c);
那么f将是一个内联函数。我可以在不同的值下计算f
f(2)
f(5)
等。
然而,当我尝试diff(f)
时,它不会返回2*x
。我怎么能从2*x
那里得到f
发布于 2016-10-07 02:45:38
不能使用inline
对象进行符号数学计算。使用sym
对象代替:
c= sym('x^2-6'); % creates the 'sym' object
subs(c,2) % calculates c(2)
diff(c);
还请注意,inline
将被移除在将来的发行版中
发布于 2016-10-07 02:46:47
你需要MATLAB符号工具箱。你所描述的是象征性的区别。(还有象征性的整合,等等)。MATLAB的“正常”(非符号)版本是为了进行数值计算,而不是微积分或代数运算。
发布于 2017-02-14 13:25:15
这里有一种符号方法,将函数和参数作为用户的输入,并对其进行区分。
clear;
clc;
v=input('Parameter :');%input for example 'x' and remember the quotes
syms(v);%symbolic variable : x in this case
y=input('function :');%example exp (x) ,not exp(y) or ay other variable
f=matlabFunction(y);%converts y to a command type function f
df = matlabFunction(diff(y)); %calculates the differentiation.
现在,如果执行像f(1)这样的操作,它将显示2.71828,df(1)将显示2.71828。
https://stackoverflow.com/questions/39908436
复制相似问题