如何区分我的功能Fun
?当我尝试使用diff
时,它会说
课程'diff'
不支持
'inline'
我使用的代码如下所示:
fprintf('Newton Raphson\n');
Fun=input('\nType a function \n');
xi=input('\nType initial value\n');
def=diff(Fun);
der=inline(def);
dxi=der(xi);
答案 0 :(得分:1)
Marcin是对的。不要使用inline
功能。那些不再使用。如果要使用符号数学工具箱进行区分,请使用sym
为您创建一个函数,然后使用它来区分它。
因此,假设x
是自变量:
syms x;
fprintf('Newton Raphson\n');
Fun=input('\nType a function \n');
xi=input('\nType initial value\n');
out = sym(Fun);
def = diff(out);
dxi = subs(def, 'x', xi);
请注意,由于公式是符号,如果要将x
替换为特定值,则需要使用subs
。使用subs
,我们将x
替换为存储在xi
中的初始值。
让我们做一个贯穿式的例子。以下是我使用输入和输出运行此代码时得到的结果:
Newton Raphson
Type a function
x^2 + x + 3
Type initial value
4
out
将是输入的函数:
out =
x^2 + x + 3
xi
将是初始值:
xi =
4
函数的导数存储在def
:
def =
2*x + 1
最后,将我们的初始值替换为我们的导数存储在dxi
中,从而得出:
dxi =
9
答案 1 :(得分:0)
看到这可能对你有帮助。
eq = input('Write an equation in x','s'); %input a equation
f = sym(eq); %turn the equation into a symbolic one
fin = inline(char(f)); %for converting the symbolic function into inline funct
dfin = inline(char(diff(f))); %for converting the symb diff func into inline diff f